Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Bug 1485521 [wpt PR 12636] - HTML: document.open() and document's URL…
…, a=testonly Automatic update from web-platform-testsHTML: document.open() and document's URL (#12636) For whatwg/html#3946. Adapts the basic test in web-platform-tests/wpt#10817 for a number of advanced scenarios regarding document activity. Co-authored-by: Anne van Kesteren <annevkannevk.nl> -- wpt-commits: 312d71258a26bfa420f7eef100df4ef92d961483 wpt-pr: 12636 UltraBlame original commit: 0aaff791b401b17dd832464bc94688c474a08ebc
- Loading branch information
Showing
2 changed files
with
97 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
87 changes: 87 additions & 0 deletions
87
...orm/tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/url.window.js
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,87 @@ | ||
test(t => { | ||
const frame = document.body.appendChild(document.createElement("iframe")); | ||
t.add_cleanup(() => frame.remove()); | ||
assert_equals(frame.contentDocument.URL, "about:blank"); | ||
assert_equals(frame.contentWindow.location.href, "about:blank"); | ||
frame.contentDocument.open(); | ||
assert_equals(frame.contentDocument.URL, document.URL); | ||
assert_equals(frame.contentWindow.location.href, document.URL); | ||
}, "document.open() changes document's URL (fully active document)"); | ||
|
||
async_test(t => { | ||
const blankURL = new URL("/common/blank.html", document.URL).href; | ||
const frameURL = new URL("resources/page-with-frame.html", document.URL).href; | ||
const frame = document.body.appendChild(document.createElement("iframe")); | ||
t.add_cleanup(() => frame.remove()); | ||
frame.onload = t.step_func(() => { | ||
assert_equals(frame.contentDocument.URL, frameURL); | ||
assert_equals(frame.contentWindow.location.href, frameURL); | ||
const childFrame = frame.contentDocument.querySelector("iframe"); | ||
const childDoc = childFrame.contentDocument; | ||
const childWin = childFrame.contentWindow; | ||
assert_equals(childDoc.URL, blankURL); | ||
assert_equals(childWin.location.href, blankURL); | ||
|
||
|
||
|
||
frame.onload = t.step_func_done(() => { | ||
|
||
childDoc.open(); | ||
assert_equals(childDoc.URL, blankURL); | ||
assert_equals(childWin.location.href, blankURL); | ||
}); | ||
frame.src = "/common/blank.html"; | ||
}); | ||
frame.src = frameURL; | ||
}, "document.open() does not change document's URL (active but not fully active document)"); | ||
|
||
test(t => { | ||
const frame = document.body.appendChild(document.createElement("iframe")); | ||
t.add_cleanup(() => frame.remove()); | ||
const doc = frame.contentDocument; | ||
|
||
|
||
assert_equals(doc.URL, "about:blank"); | ||
|
||
frame.remove(); | ||
|
||
|
||
assert_equals(doc.URL, "about:blank"); | ||
assert_equals(doc.open(), doc); | ||
assert_equals(doc.URL, "about:blank"); | ||
}, "document.open() does not change document's URL (non-active document with an associated Window object; frame is removed)"); | ||
|
||
async_test(t => { | ||
const frame = document.createElement("iframe"); | ||
t.add_cleanup(() => frame.remove()); | ||
|
||
frame.onload = t.step_func(() => { | ||
const doc = frame.contentDocument; | ||
|
||
assert_equals(doc.URL, "about:blank"); | ||
|
||
frame.onload = t.step_func_done(() => { | ||
|
||
|
||
assert_not_equals(frame.contentDocument, doc); | ||
assert_equals(doc.URL, "about:blank"); | ||
assert_equals(doc.open(), doc); | ||
assert_equals(doc.URL, "about:blank"); | ||
}); | ||
|
||
frame.src = "/common/blank.html"; | ||
}); | ||
|
||
|
||
|
||
document.body.appendChild(frame); | ||
}, "document.open() does not change document's URL (non-active document with an associated Window object; navigated away)"); | ||
|
||
test(t => { | ||
const frame = document.body.appendChild(document.createElement("iframe")); | ||
t.add_cleanup(() => frame.remove()); | ||
const doc = frame.contentDocument.implementation.createHTMLDocument(); | ||
assert_equals(doc.URL, "about:blank"); | ||
assert_equals(doc.open(), doc); | ||
assert_equals(doc.URL, "about:blank"); | ||
}, "document.open() does not change document's URL (non-active document without an associated Window object)"); |