OLD | NEW |
1 <!DOCTYPE html> | 1 <!DOCTYPE html> |
2 <html> | 2 <html> |
3 <head> | 3 <head> |
4 <meta name='author' title='Google' href='http://www.google.com'> | 4 <meta name='author' title='Google' href='http://www.google.com'> |
5 <meta name='assert' content='document attributes that returns HTMLCollection sho
uld not expose nodes in shadow tree.'> | 5 <meta name='assert' content='document attributes that returns HTMLCollection sho
uld not expose nodes in shadow tree.'> |
6 <link rel='help' href='https://w3c.github.io/webcomponents/spec/shadow/'> | 6 <link rel='help' href='https://w3c.github.io/webcomponents/spec/shadow/'> |
7 <script src='../../../../resources/testharness.js'></script> | 7 <script src='../../../../resources/testharness.js'></script> |
8 <script src='../../../../resources/testharnessreport.js'></script> | 8 <script src='../../../../resources/testharnessreport.js'></script> |
9 </head> | 9 </head> |
10 <body> | 10 <body> |
11 <template id='collection-template'> | 11 <template id='collection-template'> |
12 <img> | 12 <img> |
13 <embed></embed> | 13 <embed></embed> |
14 <plugin></plugin> | 14 <plugin></plugin> |
15 <applet></applet> | 15 <applet></applet> |
16 <object type='application/x-java-applet'></object> | 16 <object type='application/x-java-applet'></object> |
17 <a href='http://example.com'></a> | 17 <a href='http://example.com'></a> |
18 <a name='test'></a> | 18 <a name='test'></a> |
19 <form name='test'></form> | 19 <form name='test'></form> |
20 <script></script> | 20 <script></script> |
21 </template> | 21 </template> |
22 <div id='doc'></div> | 22 <div id='doc'></div> |
23 <div id='host'></div> | 23 <div id='host-open'></div> |
| 24 <div id='host-closed'></div> |
24 </body> | 25 </body> |
25 <script> | 26 <script> |
26 'use strict'; | 27 'use strict'; |
27 | 28 |
28 function fillTemplate(root, prefix) { | 29 function fillTemplate(root, prefix) { |
29 var tmpl = document.getElementById('collection-template'); | 30 var tmpl = document.getElementById('collection-template'); |
30 root.appendChild(document.importNode(tmpl.content, true)); | 31 root.appendChild(document.importNode(tmpl.content, true)); |
31 for (var i = 0; i < root.childNodes.length; ++i) { | 32 for (var i = 0; i < root.childNodes.length; ++i) { |
32 var el = root.childNodes[i]; | 33 var el = root.childNodes[i]; |
33 if (el.nodeType != 1) | 34 if (el.nodeType != 1) |
34 continue; | 35 continue; |
35 el.id = prefix + el.tagName.toLowerCase(); | 36 el.id = prefix + el.tagName.toLowerCase(); |
36 } | 37 } |
37 } | 38 } |
38 | 39 |
39 // Construct subtree with 'doc-*' ids. | 40 // Construct subtree with 'doc-*' ids. |
40 var doc = document.getElementById('doc'); | 41 var doc = document.getElementById('doc'); |
41 fillTemplate(doc, 'doc-'); | 42 fillTemplate(doc, 'doc-'); |
42 | 43 |
43 // Construct shadow subtree with 'shadow-*' ids. | 44 // Construct shadow subtree with 'shadow-*' ids. |
44 var host = document.getElementById('host'); | 45 var host = document.getElementById('host-open'); |
45 var shadow = host.attachShadow({mode: 'open'}); | 46 var shadow = host.attachShadow({mode: 'open'}); |
46 fillTemplate(shadow, 'shadow-'); | 47 fillTemplate(shadow, 'shadow-open-'); |
| 48 |
| 49 host = document.getElementById('host-closed'); |
| 50 shadow = host.attachShadow({mode: 'closed'}); |
| 51 fillTemplate(shadow, 'shadow-closed-'); |
47 | 52 |
48 function testCollection(collection) { | 53 function testCollection(collection) { |
49 var elements = document[collection]; | 54 var elements = document[collection]; |
50 assert_greater_than(elements.length, 0, 'document.' + collection + ' should
have at least 1 element.'); | 55 assert_greater_than(elements.length, 0, 'document.' + collection + ' should
have at least 1 element.'); |
51 for (var i = 0; i < elements.length; ++i) { | 56 for (var i = 0; i < elements.length; ++i) { |
52 if (elements[i].id) { | 57 if (elements[i].id) { |
53 assert_equals(elements[i].id.indexOf('shadow-'), -1, 'document.' + c
ollection + ' should not contain elements in shadow tree.'); | 58 assert_equals(elements[i].id.indexOf('shadow-'), -1, 'document.' + c
ollection + ' should not contain elements in shadow tree.'); |
54 } | 59 } |
55 } | 60 } |
56 } | 61 } |
57 | 62 |
58 var testParams = [ | 63 var testParams = [ |
59 ['document.scripts should not contain shadow nodes', 'scripts'], | 64 ['document.scripts should not contain shadow nodes', 'scripts'], |
60 ['document.all should not contain shadow nodes', 'all'], | 65 ['document.all should not contain shadow nodes', 'all'], |
61 ['document.forms should not contain shadow nodes', 'forms'], | 66 ['document.forms should not contain shadow nodes', 'forms'], |
62 ['document.images should not contain shadow nodes', 'images'], | 67 ['document.images should not contain shadow nodes', 'images'], |
63 ['document.links should not contain shadow nodes', 'links'], | 68 ['document.links should not contain shadow nodes', 'links'], |
64 ['document.anchors should not contain shadow nodes', 'anchors'], | 69 ['document.anchors should not contain shadow nodes', 'anchors'], |
65 ['document.embeds should not contain shadow nodes', 'embeds'], | 70 ['document.embeds should not contain shadow nodes', 'embeds'], |
66 ['document.plugins should not contain shadow nodes', 'plugins'], | 71 ['document.plugins should not contain shadow nodes', 'plugins'], |
67 ['document.applets should not contain shadow nodes', 'applets']]; | 72 ['document.applets should not contain shadow nodes', 'applets']]; |
68 | 73 |
69 generate_tests(testCollection, testParams); | 74 generate_tests(testCollection, testParams); |
70 | 75 |
71 </script> | 76 </script> |
72 </html> | 77 </html> |
OLD | NEW |