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