Files
ladybird/Tests/LibWeb/Text/expected/wpt-import/url/url-setters-a-area.window.txt
Shannon Booth 1be69479a6 LibURL+Elsewhere: Consider file:// origins opaque by default
This aligns our behaviour closer to other browsers, which
_mostly_ consider file scheme URLs as opaque. For test
purposes, allow overriding this behaviour with a commandline
flag.
2026-02-21 23:00:57 +01:00

558 lines
44 KiB
Plaintext
Raw Blame History

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