| <!doctype html> |
| <script src="../../resources/js-test.js"></script> |
| <script src="../../fast/dom/shadow/resources/shadow-dom.js"></script> |
| <body> |
| <div id="parent"></div> |
| </body> |
| <script> |
| function prepareShadowTree() { |
| var parent = document.getElementById('parent'); |
| parent.appendChild( |
| createDOM('div', {id: 'toplevel'}, |
| createDOM('div', {id: 'openhost'}, |
| attachShadow({mode: 'open'}, |
| createDOM('div', {id: 'v0host_in_openshadow'}, |
| createShadowRoot( |
| createDOM('div', {id: 'div_v0_in_open'}))), |
| createDOM('div', {id: 'openhost_in_openshadow'}, |
| attachShadow({'mode': 'open'}, |
| createDOM('div', {id: 'div_open_in_open'}))), |
| createDOM('div', {id: 'closedhost_in_openshadow'}, |
| attachShadow({'mode': 'closed'}, |
| createDOM('div', {id: 'div_closed_in_open'}))))), |
| createDOM('div', {id: 'closedhost'}, |
| attachShadow({mode: 'closed'}, |
| createDOM('div', {id: 'v0host_in_closedshadow'}, |
| createShadowRoot( |
| createDOM('div', {id: 'div_v0_in_closed'}))), |
| createDOM('div', {id: 'openhost_in_closedshadow'}, |
| attachShadow({'mode': 'open'}, |
| createDOM('div', {id: 'div_open_in_closed'}))), |
| createDOM('div', {id: 'closedhost_in_closedshadow'}, |
| attachShadow({'mode': 'closed'}, |
| createDOM('div', {id: 'div_closed_in_closed'}))))), |
| createDOM('div', {id: 'v0host'}, |
| createShadowRoot( |
| createDOM('div', {id: 'v0host_in_v0host'}, |
| createShadowRoot( |
| createDOM('div', {id: 'div_v0_in_v0'}))), |
| createDOM('div', {id: 'openhost_in_v0host'}, |
| attachShadow({'mode': 'open'}, |
| createDOM('div', {id: 'div_open_in_v0'}))), |
| createDOM('div', {id: 'closedhost_in_v0host'}, |
| attachShadow({'mode': 'closed'}, |
| createDOM('div', {id: 'div_closed_in_v0'}))))))); |
| } |
| |
| prepareShadowTree(); |
| |
| var parent = document.getElementById('parent'); |
| var result = parent.querySelectorAll("div /deep/ div /deep/ div"); |
| shouldBe('result.length', '7'); |
| |
| var expected = [ |
| 'openhost', |
| 'closedhost', |
| 'v0host', |
| 'v0host_in_v0host', |
| 'div_v0_in_v0', |
| 'openhost_in_v0host', |
| 'closedhost_in_v0host' |
| ]; |
| |
| var node; |
| for (var i = 0; i < result.length; ++i) { |
| node = result[i]; |
| shouldBeEqualToString('node.id', expected[i]); |
| } |
| </script> |