1 description('Test for a specific problem with previousSibling that failed in older versions of WebKit.'); 2 3 var testElement = document.createElement("div"); 4 testElement.innerHTML='<div id="A1"><div id="B1"><div id="C1"></div><div id="C2"><div id="D1"></div><div id="D2"></div></div></div><div id="B2"><div id="C3"></div><div id="C4"></div></div></div>'; 5 6 function filter(node) 7 { 8 if (node.id == "B1") 9 return NodeFilter.FILTER_SKIP; 10 return NodeFilter.FILTER_ACCEPT; 11 } 12 13 var walker = document.createTreeWalker(testElement, NodeFilter.SHOW_ELEMENT, filter, false); 14 15 shouldBe("walker.firstChild(); walker.currentNode.id", "'A1'"); 16 shouldBe("walker.nextNode(); walker.currentNode.id", "'C1'"); 17 shouldBe("walker.nextNode(); walker.currentNode.id", "'C2'"); 18 shouldBe("walker.nextNode(); walker.currentNode.id", "'D1'"); 19 shouldBe("walker.nextNode(); walker.currentNode.id", "'D2'"); 20 shouldBe("walker.nextNode(); walker.currentNode.id", "'B2'"); 21 shouldBe("walker.previousSibling(); walker.currentNode.id", "'C2'"); 22 23 var successfullyParsed = true; 24