Index: third_party/WebKit/LayoutTests/inspector-protocol/dom/dom-request-child-nodes-depth.js |
diff --git a/third_party/WebKit/LayoutTests/inspector-protocol/dom/dom-request-child-nodes-depth.js b/third_party/WebKit/LayoutTests/inspector-protocol/dom/dom-request-child-nodes-depth.js |
new file mode 100644 |
index 0000000000000000000000000000000000000000..4d43543d321c3e7f2691be098484859176925f64 |
--- /dev/null |
+++ b/third_party/WebKit/LayoutTests/inspector-protocol/dom/dom-request-child-nodes-depth.js |
@@ -0,0 +1,78 @@ |
+(async function(testRunner) { |
+ var {page, session, dp} = await testRunner.startHTML(` |
+ <div id="depth-1"> |
+ <div id="depth-2"> |
+ <div id="depth-3"> |
+ <div id="depth-4"> |
+ <div id="depth-5"> |
+ <div id="depth-6"> |
+ <div id="depth-7"> |
+ <div id="depth-8"> |
+ <div id="depth-9"> |
+ <div id="depth-10"> |
+ </div> |
+ </div> |
+ </div> |
+ </div> |
+ </div> |
+ </div> |
+ </div> |
+ </div> |
+ </div> |
+ </div> |
+ `, ''); |
+ testRunner.log("\n=== Get the Document ===\n"); |
+ var response = await dp.DOM.getDocument(); |
+ var bodyId = response.result.root.children[0].children[1].nodeId; |
+ |
+ testRunner.log("\n=== Get immediate children of the body ===\n"); |
+ dp.DOM.requestChildNodes({nodeId: bodyId}); |
+ var message = await dp.DOM.onceSetChildNodes(); |
+ var firstDiv = message.params.nodes[0]; |
+ assert("First child is a div", firstDiv.localName, "div"); |
+ assert("First child is div#depth-1", firstDiv.attributes[1], "depth-1"); |
+ assert("First child has one child", firstDiv.childNodeCount, 1); |
+ assert("First child has no .children property", firstDiv.children, undefined); |
+ |
+ testRunner.log("\n=== Get children of div#depth-1 three levels deep ===\n"); |
+ dp.DOM.requestChildNodes({nodeId: firstDiv.nodeId, depth: 3}); |
+ var message = await dp.DOM.onceSetChildNodes(); |
+ var depth = 1; |
+ var firstChild = message.params.nodes[0]; |
+ var node = firstChild; |
+ while (node && node.children) { |
+ depth++; |
+ node = node.children[0]; |
+ } |
+ assert("div#depth-1 has nodes 3 levels deep", depth, 3); |
+ |
+ testRunner.log("\n=== Get all children of body ===\n"); |
+ dp.DOM.requestChildNodes({nodeId: firstDiv.nodeId, depth: -1}); |
+ var message = await dp.DOM.onceSetChildNodes(); |
+ var depth = 0; |
+ var firstChild = message.params.nodes[0]; |
+ var node = firstChild; |
+ while (node && node.children) { |
+ depth++; |
+ node = node.children[0]; |
+ } |
+ // We have requested nodes 3-level deep so far, so |
+ // we should have gotten an additional 6 levels of depth. |
+ assert("div#depth-1 has nodes 9 levels deep", depth, 6); |
+ |
+ testRunner.log("\n=== Pass an invalid depth ===\n"); |
+ var response = await dp.DOM.requestChildNodes({nodeId: firstDiv.nodeId, depth: 0}); |
+ if (response.error) |
+ testRunner.log("Backend error: " + response.error.message + " (" + response.error.code + ")\n"); |
+ testRunner.completeTest(); |
+ |
+ function assert(message, actual, expected) { |
+ if (actual === expected) { |
+ testRunner.log("PASS: " + message); |
+ } else { |
+ testRunner.log("FAIL: " + message + ", expected \"" + expected + "\" but got \"" + actual + "\""); |
+ testRunner.completeTest(); |
+ } |
+ }; |
+}); |
+ |