blob: d530642b9e163a3b9b8ee3562783e8cfa3b367d6 [file] [log] [blame]
["a",
"area"].forEach(type => {
const followed = type === "a" ? true : false;
async_test(t => {
const target = document.createElement("iframe"),
link = document.createElement(type);
t.add_cleanup(() => target.remove());
target.name = "certifiedrandom" + type;
link.target = "certifiedrandom" + type;
link.href = "/";
document.body.appendChild(target);
target.onload = t.step_func(() => {
if(target.contentWindow.location.href === "about:blank")
return;
if(followed) {
assert_equals(target.contentWindow.location.pathname, "/");
t.done();
} else {
assert_unreached();
}
});
link.click();
t.step_timeout(() => {
if(followed) {
assert_unreached();
} else {
t.done();
}
}, 500);
}, "<" + type + "> that is not connected should " + (followed ? "" : "not ") + "be followed");
async_test(t => {
const target = document.createElement("iframe"),
doc = document.implementation.createDocument("", ""),
link = doc.createElementNS("http://www.w3.org/1999/xhtml", type);
t.add_cleanup(() => target.remove());
target.name = "certifiedrandom2" + type;
link.target = "certifiedrandom2" + type;
link.href = "/";
document.body.appendChild(target);
target.onload = t.step_func(() => {
if(target.contentWindow.location.href === "about:blank")
return;
assert_unreached();
});
link.click();
t.step_timeout(() => t.done(), 500);
}, "<" + type + "> that is from an inactive document should not be followed");
});