Skip to content

Commit

Permalink
Bug 1485521 [wpt PR 12636] - HTML: document.open() and document's URL…
Browse files Browse the repository at this point in the history
…, 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
marco-c committed Oct 3, 2019
1 parent 474be89 commit 90c3641
Show file tree
Hide file tree
Showing 2 changed files with 97 additions and 0 deletions.
10 changes: 10 additions & 0 deletions testing/web-platform/meta/MANIFEST.json
Expand Up @@ -365683,6 +365683,12 @@
{}
]
],
"html/webappapis/dynamic-markup-insertion/opening-the-input-stream/url.window.js": [
[
"/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/url.window.html",
{}
]
],
"html/webappapis/microtask-queuing/queue-microtask-exceptions.any.js": [
[
"/html/webappapis/microtask-queuing/queue-microtask-exceptions.any.html",
Expand Down Expand Up @@ -606806,6 +606812,10 @@
"e275a4987a0859b160a0f91de6c8896b90bdab31",
"testharness"
],
"html/webappapis/dynamic-markup-insertion/opening-the-input-stream/url.window.js": [
"282e58e9c380fc214365522163c8bc09a67afc3b",
"testharness"
],
"html/webappapis/microtask-queuing/queue-microtask-exceptions.any.js": [
"01f32ac9ba14962fa99d4b263a8ca0f5a0daa161",
"testharness"
Expand Down
@@ -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)");

0 comments on commit 90c3641

Please sign in to comment.