Changeset 211620 in webkit


Ignore:
Timestamp:
Feb 2, 2017 10:20:56 PM (7 years ago)
Author:
achristensen@apple.com
Message:

Update URL web platform tests
https://bugs.webkit.org/show_bug.cgi?id=167777

Reviewed by Ryosuke Niwa.

  • web-platform-tests/url/a-element-expected.txt:
  • web-platform-tests/url/a-element-origin-expected.txt:
  • web-platform-tests/url/a-element-origin-xhtml-expected.txt:
  • web-platform-tests/url/a-element-origin-xhtml.xhtml:
  • web-platform-tests/url/a-element-origin.html:
  • web-platform-tests/url/a-element-xhtml-expected.txt:
  • web-platform-tests/url/a-element-xhtml.xhtml:
  • web-platform-tests/url/a-element.html:
  • web-platform-tests/url/setters_tests.json:
  • web-platform-tests/url/url-constructor-expected.txt:
  • web-platform-tests/url/url-origin-expected.txt:
  • web-platform-tests/url/url-setters-expected.txt:
  • web-platform-tests/url/urlencoded-parser-expected.txt: Added.
  • web-platform-tests/url/urlencoded-parser.html: Added.
  • web-platform-tests/url/urlsearchparams-constructor-expected.txt:
  • web-platform-tests/url/urlsearchparams-constructor.html:
  • web-platform-tests/url/urlsearchparams-sort-expected.txt:
  • web-platform-tests/url/urlsearchparams-sort.html:
  • web-platform-tests/url/urltestdata.json:
Location:
trunk/LayoutTests/imported/w3c
Files:
2 added
18 edited

Legend:

Unmodified
Added
Removed
  • trunk/LayoutTests/imported/w3c/ChangeLog

    r211600 r211620  
     12017-02-02  Alex Christensen  <achristensen@webkit.org>
     2
     3        Update URL web platform tests
     4        https://bugs.webkit.org/show_bug.cgi?id=167777
     5
     6        Reviewed by Ryosuke Niwa.
     7
     8        * web-platform-tests/url/a-element-expected.txt:
     9        * web-platform-tests/url/a-element-origin-expected.txt:
     10        * web-platform-tests/url/a-element-origin-xhtml-expected.txt:
     11        * web-platform-tests/url/a-element-origin-xhtml.xhtml:
     12        * web-platform-tests/url/a-element-origin.html:
     13        * web-platform-tests/url/a-element-xhtml-expected.txt:
     14        * web-platform-tests/url/a-element-xhtml.xhtml:
     15        * web-platform-tests/url/a-element.html:
     16        * web-platform-tests/url/setters_tests.json:
     17        * web-platform-tests/url/url-constructor-expected.txt:
     18        * web-platform-tests/url/url-origin-expected.txt:
     19        * web-platform-tests/url/url-setters-expected.txt:
     20        * web-platform-tests/url/urlencoded-parser-expected.txt: Added.
     21        * web-platform-tests/url/urlencoded-parser.html: Added.
     22        * web-platform-tests/url/urlsearchparams-constructor-expected.txt:
     23        * web-platform-tests/url/urlsearchparams-constructor.html:
     24        * web-platform-tests/url/urlsearchparams-sort-expected.txt:
     25        * web-platform-tests/url/urlsearchparams-sort.html:
     26        * web-platform-tests/url/urltestdata.json:
     27
    1282017-02-02  Chris Dumez  <cdumez@apple.com>
    229
  • trunk/LayoutTests/imported/w3c/web-platform-tests/url/a-element-expected.txt

    r210823 r211620  
    4444PASS Parsing: <::> against <http://example.org/foo/bar>
    4545PASS Parsing: <::23> against <http://example.org/foo/bar>
    46 FAIL Parsing: <foo://> against <http://example.org/foo/bar> assert_equals: href expected "foo:///" but got "foo://"
     46PASS Parsing: <foo://> against <http://example.org/foo/bar>
    4747PASS Parsing: <http://a:b@c:29/d> against <http://example.org/foo/bar>
    4848PASS Parsing: <http::@c:29> against <http://example.org/foo/bar>
     
    262262PASS Parsing: <http://﷐zyx.com> against <http://other.com/>
    263263PASS Parsing: <http://%ef%b7%90zyx.com> against <http://other.com/>
     264PASS Parsing: <https://�> against <about:blank>
     265PASS Parsing: <https://%EF%BF%BD> against <about:blank>
    264266PASS Parsing: <http://Go.com> against <http://other.com/>
    265267PASS Parsing: <http://%41.com> against <http://other.com/>
     
    324326PASS Parsing: <javascript:/../> against <about:blank>
    325327PASS Parsing: <mailto:/../> against <about:blank>
    326 FAIL Parsing: <sc://ñ.test/> against <about:blank> assert_equals: href expected "sc://xn--ida.test/" but got "sc://%C3%B1.test/"
     328PASS Parsing: <sc://ñ.test/> against <about:blank>
     329PASS Parsing: <sc://!"$&'()*+,-.;<=>^_`{|}~/> against <about:blank>
     330FAIL Parsing: <sc://\0/> against <about:blank> assert_unreached: Expected URL to fail parsing Reached unreachable code
     331FAIL Parsing: <sc:// /> against <about:blank> assert_unreached: Expected URL to fail parsing Reached unreachable code
     332FAIL Parsing: <sc://%/> against <about:blank> assert_unreached: Expected URL to fail parsing Reached unreachable code
     333PASS Parsing: <sc://@/> against <about:blank>
     334PASS Parsing: <sc://te@s:t@/> against <about:blank>
     335PASS Parsing: <sc://:/> against <about:blank>
     336PASS Parsing: <sc://:12/> against <about:blank>
     337PASS Parsing: <sc://[/> against <about:blank>
     338FAIL Parsing: <sc://\/> against <about:blank> assert_unreached: Expected URL to fail parsing Reached unreachable code
     339FAIL Parsing: <sc://]/> against <about:blank> assert_unreached: Expected URL to fail parsing Reached unreachable code
     340PASS Parsing: <x> against <sc://ñ>
    327341PASS Parsing: <sc:\../> against <about:blank>
    328342PASS Parsing: <sc::a@example.net> against <about:blank>
     343PASS Parsing: <ftp://example.com%80/> against <about:blank>
     344PASS Parsing: <ftp://example.com%A0/> against <about:blank>
     345PASS Parsing: <https://example.com%80/> against <about:blank>
     346PASS Parsing: <https://example.com%A0/> against <about:blank>
     347PASS Parsing: <ftp://%e2%98%83> against <about:blank>
     348PASS Parsing: <https://%e2%98%83> against <about:blank>
    329349PASS Parsing: <http://127.0.0.1:10100/relative_import.html> against <about:blank>
    330350PASS Parsing: <http://facebook.com/?foo=%7B%22abc%22> against <about:blank>
     
    357377FAIL Parsing: <http://256.256.256.256> against <http://other.com/> assert_unreached: Expected URL to fail parsing Reached unreachable code
    358378PASS Parsing: <http://256.256.256.256.256> against <http://other.com/>
     379PASS Parsing: <file:///C%3A/> against <about:blank>
     380PASS Parsing: <file:///C%7C/> against <about:blank>
    359381PASS Parsing: <pix/submit.gif> against <file:///C:/Users/Domenic/Dropbox/GitHub/tmpvar/jsdom/test/level2/html/files/anchor.html>
    360382FAIL Parsing: <..> against <file:///C:/> assert_equals: href expected "file:///C:/" but got "file:///"
     
    366388PASS Parsing: <..> against <file:///1:/>
    367389PASS Parsing: <http://[1:0::]> against <http://example.net/>
     390FAIL Parsing: <http://?> against <about:blank> assert_unreached: Expected URL to fail parsing Reached unreachable code
     391FAIL Parsing: <http://#> against <about:blank> assert_unreached: Expected URL to fail parsing Reached unreachable code
     392PASS Parsing: <sc://ñ> against <about:blank>
     393PASS Parsing: <sc://ñ?x> against <about:blank>
     394PASS Parsing: <sc://ñ#x> against <about:blank>
     395PASS Parsing: <#x> against <sc://ñ>
     396PASS Parsing: <?x> against <sc://ñ>
     397PASS Parsing: <sc://?> against <about:blank>
     398PASS Parsing: <sc://#> against <about:blank>
     399FAIL Parsing: <///> against <sc://x/> assert_equals: href expected "sc:///" but got "///"
     400FAIL Parsing: <////> against <sc://x/> assert_equals: href expected "sc:////" but got "////"
     401FAIL Parsing: <////x/> against <sc://x/> assert_equals: href expected "sc:////x/" but got "sc://x/"
     402PASS Parsing: <tftp://foobar.com/someconfig;mode=netascii> against <about:blank>
     403PASS Parsing: <telnet://user:pass@foobar.com:23/> against <about:blank>
     404PASS Parsing: <ut2004://10.10.10.10:7777/Index.ut2> against <about:blank>
     405PASS Parsing: <redis://foo:bar@somehost:6379/0?baz=bam&qux=baz> against <about:blank>
     406PASS Parsing: <rsync://foo@host:911/sup> against <about:blank>
     407PASS Parsing: <git://github.com/foo/bar.git> against <about:blank>
     408PASS Parsing: <irc://myserver.com:6999/channel?passwd> against <about:blank>
     409PASS Parsing: <dns://fw.example.org:9999/foo.bar.org?type=TXT> against <about:blank>
     410PASS Parsing: <ldap://localhost:389/ou=People,o=JNDITutorial> against <about:blank>
     411PASS Parsing: <git+https://github.com/foo/bar> against <about:blank>
     412PASS Parsing: <urn:ietf:rfc:2648> against <about:blank>
     413PASS Parsing: <tag:joe@example.org,2001:foo/bar> against <about:blank>
    368414
  • trunk/LayoutTests/imported/w3c/web-platform-tests/url/a-element-origin-expected.txt

    r210823 r211620  
    246246FAIL Parsing origin: <mailto:/../> against <about:blank> assert_equals: origin expected "null" but got "mailto://"
    247247FAIL Parsing origin: <sc://ñ.test/> against <about:blank> assert_equals: origin expected "null" but got "sc://%c3%b1.test"
     248FAIL Parsing origin: <sc://!"$&'()*+,-.;<=>^_`{|}~/> against <about:blank> assert_equals: origin expected "null" but got "sc://%1f!\"$&'()*+,-.;<=>^_`{|}~"
     249FAIL Parsing origin: <x> against <sc://ñ> assert_equals: origin expected "null" but got "sc://%c3%b1"
    248250FAIL Parsing origin: <sc:\../> against <about:blank> assert_equals: origin expected "null" but got "sc://"
    249251FAIL Parsing origin: <sc::a@example.net> against <about:blank> assert_equals: origin expected "null" but got "sc://"
     252FAIL Parsing origin: <ftp://%e2%98%83> against <about:blank> assert_equals: origin expected "ftp://☃" but got "ftp://xn--n3h"
     253FAIL Parsing origin: <https://%e2%98%83> against <about:blank> assert_equals: origin expected "https://☃" but got "https://xn--n3h"
    250254PASS Parsing origin: <http://127.0.0.1:10100/relative_import.html> against <about:blank>
    251255PASS Parsing origin: <http://facebook.com/?foo=%7B%22abc%22> against <about:blank>
     
    274278PASS Parsing origin: <http://256.256.256.256.256> against <http://other.com/>
    275279PASS Parsing origin: <http://[1:0::]> against <http://example.net/>
     280FAIL Parsing origin: <sc://ñ> against <about:blank> assert_equals: origin expected "null" but got "sc://%c3%b1"
     281FAIL Parsing origin: <sc://ñ?x> against <about:blank> assert_equals: origin expected "null" but got "sc://%c3%b1"
     282FAIL Parsing origin: <sc://ñ#x> against <about:blank> assert_equals: origin expected "null" but got "sc://%c3%b1"
     283FAIL Parsing origin: <#x> against <sc://ñ> assert_equals: origin expected "null" but got "sc://%c3%b1"
     284FAIL Parsing origin: <?x> against <sc://ñ> assert_equals: origin expected "null" but got "sc://%c3%b1"
     285FAIL Parsing origin: <tftp://foobar.com/someconfig;mode=netascii> against <about:blank> assert_equals: origin expected "null" but got "tftp://foobar.com"
     286FAIL Parsing origin: <telnet://user:pass@foobar.com:23/> against <about:blank> assert_equals: origin expected "null" but got "telnet://foobar.com:23"
     287FAIL Parsing origin: <ut2004://10.10.10.10:7777/Index.ut2> against <about:blank> assert_equals: origin expected "null" but got "ut2004://10.10.10.10:7777"
     288FAIL Parsing origin: <redis://foo:bar@somehost:6379/0?baz=bam&qux=baz> against <about:blank> assert_equals: origin expected "null" but got "redis://somehost:6379"
     289FAIL Parsing origin: <rsync://foo@host:911/sup> against <about:blank> assert_equals: origin expected "null" but got "rsync://host:911"
     290FAIL Parsing origin: <git://github.com/foo/bar.git> against <about:blank> assert_equals: origin expected "null" but got "git://github.com"
     291FAIL Parsing origin: <irc://myserver.com:6999/channel?passwd> against <about:blank> assert_equals: origin expected "null" but got "irc://myserver.com:6999"
     292FAIL Parsing origin: <dns://fw.example.org:9999/foo.bar.org?type=TXT> against <about:blank> assert_equals: origin expected "null" but got "dns://fw.example.org:9999"
     293FAIL Parsing origin: <ldap://localhost:389/ou=People,o=JNDITutorial> against <about:blank> assert_equals: origin expected "null" but got "ldap://localhost:389"
     294FAIL Parsing origin: <git+https://github.com/foo/bar> against <about:blank> assert_equals: origin expected "null" but got "git+https://github.com"
     295FAIL Parsing origin: <urn:ietf:rfc:2648> against <about:blank> assert_equals: origin expected "null" but got "urn://"
     296FAIL Parsing origin: <tag:joe@example.org,2001:foo/bar> against <about:blank> assert_equals: origin expected "null" but got "tag://"
    276297
  • trunk/LayoutTests/imported/w3c/web-platform-tests/url/a-element-origin-xhtml-expected.txt

    r210823 r211620  
    246246FAIL Parsing origin: <mailto:/../> against <about:blank> assert_equals: origin expected "null" but got "mailto://"
    247247FAIL Parsing origin: <sc://ñ.test/> against <about:blank> assert_equals: origin expected "null" but got "sc://%c3%b1.test"
     248FAIL Parsing origin: <sc://!"$&'()*+,-.;<=>^_`{|}~/> against <about:blank> assert_equals: origin expected "null" but got "sc://%1f!\"$&'()*+,-.;<=>^_`{|}~"
     249FAIL Parsing origin: <x> against <sc://ñ> assert_equals: origin expected "null" but got "sc://%c3%b1"
    248250FAIL Parsing origin: <sc:\../> against <about:blank> assert_equals: origin expected "null" but got "sc://"
    249251FAIL Parsing origin: <sc::a@example.net> against <about:blank> assert_equals: origin expected "null" but got "sc://"
     252FAIL Parsing origin: <ftp://%e2%98%83> against <about:blank> assert_equals: origin expected "ftp://☃" but got "ftp://xn--n3h"
     253FAIL Parsing origin: <https://%e2%98%83> against <about:blank> assert_equals: origin expected "https://☃" but got "https://xn--n3h"
    250254PASS Parsing origin: <http://127.0.0.1:10100/relative_import.html> against <about:blank>
    251255PASS Parsing origin: <http://facebook.com/?foo=%7B%22abc%22> against <about:blank>
     
    274278PASS Parsing origin: <http://256.256.256.256.256> against <http://other.com/>
    275279PASS Parsing origin: <http://[1:0::]> against <http://example.net/>
     280FAIL Parsing origin: <sc://ñ> against <about:blank> assert_equals: origin expected "null" but got "sc://%c3%b1"
     281FAIL Parsing origin: <sc://ñ?x> against <about:blank> assert_equals: origin expected "null" but got "sc://%c3%b1"
     282FAIL Parsing origin: <sc://ñ#x> against <about:blank> assert_equals: origin expected "null" but got "sc://%c3%b1"
     283FAIL Parsing origin: <#x> against <sc://ñ> assert_equals: origin expected "null" but got "sc://%c3%b1"
     284FAIL Parsing origin: <?x> against <sc://ñ> assert_equals: origin expected "null" but got "sc://%c3%b1"
     285FAIL Parsing origin: <tftp://foobar.com/someconfig;mode=netascii> against <about:blank> assert_equals: origin expected "null" but got "tftp://foobar.com"
     286FAIL Parsing origin: <telnet://user:pass@foobar.com:23/> against <about:blank> assert_equals: origin expected "null" but got "telnet://foobar.com:23"
     287FAIL Parsing origin: <ut2004://10.10.10.10:7777/Index.ut2> against <about:blank> assert_equals: origin expected "null" but got "ut2004://10.10.10.10:7777"
     288FAIL Parsing origin: <redis://foo:bar@somehost:6379/0?baz=bam&qux=baz> against <about:blank> assert_equals: origin expected "null" but got "redis://somehost:6379"
     289FAIL Parsing origin: <rsync://foo@host:911/sup> against <about:blank> assert_equals: origin expected "null" but got "rsync://host:911"
     290FAIL Parsing origin: <git://github.com/foo/bar.git> against <about:blank> assert_equals: origin expected "null" but got "git://github.com"
     291FAIL Parsing origin: <irc://myserver.com:6999/channel?passwd> against <about:blank> assert_equals: origin expected "null" but got "irc://myserver.com:6999"
     292FAIL Parsing origin: <dns://fw.example.org:9999/foo.bar.org?type=TXT> against <about:blank> assert_equals: origin expected "null" but got "dns://fw.example.org:9999"
     293FAIL Parsing origin: <ldap://localhost:389/ou=People,o=JNDITutorial> against <about:blank> assert_equals: origin expected "null" but got "ldap://localhost:389"
     294FAIL Parsing origin: <git+https://github.com/foo/bar> against <about:blank> assert_equals: origin expected "null" but got "git+https://github.com"
     295FAIL Parsing origin: <urn:ietf:rfc:2648> against <about:blank> assert_equals: origin expected "null" but got "urn://"
     296FAIL Parsing origin: <tag:joe@example.org,2001:foo/bar> against <about:blank> assert_equals: origin expected "null" but got "tag://"
    276297
  • trunk/LayoutTests/imported/w3c/web-platform-tests/url/a-element-origin-xhtml.xhtml

    r210823 r211620  
    1313  </body>
    1414</html>
    15 <!--  Other dependencies: urltestdata.json -->
     15<!-- Other dependencies: urltestdata.json -->
  • trunk/LayoutTests/imported/w3c/web-platform-tests/url/a-element-origin.html

    r210823 r211620  
    66<div id=log></div>
    77<script src=a-element-origin.js></script>
    8 <!--  Other dependencies: urltestdata.json -->
     8<!-- Other dependencies: urltestdata.json -->
  • trunk/LayoutTests/imported/w3c/web-platform-tests/url/a-element-xhtml-expected.txt

    r210823 r211620  
    4444PASS Parsing: <::> against <http://example.org/foo/bar>
    4545PASS Parsing: <::23> against <http://example.org/foo/bar>
    46 FAIL Parsing: <foo://> against <http://example.org/foo/bar> assert_equals: href expected "foo:///" but got "foo://"
     46PASS Parsing: <foo://> against <http://example.org/foo/bar>
    4747PASS Parsing: <http://a:b@c:29/d> against <http://example.org/foo/bar>
    4848PASS Parsing: <http::@c:29> against <http://example.org/foo/bar>
     
    262262PASS Parsing: <http://﷐zyx.com> against <http://other.com/>
    263263PASS Parsing: <http://%ef%b7%90zyx.com> against <http://other.com/>
     264PASS Parsing: <https://�> against <about:blank>
     265PASS Parsing: <https://%EF%BF%BD> against <about:blank>
    264266PASS Parsing: <http://Go.com> against <http://other.com/>
    265267PASS Parsing: <http://%41.com> against <http://other.com/>
     
    324326PASS Parsing: <javascript:/../> against <about:blank>
    325327PASS Parsing: <mailto:/../> against <about:blank>
    326 FAIL Parsing: <sc://ñ.test/> against <about:blank> assert_equals: href expected "sc://xn--ida.test/" but got "sc://%C3%B1.test/"
     328PASS Parsing: <sc://ñ.test/> against <about:blank>
     329PASS Parsing: <sc://!"$&'()*+,-.;<=>^_`{|}~/> against <about:blank>
     330FAIL Parsing: <sc://\0/> against <about:blank> assert_unreached: Expected URL to fail parsing Reached unreachable code
     331FAIL Parsing: <sc:// /> against <about:blank> assert_unreached: Expected URL to fail parsing Reached unreachable code
     332FAIL Parsing: <sc://%/> against <about:blank> assert_unreached: Expected URL to fail parsing Reached unreachable code
     333PASS Parsing: <sc://@/> against <about:blank>
     334PASS Parsing: <sc://te@s:t@/> against <about:blank>
     335PASS Parsing: <sc://:/> against <about:blank>
     336PASS Parsing: <sc://:12/> against <about:blank>
     337PASS Parsing: <sc://[/> against <about:blank>
     338FAIL Parsing: <sc://\/> against <about:blank> assert_unreached: Expected URL to fail parsing Reached unreachable code
     339FAIL Parsing: <sc://]/> against <about:blank> assert_unreached: Expected URL to fail parsing Reached unreachable code
     340PASS Parsing: <x> against <sc://ñ>
    327341PASS Parsing: <sc:\../> against <about:blank>
    328342PASS Parsing: <sc::a@example.net> against <about:blank>
     343PASS Parsing: <ftp://example.com%80/> against <about:blank>
     344PASS Parsing: <ftp://example.com%A0/> against <about:blank>
     345PASS Parsing: <https://example.com%80/> against <about:blank>
     346PASS Parsing: <https://example.com%A0/> against <about:blank>
     347PASS Parsing: <ftp://%e2%98%83> against <about:blank>
     348PASS Parsing: <https://%e2%98%83> against <about:blank>
    329349PASS Parsing: <http://127.0.0.1:10100/relative_import.html> against <about:blank>
    330350PASS Parsing: <http://facebook.com/?foo=%7B%22abc%22> against <about:blank>
     
    357377FAIL Parsing: <http://256.256.256.256> against <http://other.com/> assert_unreached: Expected URL to fail parsing Reached unreachable code
    358378PASS Parsing: <http://256.256.256.256.256> against <http://other.com/>
     379PASS Parsing: <file:///C%3A/> against <about:blank>
     380PASS Parsing: <file:///C%7C/> against <about:blank>
    359381PASS Parsing: <pix/submit.gif> against <file:///C:/Users/Domenic/Dropbox/GitHub/tmpvar/jsdom/test/level2/html/files/anchor.html>
    360382FAIL Parsing: <..> against <file:///C:/> assert_equals: href expected "file:///C:/" but got "file:///"
     
    366388PASS Parsing: <..> against <file:///1:/>
    367389PASS Parsing: <http://[1:0::]> against <http://example.net/>
     390FAIL Parsing: <http://?> against <about:blank> assert_unreached: Expected URL to fail parsing Reached unreachable code
     391FAIL Parsing: <http://#> against <about:blank> assert_unreached: Expected URL to fail parsing Reached unreachable code
     392PASS Parsing: <sc://ñ> against <about:blank>
     393PASS Parsing: <sc://ñ?x> against <about:blank>
     394PASS Parsing: <sc://ñ#x> against <about:blank>
     395PASS Parsing: <#x> against <sc://ñ>
     396PASS Parsing: <?x> against <sc://ñ>
     397PASS Parsing: <sc://?> against <about:blank>
     398PASS Parsing: <sc://#> against <about:blank>
     399FAIL Parsing: <///> against <sc://x/> assert_equals: href expected "sc:///" but got "///"
     400FAIL Parsing: <////> against <sc://x/> assert_equals: href expected "sc:////" but got "////"
     401FAIL Parsing: <////x/> against <sc://x/> assert_equals: href expected "sc:////x/" but got "sc://x/"
     402PASS Parsing: <tftp://foobar.com/someconfig;mode=netascii> against <about:blank>
     403PASS Parsing: <telnet://user:pass@foobar.com:23/> against <about:blank>
     404PASS Parsing: <ut2004://10.10.10.10:7777/Index.ut2> against <about:blank>
     405PASS Parsing: <redis://foo:bar@somehost:6379/0?baz=bam&qux=baz> against <about:blank>
     406PASS Parsing: <rsync://foo@host:911/sup> against <about:blank>
     407PASS Parsing: <git://github.com/foo/bar.git> against <about:blank>
     408PASS Parsing: <irc://myserver.com:6999/channel?passwd> against <about:blank>
     409PASS Parsing: <dns://fw.example.org:9999/foo.bar.org?type=TXT> against <about:blank>
     410PASS Parsing: <ldap://localhost:389/ou=People,o=JNDITutorial> against <about:blank>
     411PASS Parsing: <git+https://github.com/foo/bar> against <about:blank>
     412PASS Parsing: <urn:ietf:rfc:2648> against <about:blank>
     413PASS Parsing: <tag:joe@example.org,2001:foo/bar> against <about:blank>
    368414
  • trunk/LayoutTests/imported/w3c/web-platform-tests/url/a-element-xhtml.xhtml

    r210823 r211620  
    1313  </body>
    1414</html>
    15 <!--  Other dependencies: urltestdata.json -->
     15<!-- Other dependencies: urltestdata.json -->
  • trunk/LayoutTests/imported/w3c/web-platform-tests/url/a-element.html

    r210823 r211620  
    66<div id=log></div>
    77<script src=a-element.js></script>
    8 <!--  Other dependencies: urltestdata.json -->
     8<!-- Other dependencies: urltestdata.json -->
  • trunk/LayoutTests/imported/w3c/web-platform-tests/url/setters_tests.json

    r210823 r211620  
    2828            "new_value": "",
    2929            "expected": {
    30                 "href": "a://example.net/",
     30                "href": "a://example.net",
    3131                "protocol": "a:"
    3232            }
     
    3636            "new_value": "b",
    3737            "expected": {
    38                 "href": "b://example.net/",
     38                "href": "b://example.net",
    3939                "protocol": "b:"
    4040            }
     
    4545            "new_value": "B",
    4646            "expected": {
    47                 "href": "b://example.net/",
     47                "href": "b://example.net",
    4848                "protocol": "b:"
    4949            }
     
    5454            "new_value": "é",
    5555            "expected": {
    56                 "href": "a://example.net/",
     56                "href": "a://example.net",
    5757                "protocol": "a:"
    5858            }
     
    6363            "new_value": "0b",
    6464            "expected": {
    65                 "href": "a://example.net/",
     65                "href": "a://example.net",
    6666                "protocol": "a:"
    6767            }
     
    7272            "new_value": "+b",
    7373            "expected": {
    74                 "href": "a://example.net/",
     74                "href": "a://example.net",
    7575                "protocol": "a:"
    7676            }
     
    8080            "new_value": "bC0+-.",
    8181            "expected": {
    82                 "href": "bc0+-.://example.net/",
     82                "href": "bc0+-.://example.net",
    8383                "protocol": "bc0+-.:"
    8484            }
     
    8989            "new_value": "b,c",
    9090            "expected": {
    91                 "href": "a://example.net/",
     91                "href": "a://example.net",
    9292                "protocol": "a:"
    9393            }
     
    9898            "new_value": "bé",
    9999            "expected": {
    100                 "href": "a://example.net/",
     100                "href": "a://example.net",
    101101                "protocol": "a:"
    102102            }
     
    141141            "new_value": "http",
    142142            "expected": {
    143                 "href": "ssh://me@example.net/",
     143                "href": "ssh://me@example.net",
    144144                "protocol": "ssh:"
    145145            }
     
    149149            "new_value": "gopher",
    150150            "expected": {
    151                 "href": "ssh://me@example.net/",
     151                "href": "ssh://me@example.net",
    152152                "protocol": "ssh:"
    153153            }
     
    157157            "new_value": "file",
    158158            "expected": {
    159                 "href": "ssh://me@example.net/",
     159                "href": "ssh://me@example.net",
    160160                "protocol": "ssh:"
    161161            }
     
    347347    ],
    348348    "host": [
     349        {
     350            "comment": "Non-special scheme",
     351            "href": "sc://x/",
     352            "new_value": "\u0000",
     353            "expected": {
     354                "href": "sc://x/",
     355                "host": "x",
     356                "hostname": "x"
     357            }
     358        },
     359        {
     360            "href": "sc://x/",
     361            "new_value": "\u0009",
     362            "expected": {
     363                "href": "sc:///",
     364                "host": "",
     365                "hostname": ""
     366            }
     367        },
     368        {
     369            "href": "sc://x/",
     370            "new_value": "\u000A",
     371            "expected": {
     372                "href": "sc:///",
     373                "host": "",
     374                "hostname": ""
     375            }
     376        },
     377        {
     378            "href": "sc://x/",
     379            "new_value": "\u000D",
     380            "expected": {
     381                "href": "sc:///",
     382                "host": "",
     383                "hostname": ""
     384            }
     385        },
     386        {
     387            "href": "sc://x/",
     388            "new_value": " ",
     389            "expected": {
     390                "href": "sc://x/",
     391                "host": "x",
     392                "hostname": "x"
     393            }
     394        },
     395        {
     396            "href": "sc://x/",
     397            "new_value": "#",
     398            "expected": {
     399                "href": "sc:///",
     400                "host": "",
     401                "hostname": ""
     402            }
     403        },
     404        {
     405            "href": "sc://x/",
     406            "new_value": "/",
     407            "expected": {
     408                "href": "sc:///",
     409                "host": "",
     410                "hostname": ""
     411            }
     412        },
     413        {
     414            "href": "sc://x/",
     415            "new_value": "?",
     416            "expected": {
     417                "href": "sc:///",
     418                "host": "",
     419                "hostname": ""
     420            }
     421        },
     422        {
     423            "href": "sc://x/",
     424            "new_value": "@",
     425            "expected": {
     426                "href": "sc://x/",
     427                "host": "x",
     428                "hostname": "x"
     429            }
     430        },
    349431        {
    350432            "comment": "Cannot-be-a-base means no host",
     
    568650        },
    569651        {
    570             "comment": "\\ is not a delimiter for non-special schemes, and it’s invalid in a domain",
     652            "comment": "\\ is not a delimiter for non-special schemes, but still forbidden in hosts",
    571653            "href": "view-source+http://example.net/path",
    572654            "new_value": "example.com\\stuff",
     
    682764    "hostname": [
    683765        {
     766            "comment": "Non-special scheme",
     767            "href": "sc://x/",
     768            "new_value": "\u0000",
     769            "expected": {
     770                "href": "sc://x/",
     771                "host": "x",
     772                "hostname": "x"
     773            }
     774        },
     775        {
     776            "href": "sc://x/",
     777            "new_value": "\u0009",
     778            "expected": {
     779                "href": "sc:///",
     780                "host": "",
     781                "hostname": ""
     782            }
     783        },
     784        {
     785            "href": "sc://x/",
     786            "new_value": "\u000A",
     787            "expected": {
     788                "href": "sc:///",
     789                "host": "",
     790                "hostname": ""
     791            }
     792        },
     793        {
     794            "href": "sc://x/",
     795            "new_value": "\u000D",
     796            "expected": {
     797                "href": "sc:///",
     798                "host": "",
     799                "hostname": ""
     800            }
     801        },
     802        {
     803            "href": "sc://x/",
     804            "new_value": " ",
     805            "expected": {
     806                "href": "sc://x/",
     807                "host": "x",
     808                "hostname": "x"
     809            }
     810        },
     811        {
     812            "href": "sc://x/",
     813            "new_value": "#",
     814            "expected": {
     815                "href": "sc:///",
     816                "host": "",
     817                "hostname": ""
     818            }
     819        },
     820        {
     821            "href": "sc://x/",
     822            "new_value": "/",
     823            "expected": {
     824                "href": "sc:///",
     825                "host": "",
     826                "hostname": ""
     827            }
     828        },
     829        {
     830            "href": "sc://x/",
     831            "new_value": "?",
     832            "expected": {
     833                "href": "sc:///",
     834                "host": "",
     835                "hostname": ""
     836            }
     837        },
     838        {
     839            "href": "sc://x/",
     840            "new_value": "@",
     841            "expected": {
     842                "href": "sc://x/",
     843                "host": "x",
     844                "hostname": "x"
     845            }
     846        },
     847        {
    684848            "comment": "Cannot-be-a-base means no host",
    685849            "href": "mailto:me@example.net",
     
    825989        },
    826990        {
    827             "comment": "\\ is not a delimiter for non-special schemes, and it’s invalid in a domain",
     991            "comment": "\\ is not a delimiter for non-special schemes, but still forbidden in hosts",
    828992            "href": "view-source+http://example.net/path",
    829993            "new_value": "example.com\\stuff",
     
    11151279                "pathname": "/%3F"
    11161280            }
     1281        },
     1282        {
     1283            "comment": "# needs to be encoded",
     1284            "href": "http://example.net",
     1285            "new_value": "#",
     1286            "expected": {
     1287                "href": "http://example.net/%23",
     1288                "pathname": "/%23"
     1289            }
     1290        },
     1291        {
     1292            "comment": "? needs to be encoded, non-special scheme",
     1293            "href": "sc://example.net",
     1294            "new_value": "?",
     1295            "expected": {
     1296                "href": "sc://example.net/%3F",
     1297                "pathname": "/%3F"
     1298            }
     1299        },
     1300        {
     1301            "comment": "# needs to be encoded, non-special scheme",
     1302            "href": "sc://example.net",
     1303            "new_value": "#",
     1304            "expected": {
     1305                "href": "sc://example.net/%23",
     1306                "pathname": "/%23"
     1307            }
    11171308        }
    11181309    ],
  • trunk/LayoutTests/imported/w3c/web-platform-tests/url/url-constructor-expected.txt

    r210823 r211620  
    4848PASS Parsing: <::> against <http://example.org/foo/bar>
    4949PASS Parsing: <::23> against <http://example.org/foo/bar>
    50 FAIL Parsing: <foo://> against <http://example.org/foo/bar> assert_equals: href expected "foo:///" but got "foo://"
     50PASS Parsing: <foo://> against <http://example.org/foo/bar>
    5151PASS Parsing: <http://a:b@c:29/d> against <http://example.org/foo/bar>
    5252PASS Parsing: <http::@c:29> against <http://example.org/foo/bar>
     
    266266PASS Parsing: <http://﷐zyx.com> against <http://other.com/>
    267267PASS Parsing: <http://%ef%b7%90zyx.com> against <http://other.com/>
     268PASS Parsing: <https://�> against <about:blank>
     269PASS Parsing: <https://%EF%BF%BD> against <about:blank>
    268270PASS Parsing: <http://Go.com> against <http://other.com/>
    269271PASS Parsing: <http://%41.com> against <http://other.com/>
     
    329331PASS Parsing: <javascript:/../> against <about:blank>
    330332PASS Parsing: <mailto:/../> against <about:blank>
    331 FAIL Parsing: <sc://ñ.test/> against <about:blank> assert_equals: href expected "sc://xn--ida.test/" but got "sc://%C3%B1.test/"
     333PASS Parsing: <sc://ñ.test/> against <about:blank>
     334PASS Parsing: <sc://!"$&'()*+,-.;<=>^_`{|}~/> against <about:blank>
     335FAIL Parsing: <sc://\0/> against <about:blank> assert_throws: function "function () {
     336          bURL(expected.input, expected.bas..." did not throw
     337FAIL Parsing: <sc:// /> against <about:blank> assert_throws: function "function () {
     338          bURL(expected.input, expected.bas..." did not throw
     339FAIL Parsing: <sc://%/> against <about:blank> assert_throws: function "function () {
     340          bURL(expected.input, expected.bas..." did not throw
     341PASS Parsing: <sc://@/> against <about:blank>
     342PASS Parsing: <sc://te@s:t@/> against <about:blank>
     343PASS Parsing: <sc://:/> against <about:blank>
     344PASS Parsing: <sc://:12/> against <about:blank>
     345PASS Parsing: <sc://[/> against <about:blank>
     346FAIL Parsing: <sc://\/> against <about:blank> assert_throws: function "function () {
     347          bURL(expected.input, expected.bas..." did not throw
     348FAIL Parsing: <sc://]/> against <about:blank> assert_throws: function "function () {
     349          bURL(expected.input, expected.bas..." did not throw
     350PASS Parsing: <x> against <sc://ñ>
    332351PASS Parsing: <sc:\../> against <about:blank>
    333352PASS Parsing: <sc::a@example.net> against <about:blank>
     353PASS Parsing: <ftp://example.com%80/> against <about:blank>
     354PASS Parsing: <ftp://example.com%A0/> against <about:blank>
     355PASS Parsing: <https://example.com%80/> against <about:blank>
     356PASS Parsing: <https://example.com%A0/> against <about:blank>
     357PASS Parsing: <ftp://%e2%98%83> against <about:blank>
     358PASS Parsing: <https://%e2%98%83> against <about:blank>
    334359PASS Parsing: <http://127.0.0.1:10100/relative_import.html> against <about:blank>
    335360PASS Parsing: <http://facebook.com/?foo=%7B%22abc%22> against <about:blank>
     
    367392          bURL(expected.input, expected.bas..." did not throw
    368393PASS Parsing: <http://256.256.256.256.256> against <http://other.com/>
     394PASS Parsing: <file:///C%3A/> against <about:blank>
     395PASS Parsing: <file:///C%7C/> against <about:blank>
    369396PASS Parsing: <pix/submit.gif> against <file:///C:/Users/Domenic/Dropbox/GitHub/tmpvar/jsdom/test/level2/html/files/anchor.html>
    370397FAIL Parsing: <..> against <file:///C:/> assert_equals: href expected "file:///C:/" but got "file:///"
     
    376403PASS Parsing: <..> against <file:///1:/>
    377404PASS Parsing: <http://[1:0::]> against <http://example.net/>
     405FAIL Parsing: <http://?> against <about:blank> assert_throws: function "function () {
     406          bURL(expected.input, expected.bas..." did not throw
     407FAIL Parsing: <http://#> against <about:blank> assert_throws: function "function () {
     408          bURL(expected.input, expected.bas..." did not throw
     409PASS Parsing: <sc://ñ> against <about:blank>
     410PASS Parsing: <sc://ñ?x> against <about:blank>
     411PASS Parsing: <sc://ñ#x> against <about:blank>
     412PASS Parsing: <#x> against <sc://ñ>
     413PASS Parsing: <?x> against <sc://ñ>
     414PASS Parsing: <sc://?> against <about:blank>
     415PASS Parsing: <sc://#> against <about:blank>
     416FAIL Parsing: <///> against <sc://x/> Type error
     417FAIL Parsing: <////> against <sc://x/> Type error
     418FAIL Parsing: <////x/> against <sc://x/> assert_equals: href expected "sc:////x/" but got "sc://x/"
     419PASS Parsing: <tftp://foobar.com/someconfig;mode=netascii> against <about:blank>
     420PASS Parsing: <telnet://user:pass@foobar.com:23/> against <about:blank>
     421PASS Parsing: <ut2004://10.10.10.10:7777/Index.ut2> against <about:blank>
     422PASS Parsing: <redis://foo:bar@somehost:6379/0?baz=bam&qux=baz> against <about:blank>
     423PASS Parsing: <rsync://foo@host:911/sup> against <about:blank>
     424PASS Parsing: <git://github.com/foo/bar.git> against <about:blank>
     425PASS Parsing: <irc://myserver.com:6999/channel?passwd> against <about:blank>
     426PASS Parsing: <dns://fw.example.org:9999/foo.bar.org?type=TXT> against <about:blank>
     427PASS Parsing: <ldap://localhost:389/ou=People,o=JNDITutorial> against <about:blank>
     428PASS Parsing: <git+https://github.com/foo/bar> against <about:blank>
     429PASS Parsing: <urn:ietf:rfc:2648> against <about:blank>
     430PASS Parsing: <tag:joe@example.org,2001:foo/bar> against <about:blank>
    378431
  • trunk/LayoutTests/imported/w3c/web-platform-tests/url/url-origin-expected.txt

    r210823 r211620  
    246246FAIL Origin parsing: <mailto:/../> against <about:blank> assert_equals: origin expected "null" but got "mailto://"
    247247FAIL Origin parsing: <sc://ñ.test/> against <about:blank> assert_equals: origin expected "null" but got "sc://%c3%b1.test"
     248FAIL Origin parsing: <sc://!"$&'()*+,-.;<=>^_`{|}~/> against <about:blank> assert_equals: origin expected "null" but got "sc://%1f!\"$&'()*+,-.;<=>^_`{|}~"
     249FAIL Origin parsing: <x> against <sc://ñ> assert_equals: origin expected "null" but got "sc://%c3%b1"
    248250FAIL Origin parsing: <sc:\../> against <about:blank> assert_equals: origin expected "null" but got "sc://"
    249251FAIL Origin parsing: <sc::a@example.net> against <about:blank> assert_equals: origin expected "null" but got "sc://"
     252FAIL Origin parsing: <ftp://%e2%98%83> against <about:blank> assert_equals: origin expected "ftp://☃" but got "ftp://xn--n3h"
     253FAIL Origin parsing: <https://%e2%98%83> against <about:blank> assert_equals: origin expected "https://☃" but got "https://xn--n3h"
    250254PASS Origin parsing: <http://127.0.0.1:10100/relative_import.html> against <about:blank>
    251255PASS Origin parsing: <http://facebook.com/?foo=%7B%22abc%22> against <about:blank>
     
    274278PASS Origin parsing: <http://256.256.256.256.256> against <http://other.com/>
    275279PASS Origin parsing: <http://[1:0::]> against <http://example.net/>
     280FAIL Origin parsing: <sc://ñ> against <about:blank> assert_equals: origin expected "null" but got "sc://%c3%b1"
     281FAIL Origin parsing: <sc://ñ?x> against <about:blank> assert_equals: origin expected "null" but got "sc://%c3%b1"
     282FAIL Origin parsing: <sc://ñ#x> against <about:blank> assert_equals: origin expected "null" but got "sc://%c3%b1"
     283FAIL Origin parsing: <#x> against <sc://ñ> assert_equals: origin expected "null" but got "sc://%c3%b1"
     284FAIL Origin parsing: <?x> against <sc://ñ> assert_equals: origin expected "null" but got "sc://%c3%b1"
     285FAIL Origin parsing: <tftp://foobar.com/someconfig;mode=netascii> against <about:blank> assert_equals: origin expected "null" but got "tftp://foobar.com"
     286FAIL Origin parsing: <telnet://user:pass@foobar.com:23/> against <about:blank> assert_equals: origin expected "null" but got "telnet://foobar.com:23"
     287FAIL Origin parsing: <ut2004://10.10.10.10:7777/Index.ut2> against <about:blank> assert_equals: origin expected "null" but got "ut2004://10.10.10.10:7777"
     288FAIL Origin parsing: <redis://foo:bar@somehost:6379/0?baz=bam&qux=baz> against <about:blank> assert_equals: origin expected "null" but got "redis://somehost:6379"
     289FAIL Origin parsing: <rsync://foo@host:911/sup> against <about:blank> assert_equals: origin expected "null" but got "rsync://host:911"
     290FAIL Origin parsing: <git://github.com/foo/bar.git> against <about:blank> assert_equals: origin expected "null" but got "git://github.com"
     291FAIL Origin parsing: <irc://myserver.com:6999/channel?passwd> against <about:blank> assert_equals: origin expected "null" but got "irc://myserver.com:6999"
     292FAIL Origin parsing: <dns://fw.example.org:9999/foo.bar.org?type=TXT> against <about:blank> assert_equals: origin expected "null" but got "dns://fw.example.org:9999"
     293FAIL Origin parsing: <ldap://localhost:389/ou=People,o=JNDITutorial> against <about:blank> assert_equals: origin expected "null" but got "ldap://localhost:389"
     294FAIL Origin parsing: <git+https://github.com/foo/bar> against <about:blank> assert_equals: origin expected "null" but got "git+https://github.com"
     295FAIL Origin parsing: <urn:ietf:rfc:2648> against <about:blank> assert_equals: origin expected "null" but got "urn://"
     296FAIL Origin parsing: <tag:joe@example.org,2001:foo/bar> against <about:blank> assert_equals: origin expected "null" but got "tag://"
    276297
  • trunk/LayoutTests/imported/w3c/web-platform-tests/url/url-setters-expected.txt

    r210823 r211620  
    11
    22PASS Loading data…
    3 FAIL URL: Setting <a://example.net>.protocol = '' The empty string is not a valid scheme. Setter leaves the URL unchanged. assert_equals: expected "a://example.net/" but got "a://example.net"
    4 FAIL <a>: Setting <a://example.net>.protocol = '' The empty string is not a valid scheme. Setter leaves the URL unchanged. assert_equals: expected "a://example.net/" but got "a://example.net"
    5 FAIL <area>: Setting <a://example.net>.protocol = '' The empty string is not a valid scheme. Setter leaves the URL unchanged. assert_equals: expected "a://example.net/" but got "a://example.net"
    6 FAIL URL: Setting <a://example.net>.protocol = 'b' assert_equals: expected "b://example.net/" but got "b://example.net"
    7 FAIL <a>: Setting <a://example.net>.protocol = 'b' assert_equals: expected "b://example.net/" but got "b://example.net"
    8 FAIL <area>: Setting <a://example.net>.protocol = 'b' assert_equals: expected "b://example.net/" but got "b://example.net"
    9 FAIL URL: Setting <a://example.net>.protocol = 'B' Upper-case ASCII is lower-cased assert_equals: expected "b://example.net/" but got "b://example.net"
    10 FAIL <a>: Setting <a://example.net>.protocol = 'B' Upper-case ASCII is lower-cased assert_equals: expected "b://example.net/" but got "b://example.net"
    11 FAIL <area>: Setting <a://example.net>.protocol = 'B' Upper-case ASCII is lower-cased assert_equals: expected "b://example.net/" but got "b://example.net"
    12 FAIL URL: Setting <a://example.net>.protocol = 'é' Non-ASCII is rejected assert_equals: expected "a://example.net/" but got "a://example.net"
    13 FAIL <a>: Setting <a://example.net>.protocol = 'é' Non-ASCII is rejected assert_equals: expected "a://example.net/" but got "a://example.net"
    14 FAIL <area>: Setting <a://example.net>.protocol = 'é' Non-ASCII is rejected assert_equals: expected "a://example.net/" but got "a://example.net"
    15 FAIL URL: Setting <a://example.net>.protocol = '0b' No leading digit assert_equals: expected "a://example.net/" but got "a://example.net"
    16 FAIL <a>: Setting <a://example.net>.protocol = '0b' No leading digit assert_equals: expected "a://example.net/" but got "a://example.net"
    17 FAIL <area>: Setting <a://example.net>.protocol = '0b' No leading digit assert_equals: expected "a://example.net/" but got "a://example.net"
    18 FAIL URL: Setting <a://example.net>.protocol = '+b' No leading punctuation assert_equals: expected "a://example.net/" but got "a://example.net"
    19 FAIL <a>: Setting <a://example.net>.protocol = '+b' No leading punctuation assert_equals: expected "a://example.net/" but got "a://example.net"
    20 FAIL <area>: Setting <a://example.net>.protocol = '+b' No leading punctuation assert_equals: expected "a://example.net/" but got "a://example.net"
    21 FAIL URL: Setting <a://example.net>.protocol = 'bC0+-.' assert_equals: expected "bc0+-.://example.net/" but got "bc0+-.://example.net"
    22 FAIL <a>: Setting <a://example.net>.protocol = 'bC0+-.' assert_equals: expected "bc0+-.://example.net/" but got "bc0+-.://example.net"
    23 FAIL <area>: Setting <a://example.net>.protocol = 'bC0+-.' assert_equals: expected "bc0+-.://example.net/" but got "bc0+-.://example.net"
    24 FAIL URL: Setting <a://example.net>.protocol = 'b,c' Only some punctuation is acceptable assert_equals: expected "a://example.net/" but got "a://example.net"
    25 FAIL <a>: Setting <a://example.net>.protocol = 'b,c' Only some punctuation is acceptable assert_equals: expected "a://example.net/" but got "a://example.net"
    26 FAIL <area>: Setting <a://example.net>.protocol = 'b,c' Only some punctuation is acceptable assert_equals: expected "a://example.net/" but got "a://example.net"
    27 FAIL URL: Setting <a://example.net>.protocol = 'bé' Non-ASCII is rejected assert_equals: expected "a://example.net/" but got "a://example.net"
    28 FAIL <a>: Setting <a://example.net>.protocol = 'bé' Non-ASCII is rejected assert_equals: expected "a://example.net/" but got "a://example.net"
    29 FAIL <area>: Setting <a://example.net>.protocol = 'bé' Non-ASCII is rejected assert_equals: expected "a://example.net/" but got "a://example.net"
     3PASS URL: Setting <a://example.net>.protocol = '' The empty string is not a valid scheme. Setter leaves the URL unchanged.
     4PASS <a>: Setting <a://example.net>.protocol = '' The empty string is not a valid scheme. Setter leaves the URL unchanged.
     5PASS <area>: Setting <a://example.net>.protocol = '' The empty string is not a valid scheme. Setter leaves the URL unchanged.
     6PASS URL: Setting <a://example.net>.protocol = 'b'
     7PASS <a>: Setting <a://example.net>.protocol = 'b'
     8PASS <area>: Setting <a://example.net>.protocol = 'b'
     9PASS URL: Setting <a://example.net>.protocol = 'B' Upper-case ASCII is lower-cased
     10PASS <a>: Setting <a://example.net>.protocol = 'B' Upper-case ASCII is lower-cased
     11PASS <area>: Setting <a://example.net>.protocol = 'B' Upper-case ASCII is lower-cased
     12PASS URL: Setting <a://example.net>.protocol = 'é' Non-ASCII is rejected
     13PASS <a>: Setting <a://example.net>.protocol = 'é' Non-ASCII is rejected
     14PASS <area>: Setting <a://example.net>.protocol = 'é' Non-ASCII is rejected
     15PASS URL: Setting <a://example.net>.protocol = '0b' No leading digit
     16PASS <a>: Setting <a://example.net>.protocol = '0b' No leading digit
     17PASS <area>: Setting <a://example.net>.protocol = '0b' No leading digit
     18PASS URL: Setting <a://example.net>.protocol = '+b' No leading punctuation
     19PASS <a>: Setting <a://example.net>.protocol = '+b' No leading punctuation
     20PASS <area>: Setting <a://example.net>.protocol = '+b' No leading punctuation
     21PASS URL: Setting <a://example.net>.protocol = 'bC0+-.'
     22PASS <a>: Setting <a://example.net>.protocol = 'bC0+-.'
     23PASS <area>: Setting <a://example.net>.protocol = 'bC0+-.'
     24PASS URL: Setting <a://example.net>.protocol = 'b,c' Only some punctuation is acceptable
     25PASS <a>: Setting <a://example.net>.protocol = 'b,c' Only some punctuation is acceptable
     26PASS <area>: Setting <a://example.net>.protocol = 'b,c' Only some punctuation is acceptable
     27PASS URL: Setting <a://example.net>.protocol = 'bé' Non-ASCII is rejected
     28PASS <a>: Setting <a://example.net>.protocol = 'bé' Non-ASCII is rejected
     29PASS <area>: Setting <a://example.net>.protocol = 'bé' Non-ASCII is rejected
    3030FAIL 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/"
    3131FAIL <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/"
     
    4040FAIL <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/"
    4141FAIL <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/"
    42 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/"
    43 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/"
    44 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/"
    45 FAIL URL: Setting <ssh://me@example.net>.protocol = 'gopher' assert_equals: expected "ssh://me@example.net/" but got "gopher://me@example.net/"
    46 FAIL <a>: Setting <ssh://me@example.net>.protocol = 'gopher' assert_equals: expected "ssh://me@example.net/" but got "gopher://me@example.net/"
    47 FAIL <area>: Setting <ssh://me@example.net>.protocol = 'gopher' assert_equals: expected "ssh://me@example.net/" but got "gopher://me@example.net/"
    48 FAIL URL: Setting <ssh://me@example.net>.protocol = 'file' assert_equals: expected "ssh://me@example.net/" but got "ssh://me@example.net"
    49 FAIL <a>: Setting <ssh://me@example.net>.protocol = 'file' assert_equals: expected "ssh://me@example.net/" but got "file://me@example.net"
    50 FAIL <area>: Setting <ssh://me@example.net>.protocol = 'file' assert_equals: expected "ssh://me@example.net/" but got "file://me@example.net"
     42FAIL 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/"
     43FAIL <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/"
     44FAIL <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/"
     45FAIL URL: Setting <ssh://me@example.net>.protocol = 'gopher' assert_equals: expected "ssh://me@example.net" but got "gopher://me@example.net/"
     46FAIL <a>: Setting <ssh://me@example.net>.protocol = 'gopher' assert_equals: expected "ssh://me@example.net" but got "gopher://me@example.net/"
     47FAIL <area>: Setting <ssh://me@example.net>.protocol = 'gopher' assert_equals: expected "ssh://me@example.net" but got "gopher://me@example.net/"
     48PASS URL: Setting <ssh://me@example.net>.protocol = 'file'
     49FAIL <a>: Setting <ssh://me@example.net>.protocol = 'file' assert_equals: expected "ssh://me@example.net" but got "file://me@example.net"
     50FAIL <area>: Setting <ssh://me@example.net>.protocol = 'file' assert_equals: expected "ssh://me@example.net" but got "file://me@example.net"
    5151FAIL URL: Setting <nonsense:///test>.protocol = 'https' assert_equals: expected "nonsense:///test" but got "https://test/"
    5252FAIL <a>: Setting <nonsense:///test>.protocol = 'https' assert_equals: expected "nonsense:///test" but got "https://test/"
     
    118118PASS <a>: Setting <http://example.net>.password = '%c3%89té' Bytes already percent-encoded are left as-is.
    119119PASS <area>: Setting <http://example.net>.password = '%c3%89té' Bytes already percent-encoded are left as-is.
     120FAIL URL: Setting <sc://x/>.host = '\0' Non-special scheme assert_equals: expected "sc://x/" but got "sc://%00/"
     121FAIL <a>: Setting <sc://x/>.host = '\0' Non-special scheme assert_equals: expected "sc://x/" but got "sc://%00/"
     122FAIL <area>: Setting <sc://x/>.host = '\0' Non-special scheme assert_equals: expected "sc://x/" but got "sc://%00/"
     123PASS URL: Setting <sc://x/>.host = '    '
     124PASS <a>: Setting <sc://x/>.host = '    '
     125PASS <area>: Setting <sc://x/>.host = ' '
     126PASS URL: Setting <sc://x/>.host = '
     127'
     128PASS <a>: Setting <sc://x/>.host = '
     129'
     130PASS <area>: Setting <sc://x/>.host = '
     131'
     132PASS URL: Setting <sc://x/>.host = '\r'
     133PASS <a>: Setting <sc://x/>.host = '\r'
     134PASS <area>: Setting <sc://x/>.host = '\r'
     135FAIL URL: Setting <sc://x/>.host = ' ' assert_equals: expected "sc://x/" but got "sc:// /"
     136FAIL <a>: Setting <sc://x/>.host = ' ' assert_equals: expected "sc://x/" but got "sc:// /"
     137FAIL <area>: Setting <sc://x/>.host = ' ' assert_equals: expected "sc://x/" but got "sc:// /"
     138FAIL URL: Setting <sc://x/>.host = '#' assert_equals: expected "sc:///" but got "sc://#/"
     139FAIL <a>: Setting <sc://x/>.host = '#' assert_equals: expected "sc:///" but got "sc://#/"
     140FAIL <area>: Setting <sc://x/>.host = '#' assert_equals: expected "sc:///" but got "sc://#/"
     141FAIL URL: Setting <sc://x/>.host = '/' assert_equals: expected "sc:///" but got "sc:////"
     142FAIL <a>: Setting <sc://x/>.host = '/' assert_equals: expected "sc:///" but got "sc:////"
     143FAIL <area>: Setting <sc://x/>.host = '/' assert_equals: expected "sc:///" but got "sc:////"
     144FAIL URL: Setting <sc://x/>.host = '?' assert_equals: expected "sc:///" but got "sc://?/"
     145FAIL <a>: Setting <sc://x/>.host = '?' assert_equals: expected "sc:///" but got "sc://?/"
     146FAIL <area>: Setting <sc://x/>.host = '?' assert_equals: expected "sc:///" but got "sc://?/"
     147PASS URL: Setting <sc://x/>.host = '@'
     148FAIL <a>: Setting <sc://x/>.host = '@' assert_equals: expected "sc://x/" but got "sc://@/"
     149FAIL <area>: Setting <sc://x/>.host = '@' assert_equals: expected "sc://x/" but got "sc://@/"
    120150PASS URL: Setting <mailto:me@example.net>.host = 'example.com' Cannot-be-a-base means no host
    121151PASS <a>: Setting <mailto:me@example.net>.host = 'example.com' Cannot-be-a-base means no host
     
    181211PASS <a>: Setting <http://example.net/path>.host = 'example.com:8080\stuff' Stuff after a \ delimiter is ignored for special schemes
    182212PASS <area>: Setting <http://example.net/path>.host = 'example.com:8080\stuff' Stuff after a \ delimiter is ignored for special schemes
    183 FAIL URL: Setting <view-source+http://example.net/path>.host = 'example.com\stuff' \ is not a delimiter for non-special schemes, and it’s invalid in a domain assert_equals: expected "view-source+http://example.net/path" but got "view-source+http://example.com\\stuff/path"
    184 FAIL <a>: Setting <view-source+http://example.net/path>.host = 'example.com\stuff' \ is not a delimiter for non-special schemes, and it’s invalid in a domain assert_equals: expected "view-source+http://example.net/path" but got "view-source+http://example.com\\stuff/path"
    185 FAIL <area>: Setting <view-source+http://example.net/path>.host = 'example.com\stuff' \ is not a delimiter for non-special schemes, and it’s invalid in a domain assert_equals: expected "view-source+http://example.net/path" but got "view-source+http://example.com\\stuff/path"
     213FAIL 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 assert_equals: expected "view-source+http://example.net/path" but got "view-source+http://example.com\\stuff/path"
     214FAIL <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"
     215FAIL <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"
    186216PASS 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
    187217PASS <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
     
    214244FAIL <a>: Setting <http://example.net/>.host = '[::1.]' assert_equals: expected "http://example.net/" but got "http://[:0/"
    215245FAIL <area>: Setting <http://example.net/>.host = '[::1.]' assert_equals: expected "http://example.net/" but got "http://[:0/"
     246FAIL URL: Setting <sc://x/>.hostname = '\0' Non-special scheme assert_equals: expected "sc://x/" but got "sc://%00/"
     247FAIL <a>: Setting <sc://x/>.hostname = '\0' Non-special scheme assert_equals: expected "sc://x/" but got "sc://%00/"
     248FAIL <area>: Setting <sc://x/>.hostname = '\0' Non-special scheme assert_equals: expected "sc://x/" but got "sc://%00/"
     249PASS URL: Setting <sc://x/>.hostname = '        '
     250PASS <a>: Setting <sc://x/>.hostname = '        '
     251PASS <area>: Setting <sc://x/>.hostname = '     '
     252PASS URL: Setting <sc://x/>.hostname = '
     253'
     254PASS <a>: Setting <sc://x/>.hostname = '
     255'
     256PASS <area>: Setting <sc://x/>.hostname = '
     257'
     258PASS URL: Setting <sc://x/>.hostname = '\r'
     259PASS <a>: Setting <sc://x/>.hostname = '\r'
     260PASS <area>: Setting <sc://x/>.hostname = '\r'
     261FAIL URL: Setting <sc://x/>.hostname = ' ' assert_equals: expected "sc://x/" but got "sc:// /"
     262FAIL <a>: Setting <sc://x/>.hostname = ' ' assert_equals: expected "sc://x/" but got "sc:// /"
     263FAIL <area>: Setting <sc://x/>.hostname = ' ' assert_equals: expected "sc://x/" but got "sc:// /"
     264FAIL URL: Setting <sc://x/>.hostname = '#' assert_equals: expected "sc:///" but got "sc://#/"
     265FAIL <a>: Setting <sc://x/>.hostname = '#' assert_equals: expected "sc:///" but got "sc://#/"
     266FAIL <area>: Setting <sc://x/>.hostname = '#' assert_equals: expected "sc:///" but got "sc://#/"
     267FAIL URL: Setting <sc://x/>.hostname = '/' assert_equals: expected "sc:///" but got "sc://x/"
     268FAIL <a>: Setting <sc://x/>.hostname = '/' assert_equals: expected "sc:///" but got "sc://x/"
     269FAIL <area>: Setting <sc://x/>.hostname = '/' assert_equals: expected "sc:///" but got "sc://x/"
     270FAIL URL: Setting <sc://x/>.hostname = '?' assert_equals: expected "sc:///" but got "sc://?/"
     271FAIL <a>: Setting <sc://x/>.hostname = '?' assert_equals: expected "sc:///" but got "sc://?/"
     272FAIL <area>: Setting <sc://x/>.hostname = '?' assert_equals: expected "sc:///" but got "sc://?/"
     273PASS URL: Setting <sc://x/>.hostname = '@'
     274FAIL <a>: Setting <sc://x/>.hostname = '@' assert_equals: expected "sc://x/" but got "sc://@/"
     275FAIL <area>: Setting <sc://x/>.hostname = '@' assert_equals: expected "sc://x/" but got "sc://@/"
    216276PASS URL: Setting <mailto:me@example.net>.hostname = 'example.com' Cannot-be-a-base means no host
    217277PASS <a>: Setting <mailto:me@example.net>.hostname = 'example.com' Cannot-be-a-base means no host
     
    256316FAIL <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"
    257317FAIL <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"
    258 FAIL URL: Setting <view-source+http://example.net/path>.hostname = 'example.com\stuff' \ is not a delimiter for non-special schemes, and it’s invalid in a domain assert_equals: expected "view-source+http://example.net/path" but got "view-source+http://example.com\\stuff/path"
    259 FAIL <a>: Setting <view-source+http://example.net/path>.hostname = 'example.com\stuff' \ is not a delimiter for non-special schemes, and it’s invalid in a domain assert_equals: expected "view-source+http://example.net/path" but got "view-source+http://example.com\\stuff/path"
    260 FAIL <area>: Setting <view-source+http://example.net/path>.hostname = 'example.com\stuff' \ is not a delimiter for non-special schemes, and it’s invalid in a domain assert_equals: expected "view-source+http://example.net/path" but got "view-source+http://example.com\\stuff/path"
     318FAIL 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 assert_equals: expected "view-source+http://example.net/path" but got "view-source+http://example.com\\stuff/path"
     319FAIL <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"
     320FAIL <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"
    261321PASS URL: Setting <http://example.net/>.hostname = '[google.com]' Broken IPv6
    262322FAIL <a>: Setting <http://example.net/>.hostname = '[google.com]' Broken IPv6 assert_equals: expected "http://example.net/" but got "http://[google.com]/"
     
    346406PASS <a>: Setting <http://example.net>.pathname = '?' ? needs to be encoded
    347407PASS <area>: Setting <http://example.net>.pathname = '?' ? needs to be encoded
     408PASS URL: Setting <http://example.net>.pathname = '#' # needs to be encoded
     409PASS <a>: Setting <http://example.net>.pathname = '#' # needs to be encoded
     410PASS <area>: Setting <http://example.net>.pathname = '#' # needs to be encoded
     411PASS URL: Setting <sc://example.net>.pathname = '?' ? needs to be encoded, non-special scheme
     412PASS <a>: Setting <sc://example.net>.pathname = '?' ? needs to be encoded, non-special scheme
     413PASS <area>: Setting <sc://example.net>.pathname = '?' ? needs to be encoded, non-special scheme
     414PASS URL: Setting <sc://example.net>.pathname = '#' # needs to be encoded, non-special scheme
     415PASS <a>: Setting <sc://example.net>.pathname = '#' # needs to be encoded, non-special scheme
     416PASS <area>: Setting <sc://example.net>.pathname = '#' # needs to be encoded, non-special scheme
    348417PASS URL: Setting <https://example.net#nav>.search = 'lang=fr'
    349418PASS <a>: Setting <https://example.net#nav>.search = 'lang=fr'
  • trunk/LayoutTests/imported/w3c/web-platform-tests/url/urlsearchparams-constructor-expected.txt

    r210946 r211620  
    22PASS Basic URLSearchParams construction
    33PASS URLSearchParams constructor, no arguments
    4 FAIL URLSearchParams constructor, DOMException.prototype as argument assert_equals: expected "Error=" but got "INDEX_SIZE_ERR=1&DOMSTRING_SIZE_ERR=2&HIERARCHY_REQUEST_ERR=3&WRONG_DOCUMENT_ERR=4&INVALID_CHARACTER_ERR=5&NO_DATA_ALLOWED_ERR=6&NO_MODIFICATION_ALLOWED_ERR=7&NOT_FOUND_ERR=8&NOT_SUPPORTED_ERR=9&INUSE_ATTRIBUTE_ERR=10&INVALID_STATE_ERR=11&SYNTAX_ERR=12&INVALID_MODIFICATION_ERR=13&NAMESPACE_ERR=14&INVALID_ACCESS_ERR=15&VALIDATION_ERR=16&TYPE_MISMATCH_ERR=17&SECURITY_ERR=18&NETWORK_ERR=19&ABORT_ERR=20&URL_MISMATCH_ERR=21&QUOTA_EXCEEDED_ERR=22&TIMEOUT_ERR=23&INVALID_NODE_TYPE_ERR=24&DATA_CLONE_ERR=25"
     4PASS URLSearchParams constructor, DOMException.prototype as argument
    55PASS URLSearchParams constructor, empty string as argument
    66PASS URLSearchParams constructor, {} as argument
     
    1616PASS Parse 💩
    1717PASS Parse %f0%9f%92%a9
    18 FAIL Construct with object with + assert_array_equals: property 0, expected " " but got "+"
     18PASS Constructor with sequence of sequences of strings
     19PASS Construct with object with +
    1920PASS Construct with object with two keys
    2021PASS Construct with array with two keys
  • trunk/LayoutTests/imported/w3c/web-platform-tests/url/urlsearchparams-constructor.html

    r210823 r211620  
    2525test(() => {
    2626    params = new URLSearchParams(DOMException.prototype);
    27     assert_equals(params.toString(), "Error=")
     27    assert_equals(params.toString(), "INDEX_SIZE_ERR=1&DOMSTRING_SIZE_ERR=2&HIERARCHY_REQUEST_ERR=3&WRONG_DOCUMENT_ERR=4&INVALID_CHARACTER_ERR=5&NO_DATA_ALLOWED_ERR=6&NO_MODIFICATION_ALLOWED_ERR=7&NOT_FOUND_ERR=8&NOT_SUPPORTED_ERR=9&INUSE_ATTRIBUTE_ERR=10&INVALID_STATE_ERR=11&SYNTAX_ERR=12&INVALID_MODIFICATION_ERR=13&NAMESPACE_ERR=14&INVALID_ACCESS_ERR=15&VALIDATION_ERR=16&TYPE_MISMATCH_ERR=17&SECURITY_ERR=18&NETWORK_ERR=19&ABORT_ERR=20&URL_MISMATCH_ERR=21&QUOTA_EXCEEDED_ERR=22&TIMEOUT_ERR=23&INVALID_NODE_TYPE_ERR=24&DATA_CLONE_ERR=25")
    2828}, "URLSearchParams constructor, DOMException.prototype as argument")
    2929
     
    136136}, 'Parse %f0%9f%92%a9');  // Unicode Character 'PILE OF POO' (U+1F4A9)
    137137
    138 ;[
    139   { "input": {"+": "%C2"}, "output": [[" ", "\uFFFD"]], "name": "object with +" },
     138test(function() {
     139    var params = new URLSearchParams([]);
     140    assert_true(params != null, 'constructor returned non-null value.');
     141    params = new URLSearchParams([['a', 'b'], ['c', 'd']]);
     142    assert_equals(params.get("a"), "b");
     143    assert_equals(params.get("c"), "d");
     144    assert_throws(new TypeError(), function() { new URLSearchParams([[1]]); });
     145    assert_throws(new TypeError(), function() { new URLSearchParams([[1,2,3]]); });
     146}, "Constructor with sequence of sequences of strings");
     147
     148[
     149  { "input": {"+": "%C2"}, "output": [["+", "%C2"]], "name": "object with +" },
    140150  { "input": {c: "x", a: "?"}, "output": [["c", "x"], ["a", "?"]], "name": "object with two keys" },
    141151  { "input": [["c", "x"], ["a", "?"]], "output": [["c", "x"], ["a", "?"]], "name": "array with two keys" }
  • trunk/LayoutTests/imported/w3c/web-platform-tests/url/urlsearchparams-sort-expected.txt

    r210915 r211620  
    88PASS Parse and sort: é&e�&é
    99PASS URL parse and sort: é&e�&é
     10PASS Parse and sort: z=z&a=a&z=y&a=b&z=x&a=c&z=w&a=d&z=v&a=e&z=u&a=f&z=t&a=g
     11PASS URL parse and sort: z=z&a=a&z=y&a=b&z=x&a=c&z=w&a=d&z=v&a=e&z=u&a=f&z=t&a=g
    1012
  • trunk/LayoutTests/imported/w3c/web-platform-tests/url/urlsearchparams-sort.html

    r210915 r211620  
    2121    "input": "é&e\uFFFD&e\u0301",
    2222    "output": [["e\u0301", ""], ["e\uFFFD", ""], ["é", ""]]
     23  },
     24  {
     25    "input": "z=z&a=a&z=y&a=b&z=x&a=c&z=w&a=d&z=v&a=e&z=u&a=f&z=t&a=g",
     26    "output": [["a", "a"], ["a", "b"], ["a", "c"], ["a", "d"], ["a", "e"], ["a", "f"], ["a", "g"], ["z", "z"], ["z", "y"], ["z", "x"], ["z", "w"], ["z", "v"], ["z", "u"], ["z", "t"]]
    2327  }
    2428].forEach((val) => {
  • trunk/LayoutTests/imported/w3c/web-platform-tests/url/urltestdata.json

    r210823 r211620  
    554554    "input": "foo://",
    555555    "base": "http://example.org/foo/bar",
    556     "href": "foo:///",
     556    "href": "foo://",
    557557    "origin": "null",
    558558    "protocol": "foo:",
     
    562562    "hostname": "",
    563563    "port": "",
    564     "pathname": "/",
     564    "pathname": "",
    565565    "search": "",
    566566    "hash": ""
     
    35493549    "failure": true
    35503550  },
     3551  "U+FFFD is disallowed",
     3552  {
     3553    "input": "https://\ufffd",
     3554    "base": "about:blank",
     3555    "failure": true
     3556  },
     3557  {
     3558    "input": "https://%EF%BF%BD",
     3559    "base": "about:blank",
     3560    "failure": true
     3561  },
    35513562  "Test name prepping, fullwidth input should be converted to ASCII and NOT IDN-ized. This is 'Go' in fullwidth UTF-8/UTF-16.",
    35523563  {
     
    42574268    "hash": ""
    42584269  },
    4259   "# unknown schemes and non-ASCII domains",
     4270  "# unknown schemes and their hosts",
    42604271  {
    42614272    "input": "sc://ñ.test/",
    42624273    "base": "about:blank",
    4263     "href": "sc://xn--ida.test/",
     4274    "href": "sc://%C3%B1.test/",
    42644275    "origin": "null",
    42654276    "protocol": "sc:",
    42664277    "username": "",
    42674278    "password": "",
    4268     "host": "xn--ida.test",
    4269     "hostname": "xn--ida.test",
    4270     "port": "",
    4271     "pathname": "/",
     4279    "host": "%C3%B1.test",
     4280    "hostname": "%C3%B1.test",
     4281    "port": "",
     4282    "pathname": "/",
     4283    "search": "",
     4284    "hash": ""
     4285  },
     4286  {
     4287    "input": "sc://\u001F!\"$&'()*+,-.;<=>^_`{|}~/",
     4288    "base": "about:blank",
     4289    "href": "sc://%1F!\"$&'()*+,-.;<=>^_`{|}~/",
     4290    "origin": "null",
     4291    "protocol": "sc:",
     4292    "username": "",
     4293    "password": "",
     4294    "host": "%1F!\"$&'()*+,-.;<=>^_`{|}~",
     4295    "hostname": "%1F!\"$&'()*+,-.;<=>^_`{|}~",
     4296    "port": "",
     4297    "pathname": "/",
     4298    "search": "",
     4299    "hash": ""
     4300  },
     4301  {
     4302    "input": "sc://\u0000/",
     4303    "base": "about:blank",
     4304    "failure": true
     4305  },
     4306  {
     4307    "input": "sc:// /",
     4308    "base": "about:blank",
     4309    "failure": true
     4310  },
     4311  {
     4312    "input": "sc://%/",
     4313    "base": "about:blank",
     4314    "failure": true
     4315  },
     4316  {
     4317    "input": "sc://@/",
     4318    "base": "about:blank",
     4319    "failure": true
     4320  },
     4321  {
     4322    "input": "sc://te@s:t@/",
     4323    "base": "about:blank",
     4324    "failure": true
     4325  },
     4326  {
     4327    "input": "sc://:/",
     4328    "base": "about:blank",
     4329    "failure": true
     4330  },
     4331  {
     4332    "input": "sc://:12/",
     4333    "base": "about:blank",
     4334    "failure": true
     4335  },
     4336  {
     4337    "input": "sc://[/",
     4338    "base": "about:blank",
     4339    "failure": true
     4340  },
     4341  {
     4342    "input": "sc://\\/",
     4343    "base": "about:blank",
     4344    "failure": true
     4345  },
     4346  {
     4347    "input": "sc://]/",
     4348    "base": "about:blank",
     4349    "failure": true
     4350  },
     4351  {
     4352    "input": "x",
     4353    "base": "sc://ñ",
     4354    "href": "sc://%C3%B1/x",
     4355    "origin": "null",
     4356    "protocol": "sc:",
     4357    "username": "",
     4358    "password": "",
     4359    "host": "%C3%B1",
     4360    "hostname": "%C3%B1",
     4361    "port": "",
     4362    "pathname": "/x",
    42724363    "search": "",
    42734364    "hash": ""
     
    43024393    "port": "",
    43034394    "pathname": ":a@example.net",
     4395    "search": "",
     4396    "hash": ""
     4397  },
     4398  "# Hosts and percent-encoding",
     4399  {
     4400    "input": "ftp://example.com%80/",
     4401    "base": "about:blank",
     4402    "failure": true
     4403  },
     4404  {
     4405    "input": "ftp://example.com%A0/",
     4406    "base": "about:blank",
     4407    "failure": true
     4408  },
     4409  {
     4410    "input": "https://example.com%80/",
     4411    "base": "about:blank",
     4412    "failure": true
     4413  },
     4414  {
     4415    "input": "https://example.com%A0/",
     4416    "base": "about:blank",
     4417    "failure": true
     4418  },
     4419  {
     4420    "input": "ftp://%e2%98%83",
     4421    "base": "about:blank",
     4422    "href": "ftp://xn--n3h/",
     4423    "origin": "ftp://☃",
     4424    "protocol": "ftp:",
     4425    "username": "",
     4426    "password": "",
     4427    "host": "xn--n3h",
     4428    "hostname": "xn--n3h",
     4429    "port": "",
     4430    "pathname": "/",
     4431    "search": "",
     4432    "hash": ""
     4433  },
     4434  {
     4435    "input": "https://%e2%98%83",
     4436    "base": "about:blank",
     4437    "href": "https://xn--n3h/",
     4438    "origin": "https://☃",
     4439    "protocol": "https:",
     4440    "username": "",
     4441    "password": "",
     4442    "host": "xn--n3h",
     4443    "hostname": "xn--n3h",
     4444    "port": "",
     4445    "pathname": "/",
    43044446    "search": "",
    43054447    "hash": ""
     
    46264768    "hash": ""
    46274769  },
     4770  "# file URLs containing percent-encoded Windows drive letters (shouldn't work)",
     4771  {
     4772    "input": "file:///C%3A/",
     4773    "base": "about:blank",
     4774    "href": "file:///C%3A/",
     4775    "protocol": "file:",
     4776    "username": "",
     4777    "password": "",
     4778    "host": "",
     4779    "hostname": "",
     4780    "port": "",
     4781    "pathname": "/C%3A/",
     4782    "search": "",
     4783    "hash": ""
     4784  },
     4785  {
     4786    "input": "file:///C%7C/",
     4787    "base": "about:blank",
     4788    "href": "file:///C%7C/",
     4789    "protocol": "file:",
     4790    "username": "",
     4791    "password": "",
     4792    "host": "",
     4793    "hostname": "",
     4794    "port": "",
     4795    "pathname": "/C%7C/",
     4796    "search": "",
     4797    "hash": ""
     4798  },
    46284799  "# file URLs relative to other file URLs (via https://github.com/jsdom/whatwg-url/pull/60)",
    46294800  {
     
    47554926    "search": "",
    47564927    "hash": ""
     4928  },
     4929  "# Empty host",
     4930  {
     4931    "input": "http://?",
     4932    "base": "about:blank",
     4933    "failure": "true"
     4934  },
     4935  {
     4936    "input": "http://#",
     4937    "base": "about:blank",
     4938    "failure": "true"
     4939  },
     4940  "# Non-special-URL path tests",
     4941  {
     4942    "input": "sc://ñ",
     4943    "base": "about:blank",
     4944    "href": "sc://%C3%B1",
     4945    "origin": "null",
     4946    "protocol": "sc:",
     4947    "username": "",
     4948    "password": "",
     4949    "host": "%C3%B1",
     4950    "hostname": "%C3%B1",
     4951    "port": "",
     4952    "pathname": "",
     4953    "search": "",
     4954    "hash": ""
     4955  },
     4956  {
     4957    "input": "sc://ñ?x",
     4958    "base": "about:blank",
     4959    "href": "sc://%C3%B1?x",
     4960    "origin": "null",
     4961    "protocol": "sc:",
     4962    "username": "",
     4963    "password": "",
     4964    "host": "%C3%B1",
     4965    "hostname": "%C3%B1",
     4966    "port": "",
     4967    "pathname": "",
     4968    "search": "?x",
     4969    "hash": ""
     4970  },
     4971  {
     4972    "input": "sc://ñ#x",
     4973    "base": "about:blank",
     4974    "href": "sc://%C3%B1#x",
     4975    "origin": "null",
     4976    "protocol": "sc:",
     4977    "username": "",
     4978    "password": "",
     4979    "host": "%C3%B1",
     4980    "hostname": "%C3%B1",
     4981    "port": "",
     4982    "pathname": "",
     4983    "search": "",
     4984    "hash": "#x"
     4985  },
     4986  {
     4987    "input": "#x",
     4988    "base": "sc://ñ",
     4989    "href": "sc://%C3%B1#x",
     4990    "origin": "null",
     4991    "protocol": "sc:",
     4992    "username": "",
     4993    "password": "",
     4994    "host": "%C3%B1",
     4995    "hostname": "%C3%B1",
     4996    "port": "",
     4997    "pathname": "",
     4998    "search": "",
     4999    "hash": "#x"
     5000  },
     5001  {
     5002    "input": "?x",
     5003    "base": "sc://ñ",
     5004    "href": "sc://%C3%B1?x",
     5005    "origin": "null",
     5006    "protocol": "sc:",
     5007    "username": "",
     5008    "password": "",
     5009    "host": "%C3%B1",
     5010    "hostname": "%C3%B1",
     5011    "port": "",
     5012    "pathname": "",
     5013    "search": "?x",
     5014    "hash": ""
     5015  },
     5016  {
     5017    "input": "sc://?",
     5018    "base": "about:blank",
     5019    "href": "sc://?",
     5020    "protocol": "sc:",
     5021    "username": "",
     5022    "password": "",
     5023    "host": "",
     5024    "hostname": "",
     5025    "port": "",
     5026    "pathname": "",
     5027    "search": "",
     5028    "hash": ""
     5029  },
     5030  {
     5031    "input": "sc://#",
     5032    "base": "about:blank",
     5033    "href": "sc://#",
     5034    "protocol": "sc:",
     5035    "username": "",
     5036    "password": "",
     5037    "host": "",
     5038    "hostname": "",
     5039    "port": "",
     5040    "pathname": "",
     5041    "search": "",
     5042    "hash": ""
     5043  },
     5044  {
     5045    "input": "///",
     5046    "base": "sc://x/",
     5047    "href": "sc:///",
     5048    "protocol": "sc:",
     5049    "username": "",
     5050    "password": "",
     5051    "host": "",
     5052    "hostname": "",
     5053    "port": "",
     5054    "pathname": "/",
     5055    "search": "",
     5056    "hash": ""
     5057  },
     5058  {
     5059    "input": "////",
     5060    "base": "sc://x/",
     5061    "href": "sc:////",
     5062    "protocol": "sc:",
     5063    "username": "",
     5064    "password": "",
     5065    "host": "",
     5066    "hostname": "",
     5067    "port": "",
     5068    "pathname": "//",
     5069    "search": "",
     5070    "hash": ""
     5071  },
     5072  {
     5073    "input": "////x/",
     5074    "base": "sc://x/",
     5075    "href": "sc:////x/",
     5076    "protocol": "sc:",
     5077    "username": "",
     5078    "password": "",
     5079    "host": "",
     5080    "hostname": "",
     5081    "port": "",
     5082    "pathname": "//x/",
     5083    "search": "",
     5084    "hash": ""
     5085  },
     5086  {
     5087    "input": "tftp://foobar.com/someconfig;mode=netascii",
     5088    "base": "about:blank",
     5089    "href": "tftp://foobar.com/someconfig;mode=netascii",
     5090    "origin": "null",
     5091    "protocol": "tftp:",
     5092    "username": "",
     5093    "password": "",
     5094    "host": "foobar.com",
     5095    "hostname": "foobar.com",
     5096    "port": "",
     5097    "pathname": "/someconfig;mode=netascii",
     5098    "search": "",
     5099    "hash": ""
     5100  },
     5101  {
     5102    "input": "telnet://user:pass@foobar.com:23/",
     5103    "base": "about:blank",
     5104    "href": "telnet://user:pass@foobar.com:23/",
     5105    "origin": "null",
     5106    "protocol": "telnet:",
     5107    "username": "user",
     5108    "password": "pass",
     5109    "host": "foobar.com:23",
     5110    "hostname": "foobar.com",
     5111    "port": "23",
     5112    "pathname": "/",
     5113    "search": "",
     5114    "hash": ""
     5115  },
     5116  {
     5117    "input": "ut2004://10.10.10.10:7777/Index.ut2",
     5118    "base": "about:blank",
     5119    "href": "ut2004://10.10.10.10:7777/Index.ut2",
     5120    "origin": "null",
     5121    "protocol": "ut2004:",
     5122    "username": "",
     5123    "password": "",
     5124    "host": "10.10.10.10:7777",
     5125    "hostname": "10.10.10.10",
     5126    "port": "7777",
     5127    "pathname": "/Index.ut2",
     5128    "search": "",
     5129    "hash": ""
     5130  },
     5131  {
     5132    "input": "redis://foo:bar@somehost:6379/0?baz=bam&qux=baz",
     5133    "base": "about:blank",
     5134    "href": "redis://foo:bar@somehost:6379/0?baz=bam&qux=baz",
     5135    "origin": "null",
     5136    "protocol": "redis:",
     5137    "username": "foo",
     5138    "password": "bar",
     5139    "host": "somehost:6379",
     5140    "hostname": "somehost",
     5141    "port": "6379",
     5142    "pathname": "/0",
     5143    "search": "?baz=bam&qux=baz",
     5144    "hash": ""
     5145  },
     5146  {
     5147    "input": "rsync://foo@host:911/sup",
     5148    "base": "about:blank",
     5149    "href": "rsync://foo@host:911/sup",
     5150    "origin": "null",
     5151    "protocol": "rsync:",
     5152    "username": "foo",
     5153    "password": "",
     5154    "host": "host:911",
     5155    "hostname": "host",
     5156    "port": "911",
     5157    "pathname": "/sup",
     5158    "search": "",
     5159    "hash": ""
     5160  },
     5161  {
     5162    "input": "git://github.com/foo/bar.git",
     5163    "base": "about:blank",
     5164    "href": "git://github.com/foo/bar.git",
     5165    "origin": "null",
     5166    "protocol": "git:",
     5167    "username": "",
     5168    "password": "",
     5169    "host": "github.com",
     5170    "hostname": "github.com",
     5171    "port": "",
     5172    "pathname": "/foo/bar.git",
     5173    "search": "",
     5174    "hash": ""
     5175  },
     5176  {
     5177    "input": "irc://myserver.com:6999/channel?passwd",
     5178    "base": "about:blank",
     5179    "href": "irc://myserver.com:6999/channel?passwd",
     5180    "origin": "null",
     5181    "protocol": "irc:",
     5182    "username": "",
     5183    "password": "",
     5184    "host": "myserver.com:6999",
     5185    "hostname": "myserver.com",
     5186    "port": "6999",
     5187    "pathname": "/channel",
     5188    "search": "?passwd",
     5189    "hash": ""
     5190  },
     5191  {
     5192    "input": "dns://fw.example.org:9999/foo.bar.org?type=TXT",
     5193    "base": "about:blank",
     5194    "href": "dns://fw.example.org:9999/foo.bar.org?type=TXT",
     5195    "origin": "null",
     5196    "protocol": "dns:",
     5197    "username": "",
     5198    "password": "",
     5199    "host": "fw.example.org:9999",
     5200    "hostname": "fw.example.org",
     5201    "port": "9999",
     5202    "pathname": "/foo.bar.org",
     5203    "search": "?type=TXT",
     5204    "hash": ""
     5205  },
     5206  {
     5207    "input": "ldap://localhost:389/ou=People,o=JNDITutorial",
     5208    "base": "about:blank",
     5209    "href": "ldap://localhost:389/ou=People,o=JNDITutorial",
     5210    "origin": "null",
     5211    "protocol": "ldap:",
     5212    "username": "",
     5213    "password": "",
     5214    "host": "localhost:389",
     5215    "hostname": "localhost",
     5216    "port": "389",
     5217    "pathname": "/ou=People,o=JNDITutorial",
     5218    "search": "",
     5219    "hash": ""
     5220  },
     5221  {
     5222    "input": "git+https://github.com/foo/bar",
     5223    "base": "about:blank",
     5224    "href": "git+https://github.com/foo/bar",
     5225    "origin": "null",
     5226    "protocol": "git+https:",
     5227    "username": "",
     5228    "password": "",
     5229    "host": "github.com",
     5230    "hostname": "github.com",
     5231    "port": "",
     5232    "pathname": "/foo/bar",
     5233    "search": "",
     5234    "hash": ""
     5235  },
     5236  {
     5237    "input": "urn:ietf:rfc:2648",
     5238    "base": "about:blank",
     5239    "href": "urn:ietf:rfc:2648",
     5240    "origin": "null",
     5241    "protocol": "urn:",
     5242    "username": "",
     5243    "password": "",
     5244    "host": "",
     5245    "hostname": "",
     5246    "port": "",
     5247    "pathname": "ietf:rfc:2648",
     5248    "search": "",
     5249    "hash": ""
     5250  },
     5251  {
     5252    "input": "tag:joe@example.org,2001:foo/bar",
     5253    "base": "about:blank",
     5254    "href": "tag:joe@example.org,2001:foo/bar",
     5255    "origin": "null",
     5256    "protocol": "tag:",
     5257    "username": "",
     5258    "password": "",
     5259    "host": "",
     5260    "hostname": "",
     5261    "port": "",
     5262    "pathname": "joe@example.org,2001:foo/bar",
     5263    "search": "",
     5264    "hash": ""
    47575265  }
    47585266]
Note: See TracChangeset for help on using the changeset viewer.