<!DOCTYPE html>
<html>
<head>
<script src="../../resources/js-test.js"></script>
<script>
var a;
var b;
function testElements(_a, _b) {
a = _a;
b = _b;
shouldBe('a.compareDocumentPosition(b) & Node.DOCUMENT_POSITION_DISCONNECTED', 'Node.DOCUMENT_POSITION_DISCONNECTED');
shouldBe('b.compareDocumentPosition(a) & Node.DOCUMENT_POSITION_DISCONNECTED', 'Node.DOCUMENT_POSITION_DISCONNECTED');
shouldBe('a.compareDocumentPosition(b) & Node.DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC', 'Node.DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC');
shouldBe('b.compareDocumentPosition(a) & Node.DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC', 'Node.DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC');
shouldNotBe('a.compareDocumentPosition(b) & Node.DOCUMENT_POSITION_PRECEDING', 'b.compareDocumentPosition(a) & Node.DOCUMENT_POSITION_PRECEDING');
shouldNotBe('a.compareDocumentPosition(b) & Node.DOCUMENT_POSITION_FOLLOWING', 'b.compareDocumentPosition(a) & Node.DOCUMENT_POSITION_FOLLOWING');
shouldBeNonZero('a.compareDocumentPosition(b) & Node.DOCUMENT_POSITION_PRECEDING || a.compareDocumentPosition(b) & Node.DOCUMENT_POSITION_FOLLOWING');
shouldBeNonZero('b.compareDocumentPosition(a) & Node.DOCUMENT_POSITION_PRECEDING || b.compareDocumentPosition(a) & Node.DOCUMENT_POSITION_FOLLOWING');
// Make sure the returned result is consistent.
shouldBe('a.compareDocumentPosition(b)', 'a.compareDocumentPosition(b)');
shouldBe('b.compareDocumentPosition(a)', 'b.compareDocumentPosition(a)');
}
debug("* Test with 2 disconnected elements");
testElements(document.createElement('a'), document.createElement('b'));
debug("* Test with document and a disconnected element");
testElements(document, document.createElement('b'));
debug("* Test with document and a disconnected attribute");
testElements(document, document.createAttribute('b'));
debug("* Test with 2 disconnected attributes");
testElements(document.createAttribute("a"), document.createAttribute("b"));
debug("* Test with disconnected attribute and element");
testElements(document.createAttribute("a"), document.createElement("b"));
</script>
</head>
<body>
<p>Comparing the positions of two disconnected nodes should result in DOCUMENT_POSITION_DISCONNECTED.</p>
</body>
</html>