mirror of
https://github.com/servo/servo.git
synced 2025-06-24 00:54:32 +01:00
87 lines
3.1 KiB
HTML
87 lines
3.1 KiB
HTML
<!DOCTYPE html>
|
|
<html>
|
|
<!--
|
|
Test adapted from https://dxr.mozilla.org/chromium/source/src/third_party/WebKit/LayoutTests/fast/dom/TreeWalker/script-tests/previousNodeLastChildReject.js
|
|
-->
|
|
<head>
|
|
<title>TreeWalker: previousNodeLastChildReject</title>
|
|
<script src="/resources/testharness.js"></script>
|
|
<script src="/resources/testharnessreport.js"></script>
|
|
<script src="traversal-support.js"></script>
|
|
<div id=log></div>
|
|
</head>
|
|
<body>
|
|
<p>Test that previousNode properly respects the filter.</p>
|
|
<script>
|
|
var testElement;
|
|
setup(function() {
|
|
testElement = document.createElement("div");
|
|
testElement.id = 'root';
|
|
// 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>';
|
|
// 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>';
|
|
|
|
// XXX for Servo, build the tree without using innerHTML
|
|
var a1 = document.createElement("div"); a1.id = "A1";
|
|
var b1 = document.createElement("div"); b1.id = "B1";
|
|
var b2 = document.createElement("div"); b2.id = "B2";
|
|
var c1 = document.createElement("div"); c1.id = "C1";
|
|
var c2 = document.createElement("div"); c2.id = "C2";
|
|
var c3 = document.createElement("div"); c3.id = "C3";
|
|
var c4 = document.createElement("div"); c4.id = "C4";
|
|
var d1 = document.createElement("div"); d1.id = "D1";
|
|
var d2 = document.createElement("div"); d2.id = "D2";
|
|
|
|
testElement.appendChild(a1);
|
|
a1.appendChild(b1);
|
|
a1.appendChild(b2);
|
|
b1.appendChild(c1);
|
|
b1.appendChild(c2);
|
|
b2.appendChild(c3);
|
|
b2.appendChild(c4);
|
|
c2.appendChild(d1);
|
|
c2.appendChild(d2);
|
|
});
|
|
|
|
test(function()
|
|
{
|
|
function filter(node)
|
|
{
|
|
if (node.id == "C2")
|
|
return NodeFilter.FILTER_REJECT;
|
|
return NodeFilter.FILTER_ACCEPT;
|
|
}
|
|
|
|
var walker = document.createTreeWalker(testElement, NodeFilter.SHOW_ELEMENT, filter);
|
|
assert_node(walker.currentNode, { type: Element, id: 'root' });
|
|
assert_node(walker.firstChild(), { type: Element, id: 'A1' });
|
|
assert_node(walker.currentNode, { type: Element, id: 'A1' });
|
|
assert_node(walker.nextNode(), { type: Element, id: 'B1' });
|
|
assert_node(walker.currentNode, { type: Element, id: 'B1' });
|
|
assert_node(walker.nextNode(), { type: Element, id: 'C1' });
|
|
assert_node(walker.currentNode, { type: Element, id: 'C1' });
|
|
assert_node(walker.nextNode(), { type: Element, id: 'B2' });
|
|
assert_node(walker.currentNode, { type: Element, id: 'B2' });
|
|
assert_node(walker.previousNode(), { type: Element, id: 'C1' });
|
|
assert_node(walker.currentNode, { type: Element, id: 'C1' });
|
|
}, 'Test that previousNode properly respects the filter.');
|
|
</script>
|
|
</body>
|
|
</html>
|