summaryrefslogtreecommitdiffstats
path: root/third_party/WebKit/LayoutTests/fast/dom/compare-document-position-disconnected-nodes.html
blob: cff4fdb305bc78f76f878e588a241805b7df374c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
<!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>