33// found in the LICENSE file.
44import type * as puppeteer from 'puppeteer-core' ;
55
6+ import type { DevToolsPage } from '../../e2e_non_hosted/shared/frontend-helper.js' ;
7+ import type { InspectedPage } from '../../e2e_non_hosted/shared/target-helper.js' ;
68import {
79 $ ,
8- click ,
910 clickElement ,
1011 getBrowserAndPages ,
1112 goToResource ,
12- waitFor ,
1313} from '../../shared/helper.js' ;
1414import { getBrowserAndPagesWrappers } from '../../shared/non_hosted_wrappers.js' ;
1515
@@ -36,44 +36,49 @@ export const reloadDockableFrontEnd = async () => {
3636 await reloadDevTools ( { canDock : true } ) ;
3737} ;
3838
39- export const deviceModeIsEnabled = async ( inspectedPage = getBrowserAndPagesWrappers ( ) . inspectedPage ) => {
39+ export const deviceModeIsEnabled =
40+ async ( inspectedPage : InspectedPage = getBrowserAndPagesWrappers ( ) . inspectedPage ) => {
4041 // Check the userAgent string to see whether emulation is really enabled.
4142 const userAgent = await inspectedPage . evaluate ( ( ) => navigator . userAgent ) ;
4243 return userAgent . includes ( 'Mobile' ) ;
4344} ;
4445
45- export const clickDeviceModeToggler = async ( devToolsPage = getBrowserAndPagesWrappers ( ) . devToolsPage ) => {
46+ export const clickDeviceModeToggler =
47+ async ( devToolsPage : DevToolsPage = getBrowserAndPagesWrappers ( ) . devToolsPage ) => {
4648 const deviceToolbarToggler = await devToolsPage . waitFor ( DEVICE_TOOLBAR_TOGGLER_SELECTOR ) ;
4749 await devToolsPage . clickElement ( deviceToolbarToggler ) ;
4850} ;
4951
5052export const openDeviceToolbar = async (
51- devToolsPage = getBrowserAndPagesWrappers ( ) . devToolsPage ,
52- inspectedPage = getBrowserAndPagesWrappers ( ) . inspectedPage ) => {
53+ devToolsPage : DevToolsPage = getBrowserAndPagesWrappers ( ) . devToolsPage ,
54+ inspectedPage : InspectedPage = getBrowserAndPagesWrappers ( ) . inspectedPage ) => {
5355 if ( await deviceModeIsEnabled ( inspectedPage ) ) {
5456 return ;
5557 }
5658 await clickDeviceModeToggler ( devToolsPage ) ;
5759 await devToolsPage . waitFor ( DEVICE_TOOLBAR_SELECTOR ) ;
5860} ;
5961
60- export const showMediaQueryInspector = async ( ) => {
62+ export const showMediaQueryInspector =
63+ async ( devToolsPage : DevToolsPage = getBrowserAndPagesWrappers ( ) . devToolsPage ) => {
6164 const inspector = await $ ( MEDIA_QUERY_INSPECTOR_SELECTOR ) ;
6265 if ( inspector ) {
6366 return ;
6467 }
65- await click ( DEVICE_TOOLBAR_OPTIONS_SELECTOR ) ;
68+ await devToolsPage . click ( DEVICE_TOOLBAR_OPTIONS_SELECTOR ) ;
6669 const { frontend} = getBrowserAndPages ( ) ;
6770 await frontend . keyboard . press ( 'ArrowDown' ) ;
6871 await frontend . keyboard . press ( 'Enter' ) ;
69- await waitFor ( MEDIA_QUERY_INSPECTOR_SELECTOR ) ;
72+ await devToolsPage . waitFor ( MEDIA_QUERY_INSPECTOR_SELECTOR ) ;
7073} ;
7174
72- export const startEmulationWithDualScreenPage = async ( ) => {
75+ export const startEmulationWithDualScreenPage = async (
76+ devToolsPage : DevToolsPage = getBrowserAndPagesWrappers ( ) . devToolsPage ,
77+ inspectedPage : InspectedPage = getBrowserAndPagesWrappers ( ) . inspectedPage ) => {
7378 await reloadDockableFrontEnd ( ) ;
7479 await goToResource ( 'emulation/dual-screen-inspector.html' ) ;
75- await waitFor ( '.tabbed-pane-left-toolbar' ) ;
76- await openDeviceToolbar ( ) ;
80+ await devToolsPage . waitFor ( '.tabbed-pane-left-toolbar' ) ;
81+ await openDeviceToolbar ( devToolsPage , inspectedPage ) ;
7782} ;
7883
7984export const getButtonDisabled = async ( spanButton : puppeteer . ElementHandle < HTMLButtonElement > ) => {
@@ -82,24 +87,25 @@ export const getButtonDisabled = async (spanButton: puppeteer.ElementHandle<HTML
8287 } ) ;
8388} ;
8489
85- export const clickDevicesDropDown = async ( devToolsPage = getBrowserAndPagesWrappers ( ) . devToolsPage ) => {
90+ export const clickDevicesDropDown = async ( devToolsPage : DevToolsPage = getBrowserAndPagesWrappers ( ) . devToolsPage ) => {
8691 const toolbar = await devToolsPage . waitFor ( DEVICE_TOOLBAR_SELECTOR ) ;
8792 await devToolsPage . click ( DEVICE_LIST_DROPDOWN_SELECTOR , { root : toolbar } ) ;
8893} ;
8994
90- export const clickDevicePostureDropDown = async ( ) => {
91- const toolbar = await waitFor ( DEVICE_TOOLBAR_SELECTOR ) ;
92- await click ( DEVICE_POSTURE_DROPDOWN_SELECTOR , { root : toolbar } ) ;
95+ export const clickDevicePostureDropDown =
96+ async ( devToolsPage : DevToolsPage = getBrowserAndPagesWrappers ( ) . devToolsPage ) => {
97+ const toolbar = await devToolsPage . waitFor ( DEVICE_TOOLBAR_SELECTOR ) ;
98+ await devToolsPage . click ( DEVICE_POSTURE_DROPDOWN_SELECTOR , { root : toolbar } ) ;
9399} ;
94100
95- export const clickZoomDropDown = async ( ) => {
96- const toolbar = await waitFor ( DEVICE_TOOLBAR_SELECTOR ) ;
97- await click ( ZOOM_LIST_DROPDOWN_SELECTOR , { root : toolbar } ) ;
101+ export const clickZoomDropDown = async ( devToolsPage : DevToolsPage = getBrowserAndPagesWrappers ( ) . devToolsPage ) => {
102+ const toolbar = await devToolsPage . waitFor ( DEVICE_TOOLBAR_SELECTOR ) ;
103+ await devToolsPage . click ( ZOOM_LIST_DROPDOWN_SELECTOR , { root : toolbar } ) ;
98104} ;
99105
100- export const clickWidthInput = async ( ) => {
101- const toolbar = await waitFor ( DEVICE_TOOLBAR_SELECTOR ) ;
102- await click ( SCREEN_DIM_INPUT_SELECTOR , { root : toolbar } ) ;
106+ export const clickWidthInput = async ( devToolsPage : DevToolsPage = getBrowserAndPagesWrappers ( ) . devToolsPage ) => {
107+ const toolbar = await devToolsPage . waitFor ( DEVICE_TOOLBAR_SELECTOR ) ;
108+ await devToolsPage . click ( SCREEN_DIM_INPUT_SELECTOR , { root : toolbar } ) ;
103109} ;
104110
105111export const selectToggleButton = async ( ) => {
@@ -108,38 +114,39 @@ export const selectToggleButton = async () => {
108114 return toggleButton ;
109115} ;
110116
111- export const selectEdit = async ( ) => {
112- await clickDevicesDropDown ( ) ;
113- await click ( EDIT_MENU_ITEM_SELECTOR ) ;
114- await waitForNotExpanded ( DEVICE_LIST_DROPDOWN_SELECTOR ) ;
117+ export const selectEdit = async ( devToolsPage : DevToolsPage = getBrowserAndPagesWrappers ( ) . devToolsPage ) => {
118+ await clickDevicesDropDown ( devToolsPage ) ;
119+ await devToolsPage . click ( EDIT_MENU_ITEM_SELECTOR ) ;
120+ await waitForNotExpanded ( DEVICE_LIST_DROPDOWN_SELECTOR , devToolsPage ) ;
115121} ;
116122
117- export const selectDevice = async ( name : string , devToolsPage = getBrowserAndPagesWrappers ( ) . devToolsPage ) => {
123+ export const selectDevice =
124+ async ( name : string , devToolsPage : DevToolsPage = getBrowserAndPagesWrappers ( ) . devToolsPage ) => {
118125 await clickDevicesDropDown ( devToolsPage ) ;
119126 await devToolsPage . click ( `[aria-label*="${ name } , unchecked"]` ) ;
120127 await waitForNotExpanded ( DEVICE_LIST_DROPDOWN_SELECTOR , devToolsPage ) ;
121128} ;
122129
123- export const selectTestDevice = async ( ) => {
124- await clickDevicesDropDown ( ) ;
125- await click ( TEST_DEVICE_MENU_ITEM_SELECTOR ) ;
126- await waitForNotExpanded ( DEVICE_LIST_DROPDOWN_SELECTOR ) ;
130+ export const selectTestDevice = async ( devToolsPage : DevToolsPage = getBrowserAndPagesWrappers ( ) . devToolsPage ) => {
131+ await clickDevicesDropDown ( devToolsPage ) ;
132+ await devToolsPage . click ( TEST_DEVICE_MENU_ITEM_SELECTOR ) ;
133+ await waitForNotExpanded ( DEVICE_LIST_DROPDOWN_SELECTOR , devToolsPage ) ;
127134} ;
128135
129136// Test if span button works when emulating a dual screen device.
130- export const selectDualScreen = async ( ) => {
131- await clickDevicesDropDown ( ) ;
132- await click ( SURFACE_DUO_MENU_ITEM_SELECTOR ) ;
133- await waitForNotExpanded ( DEVICE_LIST_DROPDOWN_SELECTOR ) ;
137+ export const selectDualScreen = async ( devToolsPage : DevToolsPage = getBrowserAndPagesWrappers ( ) . devToolsPage ) => {
138+ await clickDevicesDropDown ( devToolsPage ) ;
139+ await devToolsPage . click ( SURFACE_DUO_MENU_ITEM_SELECTOR ) ;
140+ await waitForNotExpanded ( DEVICE_LIST_DROPDOWN_SELECTOR , devToolsPage ) ;
134141} ;
135142
136- export const selectFoldableDevice = async ( ) => {
137- await clickDevicesDropDown ( ) ;
138- await click ( FOLDABLE_DEVICE_MENU_ITEM_SELECTOR ) ;
139- await waitForNotExpanded ( DEVICE_LIST_DROPDOWN_SELECTOR ) ;
143+ export const selectFoldableDevice = async ( devToolsPage : DevToolsPage = getBrowserAndPagesWrappers ( ) . devToolsPage ) => {
144+ await clickDevicesDropDown ( devToolsPage ) ;
145+ await devToolsPage . click ( FOLDABLE_DEVICE_MENU_ITEM_SELECTOR ) ;
146+ await waitForNotExpanded ( DEVICE_LIST_DROPDOWN_SELECTOR , devToolsPage ) ;
140147} ;
141148
142- const waitForNotExpanded = async ( selector : string , devToolsPage = getBrowserAndPagesWrappers ( ) . devToolsPage ) => {
149+ const waitForNotExpanded = async ( selector : string , devToolsPage : DevToolsPage ) => {
143150 const toolbar = await devToolsPage . waitFor ( DEVICE_TOOLBAR_SELECTOR ) ;
144151 const dropdown = await devToolsPage . waitFor ( selector , toolbar ) ;
145152 await devToolsPage . waitForFunction ( async ( ) => {
@@ -148,14 +155,16 @@ const waitForNotExpanded = async (selector: string, devToolsPage = getBrowserAnd
148155 } ) ;
149156} ;
150157
151- export const waitForZoomDropDownNotExpanded = async ( ) => {
152- await waitForNotExpanded ( ZOOM_LIST_DROPDOWN_SELECTOR ) ;
158+ export const waitForZoomDropDownNotExpanded =
159+ async ( devToolsPage : DevToolsPage = getBrowserAndPagesWrappers ( ) . devToolsPage ) => {
160+ await waitForNotExpanded ( ZOOM_LIST_DROPDOWN_SELECTOR , devToolsPage ) ;
153161} ;
154162
155- export const clickDevicePosture = async ( name : string ) => {
156- await clickDevicePostureDropDown ( ) ;
157- await click ( `[aria-label*="${ name } , unchecked"]` ) ;
158- await waitForNotExpanded ( DEVICE_POSTURE_DROPDOWN_SELECTOR ) ;
163+ export const clickDevicePosture =
164+ async ( name : string , devToolsPage : DevToolsPage = getBrowserAndPagesWrappers ( ) . devToolsPage ) => {
165+ await clickDevicePostureDropDown ( devToolsPage ) ;
166+ await devToolsPage . click ( `[aria-label*="${ name } , unchecked"]` ) ;
167+ await waitForNotExpanded ( DEVICE_POSTURE_DROPDOWN_SELECTOR , devToolsPage ) ;
159168} ;
160169
161170export const getDevicePostureDropDown = async ( ) => {
@@ -170,29 +179,29 @@ export const clickToggleButton = async () => {
170179 await clickElement ( toggleButton ) ;
171180} ;
172181
173- export const getWidthOfDevice = async ( ) => {
182+ export const getWidthOfDevice = async ( devToolsPage : DevToolsPage = getBrowserAndPagesWrappers ( ) . devToolsPage ) => {
174183 // Read the width of spanned duo to make sure spanning works.
175- const widthInput = await waitFor ( SCREEN_DIM_INPUT_SELECTOR ) ;
184+ const widthInput = await devToolsPage . waitFor ( SCREEN_DIM_INPUT_SELECTOR ) ;
176185 return await widthInput . evaluate ( e => ( e as HTMLInputElement ) . value ) ;
177186} ;
178187
179- export const getZoom = async ( ) => {
188+ export const getZoom = async ( devToolsPage : DevToolsPage = getBrowserAndPagesWrappers ( ) . devToolsPage ) => {
180189 // Read the width of spanned duo to make sure spanning works.
181- const widthInput = await waitFor ( ZOOM_LIST_DROPDOWN_SELECTOR ) ;
190+ const widthInput = await devToolsPage . waitFor ( ZOOM_LIST_DROPDOWN_SELECTOR ) ;
182191 return await widthInput . evaluate ( e => ( e as HTMLInputElement ) . innerText ) ;
183192} ;
184193
185- export const toggleAutoAdjustZoom = async ( ) => {
186- await clickZoomDropDown ( ) ;
187- await click ( AUTO_AUTO_ADJUST_ZOOM_SELECTOR ) ;
188- await waitForZoomDropDownNotExpanded ( ) ;
194+ export const toggleAutoAdjustZoom = async ( devToolsPage : DevToolsPage = getBrowserAndPagesWrappers ( ) . devToolsPage ) => {
195+ await clickZoomDropDown ( devToolsPage ) ;
196+ await devToolsPage . click ( AUTO_AUTO_ADJUST_ZOOM_SELECTOR ) ;
197+ await waitForZoomDropDownNotExpanded ( devToolsPage ) ;
189198} ;
190199
191200const IPAD_MENU_ITEM_SELECTOR = '[aria-label*="iPad"]' ;
192201
193- // Test if span button is clickable when emulating a non-dual-screen device.
194- export const selectNonDualScreenDevice = async ( ) => {
195- await clickDevicesDropDown ( ) ;
196- await click ( IPAD_MENU_ITEM_SELECTOR ) ;
197- await waitForNotExpanded ( DEVICE_LIST_DROPDOWN_SELECTOR ) ;
202+ export const selectNonDualScreenDevice =
203+ async ( devToolsPage : DevToolsPage = getBrowserAndPagesWrappers ( ) . devToolsPage ) => {
204+ await clickDevicesDropDown ( devToolsPage ) ;
205+ await devToolsPage . click ( IPAD_MENU_ITEM_SELECTOR ) ;
206+ await waitForNotExpanded ( DEVICE_LIST_DROPDOWN_SELECTOR , devToolsPage ) ;
198207} ;
0 commit comments