blob: 3109a8eb769e68cb3f8643b2e03c5bc5c4a5ce5d [file] [log] [blame]
// Copyright 2021 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 {assert} from 'chai';
import {assertNotNullOrUndefined, goToResource, waitFor} from '../../shared/helper.js';
import {
getHiddenIssuesRow,
getHiddenIssuesRowBody,
getHideIssuesMenu,
getHideIssuesMenuItem,
getIssueHeaderByTitle,
ISSUE,
navigateToIssuesTab,
} from '../helpers/issues-helpers.js';
describe('Hide issues row', () => {
it('should be visible after hiding an issue', async () => {
await goToResource('elements/quirks-mode.html');
await navigateToIssuesTab();
const issueTitle = 'Page layout may be unexpected due to Quirks Mode';
const issueHeader = await getIssueHeaderByTitle(issueTitle);
await issueHeader!.hover();
const hideIssuesMenuBtn = await getHideIssuesMenu();
await hideIssuesMenuBtn.click();
const menuItem = await getHideIssuesMenuItem();
await menuItem!.click();
await waitFor('.hidden-issue');
const hiddenIssuesRow = await getHiddenIssuesRow();
const isHidden = await hiddenIssuesRow?.evaluate(node => node.classList.contains('hidden'));
assert.isFalse(isHidden);
});
it('should expand after clicking', async () => {
await goToResource('elements/quirks-mode.html');
await navigateToIssuesTab();
const issueTitle = 'Page layout may be unexpected due to Quirks Mode';
const issueHeader = await getIssueHeaderByTitle(issueTitle);
await issueHeader!.hover();
const hideIssuesMenuBtn = await getHideIssuesMenu();
await hideIssuesMenuBtn.click();
const menuItem = await getHideIssuesMenuItem();
await menuItem!.click();
const hiddenIssuesRow = await getHiddenIssuesRow();
let isHidden = await hiddenIssuesRow?.evaluate(node => node.classList.contains('hidden'));
assert.isFalse(isHidden);
await hiddenIssuesRow?.click();
const hiddenIssuesRowBody = await getHiddenIssuesRowBody();
isHidden = await hiddenIssuesRowBody?.evaluate(node => node.classList.contains('hidden'));
assert.isFalse(isHidden);
const classes = await hiddenIssuesRow?.evaluate(node => node.classList.toString());
assert.include(classes, 'expanded');
});
it('should contain issue after clicking', async () => {
await goToResource('elements/quirks-mode.html');
await navigateToIssuesTab();
const issueTitle = 'Page layout may be unexpected due to Quirks Mode';
const issueHeader = await getIssueHeaderByTitle(issueTitle);
await issueHeader!.hover();
const hideIssuesMenuBtn = await getHideIssuesMenu();
await hideIssuesMenuBtn.click();
const menuItem = await getHideIssuesMenuItem();
await menuItem!.click();
await waitFor('.hidden-issue');
const hiddenIssuesRow = await getHiddenIssuesRow();
let isHidden = await hiddenIssuesRow?.evaluate(node => node.classList.contains('hidden'));
assert.isFalse(isHidden);
await hiddenIssuesRow?.click();
const hiddenIssuesRowBody = await getHiddenIssuesRowBody();
isHidden = await hiddenIssuesRowBody?.evaluate(node => node.classList.contains('hidden'));
assert.isFalse(isHidden);
const firstChild = await hiddenIssuesRowBody?.$eval('.issue', node => node.classList.toString());
assertNotNullOrUndefined(firstChild);
assert.include(firstChild, 'hidden-issue');
});
it('should contain Unhide all issues button', async () => {
await goToResource('elements/quirks-mode.html');
await navigateToIssuesTab();
const issueTitle = 'Page layout may be unexpected due to Quirks Mode';
const issueHeader = await getIssueHeaderByTitle(issueTitle);
await issueHeader!.hover();
const hideIssuesMenuBtn = await getHideIssuesMenu();
await hideIssuesMenuBtn.click();
const menuItem = await getHideIssuesMenuItem();
await menuItem!.click();
const hiddenIssuesRow = await getHiddenIssuesRow();
const isHidden = await hiddenIssuesRow?.evaluate(node => node.classList.contains('hidden'));
assert.isFalse(isHidden);
const hasUnhideAllIssuesBtn = await hiddenIssuesRow?.evaluate(
node => node.lastElementChild?.lastElementChild?.classList.contains('unhide-all-issues-button'));
assert.isTrue(hasUnhideAllIssuesBtn);
});
it('should get hidden and unhide all issues upon clicking unhide all issues button', async () => {
await goToResource('elements/quirks-mode.html');
await navigateToIssuesTab();
const issueTitle = 'Page layout may be unexpected due to Quirks Mode';
const issueHeader = await getIssueHeaderByTitle(issueTitle);
await issueHeader!.hover();
const hideIssuesMenuBtn = await getHideIssuesMenu();
await hideIssuesMenuBtn.click();
const menuItem = await getHideIssuesMenuItem();
await menuItem!.click();
const unhideAllIssuesbtn = await waitFor('.unhide-all-issues-button');
await unhideAllIssuesbtn.click();
const hiddenIssuesRow = await getHiddenIssuesRow();
const isHidden = await hiddenIssuesRow?.evaluate(node => node.classList.contains('hidden'));
assert.isTrue(isHidden);
await waitFor(ISSUE);
});
});