Index: LayoutTests/imported/web-platform-tests/custom-elements/creating-and-passing-registries/share-registry-import-document.html |
diff --git a/LayoutTests/imported/web-platform-tests/custom-elements/creating-and-passing-registries/share-registry-import-document.html b/LayoutTests/imported/web-platform-tests/custom-elements/creating-and-passing-registries/share-registry-import-document.html |
new file mode 100644 |
index 0000000000000000000000000000000000000000..602d7aef2250020e2f4b78813e7dbb97a10ebacf |
--- /dev/null |
+++ b/LayoutTests/imported/web-platform-tests/custom-elements/creating-and-passing-registries/share-registry-import-document.html |
@@ -0,0 +1,96 @@ |
+<!DOCTYPE html> |
+<html> |
+<head> |
+<title>When creating an import, use the registry of the master document</title> |
+<meta name="author" title="Sergey G. Grekhov" href="mailto:sgrekhov@unipro.ru"> |
+<meta name="assert" content="When creating an import, use the registry of the master document."> |
+<link rel="help" href="http://www.w3.org/TR/custom-elements/#creating-and-passing-registries"> |
+<script src="../../../../resources/testharness.js"></script> |
+<script src="../../../../resources/testharnessreport.js"></script> |
+<script src="../testcommon.js"></script> |
+<link rel="stylesheet" href="../../../../resources/testharness.css"> |
+</head> |
+<body> |
+<div id="log"></div> |
+<script> |
+var test1 = async_test('Registry of the imported document should be shared with master document. ' + |
+ 'Import is asynchronous'); |
+test1.step(function() { |
+ var iframe = newIFrame('../resources/import-master-async.html'); |
+ document.body.appendChild(iframe); |
+ iframe.onload = test1.step_func(function() { |
+ var doc = iframe.contentDocument; |
+ var link = doc.querySelector('link[rel=import]'); |
+ link.onload = test1.step_func(function() { |
+ try { |
+ var doc2 = link.import; |
+ var name = 'x-frame'; |
+ doc.registerElement(name); |
+ assert_throws( |
+ 'NotSupportedError', |
+ function() { doc2.registerElement(name); }, |
+ 'Registering a custom element type name that is already registered in a shared ' + |
+ 'registry should throw an exception'); |
+ test1.done(); |
+ } finally { |
+ iframe.remove(); |
+ } |
+ }); |
+ }); |
+}); |
+ |
+ |
+var test2 = async_test('Registry of the master document should be shared with imported document. ' + |
+ 'Import is asynchronous'); |
+test2.step(function() { |
+ var iframe = newIFrame('../resources/import-master-async.html'); |
+ document.body.appendChild(iframe); |
+ iframe.onload = test2.step_func(function() { |
+ var doc = iframe.contentDocument; |
+ var link = doc.querySelector('link[rel=import]'); |
+ link.onload = test2.step_func(function() { |
+ try { |
+ var doc2 = link.import; |
+ var name = 'x-frame'; |
+ doc2.registerElement(name); |
+ assert_throws( |
+ 'NotSupportedError', |
+ function() { doc.registerElement(name); }, |
+ 'Registering a custom element type name that is already registered in a shared ' + |
+ 'registry should throw an exception'); |
+ test2.done(); |
+ } finally { |
+ iframe.remove(); |
+ } |
+ }); |
+ }); |
+}); |
+ |
+ |
+testInIFrame('../resources/import-master.html', function(doc) { |
+ var link = doc.querySelector('link[rel=import]'); |
+ var doc2 = link.import; |
+ var name = 'x-frame'; |
+ doc.registerElement(name); |
+ assert_throws( |
+ 'NotSupportedError', |
+ function() { doc2.registerElement(name); }, |
+ 'Registering a custom element type name that is already registered in a shared ' + |
+ 'registry should throw an exception'); |
+}, 'Registry of the imported document should be shared with master document. Import is syncronous'); |
+ |
+ |
+testInIFrame('../resources/import-master.html', function(doc) { |
+ var link = doc.querySelector('link[rel=import]'); |
+ var doc2 = link.import; |
+ var name = 'x-frame'; |
+ doc2.registerElement(name); |
+ assert_throws( |
+ 'NotSupportedError', |
+ function() { doc.registerElement(name); }, |
+ 'Registering a custom element type name that is already registered in a shared ' + |
+ 'registry should throw an exception'); |
+}, 'Registry of the master document should be shared with imported document. Import is syncronous'); |
+</script> |
+</body> |
+</html> |