Skip to content

Commit

Permalink
HTML: timing of iframe's load event
Browse files Browse the repository at this point in the history
  • Loading branch information
annevk committed Dec 6, 2019
1 parent 1e107f0 commit 79b7a99
Showing 1 changed file with 58 additions and 0 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
async_test(t => {
const frame = document.createElement("iframe");
t.add_cleanup(() => frame.remove());
let happened = []
frame.onload = t.step_func(() => happened.push("load"));
document.body.append(frame);
happened.push("append");
// Use timeout for assert in case there's multiple load events erroneously
t.step_timeout(() => {
assert_array_equals(happened, ["load", "append"]);
t.done();
}, 500);
}, "<iframe> without src and load event");

async_test(t => {
const frame = document.createElement("iframe");
t.add_cleanup(() => frame.remove());
let happened = []
frame.onload = t.step_func(() => happened.push("load"));
frame.src = "about:blank";
document.body.append(frame);
happened.push("append");
// Use timeout for assert in case there's multiple load events erroneously
t.step_timeout(() => {
assert_array_equals(happened, ["load", "append"]);
t.done();
}, 500);
}, "<iframe> with about:blank src and load event");

async_test(t => {
const frame = document.createElement("iframe");
t.add_cleanup(() => frame.remove());
let happened = false;
frame.onload = t.step_func_done(() => assert_true(happened));
frame.src = URL.createObjectURL(new Blob([""], { type: "text/html" }));
document.body.append(frame);
happened = true;
}, "<iframe> with blob: URL src and load event");

async_test(t => {
const frame = document.createElement("iframe");
t.add_cleanup(() => frame.remove());
let happened = false;
frame.onload = t.step_func_done(() => assert_true(happened));
frame.src = "data:text/html,";
document.body.append(frame);
happened = true;
}, "<iframe> with data: URL src and load event");

async_test(t => {
const frame = document.createElement("iframe");
t.add_cleanup(() => frame.remove());
let happened = false;
frame.onload = t.step_func_done(() => assert_true(happened));
frame.srcdoc = "";
document.body.append(frame);
happened = true;
}, "<iframe> with srcdoc and load event");

0 comments on commit 79b7a99

Please sign in to comment.