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> | |
5 | |
6 function addBeforeElement() | |
7 { | |
8 document.getElementById("style").textContent = "#for-pseudo:before { content
: \"BEFORE\" }"; | |
9 } | |
10 | |
11 function test() | |
12 { | |
13 var nodeInfo = {}; | |
14 var childrenCallback; | |
15 | |
16 InspectorTest.eventHandler["DOM.setChildNodes"] = setChildNodes; | |
17 InspectorTest.eventHandler["DOM.pseudoElementAdded"] = pseudoElementAdded; | |
18 getDocument(); | |
19 | |
20 function getDocument() | |
21 { | |
22 step({ | |
23 name: "Get the Document", | |
24 command: "DOM.getDocument", | |
25 parameters: {}, | |
26 callback: getImmediateChildren | |
27 }); | |
28 }; | |
29 | |
30 function getImmediateChildren(result) | |
31 { | |
32 var bodyId = result.root.children[0].children[1].nodeId; | |
33 childrenCallback = onChildrenRequested; | |
34 step({ | |
35 name: "Get immediate children of the body", | |
36 command: "DOM.requestChildNodes", | |
37 parameters: {"nodeId": bodyId} | |
38 }); | |
39 }; | |
40 | |
41 function onChildrenRequested() | |
42 { | |
43 step({ | |
44 name: "Add #for-pseudo:before element", | |
45 command: "Runtime.evaluate", | |
46 parameters: {expression: "addBeforeElement()"} | |
47 }); | |
48 } | |
49 | |
50 function pseudoElementAdded(message) | |
51 { | |
52 var nodeData = findNodeById("inner-span"); | |
53 assertEquals(true, !!nodeData, "#inner-span has been received"); | |
54 InspectorTest.completeTest(); | |
55 } | |
56 | |
57 function setChildNodes(message) | |
58 { | |
59 var nodes = message.params.nodes; | |
60 for (var i = 0; i < nodes.length; ++i) | |
61 addNode(nodes[i]); | |
62 var callback = childrenCallback; | |
63 childrenCallback = null; | |
64 if (callback) | |
65 callback(); | |
66 } | |
67 | |
68 function step(test) | |
69 { | |
70 InspectorTest.log("\n=== " + test.name + " ===\n"); | |
71 InspectorTest.sendCommand(test.command, test.parameters, function(messag
eObject) { | |
72 if (messageObject.hasOwnProperty("error")) | |
73 InspectorTest.log("Backend error: " + messageObject.error.messag
e + " (" + messageObject.error.code + ")\n"); | |
74 | |
75 if (test.callback) | |
76 test.callback(messageObject.result); | |
77 }); | |
78 } | |
79 | |
80 function findNodeById(id) | |
81 { | |
82 for (var nodeId in nodeInfo) { | |
83 var node = nodeInfo[nodeId]; | |
84 var attrs = node.attributes; | |
85 if (!attrs) | |
86 continue; | |
87 for (var i = 0; i < attrs.length; i += 2) { | |
88 var name = attrs[i]; | |
89 if (name !== "id") | |
90 continue; | |
91 if (attrs[i + 1] === id) | |
92 return {nodeId: nodeId, node: node}; | |
93 } | |
94 } | |
95 return null; | |
96 } | |
97 | |
98 function addNodesRecursive(root) | |
99 { | |
100 addNode(root); | |
101 if (!root.children) | |
102 return; | |
103 for (var i = 0; i < root.children.length; ++i) | |
104 addNodesRecursive(root.children[i]); | |
105 } | |
106 | |
107 function addNode(node) | |
108 { | |
109 nodeInfo[node.nodeId] = node; | |
110 delete node.nodeId; | |
111 } | |
112 | |
113 function assertEquals(expected, actual, message) | |
114 { | |
115 if (expected === actual) { | |
116 InspectorTest.log("PASS: " + message); | |
117 return; | |
118 } | |
119 InspectorTest.log("FAIL: " + message + ": expected: <" + expected + "> b
ut found <" + actual + ">"); | |
120 } | |
121 } | |
122 | |
123 </script> | |
124 <style id="style"> | |
125 </style> | |
126 </head> | |
127 <body id="body" onload="runTest()"> | |
128 <div id="for-pseudo"><span id="inner-span"></span></div> | |
129 </body> | |
130 </html> | |
OLD | NEW |