Sync web-platform-tests up to revision a5b95cb31914507088a4eda16f7674bbc6f3313f
[WebKit-https.git] / LayoutTests / imported / w3c / web-platform-tests / url / url-setters-expected.txt
1
2 PASS Loading data… 
3 PASS URL: Setting <a://example.net>.protocol = '' The empty string is not a valid scheme. Setter leaves the URL unchanged. 
4 PASS <a>: Setting <a://example.net>.protocol = '' The empty string is not a valid scheme. Setter leaves the URL unchanged. 
5 PASS <area>: Setting <a://example.net>.protocol = '' The empty string is not a valid scheme. Setter leaves the URL unchanged. 
6 PASS URL: Setting <a://example.net>.protocol = 'b' 
7 PASS <a>: Setting <a://example.net>.protocol = 'b' 
8 PASS <area>: Setting <a://example.net>.protocol = 'b' 
9 PASS URL: Setting <javascript:alert(1)>.protocol = 'defuse' 
10 PASS <a>: Setting <javascript:alert(1)>.protocol = 'defuse' 
11 PASS <area>: Setting <javascript:alert(1)>.protocol = 'defuse' 
12 PASS URL: Setting <a://example.net>.protocol = 'B' Upper-case ASCII is lower-cased 
13 PASS <a>: Setting <a://example.net>.protocol = 'B' Upper-case ASCII is lower-cased 
14 PASS <area>: Setting <a://example.net>.protocol = 'B' Upper-case ASCII is lower-cased 
15 PASS URL: Setting <a://example.net>.protocol = 'é' Non-ASCII is rejected 
16 PASS <a>: Setting <a://example.net>.protocol = 'é' Non-ASCII is rejected 
17 PASS <area>: Setting <a://example.net>.protocol = 'é' Non-ASCII is rejected 
18 PASS URL: Setting <a://example.net>.protocol = '0b' No leading digit 
19 PASS <a>: Setting <a://example.net>.protocol = '0b' No leading digit 
20 PASS <area>: Setting <a://example.net>.protocol = '0b' No leading digit 
21 PASS URL: Setting <a://example.net>.protocol = '+b' No leading punctuation 
22 PASS <a>: Setting <a://example.net>.protocol = '+b' No leading punctuation 
23 PASS <area>: Setting <a://example.net>.protocol = '+b' No leading punctuation 
24 PASS URL: Setting <a://example.net>.protocol = 'bC0+-.' 
25 PASS <a>: Setting <a://example.net>.protocol = 'bC0+-.' 
26 PASS <area>: Setting <a://example.net>.protocol = 'bC0+-.' 
27 PASS URL: Setting <a://example.net>.protocol = 'b,c' Only some punctuation is acceptable 
28 PASS <a>: Setting <a://example.net>.protocol = 'b,c' Only some punctuation is acceptable 
29 PASS <area>: Setting <a://example.net>.protocol = 'b,c' Only some punctuation is acceptable 
30 PASS URL: Setting <a://example.net>.protocol = 'bé' Non-ASCII is rejected 
31 PASS <a>: Setting <a://example.net>.protocol = 'bé' Non-ASCII is rejected 
32 PASS <area>: Setting <a://example.net>.protocol = 'bé' Non-ASCII is rejected 
33 FAIL URL: Setting <http://example.net>.protocol = 'b' Can’t switch from special scheme to non-special assert_equals: expected "http://example.net/" but got "b://example.net/"
34 FAIL <a>: Setting <http://example.net>.protocol = 'b' Can’t switch from special scheme to non-special assert_equals: expected "http://example.net/" but got "b://example.net/"
35 FAIL <area>: Setting <http://example.net>.protocol = 'b' Can’t switch from special scheme to non-special assert_equals: expected "http://example.net/" but got "b://example.net/"
36 FAIL URL: Setting <https://example.net>.protocol = 's' assert_equals: expected "https://example.net/" but got "s://example.net/"
37 FAIL <a>: Setting <https://example.net>.protocol = 's' assert_equals: expected "https://example.net/" but got "s://example.net/"
38 FAIL <area>: Setting <https://example.net>.protocol = 's' assert_equals: expected "https://example.net/" but got "s://example.net/"
39 FAIL URL: Setting <ftp://example.net>.protocol = 'test' assert_equals: expected "ftp://example.net/" but got "test://example.net/"
40 FAIL <a>: Setting <ftp://example.net>.protocol = 'test' assert_equals: expected "ftp://example.net/" but got "test://example.net/"
41 FAIL <area>: Setting <ftp://example.net>.protocol = 'test' assert_equals: expected "ftp://example.net/" but got "test://example.net/"
42 FAIL URL: Setting <mailto:me@example.net>.protocol = 'http' Cannot-be-a-base URL doesn’t have a host, but URL in a special scheme must. assert_equals: expected "mailto:me@example.net" but got "http://me@example.net/"
43 FAIL <a>: Setting <mailto:me@example.net>.protocol = 'http' Cannot-be-a-base URL doesn’t have a host, but URL in a special scheme must. assert_equals: expected "mailto:me@example.net" but got "http://me@example.net/"
44 FAIL <area>: Setting <mailto:me@example.net>.protocol = 'http' Cannot-be-a-base URL doesn’t have a host, but URL in a special scheme must. assert_equals: expected "mailto:me@example.net" but got "http://me@example.net/"
45 FAIL URL: Setting <ssh://me@example.net>.protocol = 'http' Can’t switch from non-special scheme to special assert_equals: expected "ssh://me@example.net" but got "http://me@example.net/"
46 FAIL <a>: Setting <ssh://me@example.net>.protocol = 'http' Can’t switch from non-special scheme to special assert_equals: expected "ssh://me@example.net" but got "http://me@example.net/"
47 FAIL <area>: Setting <ssh://me@example.net>.protocol = 'http' Can’t switch from non-special scheme to special assert_equals: expected "ssh://me@example.net" but got "http://me@example.net/"
48 FAIL URL: Setting <ssh://me@example.net>.protocol = 'gopher' assert_equals: expected "ssh://me@example.net" but got "gopher://me@example.net/"
49 FAIL <a>: Setting <ssh://me@example.net>.protocol = 'gopher' assert_equals: expected "ssh://me@example.net" but got "gopher://me@example.net/"
50 FAIL <area>: Setting <ssh://me@example.net>.protocol = 'gopher' assert_equals: expected "ssh://me@example.net" but got "gopher://me@example.net/"
51 PASS URL: Setting <ssh://me@example.net>.protocol = 'file' 
52 FAIL <a>: Setting <ssh://me@example.net>.protocol = 'file' assert_equals: expected "ssh://me@example.net" but got "file://me@example.net"
53 FAIL <area>: Setting <ssh://me@example.net>.protocol = 'file' assert_equals: expected "ssh://me@example.net" but got "file://me@example.net"
54 FAIL URL: Setting <nonsense:///test>.protocol = 'https' assert_equals: expected "nonsense:///test" but got "https://test/"
55 FAIL <a>: Setting <nonsense:///test>.protocol = 'https' assert_equals: expected "nonsense:///test" but got "https://test/"
56 FAIL <area>: Setting <nonsense:///test>.protocol = 'https' assert_equals: expected "nonsense:///test" but got "https://test/"
57 PASS URL: Setting <http://example.net>.protocol = 'https:foo : bar' Stuff after the first ':' is ignored 
58 PASS <a>: Setting <http://example.net>.protocol = 'https:foo : bar' Stuff after the first ':' is ignored 
59 PASS <area>: Setting <http://example.net>.protocol = 'https:foo : bar' Stuff after the first ':' is ignored 
60 PASS URL: Setting <data:text/html,<p>Test>.protocol = 'view-source+data:foo : bar' Stuff after the first ':' is ignored 
61 PASS <a>: Setting <data:text/html,<p>Test>.protocol = 'view-source+data:foo : bar' Stuff after the first ':' is ignored 
62 PASS <area>: Setting <data:text/html,<p>Test>.protocol = 'view-source+data:foo : bar' Stuff after the first ':' is ignored 
63 PASS URL: Setting <file:///home/you/index.html>.username = 'me' No host means no username 
64 FAIL <a>: Setting <file:///home/you/index.html>.username = 'me' No host means no username assert_equals: expected "file:///home/you/index.html" but got "file://me@/home/you/index.html"
65 FAIL <area>: Setting <file:///home/you/index.html>.username = 'me' No host means no username assert_equals: expected "file:///home/you/index.html" but got "file://me@/home/you/index.html"
66 PASS URL: Setting <unix:/run/foo.socket>.username = 'me' No host means no username 
67 FAIL <a>: Setting <unix:/run/foo.socket>.username = 'me' No host means no username assert_equals: expected "unix:/run/foo.socket" but got "unix://me@/run/foo.socket"
68 FAIL <area>: Setting <unix:/run/foo.socket>.username = 'me' No host means no username assert_equals: expected "unix:/run/foo.socket" but got "unix://me@/run/foo.socket"
69 PASS URL: Setting <mailto:you@example.net>.username = 'me' Cannot-be-a-base means no username 
70 PASS <a>: Setting <mailto:you@example.net>.username = 'me' Cannot-be-a-base means no username 
71 PASS <area>: Setting <mailto:you@example.net>.username = 'me' Cannot-be-a-base means no username 
72 PASS URL: Setting <javascript:alert(1)>.username = 'wario' 
73 PASS <a>: Setting <javascript:alert(1)>.username = 'wario' 
74 PASS <area>: Setting <javascript:alert(1)>.username = 'wario' 
75 PASS URL: Setting <http://example.net>.username = 'me' 
76 PASS <a>: Setting <http://example.net>.username = 'me' 
77 PASS <area>: Setting <http://example.net>.username = 'me' 
78 PASS URL: Setting <http://:secret@example.net>.username = 'me' 
79 PASS <a>: Setting <http://:secret@example.net>.username = 'me' 
80 PASS <area>: Setting <http://:secret@example.net>.username = 'me' 
81 PASS URL: Setting <http://me@example.net>.username = '' 
82 PASS <a>: Setting <http://me@example.net>.username = '' 
83 PASS <area>: Setting <http://me@example.net>.username = '' 
84 PASS URL: Setting <http://me:secret@example.net>.username = '' 
85 PASS <a>: Setting <http://me:secret@example.net>.username = '' 
86 PASS <area>: Setting <http://me:secret@example.net>.username = '' 
87 PASS URL: Setting <http://example.net>.username = '\0\ 1  
88 \r\1f !"#$%&'()*+,-./09:;<=>?@AZ[\]^_`az{|}~\7f\80\81Éé' UTF-8 percent encoding with the userinfo encode set. 
89 PASS <a>: Setting <http://example.net>.username = '\0\ 1  
90 \r\1f !"#$%&'()*+,-./09:;<=>?@AZ[\]^_`az{|}~\7f\80\81Éé' UTF-8 percent encoding with the userinfo encode set. 
91 PASS <area>: Setting <http://example.net>.username = '\0\ 1       
92 \r\1f !"#$%&'()*+,-./09:;<=>?@AZ[\]^_`az{|}~\7f\80\81Éé' UTF-8 percent encoding with the userinfo encode set. 
93 PASS URL: Setting <http://example.net>.username = '%c3%89té' Bytes already percent-encoded are left as-is. 
94 PASS <a>: Setting <http://example.net>.username = '%c3%89té' Bytes already percent-encoded are left as-is. 
95 PASS <area>: Setting <http://example.net>.username = '%c3%89té' Bytes already percent-encoded are left as-is. 
96 PASS URL: Setting <sc:///>.username = 'x' 
97 FAIL <a>: Setting <sc:///>.username = 'x' assert_equals: expected "sc:///" but got "sc://x@/"
98 FAIL <area>: Setting <sc:///>.username = 'x' assert_equals: expected "sc:///" but got "sc://x@/"
99 PASS URL: Setting <javascript://x/>.username = 'wario' 
100 PASS <a>: Setting <javascript://x/>.username = 'wario' 
101 PASS <area>: Setting <javascript://x/>.username = 'wario' 
102 PASS URL: Setting <file://test/>.username = 'test' 
103 FAIL <a>: Setting <file://test/>.username = 'test' assert_equals: expected "file://test/" but got "file://test@test/"
104 FAIL <area>: Setting <file://test/>.username = 'test' assert_equals: expected "file://test/" but got "file://test@test/"
105 PASS URL: Setting <file:///home/me/index.html>.password = 'secret' No host means no password 
106 FAIL <a>: Setting <file:///home/me/index.html>.password = 'secret' No host means no password assert_equals: expected "file:///home/me/index.html" but got "file://:secret@/home/me/index.html"
107 FAIL <area>: Setting <file:///home/me/index.html>.password = 'secret' No host means no password assert_equals: expected "file:///home/me/index.html" but got "file://:secret@/home/me/index.html"
108 PASS URL: Setting <unix:/run/foo.socket>.password = 'secret' No host means no password 
109 FAIL <a>: Setting <unix:/run/foo.socket>.password = 'secret' No host means no password assert_equals: expected "unix:/run/foo.socket" but got "unix://:secret@/run/foo.socket"
110 FAIL <area>: Setting <unix:/run/foo.socket>.password = 'secret' No host means no password assert_equals: expected "unix:/run/foo.socket" but got "unix://:secret@/run/foo.socket"
111 PASS URL: Setting <mailto:me@example.net>.password = 'secret' Cannot-be-a-base means no password 
112 PASS <a>: Setting <mailto:me@example.net>.password = 'secret' Cannot-be-a-base means no password 
113 PASS <area>: Setting <mailto:me@example.net>.password = 'secret' Cannot-be-a-base means no password 
114 PASS URL: Setting <http://example.net>.password = 'secret' 
115 PASS <a>: Setting <http://example.net>.password = 'secret' 
116 PASS <area>: Setting <http://example.net>.password = 'secret' 
117 PASS URL: Setting <http://me@example.net>.password = 'secret' 
118 PASS <a>: Setting <http://me@example.net>.password = 'secret' 
119 PASS <area>: Setting <http://me@example.net>.password = 'secret' 
120 PASS URL: Setting <http://:secret@example.net>.password = '' 
121 PASS <a>: Setting <http://:secret@example.net>.password = '' 
122 PASS <area>: Setting <http://:secret@example.net>.password = '' 
123 PASS URL: Setting <http://me:secret@example.net>.password = '' 
124 PASS <a>: Setting <http://me:secret@example.net>.password = '' 
125 PASS <area>: Setting <http://me:secret@example.net>.password = '' 
126 PASS URL: Setting <http://example.net>.password = '\0\ 1  
127 \r\1f !"#$%&'()*+,-./09:;<=>?@AZ[\]^_`az{|}~\7f\80\81Éé' UTF-8 percent encoding with the userinfo encode set. 
128 PASS <a>: Setting <http://example.net>.password = '\0\ 1  
129 \r\1f !"#$%&'()*+,-./09:;<=>?@AZ[\]^_`az{|}~\7f\80\81Éé' UTF-8 percent encoding with the userinfo encode set. 
130 PASS <area>: Setting <http://example.net>.password = '\0\ 1       
131 \r\1f !"#$%&'()*+,-./09:;<=>?@AZ[\]^_`az{|}~\7f\80\81Éé' UTF-8 percent encoding with the userinfo encode set. 
132 PASS URL: Setting <http://example.net>.password = '%c3%89té' Bytes already percent-encoded are left as-is. 
133 PASS <a>: Setting <http://example.net>.password = '%c3%89té' Bytes already percent-encoded are left as-is. 
134 PASS <area>: Setting <http://example.net>.password = '%c3%89té' Bytes already percent-encoded are left as-is. 
135 PASS URL: Setting <sc:///>.password = 'x' 
136 FAIL <a>: Setting <sc:///>.password = 'x' assert_equals: expected "sc:///" but got "sc://:x@/"
137 FAIL <area>: Setting <sc:///>.password = 'x' assert_equals: expected "sc:///" but got "sc://:x@/"
138 PASS URL: Setting <javascript://x/>.password = 'bowser' 
139 PASS <a>: Setting <javascript://x/>.password = 'bowser' 
140 PASS <area>: Setting <javascript://x/>.password = 'bowser' 
141 PASS URL: Setting <file://test/>.password = 'test' 
142 FAIL <a>: Setting <file://test/>.password = 'test' assert_equals: expected "file://test/" but got "file://:test@test/"
143 FAIL <area>: Setting <file://test/>.password = 'test' assert_equals: expected "file://test/" but got "file://:test@test/"
144 PASS URL: Setting <sc://x/>.host = '\0' Non-special scheme 
145 FAIL <a>: Setting <sc://x/>.host = '\0' Non-special scheme assert_equals: expected "sc://x/" but got "sc://\0/"
146 FAIL <area>: Setting <sc://x/>.host = '\0' Non-special scheme assert_equals: expected "sc://x/" but got "sc://\0/"
147 PASS URL: Setting <sc://x/>.host = '    ' 
148 PASS <a>: Setting <sc://x/>.host = '    ' 
149 PASS <area>: Setting <sc://x/>.host = ' ' 
150 PASS URL: Setting <sc://x/>.host = '
151
152 PASS <a>: Setting <sc://x/>.host = '
153
154 PASS <area>: Setting <sc://x/>.host = '
155
156 PASS URL: Setting <sc://x/>.host = '\r' 
157 PASS <a>: Setting <sc://x/>.host = '\r' 
158 PASS <area>: Setting <sc://x/>.host = '\r' 
159 PASS URL: Setting <sc://x/>.host = ' ' 
160 FAIL <a>: Setting <sc://x/>.host = ' ' assert_equals: expected "sc://x/" but got "sc:// /"
161 FAIL <area>: Setting <sc://x/>.host = ' ' assert_equals: expected "sc://x/" but got "sc:// /"
162 FAIL URL: Setting <sc://x/>.host = '#' assert_equals: expected "sc:///" but got "sc://#/"
163 FAIL <a>: Setting <sc://x/>.host = '#' assert_equals: expected "sc:///" but got "sc://#/"
164 FAIL <area>: Setting <sc://x/>.host = '#' assert_equals: expected "sc:///" but got "sc://#/"
165 FAIL URL: Setting <sc://x/>.host = '/' assert_equals: expected "sc:///" but got "sc:////"
166 FAIL <a>: Setting <sc://x/>.host = '/' assert_equals: expected "sc:///" but got "sc:////"
167 FAIL <area>: Setting <sc://x/>.host = '/' assert_equals: expected "sc:///" but got "sc:////"
168 FAIL URL: Setting <sc://x/>.host = '?' assert_equals: expected "sc:///" but got "sc://?/"
169 FAIL <a>: Setting <sc://x/>.host = '?' assert_equals: expected "sc:///" but got "sc://?/"
170 FAIL <area>: Setting <sc://x/>.host = '?' assert_equals: expected "sc:///" but got "sc://?/"
171 PASS URL: Setting <sc://x/>.host = '@' 
172 FAIL <a>: Setting <sc://x/>.host = '@' assert_equals: expected "sc://x/" but got "sc://@/"
173 FAIL <area>: Setting <sc://x/>.host = '@' assert_equals: expected "sc://x/" but got "sc://@/"
174 FAIL URL: Setting <sc://x/>.host = 'ß' assert_equals: expected "sc://%C3%9F/" but got "sc://ss/"
175 FAIL <a>: Setting <sc://x/>.host = 'ß' assert_equals: expected "sc://%C3%9F/" but got "sc://ss/"
176 FAIL <area>: Setting <sc://x/>.host = 'ß' assert_equals: expected "sc://%C3%9F/" but got "sc://ss/"
177 FAIL URL: Setting <https://x/>.host = 'ß' IDNA Nontransitional_Processing assert_equals: expected "https://xn--zca/" but got "https://ss/"
178 FAIL <a>: Setting <https://x/>.host = 'ß' IDNA Nontransitional_Processing assert_equals: expected "https://xn--zca/" but got "https://ss/"
179 FAIL <area>: Setting <https://x/>.host = 'ß' IDNA Nontransitional_Processing assert_equals: expected "https://xn--zca/" but got "https://ss/"
180 PASS URL: Setting <mailto:me@example.net>.host = 'example.com' Cannot-be-a-base means no host 
181 PASS <a>: Setting <mailto:me@example.net>.host = 'example.com' Cannot-be-a-base means no host 
182 PASS <area>: Setting <mailto:me@example.net>.host = 'example.com' Cannot-be-a-base means no host 
183 PASS URL: Setting <data:text/plain,Stuff>.host = 'example.net' Cannot-be-a-base means no password 
184 PASS <a>: Setting <data:text/plain,Stuff>.host = 'example.net' Cannot-be-a-base means no password 
185 PASS <area>: Setting <data:text/plain,Stuff>.host = 'example.net' Cannot-be-a-base means no password 
186 PASS URL: Setting <http://example.net>.host = 'example.com:8080' 
187 PASS <a>: Setting <http://example.net>.host = 'example.com:8080' 
188 PASS <area>: Setting <http://example.net>.host = 'example.com:8080' 
189 FAIL URL: Setting <http://example.net:8080>.host = 'example.com' Port number is unchanged if not specified in the new value assert_equals: expected "http://example.com:8080/" but got "http://example.com/"
190 FAIL <a>: Setting <http://example.net:8080>.host = 'example.com' Port number is unchanged if not specified in the new value assert_equals: expected "http://example.com:8080/" but got "http://example.com/"
191 FAIL <area>: Setting <http://example.net:8080>.host = 'example.com' Port number is unchanged if not specified in the new value assert_equals: expected "http://example.com:8080/" but got "http://example.com/"
192 FAIL URL: Setting <http://example.net:8080>.host = 'example.com:' Port number is unchanged if not specified assert_equals: expected "http://example.com:8080/" but got "http://example.com:0/"
193 FAIL <a>: Setting <http://example.net:8080>.host = 'example.com:' Port number is unchanged if not specified assert_equals: expected "http://example.com:8080/" but got "http://example.com:0/"
194 FAIL <area>: Setting <http://example.net:8080>.host = 'example.com:' Port number is unchanged if not specified assert_equals: expected "http://example.com:8080/" but got "http://example.com:0/"
195 PASS URL: Setting <http://example.net>.host = '' The empty host is not valid for special schemes 
196 PASS <a>: Setting <http://example.net>.host = '' The empty host is not valid for special schemes 
197 PASS <area>: Setting <http://example.net>.host = '' The empty host is not valid for special schemes 
198 FAIL URL: Setting <view-source+http://example.net/foo>.host = '' The empty host is OK for non-special schemes assert_equals: expected "view-source+http:///foo" but got "view-source+http://example.net/foo"
199 FAIL <a>: Setting <view-source+http://example.net/foo>.host = '' The empty host is OK for non-special schemes assert_equals: expected "view-source+http:///foo" but got "view-source+http://example.net/foo"
200 FAIL <area>: Setting <view-source+http://example.net/foo>.host = '' The empty host is OK for non-special schemes assert_equals: expected "view-source+http:///foo" but got "view-source+http://example.net/foo"
201 PASS URL: Setting <a:/foo>.host = 'example.net' Path-only URLs can gain a host 
202 PASS <a>: Setting <a:/foo>.host = 'example.net' Path-only URLs can gain a host 
203 PASS <area>: Setting <a:/foo>.host = 'example.net' Path-only URLs can gain a host 
204 PASS URL: Setting <http://example.net>.host = '0x7F000001:8080' IPv4 address syntax is normalized 
205 PASS <a>: Setting <http://example.net>.host = '0x7F000001:8080' IPv4 address syntax is normalized 
206 PASS <area>: Setting <http://example.net>.host = '0x7F000001:8080' IPv4 address syntax is normalized 
207 FAIL URL: Setting <http://example.net>.host = '[::0:01]:2' IPv6 address syntax is normalized assert_equals: expected "http://[::1]:2/" but got "http://example.net/"
208 FAIL <a>: Setting <http://example.net>.host = '[::0:01]:2' IPv6 address syntax is normalized assert_equals: expected "http://[::1]:2/" but got "http://[:0/"
209 FAIL <area>: Setting <http://example.net>.host = '[::0:01]:2' IPv6 address syntax is normalized assert_equals: expected "http://[::1]:2/" but got "http://[:0/"
210 PASS URL: Setting <http://example.net>.host = 'example.com:80' Default port number is removed 
211 PASS <a>: Setting <http://example.net>.host = 'example.com:80' Default port number is removed 
212 PASS <area>: Setting <http://example.net>.host = 'example.com:80' Default port number is removed 
213 PASS URL: Setting <https://example.net>.host = 'example.com:443' Default port number is removed 
214 PASS <a>: Setting <https://example.net>.host = 'example.com:443' Default port number is removed 
215 PASS <area>: Setting <https://example.net>.host = 'example.com:443' Default port number is removed 
216 PASS URL: Setting <https://example.net>.host = 'example.com:80' Default port number is only removed for the relevant scheme 
217 PASS <a>: Setting <https://example.net>.host = 'example.com:80' Default port number is only removed for the relevant scheme 
218 PASS <area>: Setting <https://example.net>.host = 'example.com:80' Default port number is only removed for the relevant scheme 
219 FAIL URL: Setting <http://example.net/path>.host = 'example.com/stuff' Stuff after a / delimiter is ignored assert_equals: expected "http://example.com/path" but got "http://example.com/stuff/path"
220 FAIL <a>: Setting <http://example.net/path>.host = 'example.com/stuff' Stuff after a / delimiter is ignored assert_equals: expected "http://example.com/path" but got "http://example.com/stuff/path"
221 FAIL <area>: Setting <http://example.net/path>.host = 'example.com/stuff' Stuff after a / delimiter is ignored assert_equals: expected "http://example.com/path" but got "http://example.com/stuff/path"
222 PASS URL: Setting <http://example.net/path>.host = 'example.com:8080/stuff' Stuff after a / delimiter is ignored 
223 PASS <a>: Setting <http://example.net/path>.host = 'example.com:8080/stuff' Stuff after a / delimiter is ignored 
224 PASS <area>: Setting <http://example.net/path>.host = 'example.com:8080/stuff' Stuff after a / delimiter is ignored 
225 FAIL URL: Setting <http://example.net/path>.host = 'example.com?stuff' Stuff after a ? delimiter is ignored assert_equals: expected "http://example.com/path" but got "http://example.com/?stuff/path"
226 FAIL <a>: Setting <http://example.net/path>.host = 'example.com?stuff' Stuff after a ? delimiter is ignored assert_equals: expected "http://example.com/path" but got "http://example.com/?stuff/path"
227 FAIL <area>: Setting <http://example.net/path>.host = 'example.com?stuff' Stuff after a ? delimiter is ignored assert_equals: expected "http://example.com/path" but got "http://example.com/?stuff/path"
228 PASS URL: Setting <http://example.net/path>.host = 'example.com:8080?stuff' Stuff after a ? delimiter is ignored 
229 PASS <a>: Setting <http://example.net/path>.host = 'example.com:8080?stuff' Stuff after a ? delimiter is ignored 
230 PASS <area>: Setting <http://example.net/path>.host = 'example.com:8080?stuff' Stuff after a ? delimiter is ignored 
231 FAIL URL: Setting <http://example.net/path>.host = 'example.com#stuff' Stuff after a # delimiter is ignored assert_equals: expected "http://example.com/path" but got "http://example.com/#stuff/path"
232 FAIL <a>: Setting <http://example.net/path>.host = 'example.com#stuff' Stuff after a # delimiter is ignored assert_equals: expected "http://example.com/path" but got "http://example.com/#stuff/path"
233 FAIL <area>: Setting <http://example.net/path>.host = 'example.com#stuff' Stuff after a # delimiter is ignored assert_equals: expected "http://example.com/path" but got "http://example.com/#stuff/path"
234 PASS URL: Setting <http://example.net/path>.host = 'example.com:8080#stuff' Stuff after a # delimiter is ignored 
235 PASS <a>: Setting <http://example.net/path>.host = 'example.com:8080#stuff' Stuff after a # delimiter is ignored 
236 PASS <area>: Setting <http://example.net/path>.host = 'example.com:8080#stuff' Stuff after a # delimiter is ignored 
237 FAIL URL: Setting <http://example.net/path>.host = 'example.com\stuff' Stuff after a \ delimiter is ignored for special schemes assert_equals: expected "http://example.com/path" but got "http://example.com/stuff/path"
238 FAIL <a>: Setting <http://example.net/path>.host = 'example.com\stuff' Stuff after a \ delimiter is ignored for special schemes assert_equals: expected "http://example.com/path" but got "http://example.com/stuff/path"
239 FAIL <area>: Setting <http://example.net/path>.host = 'example.com\stuff' Stuff after a \ delimiter is ignored for special schemes assert_equals: expected "http://example.com/path" but got "http://example.com/stuff/path"
240 PASS URL: Setting <http://example.net/path>.host = 'example.com:8080\stuff' Stuff after a \ delimiter is ignored for special schemes 
241 PASS <a>: Setting <http://example.net/path>.host = 'example.com:8080\stuff' Stuff after a \ delimiter is ignored for special schemes 
242 PASS <area>: Setting <http://example.net/path>.host = 'example.com:8080\stuff' Stuff after a \ delimiter is ignored for special schemes 
243 PASS URL: Setting <view-source+http://example.net/path>.host = 'example.com\stuff' \ is not a delimiter for non-special schemes, but still forbidden in hosts 
244 FAIL <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 assert_equals: expected "view-source+http://example.net/path" but got "view-source+http://example.com\\stuff/path"
245 FAIL <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 assert_equals: expected "view-source+http://example.net/path" but got "view-source+http://example.com\\stuff/path"
246 PASS URL: 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 
247 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 
248 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 
249 PASS URL: 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 
250 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 
251 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 
252 PASS URL: 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 
253 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 
254 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 
255 PASS URL: Setting <http://example.net/path>.host = 'example.com:65535' Port numbers are 16 bit integers 
256 PASS <a>: Setting <http://example.net/path>.host = 'example.com:65535' Port numbers are 16 bit integers 
257 PASS <area>: Setting <http://example.net/path>.host = 'example.com:65535' Port numbers are 16 bit integers 
258 FAIL URL: Setting <http://example.net/path>.host = 'example.com:65536' Port numbers are 16 bit integers, overflowing is an error. Hostname is still set, though. assert_equals: expected "http://example.com/path" but got "http://example.net/path"
259 FAIL <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. assert_equals: expected "http://example.com/path" but got "http://example.com:65536/path"
260 FAIL <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. assert_equals: expected "http://example.com/path" but got "http://example.com:65536/path"
261 PASS URL: Setting <http://example.net/>.host = '[google.com]' Broken IPv6 
262 FAIL <a>: Setting <http://example.net/>.host = '[google.com]' Broken IPv6 assert_equals: expected "http://example.net/" but got "http://[google.com]/"
263 FAIL <area>: Setting <http://example.net/>.host = '[google.com]' Broken IPv6 assert_equals: expected "http://example.net/" but got "http://[google.com]/"
264 PASS URL: Setting <http://example.net/>.host = '[::1.2.3.4x]' 
265 FAIL <a>: Setting <http://example.net/>.host = '[::1.2.3.4x]' assert_equals: expected "http://example.net/" but got "http://[:0/"
266 FAIL <area>: Setting <http://example.net/>.host = '[::1.2.3.4x]' assert_equals: expected "http://example.net/" but got "http://[:0/"
267 PASS URL: Setting <http://example.net/>.host = '[::1.2.3.]' 
268 FAIL <a>: Setting <http://example.net/>.host = '[::1.2.3.]' assert_equals: expected "http://example.net/" but got "http://[:0/"
269 FAIL <area>: Setting <http://example.net/>.host = '[::1.2.3.]' assert_equals: expected "http://example.net/" but got "http://[:0/"
270 PASS URL: Setting <http://example.net/>.host = '[::1.2.]' 
271 FAIL <a>: Setting <http://example.net/>.host = '[::1.2.]' assert_equals: expected "http://example.net/" but got "http://[:0/"
272 FAIL <area>: Setting <http://example.net/>.host = '[::1.2.]' assert_equals: expected "http://example.net/" but got "http://[:0/"
273 PASS URL: Setting <http://example.net/>.host = '[::1.]' 
274 FAIL <a>: Setting <http://example.net/>.host = '[::1.]' assert_equals: expected "http://example.net/" but got "http://[:0/"
275 FAIL <area>: Setting <http://example.net/>.host = '[::1.]' assert_equals: expected "http://example.net/" but got "http://[:0/"
276 FAIL URL: Setting <file://y/>.host = 'x:123' assert_equals: expected "file://y/" but got "file://x:123/"
277 FAIL <a>: Setting <file://y/>.host = 'x:123' assert_equals: expected "file://y/" but got "file://x:123/"
278 FAIL <area>: Setting <file://y/>.host = 'x:123' assert_equals: expected "file://y/" but got "file://x:123/"
279 PASS URL: Setting <file://y/>.host = 'loc%41lhost' 
280 PASS <a>: Setting <file://y/>.host = 'loc%41lhost' 
281 PASS <area>: Setting <file://y/>.host = 'loc%41lhost' 
282 FAIL URL: Setting <file://hi/x>.host = '' assert_equals: expected "file:///x" but got "file://hi/x"
283 FAIL <a>: Setting <file://hi/x>.host = '' assert_equals: expected "file:///x" but got "file://hi/x"
284 FAIL <area>: Setting <file://hi/x>.host = '' assert_equals: expected "file:///x" but got "file://hi/x"
285 PASS URL: Setting <sc://test@test/>.host = '' 
286 PASS <a>: Setting <sc://test@test/>.host = '' 
287 PASS <area>: Setting <sc://test@test/>.host = '' 
288 PASS URL: Setting <sc://test:12/>.host = '' 
289 PASS <a>: Setting <sc://test:12/>.host = '' 
290 PASS <area>: Setting <sc://test:12/>.host = '' 
291 PASS URL: Setting <sc://x/>.hostname = '\0' Non-special scheme 
292 FAIL <a>: Setting <sc://x/>.hostname = '\0' Non-special scheme assert_equals: expected "sc://x/" but got "sc://\0/"
293 FAIL <area>: Setting <sc://x/>.hostname = '\0' Non-special scheme assert_equals: expected "sc://x/" but got "sc://\0/"
294 PASS URL: Setting <sc://x/>.hostname = '        ' 
295 PASS <a>: Setting <sc://x/>.hostname = '        ' 
296 PASS <area>: Setting <sc://x/>.hostname = '     ' 
297 PASS URL: Setting <sc://x/>.hostname = '
298
299 PASS <a>: Setting <sc://x/>.hostname = '
300
301 PASS <area>: Setting <sc://x/>.hostname = '
302
303 PASS URL: Setting <sc://x/>.hostname = '\r' 
304 PASS <a>: Setting <sc://x/>.hostname = '\r' 
305 PASS <area>: Setting <sc://x/>.hostname = '\r' 
306 PASS URL: Setting <sc://x/>.hostname = ' ' 
307 FAIL <a>: Setting <sc://x/>.hostname = ' ' assert_equals: expected "sc://x/" but got "sc:// /"
308 FAIL <area>: Setting <sc://x/>.hostname = ' ' assert_equals: expected "sc://x/" but got "sc:// /"
309 FAIL URL: Setting <sc://x/>.hostname = '#' assert_equals: expected "sc:///" but got "sc://#/"
310 FAIL <a>: Setting <sc://x/>.hostname = '#' assert_equals: expected "sc:///" but got "sc://#/"
311 FAIL <area>: Setting <sc://x/>.hostname = '#' assert_equals: expected "sc:///" but got "sc://#/"
312 FAIL URL: Setting <sc://x/>.hostname = '/' assert_equals: expected "sc:///" but got "sc://x/"
313 FAIL <a>: Setting <sc://x/>.hostname = '/' assert_equals: expected "sc:///" but got "sc://x/"
314 FAIL <area>: Setting <sc://x/>.hostname = '/' assert_equals: expected "sc:///" but got "sc://x/"
315 FAIL URL: Setting <sc://x/>.hostname = '?' assert_equals: expected "sc:///" but got "sc://?/"
316 FAIL <a>: Setting <sc://x/>.hostname = '?' assert_equals: expected "sc:///" but got "sc://?/"
317 FAIL <area>: Setting <sc://x/>.hostname = '?' assert_equals: expected "sc:///" but got "sc://?/"
318 PASS URL: Setting <sc://x/>.hostname = '@' 
319 FAIL <a>: Setting <sc://x/>.hostname = '@' assert_equals: expected "sc://x/" but got "sc://@/"
320 FAIL <area>: Setting <sc://x/>.hostname = '@' assert_equals: expected "sc://x/" but got "sc://@/"
321 PASS URL: Setting <mailto:me@example.net>.hostname = 'example.com' Cannot-be-a-base means no host 
322 PASS <a>: Setting <mailto:me@example.net>.hostname = 'example.com' Cannot-be-a-base means no host 
323 PASS <area>: Setting <mailto:me@example.net>.hostname = 'example.com' Cannot-be-a-base means no host 
324 PASS URL: Setting <data:text/plain,Stuff>.hostname = 'example.net' Cannot-be-a-base means no password 
325 PASS <a>: Setting <data:text/plain,Stuff>.hostname = 'example.net' Cannot-be-a-base means no password 
326 PASS <area>: Setting <data:text/plain,Stuff>.hostname = 'example.net' Cannot-be-a-base means no password 
327 PASS URL: Setting <http://example.net:8080>.hostname = 'example.com' 
328 PASS <a>: Setting <http://example.net:8080>.hostname = 'example.com' 
329 PASS <area>: Setting <http://example.net:8080>.hostname = 'example.com' 
330 PASS URL: Setting <http://example.net>.hostname = '' The empty host is not valid for special schemes 
331 PASS <a>: Setting <http://example.net>.hostname = '' The empty host is not valid for special schemes 
332 PASS <area>: Setting <http://example.net>.hostname = '' The empty host is not valid for special schemes 
333 FAIL URL: Setting <view-source+http://example.net/foo>.hostname = '' The empty host is OK for non-special schemes assert_equals: expected "view-source+http:///foo" but got "view-source+http://example.net/foo"
334 FAIL <a>: Setting <view-source+http://example.net/foo>.hostname = '' The empty host is OK for non-special schemes assert_equals: expected "view-source+http:///foo" but got "view-source+http://example.net/foo"
335 FAIL <area>: Setting <view-source+http://example.net/foo>.hostname = '' The empty host is OK for non-special schemes assert_equals: expected "view-source+http:///foo" but got "view-source+http://example.net/foo"
336 PASS URL: Setting <a:/foo>.hostname = 'example.net' Path-only URLs can gain a host 
337 PASS <a>: Setting <a:/foo>.hostname = 'example.net' Path-only URLs can gain a host 
338 PASS <area>: Setting <a:/foo>.hostname = 'example.net' Path-only URLs can gain a host 
339 PASS URL: Setting <http://example.net:8080>.hostname = '0x7F000001' IPv4 address syntax is normalized 
340 PASS <a>: Setting <http://example.net:8080>.hostname = '0x7F000001' IPv4 address syntax is normalized 
341 PASS <area>: Setting <http://example.net:8080>.hostname = '0x7F000001' IPv4 address syntax is normalized 
342 FAIL URL: Setting <http://example.net>.hostname = '[::0:01]' IPv6 address syntax is normalized assert_equals: expected "http://[::1]/" but got "http://example.net/"
343 FAIL <a>: Setting <http://example.net>.hostname = '[::0:01]' IPv6 address syntax is normalized assert_equals: expected "http://[::1]/" but got "http://example.net/"
344 FAIL <area>: Setting <http://example.net>.hostname = '[::0:01]' IPv6 address syntax is normalized assert_equals: expected "http://[::1]/" but got "http://example.net/"
345 FAIL URL: Setting <http://example.net/path>.hostname = 'example.com:8080' Stuff after a : delimiter is ignored assert_equals: expected "http://example.com/path" but got "http://example.net/path"
346 FAIL <a>: Setting <http://example.net/path>.hostname = 'example.com:8080' Stuff after a : delimiter is ignored assert_equals: expected "http://example.com/path" but got "http://example.net/path"
347 FAIL <area>: Setting <http://example.net/path>.hostname = 'example.com:8080' Stuff after a : delimiter is ignored assert_equals: expected "http://example.com/path" but got "http://example.net/path"
348 FAIL URL: Setting <http://example.net:8080/path>.hostname = 'example.com:' Stuff after a : delimiter is ignored assert_equals: expected "http://example.com:8080/path" but got "http://example.net:8080/path"
349 FAIL <a>: Setting <http://example.net:8080/path>.hostname = 'example.com:' Stuff after a : delimiter is ignored assert_equals: expected "http://example.com:8080/path" but got "http://example.net:8080/path"
350 FAIL <area>: Setting <http://example.net:8080/path>.hostname = 'example.com:' Stuff after a : delimiter is ignored assert_equals: expected "http://example.com:8080/path" but got "http://example.net:8080/path"
351 FAIL URL: Setting <http://example.net/path>.hostname = 'example.com/stuff' Stuff after a / delimiter is ignored assert_equals: expected "http://example.com/path" but got "http://example.com/stuff/path"
352 FAIL <a>: Setting <http://example.net/path>.hostname = 'example.com/stuff' Stuff after a / delimiter is ignored assert_equals: expected "http://example.com/path" but got "http://example.com/stuff/path"
353 FAIL <area>: Setting <http://example.net/path>.hostname = 'example.com/stuff' Stuff after a / delimiter is ignored assert_equals: expected "http://example.com/path" but got "http://example.com/stuff/path"
354 FAIL URL: Setting <http://example.net/path>.hostname = 'example.com?stuff' Stuff after a ? delimiter is ignored assert_equals: expected "http://example.com/path" but got "http://example.com/?stuff/path"
355 FAIL <a>: Setting <http://example.net/path>.hostname = 'example.com?stuff' Stuff after a ? delimiter is ignored assert_equals: expected "http://example.com/path" but got "http://example.com/?stuff/path"
356 FAIL <area>: Setting <http://example.net/path>.hostname = 'example.com?stuff' Stuff after a ? delimiter is ignored assert_equals: expected "http://example.com/path" but got "http://example.com/?stuff/path"
357 FAIL URL: Setting <http://example.net/path>.hostname = 'example.com#stuff' Stuff after a # delimiter is ignored assert_equals: expected "http://example.com/path" but got "http://example.com/#stuff/path"
358 FAIL <a>: Setting <http://example.net/path>.hostname = 'example.com#stuff' Stuff after a # delimiter is ignored assert_equals: expected "http://example.com/path" but got "http://example.com/#stuff/path"
359 FAIL <area>: Setting <http://example.net/path>.hostname = 'example.com#stuff' Stuff after a # delimiter is ignored assert_equals: expected "http://example.com/path" but got "http://example.com/#stuff/path"
360 FAIL URL: Setting <http://example.net/path>.hostname = 'example.com\stuff' Stuff after a \ delimiter is ignored for special schemes assert_equals: expected "http://example.com/path" but got "http://example.com/stuff/path"
361 FAIL <a>: Setting <http://example.net/path>.hostname = 'example.com\stuff' Stuff after a \ delimiter is ignored for special schemes assert_equals: expected "http://example.com/path" but got "http://example.com/stuff/path"
362 FAIL <area>: Setting <http://example.net/path>.hostname = 'example.com\stuff' Stuff after a \ delimiter is ignored for special schemes assert_equals: expected "http://example.com/path" but got "http://example.com/stuff/path"
363 PASS URL: Setting <view-source+http://example.net/path>.hostname = 'example.com\stuff' \ is not a delimiter for non-special schemes, but still forbidden in hosts 
364 FAIL <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 assert_equals: expected "view-source+http://example.net/path" but got "view-source+http://example.com\\stuff/path"
365 FAIL <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 assert_equals: expected "view-source+http://example.net/path" but got "view-source+http://example.com\\stuff/path"
366 PASS URL: Setting <http://example.net/>.hostname = '[google.com]' Broken IPv6 
367 FAIL <a>: Setting <http://example.net/>.hostname = '[google.com]' Broken IPv6 assert_equals: expected "http://example.net/" but got "http://[google.com]/"
368 FAIL <area>: Setting <http://example.net/>.hostname = '[google.com]' Broken IPv6 assert_equals: expected "http://example.net/" but got "http://[google.com]/"
369 PASS URL: Setting <http://example.net/>.hostname = '[::1.2.3.4x]' 
370 PASS <a>: Setting <http://example.net/>.hostname = '[::1.2.3.4x]' 
371 PASS <area>: Setting <http://example.net/>.hostname = '[::1.2.3.4x]' 
372 PASS URL: Setting <http://example.net/>.hostname = '[::1.2.3.]' 
373 PASS <a>: Setting <http://example.net/>.hostname = '[::1.2.3.]' 
374 PASS <area>: Setting <http://example.net/>.hostname = '[::1.2.3.]' 
375 PASS URL: Setting <http://example.net/>.hostname = '[::1.2.]' 
376 PASS <a>: Setting <http://example.net/>.hostname = '[::1.2.]' 
377 PASS <area>: Setting <http://example.net/>.hostname = '[::1.2.]' 
378 PASS URL: Setting <http://example.net/>.hostname = '[::1.]' 
379 PASS <a>: Setting <http://example.net/>.hostname = '[::1.]' 
380 PASS <area>: Setting <http://example.net/>.hostname = '[::1.]' 
381 PASS URL: Setting <file://y/>.hostname = 'x:123' 
382 PASS <a>: Setting <file://y/>.hostname = 'x:123' 
383 PASS <area>: Setting <file://y/>.hostname = 'x:123' 
384 PASS URL: Setting <file://y/>.hostname = 'loc%41lhost' 
385 PASS <a>: Setting <file://y/>.hostname = 'loc%41lhost' 
386 PASS <area>: Setting <file://y/>.hostname = 'loc%41lhost' 
387 FAIL URL: Setting <file://hi/x>.hostname = '' assert_equals: expected "file:///x" but got "file://hi/x"
388 FAIL <a>: Setting <file://hi/x>.hostname = '' assert_equals: expected "file:///x" but got "file://hi/x"
389 FAIL <area>: Setting <file://hi/x>.hostname = '' assert_equals: expected "file:///x" but got "file://hi/x"
390 PASS URL: Setting <sc://test@test/>.hostname = '' 
391 PASS <a>: Setting <sc://test@test/>.hostname = '' 
392 PASS <area>: Setting <sc://test@test/>.hostname = '' 
393 PASS URL: Setting <sc://test:12/>.hostname = '' 
394 PASS <a>: Setting <sc://test:12/>.hostname = '' 
395 PASS <area>: Setting <sc://test:12/>.hostname = '' 
396 PASS URL: Setting <http://example.net>.port = '8080' 
397 PASS <a>: Setting <http://example.net>.port = '8080' 
398 PASS <area>: Setting <http://example.net>.port = '8080' 
399 FAIL URL: Setting <http://example.net:8080>.port = '' Port number is removed if empty is the new value assert_equals: expected "http://example.net/" but got "http://example.net:0/"
400 FAIL <a>: Setting <http://example.net:8080>.port = '' Port number is removed if empty is the new value assert_equals: expected "http://example.net/" but got "http://example.net:0/"
401 FAIL <area>: Setting <http://example.net:8080>.port = '' Port number is removed if empty is the new value assert_equals: expected "http://example.net/" but got "http://example.net:0/"
402 PASS URL: Setting <http://example.net:8080>.port = '80' Default port number is removed 
403 PASS <a>: Setting <http://example.net:8080>.port = '80' Default port number is removed 
404 PASS <area>: Setting <http://example.net:8080>.port = '80' Default port number is removed 
405 PASS URL: Setting <https://example.net:4433>.port = '443' Default port number is removed 
406 PASS <a>: Setting <https://example.net:4433>.port = '443' Default port number is removed 
407 PASS <area>: Setting <https://example.net:4433>.port = '443' Default port number is removed 
408 PASS URL: Setting <https://example.net>.port = '80' Default port number is only removed for the relevant scheme 
409 PASS <a>: Setting <https://example.net>.port = '80' Default port number is only removed for the relevant scheme 
410 PASS <area>: Setting <https://example.net>.port = '80' Default port number is only removed for the relevant scheme 
411 PASS URL: Setting <http://example.net/path>.port = '8080/stuff' Stuff after a / delimiter is ignored 
412 PASS <a>: Setting <http://example.net/path>.port = '8080/stuff' Stuff after a / delimiter is ignored 
413 PASS <area>: Setting <http://example.net/path>.port = '8080/stuff' Stuff after a / delimiter is ignored 
414 PASS URL: Setting <http://example.net/path>.port = '8080?stuff' Stuff after a ? delimiter is ignored 
415 PASS <a>: Setting <http://example.net/path>.port = '8080?stuff' Stuff after a ? delimiter is ignored 
416 PASS <area>: Setting <http://example.net/path>.port = '8080?stuff' Stuff after a ? delimiter is ignored 
417 PASS URL: Setting <http://example.net/path>.port = '8080#stuff' Stuff after a # delimiter is ignored 
418 PASS <a>: Setting <http://example.net/path>.port = '8080#stuff' Stuff after a # delimiter is ignored 
419 PASS <area>: Setting <http://example.net/path>.port = '8080#stuff' Stuff after a # delimiter is ignored 
420 PASS URL: Setting <http://example.net/path>.port = '8080\stuff' Stuff after a \ delimiter is ignored for special schemes 
421 PASS <a>: Setting <http://example.net/path>.port = '8080\stuff' Stuff after a \ delimiter is ignored for special schemes 
422 PASS <area>: Setting <http://example.net/path>.port = '8080\stuff' Stuff after a \ delimiter is ignored for special schemes 
423 PASS URL: 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 
424 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 
425 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 
426 PASS URL: Setting <http://example.net/path>.port = '8080stuff2' Anything other than ASCII digit stops the port parser in a setter but is not an error 
427 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 
428 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 
429 PASS URL: 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 
430 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 
431 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 
432 PASS URL: Setting <http://example.net/path>.port = '65535' Port numbers are 16 bit integers 
433 PASS <a>: Setting <http://example.net/path>.port = '65535' Port numbers are 16 bit integers 
434 PASS <area>: Setting <http://example.net/path>.port = '65535' Port numbers are 16 bit integers 
435 FAIL URL: Setting <http://example.net:8080/path>.port = '65536' Port numbers are 16 bit integers, overflowing is an error assert_equals: expected "http://example.net:8080/path" but got "http://example.net:0/path"
436 FAIL <a>: Setting <http://example.net:8080/path>.port = '65536' Port numbers are 16 bit integers, overflowing is an error assert_equals: expected "http://example.net:8080/path" but got "http://example.net:0/path"
437 FAIL <area>: Setting <http://example.net:8080/path>.port = '65536' Port numbers are 16 bit integers, overflowing is an error assert_equals: expected "http://example.net:8080/path" but got "http://example.net:0/path"
438 PASS URL: Setting <file://test/>.port = '12' 
439 PASS <a>: Setting <file://test/>.port = '12' 
440 PASS <area>: Setting <file://test/>.port = '12' 
441 PASS URL: Setting <file://localhost/>.port = '12' 
442 PASS <a>: Setting <file://localhost/>.port = '12' 
443 PASS <area>: Setting <file://localhost/>.port = '12' 
444 PASS URL: Setting <non-base:value>.port = '12' 
445 PASS <a>: Setting <non-base:value>.port = '12' 
446 PASS <area>: Setting <non-base:value>.port = '12' 
447 PASS URL: Setting <sc:///>.port = '12' 
448 FAIL <a>: Setting <sc:///>.port = '12' assert_equals: expected "sc:///" but got "sc://:12/"
449 FAIL <area>: Setting <sc:///>.port = '12' assert_equals: expected "sc:///" but got "sc://:12/"
450 PASS URL: Setting <sc://x/>.port = '12' 
451 PASS <a>: Setting <sc://x/>.port = '12' 
452 PASS <area>: Setting <sc://x/>.port = '12' 
453 PASS URL: Setting <javascript://x/>.port = '12' 
454 PASS <a>: Setting <javascript://x/>.port = '12' 
455 PASS <area>: Setting <javascript://x/>.port = '12' 
456 PASS URL: Setting <mailto:me@example.net>.pathname = '/foo' Cannot-be-a-base don’t have a path 
457 PASS <a>: Setting <mailto:me@example.net>.pathname = '/foo' Cannot-be-a-base don’t have a path 
458 PASS <area>: Setting <mailto:me@example.net>.pathname = '/foo' Cannot-be-a-base don’t have a path 
459 PASS URL: Setting <unix:/run/foo.socket?timeout=10>.pathname = '/var/log/../run/bar.socket' 
460 PASS <a>: Setting <unix:/run/foo.socket?timeout=10>.pathname = '/var/log/../run/bar.socket' 
461 PASS <area>: Setting <unix:/run/foo.socket?timeout=10>.pathname = '/var/log/../run/bar.socket' 
462 PASS URL: Setting <https://example.net#nav>.pathname = 'home' 
463 PASS <a>: Setting <https://example.net#nav>.pathname = 'home' 
464 PASS <area>: Setting <https://example.net#nav>.pathname = 'home' 
465 PASS URL: Setting <https://example.net#nav>.pathname = '../home' 
466 PASS <a>: Setting <https://example.net#nav>.pathname = '../home' 
467 PASS <area>: Setting <https://example.net#nav>.pathname = '../home' 
468 FAIL URL: Setting <http://example.net/home?lang=fr#nav>.pathname = '\a\%2E\b\%2e.\c' \ is a segment delimiter for 'special' URLs assert_equals: expected "http://example.net/a/c?lang=fr#nav" but got "http://example.net//a/%252E/b/%252e./c?lang=fr#nav"
469 FAIL <a>: Setting <http://example.net/home?lang=fr#nav>.pathname = '\a\%2E\b\%2e.\c' \ is a segment delimiter for 'special' URLs assert_equals: expected "http://example.net/a/c?lang=fr#nav" but got "http://example.net//a/%252E/b/%252e./c?lang=fr#nav"
470 FAIL <area>: Setting <http://example.net/home?lang=fr#nav>.pathname = '\a\%2E\b\%2e.\c' \ is a segment delimiter for 'special' URLs assert_equals: expected "http://example.net/a/c?lang=fr#nav" but got "http://example.net//a/%252E/b/%252e./c?lang=fr#nav"
471 FAIL URL: 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 assert_equals: expected "view-source+http://example.net/\\a\%2E\b\%2e.\c?lang=fr#nav" but got "view-source+http://example.net/\\a\%252E\b\%252e.\c?lang=fr#nav"
472 FAIL <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 assert_equals: expected "view-source+http://example.net/\\a\%2E\b\%2e.\c?lang=fr#nav" but got "view-source+http://example.net/\\a\%252E\b\%252e.\c?lang=fr#nav"
473 FAIL <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 assert_equals: expected "view-source+http://example.net/\\a\%2E\b\%2e.\c?lang=fr#nav" but got "view-source+http://example.net/\\a\%252E\b\%252e.\c?lang=fr#nav"
474 FAIL URL: Setting <a:/>.pathname = '\0\ 1 
475 \r\1f !"#$%&'()*+,-./09:;<=>?@AZ[\]^_`az{|}~\7f\80\81Éé' UTF-8 percent encoding with the default encode set. Tabs and newlines are removed. assert_equals: expected "a:/%00%01%1F%20!%22%23$%&'()*+,-./09:;%3C=%3E%3F@AZ[\\]^_%60az%7B|%7D~%7F%C2%80%C2%81%C3%89%C3%A9" but got "a:/%00%01%09%0A%0D%1F%20!%22%23$%25&'()*+,-./09:;%3C=%3E%3F@AZ[\\]^_%60az%7B|%7D~%7F%C2%80%C2%81%C3%89%C3%A9"
476 FAIL <a>: Setting <a:/>.pathname = '\0\ 1 
477 \r\1f !"#$%&'()*+,-./09:;<=>?@AZ[\]^_`az{|}~\7f\80\81Éé' UTF-8 percent encoding with the default encode set. Tabs and newlines are removed. assert_equals: expected "a:/%00%01%1F%20!%22%23$%&'()*+,-./09:;%3C=%3E%3F@AZ[\\]^_%60az%7B|%7D~%7F%C2%80%C2%81%C3%89%C3%A9" but got "a:/%00%01%09%0A%0D%1F%20!%22%23$%25&'()*+,-./09:;%3C=%3E%3F@AZ[\\]^_%60az%7B|%7D~%7F%C2%80%C2%81%C3%89%C3%A9"
478 FAIL <area>: Setting <a:/>.pathname = '\0\ 1      
479 \r\1f !"#$%&'()*+,-./09:;<=>?@AZ[\]^_`az{|}~\7f\80\81Éé' UTF-8 percent encoding with the default encode set. Tabs and newlines are removed. assert_equals: expected "a:/%00%01%1F%20!%22%23$%&'()*+,-./09:;%3C=%3E%3F@AZ[\\]^_%60az%7B|%7D~%7F%C2%80%C2%81%C3%89%C3%A9" but got "a:/%00%01%09%0A%0D%1F%20!%22%23$%25&'()*+,-./09:;%3C=%3E%3F@AZ[\\]^_%60az%7B|%7D~%7F%C2%80%C2%81%C3%89%C3%A9"
480 FAIL URL: Setting <http://example.net>.pathname = '%2e%2E%c3%89té' Bytes already percent-encoded are left as-is, including %2E outside dotted segments. assert_equals: expected "http://example.net/%2e%2E%c3%89t%C3%A9" but got "http://example.net/%252e%252E%25c3%2589t%C3%A9"
481 FAIL <a>: Setting <http://example.net>.pathname = '%2e%2E%c3%89té' Bytes already percent-encoded are left as-is, including %2E outside dotted segments. assert_equals: expected "http://example.net/%2e%2E%c3%89t%C3%A9" but got "http://example.net/%252e%252E%25c3%2589t%C3%A9"
482 FAIL <area>: Setting <http://example.net>.pathname = '%2e%2E%c3%89té' Bytes already percent-encoded are left as-is, including %2E outside dotted segments. assert_equals: expected "http://example.net/%2e%2E%c3%89t%C3%A9" but got "http://example.net/%252e%252E%25c3%2589t%C3%A9"
483 PASS URL: Setting <http://example.net>.pathname = '?' ? needs to be encoded 
484 PASS <a>: Setting <http://example.net>.pathname = '?' ? needs to be encoded 
485 PASS <area>: Setting <http://example.net>.pathname = '?' ? needs to be encoded 
486 PASS URL: Setting <http://example.net>.pathname = '#' # needs to be encoded 
487 PASS <a>: Setting <http://example.net>.pathname = '#' # needs to be encoded 
488 PASS <area>: Setting <http://example.net>.pathname = '#' # needs to be encoded 
489 PASS URL: Setting <sc://example.net>.pathname = '?' ? needs to be encoded, non-special scheme 
490 PASS <a>: Setting <sc://example.net>.pathname = '?' ? needs to be encoded, non-special scheme 
491 PASS <area>: Setting <sc://example.net>.pathname = '?' ? needs to be encoded, non-special scheme 
492 PASS URL: Setting <sc://example.net>.pathname = '#' # needs to be encoded, non-special scheme 
493 PASS <a>: Setting <sc://example.net>.pathname = '#' # needs to be encoded, non-special scheme 
494 PASS <area>: Setting <sc://example.net>.pathname = '#' # needs to be encoded, non-special scheme 
495 PASS URL: Setting <https://example.net#nav>.search = 'lang=fr' 
496 PASS <a>: Setting <https://example.net#nav>.search = 'lang=fr' 
497 PASS <area>: Setting <https://example.net#nav>.search = 'lang=fr' 
498 PASS URL: Setting <https://example.net?lang=en-US#nav>.search = 'lang=fr' 
499 PASS <a>: Setting <https://example.net?lang=en-US#nav>.search = 'lang=fr' 
500 PASS <area>: Setting <https://example.net?lang=en-US#nav>.search = 'lang=fr' 
501 PASS URL: Setting <https://example.net?lang=en-US#nav>.search = '?lang=fr' 
502 PASS <a>: Setting <https://example.net?lang=en-US#nav>.search = '?lang=fr' 
503 PASS <area>: Setting <https://example.net?lang=en-US#nav>.search = '?lang=fr' 
504 FAIL URL: Setting <https://example.net?lang=en-US#nav>.search = '??lang=fr' assert_equals: expected "https://example.net/??lang=fr#nav" but got "https://example.net/?lang=fr#nav"
505 FAIL <a>: Setting <https://example.net?lang=en-US#nav>.search = '??lang=fr' assert_equals: expected "https://example.net/??lang=fr#nav" but got "https://example.net/?lang=fr#nav"
506 FAIL <area>: Setting <https://example.net?lang=en-US#nav>.search = '??lang=fr' assert_equals: expected "https://example.net/??lang=fr#nav" but got "https://example.net/?lang=fr#nav"
507 PASS URL: Setting <https://example.net?lang=en-US#nav>.search = '?' 
508 PASS <a>: Setting <https://example.net?lang=en-US#nav>.search = '?' 
509 PASS <area>: Setting <https://example.net?lang=en-US#nav>.search = '?' 
510 FAIL URL: Setting <https://example.net?lang=en-US#nav>.search = '' assert_equals: expected "https://example.net/#nav" but got "https://example.net/?#nav"
511 FAIL <a>: Setting <https://example.net?lang=en-US#nav>.search = '' assert_equals: expected "https://example.net/#nav" but got "https://example.net/?#nav"
512 FAIL <area>: Setting <https://example.net?lang=en-US#nav>.search = '' assert_equals: expected "https://example.net/#nav" but got "https://example.net/?#nav"
513 FAIL URL: Setting <https://example.net?lang=en-US>.search = '' assert_equals: expected "https://example.net/" but got "https://example.net/?"
514 FAIL <a>: Setting <https://example.net?lang=en-US>.search = '' assert_equals: expected "https://example.net/" but got "https://example.net/?"
515 FAIL <area>: Setting <https://example.net?lang=en-US>.search = '' assert_equals: expected "https://example.net/" but got "https://example.net/?"
516 FAIL URL: Setting <https://example.net>.search = '' assert_equals: expected "https://example.net/" but got "https://example.net/?"
517 FAIL <a>: Setting <https://example.net>.search = '' assert_equals: expected "https://example.net/" but got "https://example.net/?"
518 FAIL <area>: Setting <https://example.net>.search = '' assert_equals: expected "https://example.net/" but got "https://example.net/?"
519 PASS URL: Setting <a:/>.search = '\0\ 1   
520 \r\1f !"#$%&'()*+,-./09:;<=>?@AZ[\]^_`az{|}~\7f\80\81Éé' UTF-8 percent encoding with the query encode set. Tabs and newlines are removed. 
521 PASS <a>: Setting <a:/>.search = '\0\ 1   
522 \r\1f !"#$%&'()*+,-./09:;<=>?@AZ[\]^_`az{|}~\7f\80\81Éé' UTF-8 percent encoding with the query encode set. Tabs and newlines are removed. 
523 PASS <area>: Setting <a:/>.search = '\0\ 1        
524 \r\1f !"#$%&'()*+,-./09:;<=>?@AZ[\]^_`az{|}~\7f\80\81Éé' UTF-8 percent encoding with the query encode set. Tabs and newlines are removed. 
525 PASS URL: Setting <http://example.net>.search = '%c3%89té' Bytes already percent-encoded are left as-is 
526 PASS <a>: Setting <http://example.net>.search = '%c3%89té' Bytes already percent-encoded are left as-is 
527 PASS <area>: Setting <http://example.net>.search = '%c3%89té' Bytes already percent-encoded are left as-is 
528 PASS URL: Setting <https://example.net>.hash = 'main' 
529 PASS <a>: Setting <https://example.net>.hash = 'main' 
530 PASS <area>: Setting <https://example.net>.hash = 'main' 
531 PASS URL: Setting <https://example.net#nav>.hash = 'main' 
532 PASS <a>: Setting <https://example.net#nav>.hash = 'main' 
533 PASS <area>: Setting <https://example.net#nav>.hash = 'main' 
534 PASS URL: Setting <https://example.net?lang=en-US>.hash = '##nav' 
535 PASS <a>: Setting <https://example.net?lang=en-US>.hash = '##nav' 
536 PASS <area>: Setting <https://example.net?lang=en-US>.hash = '##nav' 
537 PASS URL: Setting <https://example.net?lang=en-US#nav>.hash = '#main' 
538 PASS <a>: Setting <https://example.net?lang=en-US#nav>.hash = '#main' 
539 PASS <area>: Setting <https://example.net?lang=en-US#nav>.hash = '#main' 
540 FAIL URL: Setting <https://example.net?lang=en-US#nav>.hash = '#' assert_equals: expected "https://example.net/?lang=en-US#" but got "https://example.net/?lang=en-US"
541 FAIL <a>: Setting <https://example.net?lang=en-US#nav>.hash = '#' assert_equals: expected "https://example.net/?lang=en-US#" but got "https://example.net/?lang=en-US"
542 FAIL <area>: Setting <https://example.net?lang=en-US#nav>.hash = '#' assert_equals: expected "https://example.net/?lang=en-US#" but got "https://example.net/?lang=en-US"
543 PASS URL: Setting <https://example.net?lang=en-US#nav>.hash = '' 
544 PASS <a>: Setting <https://example.net?lang=en-US#nav>.hash = '' 
545 PASS <area>: Setting <https://example.net?lang=en-US#nav>.hash = '' 
546 FAIL URL: Setting <a:/>.hash = '\0\ 1     
547 \r\1f !"#$%&'()*+,-./09:;<=>?@AZ[\]^_`az{|}~\7f\80\81Éé' Simple percent-encoding; nuls, tabs, and newlines are removed assert_equals: expected "a:/#%01%1F !\"#$%&'()*+,-./09:;<=>?@AZ[\\]^_`az{|}~%7F%C2%80%C2%81%C3%89%C3%A9" but got "a:/#%00%01%1F !\"#$%&'()*+,-./09:;<=>?@AZ[\\]^_`az{|}~%7F%C2%80%C2%81%C3%89%C3%A9"
548 FAIL <a>: Setting <a:/>.hash = '\0\ 1     
549 \r\1f !"#$%&'()*+,-./09:;<=>?@AZ[\]^_`az{|}~\7f\80\81Éé' Simple percent-encoding; nuls, tabs, and newlines are removed assert_equals: expected "a:/#%01%1F !\"#$%&'()*+,-./09:;<=>?@AZ[\\]^_`az{|}~%7F%C2%80%C2%81%C3%89%C3%A9" but got "a:/#%00%01%1F !\"#$%&'()*+,-./09:;<=>?@AZ[\\]^_`az{|}~%7F%C2%80%C2%81%C3%89%C3%A9"
550 FAIL <area>: Setting <a:/>.hash = '\0\ 1  
551 \r\1f !"#$%&'()*+,-./09:;<=>?@AZ[\]^_`az{|}~\7f\80\81Éé' Simple percent-encoding; nuls, tabs, and newlines are removed assert_equals: expected "a:/#%01%1F !\"#$%&'()*+,-./09:;<=>?@AZ[\\]^_`az{|}~%7F%C2%80%C2%81%C3%89%C3%A9" but got "a:/#%00%01%1F !\"#$%&'()*+,-./09:;<=>?@AZ[\\]^_`az{|}~%7F%C2%80%C2%81%C3%89%C3%A9"
552 PASS URL: Setting <http://example.net>.hash = '%c3%89té' Bytes already percent-encoded are left as-is 
553 PASS <a>: Setting <http://example.net>.hash = '%c3%89té' Bytes already percent-encoded are left as-is 
554 PASS <area>: Setting <http://example.net>.hash = '%c3%89té' Bytes already percent-encoded are left as-is 
555 PASS URL: Setting <javascript:alert(1)>.hash = 'castle' 
556 PASS <a>: Setting <javascript:alert(1)>.hash = 'castle' 
557 PASS <area>: Setting <javascript:alert(1)>.hash = 'castle' 
558