blob: 4ab25ca9b5b82023d8d2f449fb157b8471f1fd87 [file] [log] [blame]
// Copyright 2017 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.
(async function() {
TestRunner.addResult(`Tests node xPath construction\n`);
await TestRunner.loadModule('elements_test_runner');
await TestRunner.showPanel('elements');
await TestRunner.navigatePromise('resources/node-xpath.xhtml');
ElementsTestRunner.expandElementsTree(dumpNodes.bind(null, ''));
var doc;
function dumpNodes(prefix, node) {
if (!doc) {
doc = getDocumentElement();
node = doc;
}
dumpNodeData(node, prefix);
var children = node.children();
for (var i = 0; children && i < children.length; ++i)
dumpNodes(prefix + ' ', children[i]);
if (node === doc)
TestRunner.completeTest();
}
function getDocumentElement() {
var map = TestRunner.domModel._idToDOMNode;
for (var id in map) {
if (map[id].nodeName() === '#document')
return map[id];
}
return null;
}
function dumpNodeData(node, prefix) {
var result = prefix + '\'' + node.nodeName() + '\':\'' + node.nodeValue() + '\' - \'' +
Elements.DOMPath.xPath(node, true) + '\' - \'' +
Elements.DOMPath.xPath(node, false) + '\'';
TestRunner.addResult(result.replace(/\r?\n/g, '\\n'));
}
})();