//------------------------------------------------------------------------------------------------------- // 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; } //-------------------------------------------------------------------------------------------------------