| <!DOCTYPE html> |
| <html> |
| <head> |
| <script src="resources/shadow-dom.js"></script> |
| <script src="../../../resources/js-test.js"></script> |
| </head> |
| <body> |
| </body> |
| <script> |
| document.body.appendChild( |
| createDOM('div', {'id': 'foo-host'}, |
| createShadowRoot( |
| createDOM('div', {}, |
| createDOM('span', {'id': 'not-top1'})), |
| createDOM('span', {'id': 'top1'})), |
| createShadowRoot( |
| createDOM('div', {}, |
| createDOM('span', {'id': 'not-top2'})), |
| createDOM('span', {'id': 'top2'})), |
| createShadowRoot( |
| createDOM('div', {}, |
| createDOM('span', {'id': 'not-top3'})), |
| createDOM('span', {'id': 'top3'})))); |
| |
| document.body.appendChild( |
| createDOM('pre', {'id': 'console'})); |
| |
| description('crbug.com/337616: test for querySelectorAll with ::shadow and /deep/'); |
| |
| var shadowRoot1 = getNodeInComposedTree('foo-host/'); |
| var shadowRoot2 = getNodeInComposedTree('foo-host//'); |
| var shadowRoot3 = getNodeInComposedTree('foo-host///'); |
| |
| shouldBe('document.querySelectorAll("#foo-host::shadow span").length', '6'); |
| shouldBe('document.querySelectorAll("#foo-host::shadow span")[0].id', '"not-top1"'); |
| shouldBe('document.querySelectorAll("#foo-host::shadow span")[1].id', '"top1"'); |
| shouldBe('document.querySelectorAll("#foo-host::shadow span")[2].id', '"not-top2"'); |
| shouldBe('document.querySelectorAll("#foo-host::shadow span")[3].id', '"top2"'); |
| shouldBe('document.querySelectorAll("#foo-host::shadow span")[4].id', '"not-top3"'); |
| shouldBe('document.querySelectorAll("#foo-host::shadow span")[5].id', '"top3"'); |
| |
| shouldBe('shadowRoot1.querySelectorAll(":host::shadow span").length', '2'); |
| shouldBe('shadowRoot1.querySelectorAll(":host::shadow span")[0].id', '"not-top1"'); |
| shouldBe('shadowRoot1.querySelectorAll(":host::shadow span")[1].id', '"top1"'); |
| |
| shouldBe('shadowRoot2.querySelectorAll(":host::shadow span").length', '2'); |
| shouldBe('shadowRoot2.querySelectorAll(":host::shadow span")[0].id', '"not-top2"'); |
| shouldBe('shadowRoot2.querySelectorAll(":host::shadow span")[1].id', '"top2"'); |
| |
| shouldBe('shadowRoot3.querySelectorAll(":host::shadow span").length', '2'); |
| shouldBe('shadowRoot3.querySelectorAll(":host::shadow span")[0].id', '"not-top3"'); |
| shouldBe('shadowRoot3.querySelectorAll(":host::shadow span")[1].id', '"top3"'); |
| </script> |
| </html> |
| |