X-Git-Url: https://git.webkit.org/?p=WebKit-https.git;a=blobdiff_plain;f=LayoutTests%2Fimported%2Fw3c%2Fweb-platform-tests%2Fdom%2Ftraversal%2FTreeWalker.html;h=2570c9a200682ff3844d116308da13c4bdbe5fff;hp=e0e285a779db3a12b2919e67afd04a10522686fa;hb=abd0dde236e5a7aad47fcc00ae67ff9300f97edb;hpb=d3cf29ea4a857c2a59a9a810bafd39dc8ce27367 diff --git a/LayoutTests/imported/w3c/web-platform-tests/dom/traversal/TreeWalker.html b/LayoutTests/imported/w3c/web-platform-tests/dom/traversal/TreeWalker.html index e0e285a779db..2570c9a20068 100644 --- a/LayoutTests/imported/w3c/web-platform-tests/dom/traversal/TreeWalker.html +++ b/LayoutTests/imported/w3c/web-platform-tests/dom/traversal/TreeWalker.html @@ -11,6 +11,32 @@ // TODO .previousNode, .nextNode +test(function() { + var depth = 0; + var walker = document.createTreeWalker(document, NodeFilter.SHOW_ALL, + function() { + if (depth == 0) { + depth++; + walker.firstChild(); + } + return NodeFilter.FILTER_ACCEPT; + }); + walker.currentNode = document.body; + assert_throws("InvalidStateError", function() { walker.parentNode() }); + depth--; + assert_throws("InvalidStateError", function() { walker.firstChild() }); + depth--; + assert_throws("InvalidStateError", function() { walker.lastChild() }); + depth--; + assert_throws("InvalidStateError", function() { walker.previousSibling() }); + depth--; + assert_throws("InvalidStateError", function() { walker.nextSibling() }); + depth--; + assert_throws("InvalidStateError", function() { walker.previousNode() }); + depth--; + assert_throws("InvalidStateError", function() { walker.nextNode() }); +}, "Recursive filters need to throw"); + function filterNode(node, whatToShow, filter) { // "If active flag is set throw an "InvalidStateError"." // Ignore active flag for these tests, we aren't calling recursively