OLD | NEW |
(Empty) | |
| 1 (async function(testRunner) { |
| 2 var {page, session, dp} = await testRunner.startHTML(` |
| 3 <div id="depth-1"> |
| 4 <div id="depth-2"> |
| 5 <div id="depth-3"> |
| 6 <div id="depth-4"> |
| 7 <div id="depth-5"> |
| 8 <div id="depth-6"> |
| 9 <div id="depth-7"> |
| 10 <div id="depth-8"> |
| 11 <div id="depth-9"> |
| 12 <div id="depth-10"> |
| 13 </div> |
| 14 </div> |
| 15 </div> |
| 16 </div> |
| 17 </div> |
| 18 </div> |
| 19 </div> |
| 20 </div> |
| 21 </div> |
| 22 </div> |
| 23 `, ''); |
| 24 testRunner.log("\n=== Get the Document ===\n"); |
| 25 var response = await dp.DOM.getDocument(); |
| 26 var bodyId = response.result.root.children[0].children[1].nodeId; |
| 27 |
| 28 testRunner.log("\n=== Get immediate children of the body ===\n"); |
| 29 dp.DOM.requestChildNodes({nodeId: bodyId}); |
| 30 var message = await dp.DOM.onceSetChildNodes(); |
| 31 var firstDiv = message.params.nodes[0]; |
| 32 assert("First child is a div", firstDiv.localName, "div"); |
| 33 assert("First child is div#depth-1", firstDiv.attributes[1], "depth-1"); |
| 34 assert("First child has one child", firstDiv.childNodeCount, 1); |
| 35 assert("First child has no .children property", firstDiv.children, undefined); |
| 36 |
| 37 testRunner.log("\n=== Get children of div#depth-1 three levels deep ===\n"); |
| 38 dp.DOM.requestChildNodes({nodeId: firstDiv.nodeId, depth: 3}); |
| 39 var message = await dp.DOM.onceSetChildNodes(); |
| 40 var depth = 1; |
| 41 var firstChild = message.params.nodes[0]; |
| 42 var node = firstChild; |
| 43 while (node && node.children) { |
| 44 depth++; |
| 45 node = node.children[0]; |
| 46 } |
| 47 assert("div#depth-1 has nodes 3 levels deep", depth, 3); |
| 48 |
| 49 testRunner.log("\n=== Get all children of body ===\n"); |
| 50 dp.DOM.requestChildNodes({nodeId: firstDiv.nodeId, depth: -1}); |
| 51 var message = await dp.DOM.onceSetChildNodes(); |
| 52 var depth = 0; |
| 53 var firstChild = message.params.nodes[0]; |
| 54 var node = firstChild; |
| 55 while (node && node.children) { |
| 56 depth++; |
| 57 node = node.children[0]; |
| 58 } |
| 59 // We have requested nodes 3-level deep so far, so |
| 60 // we should have gotten an additional 6 levels of depth. |
| 61 assert("div#depth-1 has nodes 9 levels deep", depth, 6); |
| 62 |
| 63 testRunner.log("\n=== Pass an invalid depth ===\n"); |
| 64 var response = await dp.DOM.requestChildNodes({nodeId: firstDiv.nodeId, depth:
0}); |
| 65 if (response.error) |
| 66 testRunner.log("Backend error: " + response.error.message + " (" + response.
error.code + ")\n"); |
| 67 testRunner.completeTest(); |
| 68 |
| 69 function assert(message, actual, expected) { |
| 70 if (actual === expected) { |
| 71 testRunner.log("PASS: " + message); |
| 72 } else { |
| 73 testRunner.log("FAIL: " + message + ", expected \"" + expected + "\" but g
ot \"" + actual + "\""); |
| 74 testRunner.completeTest(); |
| 75 } |
| 76 }; |
| 77 }); |
| 78 |
OLD | NEW |