| <!DOCTYPE html> |
| <html> |
| <head> |
| <script src="../../../resources/js-test-pre.js"></script> |
| <script src="resources/shadow-dom.js"></script> |
| </head> |
| <body> |
| <div id="console"></div> |
| <div id="sandbox"></div> |
| <script> |
| description("Tests for Node.compareDocumentPosition() for nodes in shadow tree."); |
| |
| if (window.testRunner) |
| testRunner.dumpAsText(); |
| |
| document.getElementById('sandbox').appendChild( |
| createDOM('div', {'id': 'a1'}, |
| createDOM('div', {'id': 'a2'}, |
| createShadowRoot(createDOM('div', {'id': 'b1'}, |
| createDOM('div', {'id': 'b2'}), |
| createDOM('div', {'id': 'b3'})))), |
| createDOM('div', {'id': 'a3'}, |
| createShadowRoot(createDOM('div', {'id': 'c1'}))))); |
| |
| var a1, a2, a3, b1, b2, b3, c1; |
| |
| function testCompareDocumentPosition() |
| { |
| var sandbox = document.getElementById('sandbox'); |
| document.body.offsetLeft; |
| |
| a1 = document.getElementById('a1'); |
| a2 = document.getElementById('a2'); |
| a3 = document.getElementById('a3'); |
| b1 = getNodeInShadowTreeStack('a2/b1'); |
| b2 = getNodeInShadowTreeStack('a2/b2'); |
| b3 = getNodeInShadowTreeStack('a2/b3'); |
| c1 = getNodeInShadowTreeStack('a3/c1'); |
| |
| shouldBe('a1.compareDocumentPosition(a2)', 'Node.DOCUMENT_POSITION_CONTAINED_BY | Node.DOCUMENT_POSITION_FOLLOWING'); |
| shouldBe('a2.compareDocumentPosition(a1)', 'Node.DOCUMENT_POSITION_CONTAINS | Node.DOCUMENT_POSITION_PRECEDING'); |
| shouldBe('a2.compareDocumentPosition(a3)', 'Node.DOCUMENT_POSITION_FOLLOWING'); |
| |
| shouldBe('b1.compareDocumentPosition(b2)', 'Node.DOCUMENT_POSITION_CONTAINED_BY | Node.DOCUMENT_POSITION_FOLLOWING'); |
| shouldBe('b2.compareDocumentPosition(b1)', 'Node.DOCUMENT_POSITION_CONTAINS | Node.DOCUMENT_POSITION_PRECEDING'); |
| shouldBe('b2.compareDocumentPosition(b3)', 'Node.DOCUMENT_POSITION_FOLLOWING'); |
| |
| // Nodes in different shadow trees. |
| shouldBeNonZero('a1.compareDocumentPosition(b1) & Node.DOCUMENT_POSITION_PRECEDING || a1.compareDocumentPosition(b1) & Node.DOCUMENT_POSITION_FOLLOWING'); |
| shouldBe('a1.compareDocumentPosition(b1) & Node.DOCUMENT_POSITION_DISCONNECTED', 'Node.DOCUMENT_POSITION_DISCONNECTED'); |
| shouldBe('a1.compareDocumentPosition(b1) & Node.DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC', 'Node.DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC'); |
| shouldBe('a1.compareDocumentPosition(b1)', 'a1.compareDocumentPosition(b1)'); |
| shouldBeNonZero('b1.compareDocumentPosition(c1) & Node.DOCUMENT_POSITION_PRECEDING || b1.compareDocumentPosition(c1) & Node.DOCUMENT_POSITION_FOLLOWING'); |
| shouldBe('b1.compareDocumentPosition(c1) & Node.DOCUMENT_POSITION_DISCONNECTED', 'Node.DOCUMENT_POSITION_DISCONNECTED'); |
| shouldBe('b1.compareDocumentPosition(c1) & Node.DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC', 'Node.DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC'); |
| shouldBe('b1.compareDocumentPosition(c1)', 'b1.compareDocumentPosition(c1)'); |
| } |
| |
| testCompareDocumentPosition(); |
| </script> |
| <script src="../../../resources/js-test-post.js"></script> |
| </body> |
| </html> |