Port application/window-controls_test to non-hosted Bug: 416405566 Change-Id: I0ac6400ce7c089b3efd278019e630f63a13ccc31 Reviewed-on: https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/6616831 Reviewed-by: Alex Rudenko <alexrudenko@chromium.org> Commit-Queue: Liviu Rau <liviurau@chromium.org> Reviewed-by: Benedikt Meurer <bmeurer@chromium.org>
diff --git a/test/e2e/application/BUILD.gn b/test/e2e/application/BUILD.gn index eb68ccd..0a1fa96 100644 --- a/test/e2e/application/BUILD.gn +++ b/test/e2e/application/BUILD.gn
@@ -8,7 +8,6 @@ sources = [ "frame-tree_test.ts", "shared-storage_test.ts", - "window-controls_test.ts", ] deps = [
diff --git a/test/e2e/application/window-controls_test.ts b/test/e2e/application/window-controls_test.ts deleted file mode 100644 index d2e0e3c6..0000000 --- a/test/e2e/application/window-controls_test.ts +++ /dev/null
@@ -1,40 +0,0 @@ -// 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 type {ElementHandle} from 'puppeteer-core'; - -import {selectOption, waitFor} from '../../shared/helper.js'; -import {navigateToApplicationTab} from '../helpers/application-helpers.js'; - -const TEST_HTML_FILE = 'window-controls'; - -async function assertChecked(checkbox: ElementHandle<HTMLInputElement>, expected: boolean) { - const checked = await checkbox.evaluate(el => el.checked); - assert.strictEqual(checked, expected); -} - -describe('The Window Controls Overlay', () => { - it('shows emulation controls when manifest with property display_overide is present', async () => { - await navigateToApplicationTab(TEST_HTML_FILE); - const windowControlsCheckbox = - await (await waitFor('[title="Emulate the Window Controls Overlay on"]')).toElement('input'); - const controlsDropDown = await waitFor('select'); - - // Verify dropdown options - const options = await controlsDropDown.$$('option'); - const values = await Promise.all(options.map(option => option.evaluate(el => el.value))); - assert.deepEqual(values, ['Windows', 'Mac', 'Linux']); - - // Verify selecting an option - void selectOption(await controlsDropDown.toElement('select'), 'Linux'); - const selectedOption = await controlsDropDown.evaluate(input => input.value); - assert.strictEqual(selectedOption, 'Linux'); - - // Verify clicking the checkbox - await assertChecked(windowControlsCheckbox, false); - await windowControlsCheckbox.click(); - await assertChecked(windowControlsCheckbox, true); - }); -});
diff --git a/test/e2e_non_hosted/application/BUILD.gn b/test/e2e_non_hosted/application/BUILD.gn index 419d9f3..0dad788 100644 --- a/test/e2e_non_hosted/application/BUILD.gn +++ b/test/e2e_non_hosted/application/BUILD.gn
@@ -13,6 +13,7 @@ "service-worker-update_test.ts", "session-storage_test.ts", "storage_test.ts", + "window-controls_test.ts", ] deps = [
diff --git a/test/e2e_non_hosted/application/window-controls_test.ts b/test/e2e_non_hosted/application/window-controls_test.ts new file mode 100644 index 0000000..812741f --- /dev/null +++ b/test/e2e_non_hosted/application/window-controls_test.ts
@@ -0,0 +1,45 @@ +// 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 type {ElementHandle} from 'puppeteer-core'; + +import {navigateToApplicationTab} from '../../e2e/helpers/application-helpers.js'; +import {selectOption} from '../../shared/helper.js'; + +const TEST_HTML_FILE = 'window-controls'; + +async function assertChecked(checkbox: ElementHandle<HTMLInputElement>, expected: boolean) { + const checked = await checkbox.evaluate(el => el.checked); + assert.strictEqual(checked, expected); +} + +describe('The Window Controls Overlay', () => { + // TODO (liviurau): Update navigateToApplicationTab helper to work in docked + // mode and remove the setup below. + setup({dockingMode: 'undocked'}); + + it('shows emulation controls when manifest with property display_overide is present', + async ({devToolsPage, inspectedPage}) => { + await navigateToApplicationTab(TEST_HTML_FILE, devToolsPage, inspectedPage); + const windowControlsCheckbox = + await (await devToolsPage.waitFor('[title="Emulate the Window Controls Overlay on"]')).toElement('input'); + const controlsDropDown = await devToolsPage.waitFor('select'); + + // Verify dropdown options + const options = await controlsDropDown.$$('option'); + const values = await Promise.all(options.map(option => option.evaluate(el => el.value))); + assert.deepEqual(values, ['Windows', 'Mac', 'Linux']); + + // Verify selecting an option + void selectOption(await controlsDropDown.toElement('select'), 'Linux'); + const selectedOption = await controlsDropDown.evaluate(input => input.value); + assert.strictEqual(selectedOption, 'Linux'); + + // Verify clicking the checkbox + await assertChecked(windowControlsCheckbox, false); + await windowControlsCheckbox.click(); + await assertChecked(windowControlsCheckbox, true); + }); +});