mirror of
https://github.com/servo/servo.git
synced 2025-08-06 06:00:15 +01:00
Update web-platform-tests to revision 0d318188757a9c996e20b82db201fd04de5aa255
This commit is contained in:
parent
b2a5225831
commit
1a81b18b9f
12321 changed files with 544385 additions and 6 deletions
|
@ -0,0 +1,20 @@
|
|||
<!doctype html>
|
||||
<title>Replacement of window object after document.open</title>
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<div id="log"></div>
|
||||
<iframe></iframe>
|
||||
<script>
|
||||
var t = async_test();
|
||||
|
||||
onload = t.step_func(function() {
|
||||
var iframe = document.getElementsByTagName("iframe")[0];
|
||||
iframe.contentWindow.state = 1;
|
||||
var handle = iframe.contentWindow;
|
||||
iframe.contentDocument.open();
|
||||
assert_false("state" in iframe.contentWindow, "Variables are not preserved after document.open");
|
||||
assert_equals(iframe.contentWindow.state, undefined, "Variables are not preserved after document.open");
|
||||
assert_equals(iframe.contentWindow, handle);
|
||||
t.done();
|
||||
});
|
||||
</script>
|
|
@ -0,0 +1,12 @@
|
|||
<!doctype html>
|
||||
<title>document.open during parsing</title>
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<div id="log"></div>
|
||||
<script>
|
||||
test(function() {
|
||||
var log = document.getElementById("log");
|
||||
document.open()
|
||||
assert_equals(document.getElementById("log"), log)
|
||||
})
|
||||
</script>
|
|
@ -0,0 +1 @@
|
|||
<!doctype html>
|
|
@ -0,0 +1,19 @@
|
|||
<!doctype html>
|
||||
<title>Reuse of document object after document.open</title>
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<div id="log"></div>
|
||||
<iframe src="004-1.html"></iframe>
|
||||
<script>
|
||||
var t = async_test();
|
||||
var iframe;
|
||||
onload = t.step_func(function() {
|
||||
var iframe = document.getElementsByTagName("iframe")[0];
|
||||
var handle = iframe.contentDocument;
|
||||
iframe.contentDocument.test_state = 1;
|
||||
iframe.contentDocument.open();
|
||||
assert_equals(iframe.contentDocument.test_state, 1);
|
||||
assert_equals(iframe.contentDocument, handle);
|
||||
t.done();
|
||||
});
|
||||
</script>
|
|
@ -0,0 +1,16 @@
|
|||
<!doctype html>
|
||||
<title>Cancelling timeout after document.open</title>
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<div id="log"></div>
|
||||
<iframe src="004-1.html"></iframe>
|
||||
<script>
|
||||
var t = async_test();
|
||||
var iframe;
|
||||
onload = t.step_func(function() {
|
||||
var iframe = document.getElementsByTagName("iframe")[0];
|
||||
iframe.contentWindow.setTimeout(t.step_func(function() {assert_unreached()}), 100);
|
||||
iframe.contentDocument.open()
|
||||
setTimeout(function() {t.done();}, 200);
|
||||
});
|
||||
</script>
|
|
@ -0,0 +1,19 @@
|
|||
<!doctype html>
|
||||
<title>Cancelling error after document.open</title>
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<div id="log"></div>
|
||||
<iframe src="004-1.html"></iframe>
|
||||
<script>
|
||||
var t = async_test();
|
||||
var iframe;
|
||||
onload = t.step_func(function() {
|
||||
var iframe = document.getElementsByTagName("iframe")[0];
|
||||
var img = iframe.contentDocument.createElement("img");
|
||||
img.onerror = t.step_func(function() {assert_unreached()})
|
||||
img.src = "missing";
|
||||
iframe.contentDocument.body.appendChild(img);
|
||||
iframe.contentDocument.open()
|
||||
setTimeout(function() {t.done();}, 500);
|
||||
});
|
||||
</script>
|
|
@ -0,0 +1,19 @@
|
|||
<!doctype html>
|
||||
<title>Unregistering event handlers after document.open</title>
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<div id="log"></div>
|
||||
<iframe src="004-1.html"></iframe>
|
||||
<script>
|
||||
var t = async_test();
|
||||
var iframe;
|
||||
onload = t.step_func(function() {
|
||||
var iframe = document.getElementsByTagName("iframe")[0];
|
||||
iframe.contentDocument.onclick = t.step_func(function() {assert_unreached()})
|
||||
iframe.contentDocument.open();
|
||||
var e = iframe.contentDocument.createEvent("mouseevents")
|
||||
e.initEvent("click", false, false);
|
||||
iframe.contentDocument.dispatchEvent(e);
|
||||
setTimeout(function() {t.done();}, 500);
|
||||
});
|
||||
</script>
|
|
@ -0,0 +1,20 @@
|
|||
<!doctype html>
|
||||
<title>Replacement of document prototype object after document.open</title>
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<div id="log"></div>
|
||||
<iframe src="004-1.html"></iframe>
|
||||
<script>
|
||||
var t = async_test();
|
||||
var iframe;
|
||||
onload = t.step_func(function() {
|
||||
var iframe = document.getElementsByTagName("iframe")[0];
|
||||
var handle = Object.getPrototypeOf(iframe.contentDocument);
|
||||
handle.test_state = 1;
|
||||
iframe.contentDocument.open();
|
||||
var new_handle = Object.getPrototypeOf(iframe.contentDocument);
|
||||
assert_equals(new_handle.test_state, undefined);
|
||||
assert_not_equals(new_handle, handle);
|
||||
t.done();
|
||||
});
|
||||
</script>
|
|
@ -0,0 +1,34 @@
|
|||
<!doctype html>
|
||||
<title>document.open replacing singleton</title>
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<div id="log"></div>
|
||||
<iframe src="004-1.html"></iframe>
|
||||
<script>
|
||||
var iframe = document.getElementsByTagName("iframe")[0];
|
||||
var steps;
|
||||
iframe.onload = function() {
|
||||
steps = ["window", "location", "history", "navigator", "applicationCache", "sessionStorage", "localStorage", "locationbar"].map(
|
||||
function(x) {
|
||||
var t = async_test(document.title + " " + x);
|
||||
var handle = iframe.contentWindow[x];
|
||||
handle.test_state = 1;
|
||||
return t.step_func(
|
||||
function() {
|
||||
var new_handle = iframe.contentWindow[x];
|
||||
assert_equals(new_handle.test_state, undefined);
|
||||
if (x !== "window") {
|
||||
assert_not_equals(new_handle, handle);
|
||||
} else {
|
||||
assert_equals(new_handle, handle);
|
||||
}
|
||||
t.done();
|
||||
});
|
||||
}
|
||||
);
|
||||
}
|
||||
onload = function() {
|
||||
iframe.contentDocument.open();
|
||||
steps.forEach(function(x) {x()});
|
||||
}
|
||||
</script>
|
|
@ -0,0 +1,2 @@
|
|||
<!doctype html>
|
||||
010-1
|
|
@ -0,0 +1,5 @@
|
|||
<!doctype html>
|
||||
010-2
|
||||
<script>
|
||||
onload = function() {history.back()}
|
||||
</script>
|
|
@ -0,0 +1,22 @@
|
|||
<!doctype html>
|
||||
<title>Salvagability of document.opened document</title>
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<div id="log"></div>
|
||||
<iframe src="010-1.html"></iframe>
|
||||
<script>
|
||||
var iframe;
|
||||
var t = async_test();
|
||||
onload = t.step_func(function() {
|
||||
iframe = document.getElementsByTagName("iframe")[0];
|
||||
iframe.contentDocument.open();
|
||||
iframe.contentDocument.close();
|
||||
|
||||
iframe.contentWindow.setTimeout(t.step_func(function() {t.done();}), 500);
|
||||
|
||||
onload = null;
|
||||
|
||||
iframe.src = "010-2.html"
|
||||
setTimeout(t.step_func(function() {assert_unreached()}), 1000)
|
||||
})
|
||||
</script>
|
|
@ -0,0 +1,5 @@
|
|||
<script>
|
||||
document.open()
|
||||
setTimeout(parent.t.step_func(function() {parent.t.done()}), 0);
|
||||
document.close();
|
||||
</script>
|
|
@ -0,0 +1,9 @@
|
|||
<!doctype html>
|
||||
<title>Timeout after document.open</title>
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<div id="log"></div>
|
||||
<script>
|
||||
var t = async_test();
|
||||
</script>
|
||||
<iframe src="011-1.html"></iframe>
|
|
@ -0,0 +1,7 @@
|
|||
<script>
|
||||
onload = parent.t.step_func(function() {
|
||||
document.open()
|
||||
setTimeout(parent.t.step_func(function() {parent.t.done()}), 0);
|
||||
document.close();
|
||||
});
|
||||
</script>
|
|
@ -0,0 +1,9 @@
|
|||
<!doctype html>
|
||||
<title>Timeout after document.open in load event</title>
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<div id="log"></div>
|
||||
<script>
|
||||
var t = async_test();
|
||||
</script>
|
||||
<iframe src="012-1.html"></iframe>
|
|
@ -0,0 +1,7 @@
|
|||
<script>
|
||||
addEventListener("DOMContentLoaded", parent.t.step_func(function() {
|
||||
document.open()
|
||||
setTimeout(parent.t.step_func(function() {parent.t.done()}), 0);
|
||||
document.close();
|
||||
}), false);
|
||||
</script>
|
|
@ -0,0 +1,9 @@
|
|||
<!doctype html>
|
||||
<title>Timeout after document.open in DOMContentLoaded event</title>
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<div id="log"></div>
|
||||
<script>
|
||||
var t = async_test();
|
||||
</script>
|
||||
<iframe src="013-1.html"></iframe>
|
|
@ -0,0 +1,9 @@
|
|||
<script>
|
||||
onload = parent.t.step_func(function() {
|
||||
setTimeout(parent.t.step_func(function() {
|
||||
document.open()
|
||||
setTimeout(parent.t.step_func(function() {parent.t.done()}), 0);
|
||||
document.close();
|
||||
}), 100)
|
||||
});
|
||||
</script>
|
|
@ -0,0 +1,9 @@
|
|||
<!doctype html>
|
||||
<title>Timeout after document.open after document is completely loaded</title>
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<div id="log"></div>
|
||||
<script>
|
||||
var t = async_test();
|
||||
</script>
|
||||
<iframe src="014-1.html"></iframe>
|
|
@ -0,0 +1,17 @@
|
|||
<script>
|
||||
onload = function() {
|
||||
window.test_prop = 1;
|
||||
parent.tests[0].step(function() {parent.assert_equals(test_prop, 1)});
|
||||
document.open();
|
||||
document.write("<script>test_prop = 2;<\/script>");
|
||||
document.close();
|
||||
parent.tests[0].step(function() {parent.assert_equals(test_prop, 1)});
|
||||
parent.tests[1].step(function() {parent.assert_equals(window.test_prop, 2)});
|
||||
parent.tests[2].step(function() {parent.assert_equals(get_this(), window)});
|
||||
parent.tests_done();
|
||||
};
|
||||
|
||||
function get_this() {
|
||||
return this;
|
||||
}
|
||||
</script>
|
|
@ -0,0 +1,14 @@
|
|||
<!doctype html>
|
||||
<title>Window vs global scope after document.open</title>
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<div id="log"></div>
|
||||
<script>
|
||||
var tests = [async_test("global scope unchanged"),
|
||||
async_test("window object changed"),
|
||||
async_test("this is the window object")];
|
||||
function tests_done() {
|
||||
tests.forEach(function(t) {t.done()});
|
||||
}
|
||||
</script>
|
||||
<iframe src="015-1.html"></iframe>
|
|
@ -0,0 +1,39 @@
|
|||
<script>
|
||||
window.test_prop = 1;
|
||||
</script>
|
||||
<script>
|
||||
onload = function() {
|
||||
document.open();
|
||||
document.write("<script>test_prop = 2; timeout_fired=false;<\/script>");
|
||||
document.close();
|
||||
|
||||
setTimeout(function() {
|
||||
parent.tests[0].step(function() {
|
||||
parent.assert_equals(test_prop, 1, "Global scope from original window timeout");
|
||||
parent.assert_equals(window.test_prop, 2, "Window property from original window timeout")
|
||||
});
|
||||
parent.tests[1].step(function() {
|
||||
var t = get_this();
|
||||
parent.assert_equals(t.test_prop, 2, "Window property from original window timeout");
|
||||
parent.assert_equals(t, window, "Global scope from original window timeout");
|
||||
});
|
||||
}, 0);
|
||||
|
||||
window.setTimeout(function() {
|
||||
parent.tests[2].step(function() {
|
||||
parent.assert_equals(test_prop, 1, "Global scope from original window timeout");
|
||||
parent.assert_equals(window.test_prop, 2, "Window property from original window timeout")
|
||||
});
|
||||
parent.tests[3].step(function() {
|
||||
var t = get_this();
|
||||
parent.assert_equals(t.test_prop, 2, "Window property from original window timeout");
|
||||
parent.assert_equals(t, window, "Global scope from original window timeout");
|
||||
});
|
||||
parent.tests_done();
|
||||
}, 100);
|
||||
};
|
||||
|
||||
function get_this() {
|
||||
return this;
|
||||
}
|
||||
</script>
|
|
@ -0,0 +1,15 @@
|
|||
<!doctype html>
|
||||
<title>setTimeout document.open</title>
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<div id="log"></div>
|
||||
<script>
|
||||
var tests = [async_test("Timeout on original window, scope"),
|
||||
async_test("Timeout on original window, this object"),
|
||||
async_test("Timeout on new window, scope"),
|
||||
async_test("Timeout on new window, this object")];
|
||||
function tests_done() {
|
||||
tests.forEach(function(t) {t.done()});
|
||||
}
|
||||
</script>
|
||||
<iframe src="016-1.html"></iframe>
|
|
@ -0,0 +1,19 @@
|
|||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<title>document.open in XHTML</title>
|
||||
<link rel="author" title="Ms2ger" href="mailto:ms2ger@gmail.com"/>
|
||||
<link rel="help" href="https://html.spec.whatwg.org/multipage/#opening-the-input-stream"/>
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
<div id="log"></div>
|
||||
<script>
|
||||
test(function() {
|
||||
assert_throws("INVALID_STATE_ERR", function() {
|
||||
document.open();
|
||||
}, "document.open in XHTML should throw an INVALID_STATE_ERR ");
|
||||
}, "document.open in XHTML");
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,27 @@
|
|||
<!DOCTYPE html>
|
||||
<title>document.open with three arguments</title>
|
||||
<link rel="author" title="Ms2ger" href="mailto:ms2ger@gmail.com">
|
||||
<link rel="help" href="https://html.spec.whatwg.org/multipage/#dom-document-open">
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<div id="log"></div>
|
||||
<script>
|
||||
function open() {
|
||||
assert_unreached("The call should be redirected to the real window.open")
|
||||
}
|
||||
test(function(t) {
|
||||
var w;
|
||||
t.add_cleanup(function() {try {w.close()} catch(e) {}});
|
||||
w = document.open("/resources/testharness.js", "", "");
|
||||
assert_true(w instanceof w.Window, "Expected a window");
|
||||
}, "document.open should redirect to window.open when called with three arguments");
|
||||
|
||||
test(function() {
|
||||
var parser = new DOMParser();
|
||||
var doc = parser.parseFromString("", "text/html");
|
||||
assert_equals(doc.defaultView, null);
|
||||
assert_throws("INVALID_ACCESS_ERR", function() {
|
||||
doc.open("/resources/testharness.js", "", "");
|
||||
});
|
||||
}, "document.open should throw when it has no window and is called with three arguments");
|
||||
</script>
|
|
@ -0,0 +1,10 @@
|
|||
<!DOCTYPE html>
|
||||
<script>
|
||||
onload = function() {
|
||||
document.open();
|
||||
document.close();
|
||||
parent.report(window.setTimeout === setTimeout, false, "setTimeout");
|
||||
parent.report(window === this, true, "this");
|
||||
parent.done();
|
||||
}
|
||||
</script>
|
|
@ -0,0 +1,19 @@
|
|||
<!DOCTYPE html>
|
||||
<title>document.open and singleton replacement</title>
|
||||
<link rel="author" title="Ms2ger" href="mailto:ms2ger@gmail.com">
|
||||
<link rel="help" href="https://html.spec.whatwg.org/multipage/#dom-document-open">
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<div id="log"></div>
|
||||
<script>
|
||||
var t = async_test();
|
||||
function report(actual, expected, message) {
|
||||
t.step(function() {
|
||||
assert_equals(actual, expected, message);
|
||||
});
|
||||
}
|
||||
function done() {
|
||||
t.done();
|
||||
}
|
||||
</script>
|
||||
<iframe src=document.open-03-frame.html></iframe>
|
Loading…
Add table
Add a link
Reference in a new issue