| Index: third_party/WebKit/LayoutTests/imported/wpt/html/dom/documents/dom-tree-accessors/Document.currentScript.html
|
| diff --git a/third_party/WebKit/LayoutTests/imported/wpt/html/dom/documents/dom-tree-accessors/Document.currentScript.html b/third_party/WebKit/LayoutTests/imported/wpt/html/dom/documents/dom-tree-accessors/Document.currentScript.html
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..76f1b64de236053057f128a961c1bbff6de2c2f5
|
| --- /dev/null
|
| +++ b/third_party/WebKit/LayoutTests/imported/wpt/html/dom/documents/dom-tree-accessors/Document.currentScript.html
|
| @@ -0,0 +1,211 @@
|
| +<!DOCTYPE HTML>
|
| +<meta charset=utf-8>
|
| +<title>Document.currentScript</title>
|
| +<link rel=help href="https://html.spec.whatwg.org/multipage/#dom-document-currentscript">
|
| +<link rel=help href="https://html.spec.whatwg.org/multipage/#execute-the-script-block">
|
| +<script src="/resources/testharness.js"></script>
|
| +<script src="/resources/testharnessreport.js"></script>
|
| +<script src="/common/get-host-info.sub.js"></script>
|
| +<div id="log"></div>
|
| +<script>
|
| +var data = {
|
| + "parse-inline" : [],
|
| + "parse-ext" : [],
|
| + "dom-inline" : [],
|
| + "dom-ext" : [],
|
| + "nested" : ["nested-outer","nested-inner","nested-outer"],
|
| + "script-exec" : ["script-exec-before-after","script-exec-before-after"],
|
| + "script-load-error" : [null],
|
| + "script-window-error" : ["script-error-compile","script-error-runtime"],
|
| + "timeout" : [null],
|
| + "eval" : [],
|
| + "xhr-test" : [],
|
| + "script-svg" : [],
|
| + "script-async" : [],
|
| + "script-defer" : [],
|
| + "script-async-false" : [],
|
| + "iframe-src" : [],
|
| + "cross-origin" : [null],
|
| + "document-write" : []
|
| +};
|
| +
|
| +var expected = {};
|
| +var actual = {};
|
| +
|
| +Object.keys(data).forEach(function(id) {
|
| + var test_expected = data[id];
|
| + if(test_expected.length == 0) {
|
| + test_expected = [id];
|
| + }
|
| + expected[id] = test_expected;
|
| + actual[id] = [];
|
| +});
|
| +
|
| +var tests = {};
|
| +setup({allow_uncaught_exception : true});
|
| +
|
| +Object.keys(expected).forEach(function(id) {
|
| + var testmsg = "Script " + id;
|
| + tests[id] = async_test(testmsg);
|
| +});
|
| +
|
| +function verify(id) {
|
| + tests[id].step(function() {
|
| + actual[id].push(document.currentScript);
|
| + })
|
| +}
|
| +
|
| +function finish(id) {
|
| + tests[id].step(function() {
|
| + assert_array_equals(actual[id],expected[id].map(function(id) {
|
| + return document.getElementById(id);
|
| + }));
|
| + this.done();
|
| + })
|
| +}
|
| +
|
| +</script>
|
| +
|
| +<!-- Test parser inserted scripts -->
|
| +<script id="parse-inline">
|
| +verify('parse-inline');
|
| +finish('parse-inline')
|
| +</script>
|
| +<script id="parse-ext" src="data:text/plain,verify('parse-ext')"></script>
|
| +<script>finish('parse-ext');</script>
|
| +
|
| +<!-- Test DOM inserted scripts -->
|
| +<script>
|
| +var s = document.createElement("script");
|
| +s.textContent = "verify('dom-inline');";
|
| +s.id = "dom-inline";
|
| +document.body.appendChild(s);
|
| +finish('dom-inline');
|
| +
|
| +s = document.createElement("script");
|
| +s.src = "data:text/plain,verify('dom-ext');";
|
| +s.id = "dom-ext";
|
| +s.onload = function() {
|
| + finish('dom-ext');
|
| +}
|
| +document.body.appendChild(s);
|
| +</script>
|
| +
|
| +<!-- Test Nested scripts -->
|
| +<script id="nested-outer">
|
| + verify("nested");
|
| + var s = document.createElement("script");
|
| + s.textContent = "verify('nested')";
|
| + s.id = "nested-inner";
|
| + document.body.appendChild(s);
|
| + verify("nested");
|
| + finish('nested');
|
| +</script>
|
| +
|
| +<!-- Test script load error event listener -->
|
| +<script>
|
| +function testLoadFail() {
|
| + verify('script-load-error');
|
| + finish('script-load-error');
|
| +}
|
| +</script>
|
| +
|
| +<script src="http://some.nonexistant.test/fail" id="script-load-error" onerror="testLoadFail()">
|
| +</script>
|
| +
|
| +<!-- Test for runtime and compile time errors -->
|
| +<script>
|
| + window.onerror = function() {
|
| + verify('script-window-error');
|
| + }
|
| +
|
| + var s = document.createElement("script");
|
| + s.id = "script-error-compile";
|
| + s.textContent = "{";
|
| + document.body.appendChild(s);
|
| +
|
| + window.onerror = function() {
|
| + verify('script-window-error');
|
| + }
|
| +
|
| + s = document.createElement("script");
|
| + s.id = "script-error-runtime";
|
| + s.textContent = "undefinedfn();";
|
| + document.body.appendChild(s);
|
| +
|
| + finish('script-window-error');
|
| +</script>
|
| +
|
| +<!-- Verify in setTimeout -->
|
| +<script>
|
| + setTimeout(function() {
|
| + verify('timeout');
|
| + finish('timeout');
|
| + },0);
|
| +</script>
|
| +
|
| +<!-- Verify in eval -->
|
| +<script id="eval">
|
| + eval('verify("eval")');
|
| + finish("eval");
|
| +</script>
|
| +
|
| +<!-- Verify in synchronous xhr -->
|
| +<script id="xhr-test">
|
| + var request = new XMLHttpRequest();
|
| + request.open('GET','/',false);
|
| + request.send(null);
|
| +
|
| + if(request.status === 200) {
|
| + verify('xhr-test');
|
| + finish('xhr-test');
|
| + }
|
| +</script>
|
| +
|
| +<!-- Testing script within svg -->
|
| +<svg>
|
| + <script id="script-svg">
|
| + verify('script-svg');
|
| + finish('script-svg');
|
| + </script>
|
| +</svg>
|
| +
|
| +<!-- Test script async and defer -->
|
| +<script id='script-async' async src='data:text/plain,verify("script-async"),finish("script-async")'></script>
|
| +
|
| +<script id='script-defer' defer src='data:text/plain,verify("script-defer"),finish("script-defer")'></script>
|
| +
|
| +<!-- Test async = false dynamic script loading -->
|
| +<script>
|
| + var s = document.createElement("script");
|
| + s.id = "script-async-false";
|
| + s.src = "data:text/plain,verify('script-async-false');"
|
| + s.onload = function() {
|
| + finish('script-async-false');
|
| + }
|
| + s.async = false;
|
| + document.body.appendChild(s);
|
| +</script>
|
| +
|
| +<!-- Verify in iframe javascript uri scheme -->
|
| +<iframe src="javascript:parent.verify('iframe-src'),parent.finish('iframe-src')"
|
| + style="visibility:hidden;display:none">
|
| +</iframe>
|
| +
|
| +<!-- Testing cross origin script -->
|
| +<script>
|
| +var s = document.createElement("script");
|
| +s.id = "cross-origin";
|
| +s.src = get_host_info(). HTTP_REMOTE_ORIGIN + "/html/dom/documents/dom-tree-accessors/cross-domain.js"
|
| +s.onload = function() {
|
| + verify('cross-origin')
|
| + finish('cross-origin');
|
| +}
|
| +document.body.appendChild(s);
|
| +
|
| +</script>
|
| +
|
| +<!-- Testing document.write -->
|
| +<script>
|
| +document.write('<script id="document-write">verify("document-write"); finish("document-write");</' + 'script>');
|
| +</script>
|
|
|