[url-setters-a-area.window.html]
expected: CRASH
[url-setters-a-area.window.html?include=javascript]
[: Setting .protocol = 'defuse']
expected: FAIL
[: Setting .username = 'wario']
expected: FAIL
[: Setting .username = 'wario']
expected: FAIL
[: Setting .password = 'bowser']
expected: FAIL
[: Setting .port = '12']
expected: FAIL
[: Setting .hash = 'castle']
expected: FAIL
[: Setting .hash = 'castle']
expected: FAIL
[url-setters-a-area.window.html?include=mailto]
[: Setting .protocol = 'http' Cannot-be-a-base URL doesn’t have a host, but URL in a special scheme must.]
expected: FAIL
[: Setting .username = 'me' Cannot-be-a-base means no username]
expected: FAIL
[: Setting .password = 'secret' Cannot-be-a-base means no password]
expected: FAIL
[: Setting .host = 'example.com' Cannot-be-a-base means no host]
expected: FAIL
[: Setting .hostname = 'example.com' Cannot-be-a-base means no host]
expected: FAIL
[: Setting .pathname = '/foo' Cannot-be-a-base don’t have a path]
expected: FAIL
[: Setting .pathname = '/foo' Opaque paths cannot be set]
expected: FAIL
[url-setters-a-area.window.html?include=file]
[: Setting .protocol = 'http' Can’t switch from file URL with no host]
expected: FAIL
[: Setting .protocol = 'https']
expected: FAIL
[: Setting .protocol = 'wss']
expected: FAIL
[: Setting .protocol = 's']
expected: FAIL
[: Setting .username = 'me' No host means no username]
expected: FAIL
[: Setting .username = 'test']
expected: FAIL
[: Setting .password = 'secret' No host means no password]
expected: FAIL
[: Setting .password = 'test']
expected: FAIL
[: Setting .host = 'x:123']
expected: FAIL
[: Setting .host = 'loc%41lhost']
expected: FAIL
[: Setting .host = '']
expected: FAIL
[: Setting .hostname = 'x:123']
expected: FAIL
[: Setting .hostname = 'loc%41lhost']
expected: FAIL
[: Setting .hostname = '']
expected: FAIL
[: Setting .port = '12']
expected: FAIL
[: Setting .port = '12']
expected: FAIL
[: Setting .pathname = '' Special URLs cannot have their paths erased]
expected: FAIL
[: Setting .pathname = '\\\\' File URLs and (back)slashes]
expected: FAIL
[: Setting .pathname = '\\\\' File URLs and (back)slashes]
expected: FAIL
[: Setting .pathname = '//\\/' File URLs and (back)slashes]
expected: FAIL
[: Setting .pathname = '//\\/' File URLs and (back)slashes]
expected: FAIL
[: Setting .pathname = '//monkey/..//' File URLs and (back)slashes]
expected: FAIL
[: Setting .pathname = '//monkey/..//' File URLs and (back)slashes]
expected: FAIL
[: Setting .href = 'http://0300.168.0xF0']
expected: FAIL
[url-setters-a-area.window.html?exclude=(file|javascript|mailto)]
[: Setting .protocol = '' The empty string is not a valid scheme. Setter leaves the URL unchanged.]
expected: FAIL
[: Setting .protocol = 'b']
expected: FAIL
[: Setting .protocol = 'B' Upper-case ASCII is lower-cased]
expected: FAIL
[: Setting .protocol = 'é' Non-ASCII is rejected]
expected: FAIL
[: Setting .protocol = '0b' No leading digit]
expected: FAIL
[: Setting .protocol = '+b' No leading punctuation]
expected: FAIL
[: Setting .protocol = 'bC0+-.']
expected: FAIL
[: Setting .protocol = 'b,c' Only some punctuation is acceptable]
expected: FAIL
[: Setting .protocol = 'bé' Non-ASCII is rejected]
expected: FAIL
[: Setting .protocol = 'file' Can’t switch from URL containing username/password/port to file]
expected: FAIL
[: Setting .protocol = 'file']
expected: FAIL
[: Setting .protocol = 'file']
expected: FAIL
[: Setting .protocol = 'b' Can’t switch from special scheme to non-special]
expected: FAIL
[: Setting .protocol = 's']
expected: FAIL
[: Setting .protocol = 'test']
expected: FAIL
[: Setting .protocol = 'http' Can’t switch from non-special scheme to special]
expected: FAIL
[: Setting .protocol = 'https']
expected: FAIL
[: Setting .protocol = 'file']
expected: FAIL
[: Setting .protocol = 'file']
expected: FAIL
[: Setting .protocol = 'https']
expected: FAIL
[: Setting .protocol = 'https:foo : bar' Stuff after the first ':' is ignored]
expected: FAIL
[: Setting Test>.protocol = 'view-source+data:foo : bar' Stuff after the first ':' is ignored]
expected: FAIL
[: Setting .protocol = 'https' Port is set to null if it is the default for new scheme.]
expected: FAIL
[: Setting .username = 'me' No host means no username]
expected: FAIL
[: Setting .username = 'me']
expected: FAIL
[: Setting .username = 'me']
expected: FAIL
[: Setting .username = '']
expected: FAIL
[: Setting .username = '']
expected: FAIL
[: Setting .username = '\x00\x01\t\n\r\x1f !"#$%&'()*+,-./09:;<=>?@AZ[\\\]^_`az{|}~Éé' UTF-8 percent encoding with the userinfo encode set.]
expected: FAIL
[: Setting .username = '%c3%89té' Bytes already percent-encoded are left as-is.]
expected: FAIL
[: Setting .username = 'x']
expected: FAIL
[: Setting .password = 'secret' No host means no password]
expected: FAIL
[: Setting .password = 'secret']
expected: FAIL
[: Setting .password = 'secret']
expected: FAIL
[: Setting .password = '']
expected: FAIL
[: Setting .password = '']
expected: FAIL
[: Setting .password = '\x00\x01\t\n\r\x1f !"#$%&'()*+,-./09:;<=>?@AZ[\\\]^_`az{|}~Éé' UTF-8 percent encoding with the userinfo encode set.]
expected: FAIL
[: Setting .password = '%c3%89té' Bytes already percent-encoded are left as-is.]
expected: FAIL
[: Setting .password = 'x']
expected: FAIL
[: Setting .host = '\x00' Non-special scheme]
expected: FAIL
[: Setting .host = '\t']
expected: FAIL
[: Setting .host = '\n']
expected: FAIL
[: Setting .host = '\r']
expected: FAIL
[: Setting .host = ' ']
expected: FAIL
[: Setting .host = '#']
expected: FAIL
[: Setting .host = '/']
expected: FAIL
[: Setting .host = '?']
expected: FAIL
[: Setting .host = '@']
expected: FAIL
[: Setting .host = 'ß']
expected: FAIL
[: Setting .host = 'ß' IDNA Nontransitional_Processing]
expected: FAIL
[: Setting .host = 'example.net' Cannot-be-a-base means no host]
expected: FAIL
[: Setting .host = 'example.com:8080']
expected: FAIL
[: Setting .host = 'example.com' Port number is unchanged if not specified in the new value]
expected: FAIL
[: Setting .host = 'example.com:' Port number is unchanged if not specified]
expected: FAIL
[: Setting .host = '' The empty host is not valid for special schemes]
expected: FAIL
[: Setting .host = '' The empty host is OK for non-special schemes]
expected: FAIL
[: Setting .host = 'example.net' Path-only URLs can gain a host]
expected: FAIL
[: Setting .host = '0x7F000001:8080' IPv4 address syntax is normalized]
expected: FAIL
[: Setting .host = '[::0:01\]:2' IPv6 address syntax is normalized]
expected: FAIL
[: Setting .host = '[2001:db8::2\]:4002' IPv6 literal address with port, crbug.com/1012416]
expected: FAIL
[: Setting .host = 'example.com:80' Default port number is removed]
expected: FAIL
[: Setting .host = 'example.com:443' Default port number is removed]
expected: FAIL
[: Setting .host = 'example.com:80' Default port number is only removed for the relevant scheme]
expected: FAIL
[: Setting .host = 'example.com:80' Port number is removed if new port is scheme default and existing URL has a non-default port]
expected: FAIL
[: Setting .host = 'example.com/stuff' Stuff after a / delimiter is ignored]
expected: FAIL
[: Setting .host = 'example.com:8080/stuff' Stuff after a / delimiter is ignored]
expected: FAIL
[: Setting .host = 'example.com?stuff' Stuff after a ? delimiter is ignored]
expected: FAIL
[: Setting .host = 'example.com:8080?stuff' Stuff after a ? delimiter is ignored]
expected: FAIL
[: Setting .host = 'example.com#stuff' Stuff after a # delimiter is ignored]
expected: FAIL
[: Setting .host = 'example.com:8080#stuff' Stuff after a # delimiter is ignored]
expected: FAIL
[: Setting .host = 'example.com\\stuff' Stuff after a \\ delimiter is ignored for special schemes]
expected: FAIL
[: Setting .host = 'example.com:8080\\stuff' Stuff after a \\ delimiter is ignored for special schemes]
expected: FAIL
[: Setting .host = 'example.com\\stuff' \\ is not a delimiter for non-special schemes, but still forbidden in hosts]
expected: FAIL
[: Setting .host = 'example.com:8080stuff2' Anything other than ASCII digit stops the port parser in a setter but is not an error]
expected: FAIL
[: Setting .host = 'example.com:8080stuff2' Anything other than ASCII digit stops the port parser in a setter but is not an error]
expected: FAIL
[: Setting .host = 'example.com:8080+2' Anything other than ASCII digit stops the port parser in a setter but is not an error]
expected: FAIL
[: Setting .host = 'example.com:65535' Port numbers are 16 bit integers]
expected: FAIL
[: Setting .host = 'example.com:65536' Port numbers are 16 bit integers, overflowing is an error. Hostname is still set, though.]
expected: FAIL
[: Setting .host = '[google.com\]' Broken IPv6]
expected: FAIL
[: Setting .host = '[::1.2.3.4x\]']
expected: FAIL
[: Setting .host = '[::1.2.3.\]']
expected: FAIL
[: Setting .host = '[::1.2.\]']
expected: FAIL
[: Setting .host = '[::1.\]']
expected: FAIL
[: Setting .host = '']
expected: FAIL
[: Setting .host = '']
expected: FAIL
[: Setting .host = '///bad.com' Leading / is not stripped]
expected: FAIL
[: Setting .host = '///bad.com' Leading / is not stripped]
expected: FAIL
[: Setting .hostname = '\x00' Non-special scheme]
expected: FAIL
[: Setting .hostname = '\t']
expected: FAIL
[: Setting .hostname = '\n']
expected: FAIL
[: Setting .hostname = '\r']
expected: FAIL
[: Setting .hostname = ' ']
expected: FAIL
[: Setting .hostname = '#']
expected: FAIL
[: Setting .hostname = '/']
expected: FAIL
[: Setting .hostname = '?']
expected: FAIL
[: Setting .hostname = '@']
expected: FAIL
[: Setting .hostname = 'example.net' Cannot-be-a-base means no host]
expected: FAIL
[: Setting .hostname = 'example.com']
expected: FAIL
[: Setting .hostname = '' The empty host is not valid for special schemes]
expected: FAIL
[: Setting .hostname = '' The empty host is OK for non-special schemes]
expected: FAIL
[: Setting .hostname = 'example.net' Path-only URLs can gain a host]
expected: FAIL
[: Setting .hostname = '0x7F000001' IPv4 address syntax is normalized]
expected: FAIL
[: Setting .hostname = '[::0:01\]' IPv6 address syntax is normalized]
expected: FAIL
[: Setting .hostname = 'example.com:8080' : delimiter invalidates entire value]
expected: FAIL
[: Setting .hostname = 'example.com:8080' : delimiter invalidates entire value]
expected: FAIL
[: Setting .hostname = 'example.com:' : delimiter invalidates entire value]
expected: FAIL
[: Setting .hostname = 'example.com:' : delimiter invalidates entire value]
expected: FAIL
[: Setting .hostname = 'example.com/stuff' Stuff after a / delimiter is ignored]
expected: FAIL
[: Setting .hostname = 'example.com?stuff' Stuff after a ? delimiter is ignored]
expected: FAIL
[: Setting .hostname = 'example.com#stuff' Stuff after a # delimiter is ignored]
expected: FAIL
[: Setting .hostname = 'example.com\\stuff' Stuff after a \\ delimiter is ignored for special schemes]
expected: FAIL
[: Setting .hostname = 'example.com\\stuff' \\ is not a delimiter for non-special schemes, but still forbidden in hosts]
expected: FAIL
[: Setting .hostname = '[google.com\]' Broken IPv6]
expected: FAIL
[: Setting .hostname = '[::1.2.3.4x\]']
expected: FAIL
[: Setting .hostname = '[::1.2.3.\]']
expected: FAIL
[: Setting .hostname = '[::1.2.\]']
expected: FAIL
[: Setting .hostname = '[::1.\]']
expected: FAIL
[: Setting .hostname = '']
expected: FAIL
[: Setting .hostname = '']
expected: FAIL
[: Setting .hostname = 'h' Drop /. from path]
expected: FAIL
[: Setting .hostname = '']
expected: FAIL
[: Setting .hostname = '///bad.com' Leading / is not stripped]
expected: FAIL
[: Setting .hostname = '///bad.com' Leading / is not stripped]
expected: FAIL
[: Setting .port = '8080']
expected: FAIL
[: Setting .port = '' Port number is removed if empty is the new value]
expected: FAIL
[: Setting .port = '80' Default port number is removed]
expected: FAIL
[: Setting .port = '443' Default port number is removed]
expected: FAIL
[: Setting .port = '80' Default port number is only removed for the relevant scheme]
expected: FAIL
[: Setting .port = '8080/stuff' Stuff after a / delimiter is ignored]
expected: FAIL
[: Setting .port = '8080?stuff' Stuff after a ? delimiter is ignored]
expected: FAIL
[: Setting .port = '8080#stuff' Stuff after a # delimiter is ignored]
expected: FAIL
[: Setting .port = '8080\\stuff' Stuff after a \\ delimiter is ignored for special schemes]
expected: FAIL
[: Setting .port = '8080stuff2' Anything other than ASCII digit stops the port parser in a setter but is not an error]
expected: FAIL
[: Setting .port = '8080stuff2' Anything other than ASCII digit stops the port parser in a setter but is not an error]
expected: FAIL
[: Setting .port = '8080+2' Anything other than ASCII digit stops the port parser in a setter but is not an error]
expected: FAIL
[: Setting .port = '65535' Port numbers are 16 bit integers]
expected: FAIL
[: Setting .port = '65536' Port numbers are 16 bit integers, overflowing is an error]
expected: FAIL
[: Setting .port = '65536' Port numbers are 16 bit integers, overflowing is an error]
expected: FAIL
[: Setting .port = '12']
expected: FAIL
[: Setting .port = '12']
expected: FAIL
[: Setting .port = '12']
expected: FAIL
[: Setting .pathname = '' Non-special URLs can have their paths erased]
expected: FAIL
[: Setting .pathname = '' Non-special URLs can have their paths erased]
expected: FAIL
[: Setting .pathname = '' Non-special URLs with an empty host can have their paths erased]
expected: FAIL
[: Setting .pathname = '' Non-special URLs with an empty host can have their paths erased]
expected: FAIL
[: Setting .pathname = '' Path-only URLs cannot have their paths erased]
expected: FAIL
[: Setting .pathname = 'test' Path-only URLs always have an initial slash]
expected: FAIL
[: Setting .pathname = '/var/log/../run/bar.socket']
expected: FAIL
[: Setting .pathname = 'home']
expected: FAIL
[: Setting .pathname = '../home']
expected: FAIL
[: Setting .pathname = '\\a\\%2E\\b\\%2e.\\c' \\ is a segment delimiter for 'special' URLs]
expected: FAIL
[: Setting .pathname = '\\a\\%2E\\b\\%2e.\\c' \\ is *not* a segment delimiter for non-'special' URLs]
expected: FAIL
[: Setting .pathname = '\x00\x01\t\n\r\x1f !"#$%&'()*+,-./09:;<=>?@AZ[\\\]^_`az{|}~Éé' UTF-8 percent encoding with the default encode set. Tabs and newlines are removed.]
expected: FAIL
[: Setting .pathname = '%2e%2E%c3%89té' Bytes already percent-encoded are left as-is, including %2E outside dotted segments.]
expected: FAIL
[: Setting .pathname = '?' ? needs to be encoded]
expected: FAIL
[: Setting .pathname = '#' # needs to be encoded]
expected: FAIL
[: Setting .pathname = '?' ? needs to be encoded, non-special scheme]
expected: FAIL
[: Setting .pathname = '#' # needs to be encoded, non-special scheme]
expected: FAIL
[: Setting .pathname = '/?é' ? doesn't mess up encoding]
expected: FAIL
[: Setting .pathname = '/#é' # doesn't mess up encoding]
expected: FAIL
[: Setting .pathname = '/.//p' Serialize /. in path]
expected: FAIL
[: Setting .pathname = '/.//p' Serialize /. in path]
expected: FAIL
[: Setting .pathname = '/..//p']
expected: FAIL
[: Setting .pathname = '/..//p']
expected: FAIL
[: Setting .pathname = '//p']
expected: FAIL
[: Setting .pathname = '//p']
expected: FAIL
[: Setting .pathname = 'p' Drop /. from path]
expected: FAIL
[: Setting .search = 'lang=fr']
expected: FAIL
[: Setting .search = 'lang=fr']
expected: FAIL
[: Setting .search = '?lang=fr']
expected: FAIL
[: Setting .search = '??lang=fr']
expected: FAIL
[: Setting .search = '?']
expected: FAIL
[: Setting .search = '']
expected: FAIL
[: Setting .search = '']
expected: FAIL
[: Setting .search = '']
expected: FAIL
[: Setting .search = '\x00\x01\t\n\r\x1f !"#$%&'()*+,-./09:;<=>?@AZ[\\\]^_`az{|}~Éé' UTF-8 percent encoding with the query encode set. Tabs and newlines are removed.]
expected: FAIL
[: Setting .search = '%c3%89té' Bytes already percent-encoded are left as-is]
expected: FAIL
[: Setting .hash = 'main']
expected: FAIL
[: Setting .hash = 'main']
expected: FAIL
[: Setting .hash = '##nav']
expected: FAIL
[: Setting .hash = '#main']
expected: FAIL
[: Setting .hash = '#']
expected: FAIL
[: Setting .hash = '']
expected: FAIL
[: Setting .hash = '#foo bar']
expected: FAIL
[: Setting .hash = '#foo"bar']
expected: FAIL
[: Setting .hash = '#foo: Setting .hash = '#foo>bar']
expected: FAIL
[: Setting .hash = '#foo`bar']
expected: FAIL
[: Setting .hash = '\x00\x01\t\n\r\x1f !"#$%&'()*+,-./09:;<=>?@AZ[\\\]^_`az{|}~Éé' Simple percent-encoding; tabs and newlines are removed]
expected: FAIL
[: Setting .hash = 'a\x00b' Percent-encode NULLs in fragment]
expected: FAIL
[: Setting .hash = 'a\x00b' Percent-encode NULLs in fragment]
expected: FAIL
[: Setting .hash = '%c3%89té' Bytes already percent-encoded are left as-is]
expected: FAIL
[: Setting .pathname = 'new value']
expected: FAIL
[: Setting .pathname = 'new value']
expected: FAIL
[: Setting .pathname = 'space ' Non-special URLs with non-opaque paths percent-encode U+0020]
expected: FAIL
[: Setting .pathname = 'space ']
expected: FAIL
[: Setting .search = '' Drop trailing spaces from trailing opaque paths]
expected: FAIL
[: Setting .search = '']
expected: FAIL
[: Setting .search = '' Do not drop trailing spaces from non-trailing opaque paths]
expected: FAIL
[: Setting .search = '']
expected: FAIL
[: Setting .hash = '' Drop trailing spaces from trailing opaque paths]
expected: FAIL
[: Setting .hash = '']
expected: FAIL
[: Setting .hash = '' Do not drop trailing spaces from non-trailing opaque paths]
expected: FAIL
[: Setting .hash = '']
expected: FAIL
[: Setting .protocol = 'h\r\ntt\tps' Tab and newline are stripped]
expected: FAIL
[: Setting .protocol = 'https\r']
expected: FAIL
[: Setting .protocol = 'https\x00' Non-tab/newline C0 controls result in no-op]
expected: FAIL
[: Setting .protocol = 'https\x0c']
expected: FAIL
[: Setting .protocol = 'https\x0e']
expected: FAIL
[: Setting .protocol = 'https ']
expected: FAIL
[: Setting .host = 'a%C2%ADb']
expected: FAIL
[: Setting .host = '']
expected: FAIL
[: Setting .host = '%C2%AD']
expected: FAIL
[: Setting .host = 'xn--']
expected: FAIL
[: Setting .hostname = 'a%C2%ADb']
expected: FAIL
[: Setting .hostname = '']
expected: FAIL
[: Setting .hostname = '%C2%AD']
expected: FAIL
[: Setting .hostname = 'xn--']
expected: FAIL
[: Setting .port = 'randomstring' Setting port to a string that doesn't parse as a number]
expected: FAIL
[: Setting .port = 'randomstring' Setting port to a string that doesn't parse as a number]
expected: FAIL
[: Setting .port = '\t8080' Leading u0009 on special scheme]
expected: FAIL
[: Setting .port = '\t8080' Leading u0009 on non-special scheme]
expected: FAIL
[: Setting .port = '4wpt' Should use all ascii prefixed characters as port]
expected: FAIL
[: Setting .pathname = ' ' Trailing space should be encoded]
expected: FAIL
[: Setting .pathname = '\x00' Trailing C0 control should be encoded]
expected: FAIL
[: Setting .search = ' ' Trailing space should be encoded]
expected: FAIL
[: Setting .search = '\x00' Trailing C0 control should be encoded]
expected: FAIL
[: Setting .hash = ' ' Trailing space should be encoded]
expected: FAIL
[: Setting .hash = '\x00' Trailing C0 control should be encoded]
expected: FAIL