1## urltestdata.json 2 3`resources/urltestdata.json` contains URL parsing tests suitable for any URL parser implementation. 4 5It's used as a source of tests by `a-element.html`, `failure.html`, `url-constructor.any.js`, and 6other test files in this directory. 7 8The format of `resources/urltestdata.json` is a JSON array of comments as strings and test cases as 9objects. The keys for each test case are: 10 11* `input`: a string to be parsed as URL. 12* `base`: null or a serialized URL (i.e., does not fail parsing). 13* Then either 14 15 * `failure` whose value is `true`, indicating that parsing `input` relative to `base` returns 16 failure 17 * `relativeTo` whose value is "`non-opaque-path-base`" (input does parse against a non-null base 18 URL without an opaque path) or "`any-base`" (input parses against any non-null base URL), or is 19 omitted in its entirety (input never parses successfully) 20 21 or `href`, `origin`, `protocol`, `username`, `password`, `host`, `hostname`, `port`, 22 `pathname`, `search`, and `hash` with string values; indicating that parsing `input` should return 23 an URL record and that the getters of each corresponding attribute in that URL’s [API] should 24 return the corresponding value. 25 26 The `origin` key may be missing. In that case, the API’s `origin` attribute is not tested. 27 28## setters_tests.json 29 30`resources/setters_tests.json` is self-documented. 31 32## toascii.json 33 34`resources/toascii.json` is a JSON resource containing an array where each item is an object 35consisting of an optional `comment` field and mandatory `input` and `output` fields. `input` is the 36domain to be parsed according to the rules of UTS #46 (as stipulated by the URL Standard). `output` 37gives the expected output of the parser after serialization. An `output` of `null` means parsing is 38expected to fail. 39 40## URL parser's encoding argument 41 42Tests in `/encoding` and `/html/infrastructure/urls/resolving-urls/query-encoding/` cover the 43encoding argument to the URL parser. 44 45There's also limited coverage in `resources/percent-encoding.json` for percent-encode after encoding 46with _percentEncodeSet_ set to special-query percent-encode set and _spaceAsPlus_ set to false. 47(Improvements to expand coverage here are welcome.) 48 49## Specification 50 51The tests in this directory assert conformance with [the URL Standard][URL]. 52 53[parsing]: https://url.spec.whatwg.org/#concept-basic-url-parser 54[API]: https://url.spec.whatwg.org/#api 55[URL]: https://url.spec.whatwg.org/ 56