| // 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 that inspect element action works for deep shadow elements.\n`); |
| await TestRunner.loadModule('console_test_runner'); |
| await TestRunner.loadModule('elements_test_runner'); |
| await TestRunner.showPanel('elements'); |
| await TestRunner.loadHTML(` |
| <div> |
| <div> |
| <div id="host"></div> |
| <span id="hostOpen"></span> |
| </div> |
| </div> |
| `); |
| await TestRunner.evaluateInPagePromise(` |
| document.querySelector('#host').attachShadow({mode: 'open'}).innerHTML = "<div><div><span id='shadow'>Shadow</span></div></div>"; |
| document.querySelector('#hostOpen').attachShadow({ mode: "open" }).innerHTML = "<div><div><span id='shadow-open'>Shadow</span></div></div>"; |
| `); |
| |
| ElementsTestRunner.firstElementsTreeOutline().addEventListener( |
| Elements.ElementsTreeOutline.Events.SelectedNodeChanged, selectedNodeChanged); |
| |
| var tests = [ |
| ['shadow', 'inspect(host.shadowRoot.firstChild.firstChild.firstChild)'], |
| ['shadow-open', 'inspect(hostOpen.shadowRoot.firstChild.firstChild.firstChild)'] |
| ]; |
| |
| function selectedNodeChanged(event) { |
| var node = event.data.node; |
| if (!node) |
| return; |
| if (node.getAttribute('id') == tests[0][0]) { |
| TestRunner.addResult(Elements.DOMPath.xPath(node, false)); |
| TestRunner.addResult(Elements.DOMPath.jsPath(node, false)); |
| tests.shift(); |
| nextTest(); |
| } |
| } |
| |
| function nextTest() { |
| if (!tests.length) { |
| TestRunner.completeTest(); |
| return; |
| } |
| ConsoleTestRunner.evaluateInConsole(tests[0][1]); |
| } |
| |
| nextTest(); |
| })(); |