<!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="traversal-support.js"></script>
<link rel="stylesheet" href="/resources/testharness.css">
<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>
