OLD | NEW |
| (Empty) |
1 <!DOCTYPE html> | |
2 <html> | |
3 <!-- | |
4 Test adapted from https://mxr.mozilla.org/chromium/source/src/third_party/WebKit
/LayoutTests/fast/dom/TreeWalker/script-tests/traversal-reject.js | |
5 --> | |
6 <head> | |
7 <title>TreeWalker: traversal-reject</title> | |
8 <script src="../../../../resources/testharness.js"></script> | |
9 <script src="../../../../resources/testharnessreport.js"></script> | |
10 <script src="traversal-support.js"></script> | |
11 <div id=log></div> | |
12 </head> | |
13 <body> | |
14 <p>Test TreeWalker with rejection</p> | |
15 <script> | |
16 var testElement; | |
17 setup(function() { | |
18 testElement = document.createElement("div"); | |
19 testElement.id = 'root'; | |
20 //testElement.innerHTML='<div id="A1"> <div id="B1"> <div id="C1"></div>
</div> <div id="B2"></div><div id="B3"></div> </div>'; | |
21 // <div id="A1"> | |
22 // <div id="B1"> | |
23 // <div id="C1"></div> | |
24 // </div> | |
25 // <div id="B2"></div> | |
26 // <div id="B3"></div> | |
27 // </div> | |
28 | |
29 | |
30 // XXX for Servo, build the tree without using innerHTML | |
31 var a1 = document.createElement("div"); a1.id = "A1"; | |
32 var b1 = document.createElement("div"); b1.id = "B1"; | |
33 var b2 = document.createElement("div"); b2.id = "B2"; | |
34 var b3 = document.createElement("div"); b3.id = "B3"; | |
35 var c1 = document.createElement("div"); c1.id = "C1"; | |
36 | |
37 testElement.appendChild(a1); | |
38 a1.appendChild(b1); | |
39 a1.appendChild(b2); | |
40 a1.appendChild(b3); | |
41 b1.appendChild(c1); | |
42 }); | |
43 | |
44 var rejectB1Filter = { | |
45 acceptNode: function(node) { | |
46 if (node.id == 'B1') | |
47 return NodeFilter.FILTER_REJECT; | |
48 | |
49 return NodeFilter.FILTER_ACCEPT; | |
50 } | |
51 } | |
52 | |
53 var skipB2Filter = { | |
54 acceptNode: function(node) { | |
55 if (node.id == 'B2') | |
56 return NodeFilter.FILTER_SKIP; | |
57 | |
58 return NodeFilter.FILTER_ACCEPT; | |
59 } | |
60 } | |
61 | |
62 test(function() | |
63 { | |
64 var walker = document.createTreeWalker(testElement, NodeFilter.SHOW_ELEMENT,
rejectB1Filter); | |
65 assert_node(walker.nextNode(), { type: Element, id: 'A1' }); | |
66 assert_node(walker.nextNode(), { type: Element, id: 'B2' }); | |
67 assert_node(walker.nextNode(), { type: Element, id: 'B3' }); | |
68 }, 'Testing nextNode'); | |
69 | |
70 test(function() | |
71 { | |
72 var walker = document.createTreeWalker(testElement, NodeFilter.SHOW_ELEMENT,
rejectB1Filter); | |
73 assert_node(walker.firstChild(), { type: Element, id: 'A1' }); | |
74 assert_node(walker.firstChild(), { type: Element, id: 'B2' }); | |
75 }, 'Testing firstChild'); | |
76 | |
77 test(function() | |
78 { | |
79 var walker = document.createTreeWalker(testElement, NodeFilter.SHOW_ELEMENT,
skipB2Filter); | |
80 assert_node(walker.firstChild(), { type: Element, id: 'A1' }); | |
81 assert_node(walker.firstChild(), { type: Element, id: 'B1' }); | |
82 assert_node(walker.nextSibling(), { type: Element, id: 'B3' }); | |
83 }, 'Testing nextSibling'); | |
84 | |
85 test(function() | |
86 { | |
87 var walker = document.createTreeWalker(testElement, NodeFilter.SHOW_ELEMENT,
rejectB1Filter); | |
88 walker.currentNode = testElement.querySelectorAll('#C1')[0]; | |
89 assert_node(walker.parentNode(), { type: Element, id: 'A1' }); | |
90 }, 'Testing parentNode'); | |
91 | |
92 test(function() | |
93 { | |
94 var walker = document.createTreeWalker(testElement, NodeFilter.SHOW_ELEMENT,
skipB2Filter); | |
95 walker.currentNode = testElement.querySelectorAll('#B3')[0]; | |
96 assert_node(walker.previousSibling(), { type: Element, id: 'B1' }); | |
97 }, 'Testing previousSibling'); | |
98 | |
99 test(function() | |
100 { | |
101 var walker = document.createTreeWalker(testElement, NodeFilter.SHOW_ELEMENT,
rejectB1Filter); | |
102 walker.currentNode = testElement.querySelectorAll('#B3')[0]; | |
103 assert_node(walker.previousNode(), { type: Element, id: 'B2' }); | |
104 assert_node(walker.previousNode(), { type: Element, id: 'A1' }); | |
105 }, 'Testing previousNode'); | |
106 | |
107 </script> | |
108 </body> | |
109 </html> | |
OLD | NEW |