summaryrefslogtreecommitdiffstats
path: root/testing/web-platform/tests/dom/traversal/TreeWalker-walking-outside-a-tree.html
blob: b99e33e01faa6d4a9e6b1044ba0efb689c24e09b (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
<!DOCTYPE html>
<html>
<!--
Test adapted from https://github.com/operasoftware/presto-testo/blob/master/core/standards/acid3/individual/006a.html
-->
<head>
<title>TreeWalker: walking-outside-a-tree</title>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="support/assert-node.js"></script>
<div id=log></div>
</head>
<body>
<p>[Acid3 - Test 006a] walking outside a tree</p>
<script>
test(function () {
    // test 6: walking outside a tree
    var doc = document.createElement("div");
    var head = document.createElement('head');
    var title = document.createElement('title');
    var body = document.createElement('body');
    var p = document.createElement('p');
    doc.appendChild(head);
    head.appendChild(title);
    doc.appendChild(body);
    body.appendChild(p);

    var w = document.createTreeWalker(body, 0xFFFFFFFF, null);
    doc.removeChild(body);
    assert_equals(w.lastChild(), p, "TreeWalker failed after removing the current node from the tree");
    doc.appendChild(p);
    assert_equals(w.previousNode(), title, "failed to handle regrafting correctly");
    p.appendChild(body);
    assert_equals(w.nextNode(), p, "couldn't retrace steps");
    assert_equals(w.nextNode(), body, "couldn't step back into root");
    assert_equals(w.previousNode(), null, "root didn't retake its rootish position");
}, "walking outside a tree");
</script>
</body>
</html>