blob: b3f773bbd8c934d697a3dab6eee38b425ccd4802 [file] [log] [blame]
<!DOCTYPE html>
<html>
<head>
<script src="../../../resources/js-test.js"></script>
<script src="resources/shadow-dom.js"></script>
</head>
<body>
<div id="console"></div>
<div id="sandbox"></div>
<script>
description("Tests for TreeScope.comparePosition().");
document.getElementById('sandbox').appendChild(
createDOM('div', {'id': 'a1'},
createDOM('div', {'id': 'a2'},
createShadowRoot({'id': 'sr1'},
createDOM('div', {'id': 'b1'},
createDOM('div', {'id': 'b2'}),
createDOM('div', {'id': 'b3'})))),
createDOM('div', {'id': 'a3'},
createShadowRoot({'id': 'sr2'},
createDOM('div', {'id': 'c1'},
createDOM('div', {'id': 'c2'},
createShadowRoot({'id': 'sr3'},
createDOM('div', {'id': 'c3'}))))))));
var sr1, sr2, sr3;
function testCompareTreeScopePosition()
{
var sandbox = document.getElementById('sandbox');
document.body.offsetLeft;
sr1 = getNodeInComposedTree('a2/');
sr2 = getNodeInComposedTree('a3/');
sr3 = getNodeInComposedTree('a3/c2/');
shouldBe('internals.compareTreeScopePosition(document, sr1)', 'Node.DOCUMENT_POSITION_CONTAINED_BY | Node.DOCUMENT_POSITION_FOLLOWING');
shouldBe('internals.compareTreeScopePosition(sr1, document)', 'Node.DOCUMENT_POSITION_CONTAINS | Node.DOCUMENT_POSITION_PRECEDING');
shouldBe('internals.compareTreeScopePosition(sr1, sr2)', 'Node.DOCUMENT_POSITION_FOLLOWING');
shouldBe('internals.compareTreeScopePosition(sr2, sr1)', 'Node.DOCUMENT_POSITION_PRECEDING');
shouldBe('internals.compareTreeScopePosition(sr2, sr3)', 'Node.DOCUMENT_POSITION_CONTAINED_BY | Node.DOCUMENT_POSITION_FOLLOWING');
shouldBe('internals.compareTreeScopePosition(sr3, sr2)', 'Node.DOCUMENT_POSITION_CONTAINS | Node.DOCUMENT_POSITION_PRECEDING');
shouldBe('internals.compareTreeScopePosition(sr1, sr3)', 'Node.DOCUMENT_POSITION_FOLLOWING');
shouldBe('internals.compareTreeScopePosition(sr3, sr1)', 'Node.DOCUMENT_POSITION_PRECEDING');
shouldBe('internals.compareTreeScopePosition(document, document)', '0');
shouldBe('internals.compareTreeScopePosition(sr1, sr1)', '0');
getNodeInComposedTree('a3/c1').removeChild(getNodeInComposedTree('a3/c2'));
shouldBeNonZero('internals.compareTreeScopePosition(sr3, sr2) & Node.DOCUMENT_POSITION_PRECEDING || internals.compareTreeScopePosition(sr3, sr2) & Node.DOCUMENT_POSITION_FOLLOWING');
shouldBe('internals.compareTreeScopePosition(sr3, sr2) & Node.DOCUMENT_POSITION_DISCONNECTED', 'Node.DOCUMENT_POSITION_DISCONNECTED');
shouldBe('internals.compareTreeScopePosition(sr3, sr2) & Node.DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC', 'Node.DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC');
shouldBe('internals.compareTreeScopePosition(sr3, sr2)', 'internals.compareTreeScopePosition(sr3, sr2)');
}
testCompareTreeScopePosition();
</script>
</body>
</html>