[go: nahoru, domu]

blob: 5694198957cdf1d824e74fc27eb79d42682c30cc [file] [log] [blame]
// Copyright 2020 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.
import {click, goToResource, waitFor, waitForMany, waitForNone} from '../../shared/helper.js';
import {openPanelViaMoreTools} from './settings-helpers.js';
const START_INSTRUMENTING_BUTTON = 'button[aria-label="Start instrumenting coverage and reload page"]';
const STOP_INSTRUMENTING_BUTTON = 'button[aria-label="Stop instrumenting coverage and show results"]';
export async function waitForTheCoveragePanelToLoad() {
// Open panel and wait for content
await openPanelViaMoreTools('Coverage');
await waitFor('div[aria-label="Coverage panel"]');
await waitFor('.coverage-results .landing-page');
}
export async function navigateToCoverageTestSite() {
await goToResource('coverage/default.html');
}
export async function startInstrumentingCoverage() {
await waitFor(START_INSTRUMENTING_BUTTON);
await click(START_INSTRUMENTING_BUTTON);
await waitForNone('.coverage-results .landing-page');
}
export async function stopInstrumentingCoverage() {
await click(STOP_INSTRUMENTING_BUTTON);
await waitForNone('button[aria-label="Clear all"][disabled]');
}
export async function clearCoverageContent() {
await click('button[aria-label="Clear all"]');
await waitFor('.coverage-results .landing-page');
}
export async function getMessageContents() {
const messageElement = await waitFor('.coverage-results .landing-page .message');
return messageElement.evaluate(node => (node as HTMLElement).innerText);
}
export async function getCoverageData(expectedCount: number) {
const rows = await waitForMany('.data-grid-data-grid-node', expectedCount, await waitFor('.coverage-results'));
return Promise.all(rows.map(r => r.evaluate((r: Element) => ({
url: r.querySelector('.url-column')?.textContent,
total: r.querySelector('.size-column')?.textContent,
unused: r.querySelector('.unusedSize-column span')?.textContent,
}))));
}