URL test results
Test
Input
Base
User Agents with differences
0
"http://example\t.\norg"
http://example.org/foo/bar
addressable ie nodejs safari
1
"http://user:pass@foo:21/bar;par?b#c"
http://example.org/foo/bar
addressable ie opera safari
2
"http:foo.com"
http://example.org/foo/bar
addressable ie
3
"\t :foo.com \n"
http://example.org/foo/bar
addressable ie
4
" foo.com "
http://example.org/foo/bar
addressable ie
5
"a:\t foo.com"
http://example.org/foo/bar
testdata addressable chrome firefox ie nodejs opera rust safari
6
"http://f:21/ b ? d # e "
http://example.org/foo/bar
testdata addressable chrome firefox ie nodejs opera rust safari
7
"http://f:/c"
http://example.org/foo/bar
ie
8
"http://f:0/c"
http://example.org/foo/bar
addressable opera
9
"http://f:00000000000000/c"
http://example.org/foo/bar
addressable nodejs opera safari
10
"http://f:00000000000000000000080/c"
http://example.org/foo/bar
addressable ie nodejs safari
11
"http://f:b/c"
http://example.org/foo/bar
addressable chrome firefox ie nodejs opera
12
"http://f: /c"
http://example.org/foo/bar
addressable chrome firefox ie nodejs opera
13
"http://f:\n/c"
http://example.org/foo/bar
addressable ie nodejs safari
14
"http://f:fifty-two/c"
http://example.org/foo/bar
addressable chrome firefox ie nodejs opera
15
"http://f:999999/c"
http://example.org/foo/bar
testdata addressable chrome firefox ie nodejs opera rust safari
16
"http://f: 21 / b ? d # e "
http://example.org/foo/bar
testdata chrome firefox ie nodejs opera rust safari
17
""
http://example.org/foo/bar
ie
18
" \t"
http://example.org/foo/bar
addressable ie
19
":foo.com/"
http://example.org/foo/bar
addressable ie
20
":foo.com\\"
http://example.org/foo/bar
addressable firefox ie opera
21
":"
http://example.org/foo/bar
addressable ie
22
":a"
http://example.org/foo/bar
addressable ie
23
":/"
http://example.org/foo/bar
addressable ie
24
":\\"
http://example.org/foo/bar
addressable firefox ie opera
25
":#"
http://example.org/foo/bar
addressable ie nodejs rust
26
"?"
http://example.org/foo/bar
ie nodejs rust
27
"/"
http://example.org/foo/bar
ie
28
":23"
http://example.org/foo/bar
addressable ie
29
"/:23"
http://example.org/foo/bar
ie
30
"::"
http://example.org/foo/bar
addressable ie
31
"::23"
http://example.org/foo/bar
addressable ie
32
"foo://"
http://example.org/foo/bar
testdata chrome ie opera safari
33
"http://a:b@c:29/d"
http://example.org/foo/bar
addressable ie opera safari
34
"http::@c:29"
http://example.org/foo/bar
addressable firefox ie
35
"http://&a:foo(b]c@d:2/"
http://example.org/foo/bar
testdata addressable chrome firefox ie nodejs opera rust safari
36
"http://::@c@d:2"
http://example.org/foo/bar
testdata addressable chrome firefox ie nodejs opera rust safari
37
"http://foo.com:b@d/"
http://example.org/foo/bar
testdata addressable chrome firefox ie nodejs opera rust safari
38
"http://foo.com/\\@"
http://example.org/foo/bar
addressable firefox ie opera
39
"http:\\\\foo.com\\"
http://example.org/foo/bar
addressable firefox ie opera
40
"http:\\\\a\\b:c\\d@foo.com\\"
http://example.org/foo/bar
addressable firefox ie opera
41
"foo:/"
http://example.org/foo/bar
firefox opera rust
42
"foo:/bar.com/"
http://example.org/foo/bar
firefox opera rust
43
"foo://///////"
http://example.org/foo/bar
testdata addressable chrome ie nodejs opera safari
44
"foo://///////bar.com/"
http://example.org/foo/bar
testdata addressable chrome ie nodejs opera safari
45
"foo:////://///"
http://example.org/foo/bar
testdata addressable chrome ie nodejs opera safari
46
"c:/foo"
http://example.org/foo/bar
firefox ie opera rust
47
"//foo/bar"
http://example.org/foo/bar
ie
48
"http://foo/path;a??e#f#g"
http://example.org/foo/bar
ie
49
"http://foo/abcd?efgh?ijkl"
http://example.org/foo/bar
ie
50
"http://foo/abcd#foo?bar"
http://example.org/foo/bar
ie
51
"[61:24:74]:98"
http://example.org/foo/bar
addressable firefox ie
52
"http:[61:27]/:foo"
http://example.org/foo/bar
addressable firefox ie
53
"http://[1::2]:3:4"
http://example.org/foo/bar
testdata addressable chrome firefox ie nodejs opera rust safari
54
"http://2001::1"
http://example.org/foo/bar
testdata addressable chrome firefox ie nodejs opera rust safari
55
"http://2001::1]"
http://example.org/foo/bar
testdata addressable chrome firefox ie nodejs opera rust safari
56
"http://2001::1]:80"
http://example.org/foo/bar
testdata addressable chrome firefox ie nodejs opera rust safari
57
"http://[2001::1]"
http://example.org/foo/bar
addressable firefox ie nodejs
58
"http://[2001::1]:80"
http://example.org/foo/bar
addressable firefox ie nodejs
59
"http:/example.com/"
http://example.org/foo/bar
addressable ie safari
60
"ftp:/example.com/"
http://example.org/foo/bar
addressable ie opera
61
"https:/example.com/"
http://example.org/foo/bar
addressable ie opera
62
"madeupscheme:/example.com/"
http://example.org/foo/bar
firefox opera rust
63
"file:/example.com/"
http://example.org/foo/bar
addressable ie nodejs opera
64
"ftps:/example.com/"
http://example.org/foo/bar
firefox opera rust
65
"gopher:/example.com/"
http://example.org/foo/bar
addressable firefox ie opera
66
"ws:/example.com/"
http://example.org/foo/bar
addressable ie nodejs opera
67
"wss:/example.com/"
http://example.org/foo/bar
addressable ie nodejs opera
68
"data:/example.com/"
http://example.org/foo/bar
firefox opera rust
69
"javascript:/example.com/"
http://example.org/foo/bar
firefox opera rust
70
"mailto:/example.com/"
http://example.org/foo/bar
firefox opera rust
71
"http:example.com/"
http://example.org/foo/bar
addressable ie
72
"ftp:example.com/"
http://example.org/foo/bar
addressable ie opera
73
"https:example.com/"
http://example.org/foo/bar
addressable ie opera
74
"madeupscheme:example.com/"
http://example.org/foo/bar
firefox nodejs rust
75
"ftps:example.com/"
http://example.org/foo/bar
firefox nodejs rust
76
"gopher:example.com/"
http://example.org/foo/bar
addressable firefox ie opera
77
"ws:example.com/"
http://example.org/foo/bar
addressable ie nodejs opera
78
"wss:example.com/"
http://example.org/foo/bar
addressable ie nodejs opera
79
"data:example.com/"
http://example.org/foo/bar
firefox nodejs rust
80
"javascript:example.com/"
http://example.org/foo/bar
firefox rust
81
"mailto:example.com/"
http://example.org/foo/bar
firefox nodejs rust
82
"/a/b/c"
http://example.org/foo/bar
ie
83
"/a/ /c"
http://example.org/foo/bar
addressable ie
84
"/a%2fc"
http://example.org/foo/bar
ie
85
"/a/%2f/c"
http://example.org/foo/bar
ie
86
"data:text/html,test#test"
http://example.org/foo/bar
firefox nodejs opera rust
87
"file:c:\\foo\\bar.html"
file:///tmp/mock/path
testdata addressable chrome firefox ie nodejs opera rust safari
88
" File:c|////foo\\bar.html"
file:///tmp/mock/path
testdata addressable chrome firefox ie nodejs opera rust safari
89
"C|/foo/bar"
file:///tmp/mock/path
testdata addressable chrome firefox ie nodejs opera rust safari
90
"/C|\\foo\\bar"
file:///tmp/mock/path
testdata addressable chrome firefox ie nodejs opera rust safari
91
"//C|/foo/bar"
file:///tmp/mock/path
testdata addressable chrome firefox ie nodejs opera rust safari
92
"//server/file"
file:///tmp/mock/path
firefox ie
93
"\\\\server\\file"
file:///tmp/mock/path
addressable firefox opera
94
"/\\server/file"
file:///tmp/mock/path
addressable firefox ie opera
95
"file:///foo/bar.txt"
file:///tmp/mock/path
96
"file:///home/me"
file:///tmp/mock/path
97
"//"
file:///tmp/mock/path
addressable ie nodejs
98
"///"
file:///tmp/mock/path
ie
99
"///test"
file:///tmp/mock/path
ie
100
"file://test"
file:///tmp/mock/path
addressable firefox
101
"file://localhost"
file:///tmp/mock/path
addressable firefox ie safari
102
"file://localhost/"
file:///tmp/mock/path
firefox ie safari
103
"file://localhost/test"
file:///tmp/mock/path
firefox ie safari
104
"test"
file:///tmp/mock/path
ie
105
"file:test"
file:///tmp/mock/path
addressable ie opera
106
"http://example.com/././foo"
about:blank
ie nodejs
107
"http://example.com/./.foo"
about:blank
ie nodejs
108
"http://example.com/foo/."
about:blank
ie nodejs
109
"http://example.com/foo/./"
about:blank
ie nodejs
110
"http://example.com/foo/bar/.."
about:blank
ie nodejs
111
"http://example.com/foo/bar/../"
about:blank
ie nodejs
112
"http://example.com/foo/..bar"
about:blank
ie
113
"http://example.com/foo/bar/../ton"
about:blank
ie nodejs
114
"http://example.com/foo/bar/../ton/../../a"
about:blank
ie nodejs
115
"http://example.com/foo/../../.."
about:blank
ie nodejs
116
"http://example.com/foo/../../../ton"
about:blank
ie nodejs
117
"http://example.com/foo/%2e"
about:blank
addressable firefox ie nodejs safari
118
"http://example.com/foo/%2e%2"
about:blank
chrome ie
119
"http://example.com/foo/%2e./%2e%2e/.%2e/%2e.bar"
about:blank
testdata addressable chrome firefox ie nodejs opera rust safari
120
"http://example.com////../.."
about:blank
ie nodejs
121
"http://example.com/foo/bar//../.."
about:blank
ie nodejs
122
"http://example.com/foo/bar//.."
about:blank
ie nodejs
123
"http://example.com/foo"
about:blank
ie
124
"http://example.com/%20foo"
about:blank
ie
125
"http://example.com/foo%"
about:blank
ie
126
"http://example.com/foo%2"
about:blank
ie
127
"http://example.com/foo%2zbar"
about:blank
ie
128
"http://example.com/foo%2©zbar"
about:blank
addressable ie nodejs
129
"http://example.com/foo%41%7a"
about:blank
chrome ie
130
"http://example.com/foo\t\u0091%91"
about:blank
addressable ie nodejs
131
"http://example.com/foo%00%51"
about:blank
chrome ie
132
"http://example.com/(%28:%3A%29)"
about:blank
ie
133
"http://example.com/%3A%3a%3C%3c"
about:blank
ie
134
"http://example.com/foo\tbar"
about:blank
addressable ie nodejs
135
"http://example.com\\\\foo\\\\bar"
about:blank
addressable firefox ie opera
136
"http://example.com/%7Ffp3%3Eju%3Dduvgw%3Dd"
about:blank
ie
137
"http://example.com/@asdf%40"
about:blank
ie
138
"http://example.com/你好你好"
about:blank
addressable ie nodejs
139
"http://example.com/‥/foo"
about:blank
addressable ie nodejs
140
"http://example.com//foo"
about:blank
addressable ie nodejs
141
"http://example.com//foo//bar"
about:blank
addressable ie nodejs
142
"http://www.google.com/foo?bar=baz#"
about:blank
ie nodejs rust
143
"http://www.google.com/foo?bar=baz# »"
about:blank
testdata addressable chrome firefox ie nodejs opera rust safari
144
"http://[www.google.com]/"
about:blank
testdata addressable chrome firefox ie nodejs opera rust safari
145
"http://www.google.com"
about:blank
addressable ie
146
"http://192.0x00A80001"
about:blank
addressable chrome ie
147
"http://www/foo%2Ehtml"
about:blank
chrome ie
148
"http://www/foo/%2E/html"
about:blank
addressable ie nodejs safari
149
"http://user:pass@/"
about:blank
testdata addressable chrome firefox ie nodejs opera rust safari
150
"http://%25DOMAIN:foobar@foodomain.com/"
about:blank
testdata addressable chrome firefox ie nodejs opera rust safari
151
"http:\\\\www.google.com\\foo"
about:blank
addressable firefox ie opera
152
"http://foo:80/"
about:blank
addressable ie nodejs
153
"http://foo:81/"
about:blank
154
"httpa://foo:80/"
about:blank
testdata addressable chrome ie nodejs opera safari
155
"http://foo:-80/"
about:blank
addressable chrome firefox ie nodejs opera
156
"https://foo:443/"
about:blank
addressable ie nodejs opera
157
"https://foo:80/"
about:blank
158
"ftp://foo:21/"
about:blank
addressable ie nodejs opera
159
"ftp://foo:80/"
about:blank
160
"gopher://foo:70/"
about:blank
addressable firefox ie nodejs opera
161
"gopher://foo:443/"
about:blank
firefox
162
"ws://foo:80/"
about:blank
addressable ie nodejs
163
"ws://foo:81/"
about:blank
164
"ws://foo:443/"
about:blank
165
"ws://foo:815/"
about:blank
166
"wss://foo:80/"
about:blank
167
"wss://foo:81/"
about:blank
168
"wss://foo:443/"
about:blank
addressable ie nodejs
169
"wss://foo:815/"
about:blank
170
"http:/example.com/"
about:blank
addressable ie opera
171
"ftp:/example.com/"
about:blank
addressable ie opera
172
"https:/example.com/"
about:blank
addressable ie opera
173
"madeupscheme:/example.com/"
about:blank
firefox opera rust
174
"file:/example.com/"
about:blank
addressable nodejs opera
175
"ftps:/example.com/"
about:blank
firefox opera rust
176
"gopher:/example.com/"
about:blank
addressable firefox ie opera
177
"ws:/example.com/"
about:blank
addressable ie nodejs opera
178
"wss:/example.com/"
about:blank
addressable ie nodejs opera
179
"data:/example.com/"
about:blank
firefox opera rust
180
"javascript:/example.com/"
about:blank
firefox opera rust
181
"mailto:/example.com/"
about:blank
firefox opera rust
182
"http:example.com/"
about:blank
addressable ie opera
183
"ftp:example.com/"
about:blank
addressable ie opera
184
"https:example.com/"
about:blank
addressable ie opera
185
"madeupscheme:example.com/"
about:blank
firefox nodejs rust
186
"ftps:example.com/"
about:blank
firefox nodejs rust
187
"gopher:example.com/"
about:blank
addressable firefox ie opera
188
"ws:example.com/"
about:blank
addressable ie nodejs opera
189
"wss:example.com/"
about:blank
addressable ie nodejs opera
190
"data:example.com/"
about:blank
firefox nodejs rust
191
"javascript:example.com/"
about:blank
firefox rust
192
"mailto:example.com/"
about:blank
firefox nodejs rust
193
"http:@www.example.com"
about:blank
addressable ie opera
194
"http:/@www.example.com"
about:blank
addressable ie opera
195
"http://@www.example.com"
about:blank
addressable ie
196
"http:a:b@www.example.com"
about:blank
addressable ie opera safari
197
"http:/a:b@www.example.com"
about:blank
addressable ie opera safari
198
"http://a:b@www.example.com"
about:blank
addressable ie opera safari
199
"http://@pple.com"
about:blank
addressable ie
200
"http::b@www.example.com"
about:blank
testdata addressable chrome firefox ie nodejs opera rust
201
"http:/:b@www.example.com"
about:blank
testdata addressable chrome firefox ie nodejs opera rust
202
"http://:b@www.example.com"
about:blank
testdata addressable chrome firefox ie nodejs opera rust
203
"http:/:@/www.example.com"
about:blank
testdata addressable chrome firefox ie nodejs opera rust safari
204
"http://user@/www.example.com"
about:blank
testdata addressable chrome firefox ie nodejs opera rust safari
205
"http:@/www.example.com"
about:blank
testdata addressable chrome firefox ie nodejs opera rust safari
206
"http:/@/www.example.com"
about:blank
testdata addressable chrome firefox ie nodejs opera rust safari
207
"http://@/www.example.com"
about:blank
testdata addressable chrome firefox nodejs opera rust safari
208
"https:@/www.example.com"
about:blank
testdata addressable chrome firefox ie nodejs opera rust safari
209
"http:a:b@/www.example.com"
about:blank
testdata addressable chrome firefox ie nodejs opera rust safari
210
"http:/a:b@/www.example.com"
about:blank
testdata addressable chrome firefox ie nodejs opera rust safari
211
"http://a:b@/www.example.com"
about:blank
testdata addressable chrome firefox ie nodejs opera rust safari
212
"http::@/www.example.com"
about:blank
testdata addressable chrome firefox ie nodejs opera rust safari
213
"http:a:@www.example.com"
about:blank
testdata addressable chrome firefox ie nodejs opera rust safari
214
"http:/a:@www.example.com"
about:blank
testdata addressable chrome firefox ie nodejs opera rust safari
215
"http://a:@www.example.com"
about:blank
testdata addressable chrome firefox ie nodejs opera rust safari
216
"http://www.@pple.com"
about:blank
testdata addressable chrome firefox ie nodejs opera rust
217
"http:@:www.example.com"
about:blank
testdata addressable chrome firefox ie nodejs opera rust safari
218
"http:/@:www.example.com"
about:blank
testdata addressable chrome firefox ie nodejs opera rust safari
219
"http://@:www.example.com"
about:blank
testdata chrome firefox ie nodejs opera rust safari
220
"http://:@www.example.com"
about:blank
testdata addressable chrome firefox ie nodejs opera rust safari
221
"/"
http://www.example.com/test
ie
222
"/test.txt"
http://www.example.com/test
ie
223
"."
http://www.example.com/test
ie
224
".."
http://www.example.com/test
ie
225
"test.txt"
http://www.example.com/test
ie
226
"./test.txt"
http://www.example.com/test
ie
227
"../test.txt"
http://www.example.com/test
ie
228
"../aaa/test.txt"
http://www.example.com/test
ie
229
"../../test.txt"
http://www.example.com/test
ie
230
"中/test.txt"
http://www.example.com/test
addressable ie nodejs
231
"http://www.example2.com"
http://www.example.com/test
addressable ie
232
"//www.example2.com"
http://www.example.com/test
addressable ie
233
"http://ExAmPlE.CoM"
http://other.com/
addressable ie
234
"http://example example.com"
http://other.com/
testdata addressable chrome ie nodejs opera rust safari
235
"http://Goo%20 goo%7C|.com"
http://other.com/
testdata addressable chrome ie nodejs opera rust safari
236
"http://GOO goo.com"
http://other.com/
testdata addressable chrome firefox ie nodejs opera rust safari
237
"http://GOOgoo.com"
http://other.com/
addressable ie nodejs opera rust
238
"http://www.foo。bar.com"
http://other.com/
addressable ie rust
239
"http://\uFDD0zyx.com"
http://other.com/
testdata addressable chrome firefox ie nodejs opera rust safari
240
"http://%ef%b7%90zyx.com"
http://other.com/
testdata addressable chrome firefox ie nodejs opera rust safari
241
"http://Go.com"
http://other.com/
addressable ie nodejs rust
242
"http://%41.com"
http://other.com/
testdata addressable chrome firefox ie nodejs opera rust safari
243
"http://%ef%bc%85%ef%bc%94%ef%bc%91.com"
http://other.com/
testdata addressable chrome firefox ie nodejs opera rust safari
244
"http://%00.com"
http://other.com/
testdata addressable chrome firefox nodejs opera rust safari
245
"http://%ef%bc%85%ef%bc%90%ef%bc%90.com"
http://other.com/
testdata addressable chrome firefox ie nodejs opera rust safari
246
"http://你好你好"
http://other.com/
testdata addressable chrome firefox ie nodejs opera rust safari
247
"http://%zz%66%a.com"
http://other.com/
testdata addressable chrome firefox nodejs opera rust safari
248
"http://%25"
http://other.com/
testdata addressable chrome firefox ie nodejs opera rust safari
249
"http://hello%00"
http://other.com/
testdata addressable chrome firefox nodejs opera rust safari
250
"http://%30%78%63%30%2e%30%32%35%30.01"
http://other.com/
testdata addressable chrome firefox ie nodejs opera rust safari
251
"http://%30%78%63%30%2e%30%32%35%30.01%2e"
http://other.com/
testdata addressable chrome firefox ie nodejs opera rust safari
252
"http://192.168.0.257"
http://other.com/
addressable chrome ie
253
"http://%3g%78%63%30%2e%30%32%35%30%2E.01"
http://other.com/
testdata addressable chrome firefox nodejs opera rust safari
254
"http://192.168.0.1 hello"
http://other.com/
testdata addressable chrome ie nodejs opera rust safari
255
"http://0Xc0.0250.01"
http://other.com/
addressable chrome ie nodejs rust
256
"http://[google.com]"
http://other.com/
testdata addressable chrome firefox ie nodejs opera rust safari
Legend
No agreement, i.e., no single set of values matches the majority of implementations
Agreement doesn't match expected test results (and therefore, likely, WHATWG's URL Standard)
Agreement doesn't match addressable's results (and therefore, likely, IETF RFC 3986+3987)
Agreement matches test results and addressable