UNPKG

chrome-devtools-frontend

Version:
91 lines (77 loc) 2.51 kB
// Copyright 2020 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. import * as Elements from '../../../../panels/elements/components/components.js'; import * as FrontendHelpers from '../../../../testing/EnvironmentHelpers.js'; import * as ComponentHelpers from '../../helpers/helpers.js'; import {makeCrumb} from './helpers.js'; await ComponentHelpers.ComponentServerSetup.setup(); await FrontendHelpers.initializeGlobalVars(); const component = new Elements.ElementsBreadcrumbs.ElementsBreadcrumbs(); const bodyCrumb = makeCrumb({ nodeType: Node.ELEMENT_NODE, id: 1, nodeName: 'body', nodeNameNicelyCased: 'body', attributes: {class: 'body-class1 body-class2'}, }); const divCrumb = makeCrumb({ nodeType: Node.ELEMENT_NODE, id: 2, nodeName: 'div', nodeNameNicelyCased: 'div', attributes: { id: 'test-id', class: 'wrapper-div', }, }); const spanCrumb = makeCrumb({ nodeType: Node.ELEMENT_NODE, id: 3, nodeName: 'span', nodeNameNicelyCased: 'span', attributes: { id: 'my-span-has-a-long-id', }, }); const strongCrumb = makeCrumb({ nodeType: Node.ELEMENT_NODE, id: 4, nodeName: 'strong', nodeNameNicelyCased: 'strong', attributes: { id: 'gotta-be-bold', }, }); const emCrumb = makeCrumb({ nodeType: Node.ELEMENT_NODE, id: 5, nodeName: 'em', nodeNameNicelyCased: 'em', attributes: {id: 'my-em-has-a-long-id', class: 'and-a-very-long-class'}, }); const crumbs = [emCrumb, strongCrumb, spanCrumb, divCrumb, bodyCrumb]; const crumbsReversed = [...crumbs].reverse(); const selectedNodeParam = new URLSearchParams(location.search)?.get('selectedCrumbIndex'); const selectedNode = selectedNodeParam ? crumbsReversed[Number(selectedNodeParam)] : bodyCrumb; component.data = { crumbs, selectedNode, }; document.getElementById('container')?.appendChild(component); const button = component.shadowRoot?.querySelector?.('button.overflow.right'); button?.dispatchEvent(new MouseEvent('click')); // Each subsequent click is timed out to allow the smooth scroll to finish. window.setTimeout(() => { button?.dispatchEvent(new MouseEvent('click')); window.setTimeout(() => { button?.dispatchEvent(new MouseEvent('click')); }, 200); }, 200); const btn = document.querySelector('button'); btn?.addEventListener('click', () => { component.data = { crumbs: [emCrumb, strongCrumb, spanCrumb, divCrumb, bodyCrumb], selectedNode: divCrumb, }; });