Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(385)

Unified Diff: third_party/WebKit/LayoutTests/inspector-protocol/accessibility/accessibility-dumpAccessibilityNodes.js

Issue 2942573003: [DevTools] New harness for inspector-protocol layout tests (Closed)
Patch Set: Protocol -> dp Created 3 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: third_party/WebKit/LayoutTests/inspector-protocol/accessibility/accessibility-dumpAccessibilityNodes.js
diff --git a/third_party/WebKit/LayoutTests/inspector-protocol/accessibility/accessibility-dumpAccessibilityNodes.js b/third_party/WebKit/LayoutTests/inspector-protocol/accessibility/accessibility-dumpAccessibilityNodes.js
deleted file mode 100644
index a933495d11430c467e855ec76f006904ad91676f..0000000000000000000000000000000000000000
--- a/third_party/WebKit/LayoutTests/inspector-protocol/accessibility/accessibility-dumpAccessibilityNodes.js
+++ /dev/null
@@ -1,326 +0,0 @@
-// Copyright 2015 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-function initialize_DumpAccessibilityNodesTest() {
-
-var nodeInfo = {};
-InspectorTest.trackGetChildNodesEvents(nodeInfo);
-
-InspectorTest.dumpAccessibilityNodesBySelectorAndCompleteTest = function(selector, fetchRelatives, msg) {
- if (msg.error) {
- InspectorTest.log(msg.error.message);
- InspectorTest.completeTest();
- return;
- }
-
- var rootNode = msg.result.root;
- var rootNodeId = rootNode.nodeId;
- InspectorTest.addNode(nodeInfo, rootNode);
-
- sendQuerySelectorAll(rootNodeId, selector)
- .then((msg) => { return getAXNodes(msg, fetchRelatives || false) } )
- .then(() => { done(); })
- .then(() => {
- InspectorTest.completeTest();
- })
- .catch((msg) => { InspectorTest.log("Error: " + JSON.stringify(msg)); })
-}
-
-function sendCommandPromise(command, params)
-{
- return new Promise(function(resolve, reject) {
- InspectorTest.sendCommand(command, params, function(msg) {
- if (msg.error) {
- reject(msg.error);
- return;
- }
-
- resolve(msg);
- })
- });
-}
-
-function done()
-{
- sendCommandPromise("Runtime.evaluate", { expression: "done();" });
-}
-
-function sendQuerySelectorAll(nodeId, selector)
-{
- return sendCommandPromise("DOM.querySelectorAll", { "nodeId": nodeId, "selector":
- selector });
-}
-
-function getAXNodes(msg, fetchRelatives)
-{
- var promise = Promise.resolve();
- if (!msg.result || !msg.result.nodeIds) {
- InspectorTest.log("Unexpected result: " + JSON.stringify(msg));
- InspectorTest.completeTest();
- }
- msg.result.nodeIds.forEach((id) => {
- if (fetchRelatives) {
- promise = promise.then(() => {
- return sendCommandPromise("Accessibility.getPartialAXTree", { "nodeId": id, "fetchRelatives": true });
- });
- promise = promise.then((msg) => { return rewriteRelatedNodes(msg, id); })
- .then((msg) => { return dumpTreeStructure(msg); });
-
- }
- promise = promise.then(() => { return sendCommandPromise("Accessibility.getPartialAXTree", { "nodeId": id, "fetchRelatives": false }); })
- .then((msg) => { return rewriteRelatedNodes(msg, id); })
- .then((msg) => { return dumpNode(msg); });
-
- });
- return promise;
-}
-
-function describeDomNode(nodeData)
-{
- var description = nodeData.nodeName.toLowerCase();
- switch (nodeData.nodeType) {
- case Node.ELEMENT_NODE:
- var p = nodeData.attributes.indexOf("id");
- if (p >= 0)
- description += "#" + nodeData.attributes[p + 1];
- }
- return description;
-}
-
-function rewriteBackendDomNodeId(axNode, selectedNodeId, promises)
-{
- if (!("backendDOMNodeId" in axNode))
- return;
-
- function rewriteBackendDomNodeIdPromise(resolve, reject)
- {
- if (!("backendDOMNodeId" in axNode)) {
- resolve();
- return;
- }
- var backendDOMNodeId = axNode.backendDOMNodeId;
-
- function onDomNodeResolved(backendDOMNodeId, message)
- {
- if (!message.result || !message.result.nodeIds) {
- InspectorTest.log("Unexpected result for pushNodesByBackendIdsToFrontend: " + JSON.stringify(message));
- InspectorTest.completeTest();
- return;
- }
- var nodeId = message.result.nodeIds[0];
- if (!(nodeId in nodeInfo)) {
- axNode.domNode = "[NODE NOT FOUND]";
- resolve();
- return;
- }
- var domNode = nodeInfo[nodeId];
- delete axNode.backendDOMNodeId;
- axNode.domNode = describeDomNode(domNode);
- if (nodeId === selectedNodeId)
- axNode.selected = true;
- resolve();
- }
-
- var params = { "backendNodeIds": [ backendDOMNodeId ] };
- InspectorTest.sendCommand("DOM.pushNodesByBackendIdsToFrontend", params , onDomNodeResolved.bind(null, backendDOMNodeId));
- }
- promises.push(new Promise(rewriteBackendDomNodeIdPromise));
-}
-
-function rewriteRelatedNode(relatedNode)
-{
- function rewriteRelatedNodePromise(resolve, reject)
- {
- if (!("backendDOMNodeId" in relatedNode)) {
- reject("Could not find backendDOMNodeId in " + JSON.stringify(relatedNode));
- return;
- }
- var backendDOMNodeId = relatedNode.backendDOMNodeId;
-
- function onNodeResolved(backendDOMNodeId, message)
- {
- if (!message.result || !message.result.nodeIds) {
- InspectorTest.log("Unexpected result for pushNodesByBackendIdsToFrontend: " + JSON.stringify(message));
- InspectorTest.completeTest();
- return;
- }
- var nodeId = message.result.nodeIds[0];
- if (!(nodeId in nodeInfo)) {
- relatedNode.nodeResult = "[NODE NOT FOUND]";
- resolve();
- return;
- }
- var domNode = nodeInfo[nodeId];
- delete relatedNode.backendDOMNodeId;
- relatedNode.nodeResult = describeDomNode(domNode);
- resolve();
- }
- var params = { "backendNodeIds": [ backendDOMNodeId ] };
- InspectorTest.sendCommand("DOM.pushNodesByBackendIdsToFrontend", params, onNodeResolved.bind(null, backendDOMNodeId));
-
- }
- return new Promise(rewriteRelatedNodePromise);
-}
-
-function checkExists(path, obj)
-{
- var pathComponents = path.split(".");
- var currentPath = [];
- var currentObject = obj;
- for (var component of pathComponents) {
- var isArray = false;
- var index = -1;
- var matches = component.match(/(\w+)\[(\d+)\]/);
- if (matches) {
- isArray = true;
- component = matches[1];
- index = Number.parseInt(matches[2], 10);
- }
- currentPath.push(component);
- if (!(component in currentObject)) {
- InspectorTest.log("Could not find " + currentPath.join(".") + " in " + JSON.stringify(obj, null, " "));
- InspectorTest.completeTest();
- }
- if (isArray)
- currentObject = currentObject[component][index];
- else
- currentObject = currentObject[component];
- }
- return true;
-}
-
-function check(condition, errorMsg, obj)
-{
- if (condition)
- return true;
- throw new Error(errorMsg + " in " + JSON.stringify(obj, null, " "));
-}
-
-function rewriteRelatedNodeValue(value, promises)
-{
- checkExists("relatedNodes", value);
- var relatedNodeArray = value.relatedNodes;
- check(Array.isArray(relatedNodeArray), "relatedNodes should be an array", JSON.stringify(value));
- for (var relatedNode of relatedNodeArray) {
- promises.push(rewriteRelatedNode(relatedNode));
- }
-}
-
-function rewriteRelatedNodes(msg, nodeId)
-{
- if (msg.error) {
- throw new Error(msg.error.message);
- }
-
- var promises = [];
- for (var node of msg.result.nodes) {
- if (node.ignored) {
- checkExists("ignoredReasons", node);
- var properties = node.ignoredReasons;
- } else {
- checkExists("properties", node);
- var properties = node.properties;
- }
- if (node.name && node.name.sources) {
- for (var source of node.name.sources) {
- var value;
- if (source.value)
- value = source.value;
- if (source.attributeValue)
- value = source.attributeValue;
- if (!value)
- continue;
- if (value.type === "idrefList" ||
- value.type === "idref" ||
- value.type === "nodeList")
- rewriteRelatedNodeValue(value, promises);
- }
- }
- for (var property of properties) {
- if (property.value.type === "idrefList" ||
- property.value.type === "idref" ||
- property.value.type === "nodeList")
- rewriteRelatedNodeValue(property.value, promises);
- }
- rewriteBackendDomNodeId(node, nodeId, promises);
- }
- return Promise.all(promises).then(() => { return msg; });
-}
-
-function dumpNode(msg)
-{
- function stripIds(key, value)
- {
- var stripKeys = ["id", "backendDOMNodeId", "nodeId", "parentId"];
- if (stripKeys.indexOf(key) !== -1)
- return "<" + typeof(value) + ">";
- var deleteKeys = ["selected"];
- if (deleteKeys.indexOf(key) !== -1)
- return undefined;
- return value;
- }
- if (!msg.result || !msg.result.nodes || msg.result.nodes.length !== 1) {
- InspectorTest.log("Expected exactly one node in " + JSON.stringify(msg, null, " "));
- return;
- }
- InspectorTest.log(JSON.stringify(msg.result.nodes[0], stripIds, " "));
-}
-
-function dumpTreeStructure(msg)
-{
- function printNodeAndChildren(node, leadingSpace)
- {
- leadingSpace = leadingSpace || "";
- var string = leadingSpace;
- if (node.selected)
- string += "*";
- if (node.role)
- string += node.role.value;
- else
- string += "<no role>";
- string += (node.name && node.name.value !== "" ? " \"" + node.name.value + "\"" : "");
- if (node.children) {
- for (var child of node.children)
- string += "\n" + printNodeAndChildren(child, leadingSpace + " ");
- }
- return string;
- }
-
- var rawMsg = JSON.stringify(msg, null, " ");
- var nodeMap = {};
- if ("result" in msg && "nodes" in msg.result) {
- for (var node of msg.result.nodes)
- nodeMap[node.nodeId] = node;
- }
- for (var nodeId in nodeMap) {
- var node = nodeMap[nodeId];
- if (node.childIds) {
- node.children = [];
- for (var i = 0; i < node.childIds.length && node.childIds.length > 0;) {
- var childId = node.childIds[i];
- if (childId in nodeMap) {
- var child = nodeMap[childId];
- child.parentId = nodeId;
- node.children.push(child);
-
- node.childIds.splice(i, 1);
- } else {
- node.childIds[i] = "<string>";
- i++;
- }
- }
- if (!node.childIds.length)
- delete node.childIds;
- if (!node.children.length)
- delete node.children;
- }
- }
- var rootNode = Object.values(nodeMap).find((node) => !("parentId" in node));
- for (var node of Object.values(nodeMap))
- delete node.parentId;
-
- InspectorTest.log("\n" + printNodeAndChildren(rootNode));
-}
-
-}

Powered by Google App Engine
This is Rietveld 408576698