blob: e242ce830a618cb1bff17c80a6c6559250c1a16d (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
|
async_test(t => {
const frame = document.createElement("frame"),
form = document.createElement("form");
t.add_cleanup(() => frame.remove());
form.action = "/common/blank.html";
form.target = "doesnotmattertwobits";
frame.name = "doesnotmattertwobits";
document.body.appendChild(frame);
frame.onload = t.step_func(() => {
if(frame.contentWindow.location.href === "about:blank")
return;
assert_unreached();
});
form.submit();
t.step_timeout(() => {
assert_equals(frame.contentWindow.location.href, "about:blank");
t.done();
}, 500);
}, "<form> not connected to a document cannot navigate");
async_test(t => {
const frame = document.createElement("frame"),
form = document.createElement("form");
t.add_cleanup(() => frame.remove());
form.action = "/common/blank.html";
form.target = "doesnotmattertwoqbits";
form.onsubmit = t.step_func(() => form.remove());
frame.name = "doesnotmattertwoqbits";
document.body.appendChild(frame);
document.body.appendChild(form);
frame.onload = t.step_func(() => {
if(frame.contentWindow.location.href === "about:blank")
return;
assert_unreached();
});
const submit = form.appendChild(document.createElement("input"));
submit.type = "submit"
submit.click();
t.step_timeout(() => {
assert_equals(frame.contentWindow.location.href, "about:blank");
t.done();
}, 500);
}, "<form> not connected to a document after submit event cannot navigate");
async_test(t => {
const frame = document.createElement("frame"),
form = document.createElement("form");
t.add_cleanup(() => frame.remove());
form.action = "/";
document.body.appendChild(frame);
frame.contentDocument.body.appendChild(form);
frame.onload = t.step_func(() => {
if(frame.contentWindow.location.href === "about:blank")
return;
form.submit();
t.step_timeout(() => {
assert_equals(frame.contentWindow.location.pathname, "/common/blank.html");
t.done();
}, 500)
});
frame.src = "/common/blank.html";
}, "<form> in a navigated document cannot navigate");
|