summaryrefslogtreecommitdiffstats
path: root/testing/web-platform/tests/url
diff options
context:
space:
mode:
Diffstat (limited to 'testing/web-platform/tests/url')
-rw-r--r--testing/web-platform/tests/url/resources/urltestdata.json28
-rw-r--r--testing/web-platform/tests/url/url-statics-parse.any.js50
2 files changed, 78 insertions, 0 deletions
diff --git a/testing/web-platform/tests/url/resources/urltestdata.json b/testing/web-platform/tests/url/resources/urltestdata.json
index 9f1be0449c..b9a199daab 100644
--- a/testing/web-platform/tests/url/resources/urltestdata.json
+++ b/testing/web-platform/tests/url/resources/urltestdata.json
@@ -3590,6 +3590,34 @@
"search": "",
"hash": ""
},
+ {
+ "input": "file:.",
+ "base": null,
+ "href": "file:///",
+ "protocol": "file:",
+ "username": "",
+ "password": "",
+ "host": "",
+ "hostname": "",
+ "port": "",
+ "pathname": "/",
+ "search": "",
+ "hash": ""
+ },
+ {
+ "input": "file:.",
+ "base": "http://www.example.com/test",
+ "href": "file:///",
+ "protocol": "file:",
+ "username": "",
+ "password": "",
+ "host": "",
+ "hostname": "",
+ "port": "",
+ "pathname": "/",
+ "search": "",
+ "hash": ""
+ },
"# Based on http://trac.webkit.org/browser/trunk/LayoutTests/fast/url/host.html",
"Basic canonicalization, uppercase should be converted to lowercase",
{
diff --git a/testing/web-platform/tests/url/url-statics-parse.any.js b/testing/web-platform/tests/url/url-statics-parse.any.js
new file mode 100644
index 0000000000..0822e9da07
--- /dev/null
+++ b/testing/web-platform/tests/url/url-statics-parse.any.js
@@ -0,0 +1,50 @@
+// This intentionally does not use resources/urltestdata.json to preserve resources.
+[
+ {
+ "url": undefined,
+ "base": undefined,
+ "expected": false
+ },
+ {
+ "url": "aaa:b",
+ "base": undefined,
+ "expected": true
+ },
+ {
+ "url": undefined,
+ "base": "aaa:b",
+ "expected": false
+ },
+ {
+ "url": "aaa:/b",
+ "base": undefined,
+ "expected": true
+ },
+ {
+ "url": undefined,
+ "base": "aaa:/b",
+ "expected": true
+ },
+ {
+ "url": "https://test:test",
+ "base": undefined,
+ "expected": false
+ },
+ {
+ "url": "a",
+ "base": "https://b/",
+ "expected": true
+ }
+].forEach(({ url, base, expected }) => {
+ test(() => {
+ if (expected == false) {
+ assert_equals(URL.parse(url, base), null);
+ } else {
+ assert_equals(URL.parse(url, base).href, new URL(url, base).href);
+ }
+ }, `URL.parse(${url}, ${base})`);
+});
+
+test(() => {
+ assert_not_equals(URL.parse("https://example/"), URL.parse("https://example/"));
+}, `URL.parse() should return a unique object`);