tree: 9c7939bbf196a8357ed6163b4887bf93f6811c8e [path history] [tgz]
  1. resources/
  2. META.yml
  5. a-element-origin-xhtml.xhtml
  6. a-element-origin.html
  7. a-element-xhtml.xhtml
  8. a-element.html
  9. data-uri-fragment.html
  10. failure.html
  11. historical.any-expected.txt
  12. historical.any.js
  13. historical.any.worker-expected.txt
  14. idlharness.any.js
  15. toascii.window-expected.txt
  16. toascii.window.js
  17. url-constructor.html
  18. url-origin.html
  19. url-searchparams.any.js
  20. url-setters.html
  21. url-tojson.any.js
  22. urlencoded-parser.any.js
  23. urlsearchparams-append.any.js
  24. urlsearchparams-constructor.any.js
  25. urlsearchparams-delete.any.js
  26. urlsearchparams-foreach.any.js
  27. urlsearchparams-get.any.js
  28. urlsearchparams-getall.any.js
  29. urlsearchparams-has.any.js
  30. urlsearchparams-set.any.js
  31. urlsearchparams-sort.any.js
  32. urlsearchparams-stringifier.any.js


These tests are for browsers, but the data for a-element.html, url-constructor.html, a-element-xhtml.xhtml, and failure.html is in resources/urltestdata.json and can be re-used by non-browser implementations. This file contains a JSON array of comments as strings and test cases as objects. The keys for each test case are:

  • base: an absolute URL as a string whose parsing without a base of its own must succeed. This key is always present, and may have a value like "about:blank" when input is an absolute URL.
  • input: an URL as a string to be parsed with base as its base URL.
  • Either:
    • failure with the value true, indicating that parsing input should return failure,

    • or href, origin, protocol, username, password, host, hostname, port, pathname, search, and hash with string values; indicating that parsing input should return an URL record and that the getters of each corresponding attribute in that URL’s API should return the corresponding value.

      The origin key may be missing. In that case, the API’s origin attribute is not tested.

In addition to testing that parsing input against base gives the result, a test harness for the URL constructor (or similar APIs) should additionally test the following pattern: if failure is true, parsing about:blank against input must give failure. This tests that the logic for converting base URLs into strings properly fails the whole parsing algorithm if the base URL cannot be parsed.


resources/setters_tests.json is self-documented.


resources/toascii.json is a JSON resource containing an array where each item is an object consisting of an optional comment field and mandatory input and output fields. input is the domain to be parsed according to the rules of UTS #46 (as stipulated by the URL Standard). output gives the expected output of the parser after serialization. An output of null means parsing is expected to fail.

URL parser's encoding argument

Tests in /encoding and /html/infrastructure/urls/resolving-urls/query-encoding/ cover the encoding argument to the URL parser.


The tests in this directory assert conformance with the URL Standard.