Update shadow DOM and custom elements tests
[WebKit-https.git] / LayoutTests / imported / w3c / web-platform-tests / shadow-dom / Document-prototype-currentScript.html
index 867cea9..176ef34 100644 (file)
@@ -1,6 +1,7 @@
 <!DOCTYPE html>
 <html>
 <head>
+<meta charset=utf-8>
 <title>HTML: Document.prototype.currentScript</title>
 <meta name="author" title="Ryosuke Niwa" href="mailto:rniwa@webkit.org">
 <meta name="assert" content="If the script element is in a document, then set the script element's node document's currentScript attribute to the script element.">
 <div id="log"></div>
 <script id="outerScriptElement">
 
+function assert_shadowdom_supported() {
+  assert_true('attachShadow' in document.createElement('div'), 'Shadow DOM is not supported');
+}
+
 var outerScriptElement = document.currentScript;
 
 function testInlineScript(mode)
 {
     test(function () {
+        assert_shadowdom_supported();
         var host = document.createElement('div');
         var shadowRoot = host.attachShadow({mode: mode});
         var scriptElement = document.createElement('script');
@@ -40,11 +46,16 @@ var testedScriptElement = null;
 function executeNextTest()
 {
     var testCase = asyncScriptTests.shift();
-    var mode = testCase.mode;
     if (!testCase)
         return;
 
+    var mode = testCase.mode;
+
+    testCase.test.add_cleanup(() => {
+        setTimeout(executeNextTest, 1);
+    });
     testCase.test.step(function () {
+        assert_shadowdom_supported();
         testedScriptElement = document.createElement('script');
         testedScriptElement.src = 'resources/Document-prototype-currentScript-helper.js';
 
@@ -66,7 +77,6 @@ function executeNextTest()
             assert_equals(document.currentScript, testCase.expected());
         });
         testCase.test.done();
-        setTimeout(executeNextTest, 1);
     }
 }
 
@@ -75,7 +85,7 @@ var asyncScriptTests = [
         test: async_test('document.currentScript must be set to a script element that loads an external script in a document tree'),
         mode: null, remove: false, expected: function () { return testedScriptElement; }},
     {
-        test: async_test('document.currentScript must be set to a script element that loads an external script in a document tree'),
+        test: async_test('document.currentScript must be set to a script element that loads an external script in a document tree (2)'),
         mode: null, remove: true, expected: function () { return testedScriptElement; }},
     {
         test: async_test('document.currentScript must not be set to a script element that loads an external script in an open shadow tree'),