//-------------------------------------------------------------------------------------------------------
// Java script library to run traversal layout tests
function dumpNodeIterator(it, expectedResult) {
var string = '<p><b>Expect ' + expectedResult + '</b>: ';
var checkIt = document.createNodeIterator(root, NodeFilter.SHOW_ELEMENT, testNodeFiter, false);
var printedPointer = false;
while (1) {
var node = checkIt.nextNode();
if (!node)
break;
if (!printedPointer && (it.referenceNode == node || it.referenceNode == undefined)) {
printedPointer = true;
var s = it.referenceNode == undefined ? node.id + ' ' : '[' + node.id + '] ';
if (it.pointerBeforeReferenceNode)
string += "* " + s;
else
string += s + "* ";
}
else {
string += node.id + " ";
}
}
return string;
}
//-------------------------------------------------------------------------------------------------------
function nodeDepth(node) {
var depth = 0;
while ((node = node.parentNode))
depth++;
return depth;
}
//-------------------------------------------------------------------------------------------------------
function dumpTreeWalker(tw, root, start, backwards) {
var string = '<p><b>Tree Walker: </b><br>';
if (root == undefined)
root = tw.currentNode;
var rootDepth = nodeDepth(root);
if (start == undefined)
start = root;
tw.currentNode = start;
string += start.id + '<br>';
while (1) {
var current = tw.currentNode;
if (backwards == undefined)
tw.nextNode();
else
backwards ? tw.previousNode() : tw.nextNode();
var n = tw.currentNode;
if (current == n)
break;
var depth = nodeDepth(n) - rootDepth;
for (i = 0; i < depth; i++)
string += ' ';
string += n.id + '<br>';
}
return string;
}
//-------------------------------------------------------------------------------------------------------