blob: 63ce4b0bb392efdf89516cb1b1630b61ed0fd3ca [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 DOMAgent.querySelector and DOMAgent.querySelectorAll.\n`);
await TestRunner.loadModule('elements_test_runner');
await TestRunner.showPanel('elements');
await TestRunner.loadHTML(`
<div id="id1" class="foo"></div>
<div id="id2" class="foo"></div>
<div id="container">
<div id="id3" class="foo"></div>
<div id="id4" class="foo"></div>
<div id="id5" class="foo"></div>
<div id="id6" class="foo"></div>
</div>
`);
ElementsTestRunner.selectNodeWithId('container', step1);
function step1(node) {
var containerId = node.id;
var documentId = node.ownerDocument.id;
TestRunner.runTestSuite([
function testDocumentQuerySelector(next) {
TestRunner.DOMAgent.querySelector(documentId, 'div.foo').then(dumpNodes.bind(null, next));
},
function testDocumentQuerySelectorAll(next) {
TestRunner.DOMAgent.querySelectorAll(documentId, 'div.foo').then(dumpNodes.bind(null, next));
},
function testQuerySelector(next) {
TestRunner.DOMAgent.querySelector(containerId, 'div.foo').then(dumpNodes.bind(null, next));
},
function testQuerySelectorAll(next) {
TestRunner.DOMAgent.querySelectorAll(containerId, 'div.foo').then(dumpNodes.bind(null, next));
}
]);
}
function dumpNodes(next, nodeIds) {
if (!nodeIds) {
next();
return;
}
if (!(nodeIds.constructor && nodeIds.constructor.name === 'Array'))
nodeIds = [nodeIds];
for (var i = 0; i < nodeIds.length; ++i) {
if (!nodeIds[i])
TestRunner.addResult('no results');
else {
var node = TestRunner.domModel.nodeForId(nodeIds[i]);
TestRunner.addResult('node id: ' + node.getAttribute('id'));
}
}
next();
}
})();