blob: 6ad4c17de7d4c3cb7cd4a745c9e9d06936a2140f [file] [log] [blame]
// Copyright 2022 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
import {
checkCommandResultFunction,
navigateToConsoleTab,
} from '../helpers/console-helpers.js';
import type {DevToolsPage} from '../shared/frontend-helper.js';
import type {InspectedPage} from '../shared/target-helper.js';
async function openConsoleOnTestPage(devToolsPage: DevToolsPage, inspectedPage: InspectedPage) {
await inspectedPage.goToResource('../resources/console/command-line-api.html');
await navigateToConsoleTab(devToolsPage);
}
describe('The Console Tab', () => {
describe('provides a command line API', () => {
describe('getEventListeners', () => {
const checkCommand = checkCommandResultFunction(0);
it('which yields inner listeners correctly', async ({devToolsPage, inspectedPage}) => {
await openConsoleOnTestPage(devToolsPage, inspectedPage);
await checkCommand(
'innerListeners();',
'{keydown: Array(2), wheel: Array(1)}',
undefined,
devToolsPage,
);
});
it('which yields inner listeners correctly after removal', async ({devToolsPage, inspectedPage}) => {
await openConsoleOnTestPage(devToolsPage, inspectedPage);
await checkCommand(
'removeInnerListeners(); getEventListeners(innerElement());',
'{keydown: Array(1)}',
undefined,
devToolsPage,
);
});
it('which yields the correct event listeners for an element', async ({devToolsPage, inspectedPage}) => {
await openConsoleOnTestPage(devToolsPage, inspectedPage);
await checkCommand(
'getEventListeners(document.getElementById("outer"));',
'{mousemove: Array(1), mousedown: Array(1), keydown: Array(1), keyup: Array(1)}',
undefined,
devToolsPage,
);
});
it('which yields the correct event listeners for a button', async ({devToolsPage, inspectedPage}) => {
await openConsoleOnTestPage(devToolsPage, inspectedPage);
await checkCommand(
'getEventListeners(document.getElementById("button"));',
'{click: Array(1), mouseover: Array(1)}',
undefined,
devToolsPage,
);
});
it('which yields the correct event listeners for the window object', async ({devToolsPage, inspectedPage}) => {
await openConsoleOnTestPage(devToolsPage, inspectedPage);
await checkCommand(
'getEventListeners(window);',
'{popstate: Array(1)}',
undefined,
devToolsPage,
);
});
it('which yields the correct event listeners for an empty element', async ({devToolsPage, inspectedPage}) => {
await openConsoleOnTestPage(devToolsPage, inspectedPage);
await checkCommand('getEventListeners(document.getElementById("empty"));', '{}', undefined, devToolsPage);
});
it('which yields the correct event listeners for an invalid element', async ({devToolsPage, inspectedPage}) => {
await openConsoleOnTestPage(devToolsPage, inspectedPage);
await checkCommand('getEventListeners(document.getElementById("invalid"));', '{}', undefined, devToolsPage);
});
it('which yields the correct event listeners for an empty object', async ({devToolsPage, inspectedPage}) => {
await openConsoleOnTestPage(devToolsPage, inspectedPage);
await checkCommand('getEventListeners({});', '{}', undefined, devToolsPage);
});
it('which yields the correct event listeners are for a null and undefined values',
async ({devToolsPage, inspectedPage}) => {
await openConsoleOnTestPage(devToolsPage, inspectedPage);
await checkCommand('getEventListeners(null);', '{}', undefined, devToolsPage);
await checkCommand('getEventListeners(undefined);', '{}', undefined, devToolsPage);
});
});
});
});