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