summaryrefslogtreecommitdiffstats
path: root/testing/web-platform/tests/html/webappapis/dynamic-markup-insertion/html-unsafe-methods/resources/parseHTMLUnsafe-url-tests.js
diff options
context:
space:
mode:
Diffstat (limited to 'testing/web-platform/tests/html/webappapis/dynamic-markup-insertion/html-unsafe-methods/resources/parseHTMLUnsafe-url-tests.js')
-rw-r--r--testing/web-platform/tests/html/webappapis/dynamic-markup-insertion/html-unsafe-methods/resources/parseHTMLUnsafe-url-tests.js36
1 files changed, 36 insertions, 0 deletions
diff --git a/testing/web-platform/tests/html/webappapis/dynamic-markup-insertion/html-unsafe-methods/resources/parseHTMLUnsafe-url-tests.js b/testing/web-platform/tests/html/webappapis/dynamic-markup-insertion/html-unsafe-methods/resources/parseHTMLUnsafe-url-tests.js
new file mode 100644
index 0000000000..88344d127c
--- /dev/null
+++ b/testing/web-platform/tests/html/webappapis/dynamic-markup-insertion/html-unsafe-methods/resources/parseHTMLUnsafe-url-tests.js
@@ -0,0 +1,36 @@
+const loadPromise = new Promise(resolve => { window.resolveLoadPromise = resolve; });
+
+function assertURL(doc) {
+ assert_equals(doc.URL, "about:blank", "document.URL");
+ assert_equals(doc.documentURI, "about:blank", "document.documentURI");
+ assert_equals(doc.baseURI, "about:blank", "document.baseURI");
+}
+
+const inputs = {
+ valid: "<html></html>",
+ "invalid XML": `<span x:test="testing">1</span>`
+};
+
+for (const [inputName, input] of Object.entries(inputs)) {
+ test(() => {
+ const doc = Document.parseHTMLUnsafe(input);
+
+ assertURL(doc);
+ }, `${inputName}: created normally`);
+
+ promise_test(async () => {
+ await loadPromise;
+
+ const doc = frames[0].Document.parseHTMLUnsafe(input);
+
+ assertURL(doc);
+ }, `${inputName}: created using another iframe's parseHTMLUnsafe from this frame`);
+
+ promise_test(async () => {
+ await loadPromise;
+
+ const doc = frames[0].doParse(input);
+
+ assertURL(doc);
+ }, `${inputName}: created using another iframe's parseHTMLUnsafe from that frame`);
+}