OLD | NEW |
| (Empty) |
1 <html> | |
2 <head> | |
3 <script type="text/javascript" src="../../http/tests/inspector-protocol/resource
s/inspector-protocol-test.js"></script> | |
4 <script type="text/javascript"> | |
5 | |
6 function test() | |
7 { | |
8 var firstDiv; | |
9 var eventsCount = 0; | |
10 | |
11 getDocument(); | |
12 | |
13 InspectorTest.eventHandler["DOM.setChildNodes"] = function setChildNodes(mes
sageObject) | |
14 { | |
15 eventsCount++; | |
16 | |
17 if (eventsCount === 1) | |
18 gotImmediateChildren(messageObject); | |
19 else if (eventsCount === 2) | |
20 gotAdditionalChildren(messageObject); | |
21 else if (eventsCount === 3) | |
22 gotAllChildren(messageObject); | |
23 else | |
24 InspectorTest.log(JSON.stringify(messageObject, null, " ")); | |
25 }; | |
26 | |
27 function getDocument() | |
28 { | |
29 // We must first get the document so that later on we may get sensible n
odeIds. | |
30 step({ | |
31 name: "Get the Document", | |
32 command: "DOM.getDocument", | |
33 parameters: {}, | |
34 callback: getImmediateChildren | |
35 }); | |
36 }; | |
37 | |
38 function getImmediateChildren(result) | |
39 { | |
40 var bodyId = result.root.children[0].children[1].nodeId; | |
41 step({ | |
42 name: "Get immediate children of the body", | |
43 command: "DOM.requestChildNodes", | |
44 parameters: {"nodeId": bodyId} | |
45 }); | |
46 }; | |
47 | |
48 function gotImmediateChildren(messageObject) | |
49 { | |
50 firstDiv = messageObject.params.nodes[0]; | |
51 assert("First child is a div", firstDiv.localName, "div"); | |
52 assert("First child is div#depth-1", firstDiv.attributes[1], "depth-1"); | |
53 assert("First child has one child", firstDiv.childNodeCount, 1); | |
54 assert("First child has no .children property", firstDiv.children, undef
ined); | |
55 | |
56 step({ | |
57 name: "Get children of div#depth-1 three levels deep", | |
58 command: "DOM.requestChildNodes", | |
59 parameters: {"nodeId": firstDiv.nodeId, "depth": 3} | |
60 }); | |
61 }; | |
62 | |
63 function gotAdditionalChildren(messageObject) | |
64 { | |
65 var depth = 1; | |
66 var firstChild = messageObject.params.nodes[0]; | |
67 var node = firstChild; | |
68 while (node && node.children) { | |
69 depth++; | |
70 node = node.children[0]; | |
71 } | |
72 | |
73 assert("div#depth-1 has nodes 3 levels deep", depth, 3); | |
74 | |
75 step({ | |
76 name: "Get all children of body", | |
77 command: "DOM.requestChildNodes", | |
78 parameters: {"nodeId": firstDiv.nodeId, "depth": -1} | |
79 }); | |
80 }; | |
81 | |
82 function gotAllChildren(messageObject) | |
83 { | |
84 var depth = 0; | |
85 var firstChild = messageObject.params.nodes[0]; | |
86 var node = firstChild; | |
87 while (node && node.children) { | |
88 depth++; | |
89 node = node.children[0]; | |
90 } | |
91 | |
92 // We have requested nodes 3-level deep so far, so | |
93 // we should have gotten an additional 6 levels of depth. | |
94 assert("div#depth-1 has nodes 9 levels deep", depth, 6); | |
95 | |
96 step({ | |
97 name: "Pass an invalid depth", | |
98 command: "DOM.requestChildNodes", | |
99 parameters: {"nodeId": firstDiv.nodeId, "depth": 0}, | |
100 callback: finishTest | |
101 }); | |
102 }; | |
103 | |
104 function finishTest() | |
105 { | |
106 assert("Expected number of setChildNodes events", eventsCount, 3); | |
107 | |
108 InspectorTest.completeTest(); | |
109 }; | |
110 | |
111 function step(test) | |
112 { | |
113 InspectorTest.log("\n=== " + test.name + " ===\n"); | |
114 InspectorTest.sendCommand(test.command, test.parameters, function(messag
eObject) { | |
115 if (messageObject.hasOwnProperty("error")) | |
116 InspectorTest.log("Backend error: " + messageObject.error.messag
e + " (" + messageObject.error.code + ")\n"); | |
117 | |
118 if (test.callback) | |
119 test.callback(messageObject.result); | |
120 }); | |
121 }; | |
122 | |
123 function assert(message, actual, expected) | |
124 { | |
125 if (actual === expected) | |
126 InspectorTest.log("PASS: " + message); | |
127 else { | |
128 InspectorTest.log("FAIL: " + message + ", expected \"" + expected +
"\" but got \"" + actual + "\""); | |
129 InspectorTest.completeTest(); | |
130 } | |
131 }; | |
132 | |
133 }; | |
134 | |
135 window.addEventListener("DOMContentLoaded", function () { | |
136 runTest(); | |
137 }, false); | |
138 | |
139 </script> | |
140 </head> | |
141 <body> | |
142 | |
143 <div id="depth-1"> | |
144 <div id="depth-2"> | |
145 <div id="depth-3"> | |
146 <div id="depth-4"> | |
147 <div id="depth-5"> | |
148 <div id="depth-6"> | |
149 <div id="depth-7"> | |
150 <div id="depth-8"> | |
151 <div id="depth-9"> | |
152 <div id="depth-10"> | |
153 </div> | |
154 </div> | |
155 </div> | |
156 </div> | |
157 </div> | |
158 </div> | |
159 </div> | |
160 </div> | |
161 </div> | |
162 </div> | |
163 | |
164 </body> | |
165 </html> | |
OLD | NEW |