Update web-platform-tests to revision 0d318188757a9c996e20b82db201fd04de5aa255

This commit is contained in:
James Graham 2015-03-27 09:15:38 +00:00
parent b2a5225831
commit 1a81b18b9f
12321 changed files with 544385 additions and 6 deletions

View file

@ -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>

View file

@ -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>

View file

@ -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>

View file

@ -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>

View file

@ -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>

View file

@ -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>

View file

@ -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>

View file

@ -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>

View file

@ -0,0 +1,5 @@
<!doctype html>
010-2
<script>
onload = function() {history.back()}
</script>

View file

@ -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>

View file

@ -0,0 +1,5 @@
<script>
document.open()
setTimeout(parent.t.step_func(function() {parent.t.done()}), 0);
document.close();
</script>

View file

@ -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>

View file

@ -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>

View file

@ -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>

View file

@ -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>

View file

@ -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>

View file

@ -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>

View file

@ -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>

View file

@ -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>

View file

@ -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>

View file

@ -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>

View file

@ -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>

View file

@ -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>

View file

@ -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>

View file

@ -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>

View file

@ -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>