From 86815d70e05f05b95d7b18e0d03c11ab4a3bdd5b Mon Sep 17 00:00:00 2001 From: Pavel Feldman Date: Wed, 19 Aug 2020 21:32:12 -0700 Subject: [PATCH] test: convert rename options to parameters, remove options magic (#3543) --- package.json | 2 +- test/accessibility.spec.ts | 32 ++++++------- test/autowaiting-basic.spec.ts | 2 +- test/autowaiting-no-hang.spec.ts | 2 +- test/browser.spec.ts | 4 +- test/browsercontext-add-cookies.spec.ts | 4 +- test/browsercontext-basic.spec.ts | 4 +- test/browsercontext-clearcookies.spec.ts | 3 +- test/browsercontext-cookies.spec.ts | 6 +-- test/browsercontext-credentials.spec.ts | 8 ++-- test/browsercontext-csp.spec.ts | 2 +- test/browsercontext-device.spec.ts | 8 ++-- test/browsercontext-expose-function.spec.ts | 2 +- test/browsercontext-locale.spec.ts | 4 +- test/browsercontext-page-event.spec.ts | 6 +-- test/browsercontext-route.spec.ts | 2 +- test/browsercontext-timezone-id.spec.ts | 4 +- test/browsercontext-user-agent.spec.ts | 2 +- test/browsercontext-viewport-mobile.spec.ts | 20 ++++----- test/browsercontext-viewport.spec.ts | 2 +- test/browsertype-basic.spec.ts | 8 ++-- test/browsertype-connect.spec.ts | 4 +- test/browsertype-launch-server.spec.ts | 2 +- test/browsertype-launch.spec.ts | 5 +-- test/capabilities.spec.ts | 8 ++-- test/channels.spec.ts | 4 +- test/check.spec.ts | 2 +- test/chromium-css-coverage.spec.ts | 22 ++++----- test/chromium-js-coverage.spec.ts | 22 ++++----- test/chromium/chromium.spec.ts | 12 ++--- test/chromium/launcher.spec.ts | 12 ++--- test/chromium/oopif.spec.ts | 36 +++++++-------- test/chromium/session.spec.ts | 20 ++++----- test/chromium/tracing.spec.ts | 17 ++++--- test/click-react.spec.ts | 2 +- test/click-timeout-1.spec.ts | 2 +- test/click-timeout-2.spec.ts | 3 +- test/click-timeout-3.spec.ts | 2 +- test/click-timeout-4.spec.ts | 3 +- test/click.spec.ts | 28 ++++++------ test/defaultbrowsercontext.spec.ts | 17 ++++--- test/dialog.spec.ts | 5 ++- test/dispatchevent.spec.ts | 6 +-- test/download.spec.ts | 7 ++- test/downloads-path.spec.ts | 3 +- test/electron/electron-app.spec.ts | 22 ++++----- test/electron/electron-window.spec.ts | 10 +++-- test/electron/electron.fixture.ts | 2 +- test/elementhandle-bounding-box.spec.ts | 6 +-- test/elementhandle-click.spec.ts | 3 +- test/elementhandle-content-frame.spec.ts | 3 +- test/elementhandle-convenience.spec.ts | 2 +- test/elementhandle-eval-on-selector.spec.ts | 3 +- test/elementhandle-misc.spec.ts | 3 +- test/elementhandle-owner-frame.spec.ts | 2 +- test/elementhandle-press.spec.ts | 3 +- test/elementhandle-query-selector.spec.ts | 3 +- test/elementhandle-screenshot.spec.ts | 8 ++-- test/elementhandle-scroll-into-view.spec.ts | 3 +- test/elementhandle-select-text.spec.ts | 7 +-- test/elementhandle-type.spec.ts | 3 +- ...ementhandle-wait-for-element-state.spec.ts | 3 +- test/emulation-focus.spec.ts | 5 +-- test/eval-on-selector-all.spec.ts | 3 +- test/eval-on-selector.spec.ts | 3 +- test/firefox/launcher.spec.ts | 4 +- test/fixtures.spec.ts | 2 +- test/focus.spec.ts | 6 +-- test/frame-evaluate.spec.ts | 8 ++-- test/frame-frame-element.spec.ts | 3 +- test/frame-goto.spec.ts | 3 +- test/frame-hierarchy.spec.ts | 5 +-- test/geolocation.spec.ts | 3 +- test/headful.spec.ts | 9 ++-- test/ignorehttpserrors.spec.ts | 3 +- test/interception.spec.ts | 3 +- test/jshandle-as-element.spec.ts | 3 +- test/jshandle-evaluate.spec.ts | 3 +- test/jshandle-json-value.spec.ts | 3 +- test/jshandle-properties.spec.ts | 3 +- test/jshandle-to-string.spec.ts | 5 ++- test/keyboard.spec.ts | 13 +++--- test/launcher.spec.ts | 2 +- test/logger.spec.ts | 3 +- test/mouse.spec.ts | 13 +++--- test/multiclient.spec.ts | 2 +- test/navigation.spec.ts | 3 +- test/network-request.spec.ts | 10 ++--- test/network-response.spec.ts | 2 +- test/page-add-init-script.spec.ts | 2 +- test/page-add-script-tag.spec.ts | 6 +-- test/page-add-style-tag.spec.ts | 2 +- test/page-basic.spec.ts | 15 ++++--- test/page-emulate-media.spec.ts | 4 +- test/page-evaluate-handle.spec.ts | 3 +- test/page-evaluate.spec.ts | 7 +-- test/page-event-console.spec.ts | 2 +- test/page-event-crash.spec.ts | 4 +- test/page-event-network.spec.ts | 7 +-- test/page-event-pageerror.spec.ts | 17 +++---- test/page-event-popup.spec.ts | 3 +- test/page-event-request.spec.ts | 2 +- test/page-expose-function.spec.ts | 3 +- test/page-fill.spec.ts | 9 ++-- test/page-goto.spec.ts | 19 ++++---- test/page-history.spec.ts | 4 +- test/page-network-idle.spec.ts | 2 +- test/page-route.spec.ts | 11 ++--- test/page-screenshot.spec.ts | 16 +++---- test/page-select-option.spec.ts | 3 +- test/page-set-content.spec.ts | 3 +- test/page-set-extra-http-headers.spec.ts | 3 +- test/page-set-input-files.spec.ts | 3 +- test/page-wait-for-load-state.spec.ts | 6 +-- test/page-wait-for-navigation.spec.ts | 5 ++- test/page-wait-for-request.spec.ts | 3 +- test/page-wait-for-response.spec.ts | 3 +- test/pdf.spec.ts | 7 ++- test/permissions.spec.ts | 8 ++-- ...base.fixture.ts => playwright.fixtures.ts} | 30 ++++++------- test/popup.spec.ts | 4 +- test/proxy.spec.ts | 8 ++-- test/queryselector.spec.ts | 3 +- test/request-continue.spec.ts | 3 +- test/request-fulfill.spec.ts | 6 +-- test/run_static_server.js | 1 + test/runner/fixtures.js | 45 +++++-------------- test/runner/fixturesUI.js | 5 --- test/runner/index.js | 19 -------- test/runner/{builtin.fixtures.ts => index.ts} | 22 ++++++--- test/runner/testCollector.js | 6 +-- test/runner/testRunner.js | 10 ++--- test/screencast.spec.ts | 19 ++++---- test/selectors-css.spec.ts | 3 +- test/selectors-misc.spec.ts | 3 +- test/selectors-register.spec.ts | 3 +- test/selectors-text.spec.ts | 7 +-- test/slowmo.spec.ts | 2 +- test/types.d.ts | 4 -- test/wait-for-function.spec.ts | 3 +- test/wait-for-selector.spec.ts | 2 +- test/workers.spec.ts | 2 +- utils/doclint/check_public_api/test/test.js | 1 + 143 files changed, 489 insertions(+), 486 deletions(-) rename test/{base.fixture.ts => playwright.fixtures.ts} (89%) delete mode 100644 test/runner/index.js rename test/runner/{builtin.fixtures.ts => index.ts} (62%) diff --git a/package.json b/package.json index c4806f40a1..699f12adeb 100644 --- a/package.json +++ b/package.json @@ -17,7 +17,7 @@ "tsc": "tsc -p .", "tsc-installer": "tsc -p ./src/install/tsconfig.json", "doc": "node utils/doclint/cli.js", - "test-infra": "node test/runner utils/doclint/check_public_api/test/test.js && node test/runner utils/doclint/preprocessor/test.js", + "test-infra": "node test/runner/cli utils/doclint/check_public_api/test/test.js && node test/runner/cli utils/doclint/preprocessor/test.js", "lint": "npm run eslint && npm run tsc && npm run doc && npm run check-deps && npm run generate-channels && npm run test-types && npm run test-infra", "clean": "rimraf lib && rimraf types", "prepare": "node install-from-github.js", diff --git a/test/accessibility.spec.ts b/test/accessibility.spec.ts index a45855d488..1eac353ec3 100644 --- a/test/accessibility.spec.ts +++ b/test/accessibility.spec.ts @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -import './base.fixture'; +import { options } from './playwright.fixtures'; it('should work', async function({page}) { await page.setContent(` @@ -35,7 +35,7 @@ it('should work', async function({page}) { // autofocus happens after a delay in chrome these days await page.waitForFunction(() => document.activeElement.hasAttribute('autofocus')); - const golden = options.FFOX ? { + const golden = options.FIREFOX() ? { role: 'document', name: 'Accessibility Test', children: [ @@ -48,7 +48,7 @@ it('should work', async function({page}) { {role: 'textbox', name: '', value: 'and a value'}, // firefox doesn't use aria-placeholder for the name {role: 'textbox', name: '', value: 'and a value', description: 'This is a description!'}, // and here ] - } : options.CHROMIUM ? { + } : options.CHROMIUM() ? { role: 'WebArea', name: 'Accessibility Test', children: [ @@ -82,7 +82,7 @@ it('should work with regular text', async({page}) => { await page.setContent(`
Hello World
`); const snapshot = await page.accessibility.snapshot(); expect(snapshot.children[0]).toEqual({ - role: options.FFOX ? 'text leaf' : 'text', + role: options.FIREFOX() ? 'text leaf' : 'text', name: 'Hello World', }); }); @@ -124,7 +124,7 @@ it('should not report text nodes inside controls', async function({page}) {
Tab2
`); const golden = { - role: options.FFOX ? 'document' : 'WebArea', + role: options.FIREFOX() ? 'document' : 'WebArea', name: '', children: [{ role: 'tab', @@ -139,12 +139,12 @@ it('should not report text nodes inside controls', async function({page}) { }); // WebKit rich text accessibility is iffy -it.skip(options.WEBKIT)('rich text editable fields should have children', async function({page}) { +it.skip(options.WEBKIT())('rich text editable fields should have children', async function({page}) { await page.setContent(`
Edit this image: my fake image
`); - const golden = options.FFOX ? { + const golden = options.FIREFOX() ? { role: 'section', name: '', children: [{ @@ -170,12 +170,12 @@ it.skip(options.WEBKIT)('rich text editable fields should have children', async expect(snapshot.children[0]).toEqual(golden); }); // WebKit rich text accessibility is iffy -it.skip(options.WEBKIT)('rich text editable fields with role should have children', async function({page}) { +it.skip(options.WEBKIT())('rich text editable fields with role should have children', async function({page}) { await page.setContent(`
Edit this image: my fake image
`); - const golden = options.FFOX ? { + const golden = options.FIREFOX() ? { role: 'textbox', name: '', value: 'Edit this image: my fake image', @@ -199,7 +199,7 @@ it.skip(options.WEBKIT)('rich text editable fields with role should have childre expect(snapshot.children[0]).toEqual(golden); }); -it.skip(options.FFOX || options.WEBKIT)('plain text field with role should not have children', async function({page}) { +it.skip(options.FIREFOX() || options.WEBKIT())('plain text field with role should not have children', async function({page}) { // Firefox does not support contenteditable="plaintext-only". // WebKit rich text accessibility is iffy await page.setContent(` @@ -212,7 +212,7 @@ it.skip(options.FFOX || options.WEBKIT)('plain text field with role should not h }); }); -it.skip(options.FFOX || options.WEBKIT)('plain text field without role should not have content', async function({page}) { +it.skip(options.FIREFOX() || options.WEBKIT())('plain text field without role should not have content', async function({page}) { await page.setContent(`
Edit this image:my fake image
`); const snapshot = await page.accessibility.snapshot(); @@ -222,7 +222,7 @@ it.skip(options.FFOX || options.WEBKIT)('plain text field without role should no }); }); -it.skip(options.FFOX || options.WEBKIT)('plain text field with tabindex and without role should not have content', async function({page}) { +it.skip(options.FIREFOX() || options.WEBKIT())('plain text field with tabindex and without role should not have content', async function({page}) { await page.setContent(`
Edit this image:my fake image
`); const snapshot = await page.accessibility.snapshot(); @@ -238,11 +238,11 @@ it('non editable textbox with role and tabIndex and label should not have childr this is the inner content yo `); - const golden = options.FFOX ? { + const golden = options.FIREFOX() ? { role: 'textbox', name: 'my favorite textbox', value: 'this is the inner content yo' - } : options.CHROMIUM ? { + } : options.CHROMIUM() ? { role: 'textbox', name: 'my favorite textbox', value: 'this is the inner content ' @@ -276,7 +276,7 @@ it('checkbox without label should not have children', async function({page}) { this is the inner content yo `); - const golden = options.FFOX ? { + const golden = options.FIREFOX() ? { role: 'checkbox', name: 'this is the inner content yo', checked: true @@ -327,7 +327,7 @@ it('should work on a menu', async({page}) => { [ { role: 'menuitem', name: 'First Item' }, { role: 'menuitem', name: 'Second Item' }, { role: 'menuitem', name: 'Third Item' } ], - orientation: options.WEBKIT ? 'vertical' : undefined + orientation: options.WEBKIT() ? 'vertical' : undefined }); }); diff --git a/test/autowaiting-basic.spec.ts b/test/autowaiting-basic.spec.ts index a96c2ba321..13a47a941b 100644 --- a/test/autowaiting-basic.spec.ts +++ b/test/autowaiting-basic.spec.ts @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -import './base.fixture'; +import { options } from './playwright.fixtures'; it('should await navigation when clicking anchor', async({page, server}) => { const messages = []; diff --git a/test/autowaiting-no-hang.spec.ts b/test/autowaiting-no-hang.spec.ts index 43da0fd210..10d1a964de 100644 --- a/test/autowaiting-no-hang.spec.ts +++ b/test/autowaiting-no-hang.spec.ts @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -import './base.fixture'; +import './playwright.fixtures'; it('clicking on links which do not commit navigation', async({page, server, httpsServer}) => { await page.goto(server.EMPTY_PAGE); diff --git a/test/browser.spec.ts b/test/browser.spec.ts index 173bff416f..c9b8209aa0 100644 --- a/test/browser.spec.ts +++ b/test/browser.spec.ts @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -import './base.fixture'; +import { options } from './playwright.fixtures'; it('should create new page', async function({browser}) { const page1 = await browser.newPage(); @@ -39,7 +39,7 @@ it('should throw upon second create new page', async function({browser}) { it('version should work', async function({browser}) { const version = browser.version(); - if (options.CHROMIUM) + if (options.CHROMIUM()) expect(version.match(/^\d+\.\d+\.\d+\.\d+$/)).toBeTruthy(); else expect(version.match(/^\d+\.\d+/)).toBeTruthy(); diff --git a/test/browsercontext-add-cookies.spec.ts b/test/browsercontext-add-cookies.spec.ts index 9ba681ba40..f90544f778 100644 --- a/test/browsercontext-add-cookies.spec.ts +++ b/test/browsercontext-add-cookies.spec.ts @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -import './base.fixture'; +import { options } from './playwright.fixtures'; it('should work', async({context, page, server}) => { await page.goto(server.EMPTY_PAGE); @@ -325,7 +325,7 @@ it('should(not) block third party cookies', async({context, page, server}) => { }, server.CROSS_PROCESS_PREFIX + '/grid.html'); await page.frames()[1].evaluate(`document.cookie = 'username=John Doe'`); await page.waitForTimeout(2000); - const allowsThirdParty = options.CHROMIUM || options.FFOX; + const allowsThirdParty = options.CHROMIUM() || options.FIREFOX(); const cookies = await context.cookies(server.CROSS_PROCESS_PREFIX + '/grid.html'); if (allowsThirdParty) { expect(cookies).toEqual([ diff --git a/test/browsercontext-basic.spec.ts b/test/browsercontext-basic.spec.ts index 700f08f093..62ee4658bb 100644 --- a/test/browsercontext-basic.spec.ts +++ b/test/browsercontext-basic.spec.ts @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -import './base.fixture'; +import { options } from './playwright.fixtures'; import utils from './utils'; @@ -184,7 +184,7 @@ it('should disable javascript', async({browser}) => { await page.goto('data:text/html, '); let error = null; await page.evaluate('something').catch(e => error = e); - if (options.WEBKIT) + if (options.WEBKIT()) expect(error.message).toContain('Can\'t find variable: something'); else expect(error.message).toContain('something is not defined'); diff --git a/test/browsercontext-clearcookies.spec.ts b/test/browsercontext-clearcookies.spec.ts index 26f48b9703..10441460b2 100644 --- a/test/browsercontext-clearcookies.spec.ts +++ b/test/browsercontext-clearcookies.spec.ts @@ -14,9 +14,8 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -import './base.fixture'; -import utils from './utils'; +import './playwright.fixtures'; it('should clear cookies', async({context, page, server}) => { await page.goto(server.EMPTY_PAGE); diff --git a/test/browsercontext-cookies.spec.ts b/test/browsercontext-cookies.spec.ts index 7eef0d5e73..6415e05e95 100644 --- a/test/browsercontext-cookies.spec.ts +++ b/test/browsercontext-cookies.spec.ts @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -import './base.fixture'; +import { options } from './playwright.fixtures'; it('should return no cookies in pristine browser context', async({context, page, server}) => { expect(await context.cookies()).toEqual([]); @@ -72,7 +72,7 @@ it('should properly report httpOnly cookie', async({context, page, server}) => { expect(cookies[0].httpOnly).toBe(true); }); -it.fail(options.WEBKIT && WIN)('should properly report "Strict" sameSite cookie', async({context, page, server}) => { +it.fail(options.WEBKIT() && WIN)('should properly report "Strict" sameSite cookie', async({context, page, server}) => { server.setRoute('/empty.html', (req, res) => { res.setHeader('Set-Cookie', 'name=value;SameSite=Strict'); res.end(); @@ -83,7 +83,7 @@ it.fail(options.WEBKIT && WIN)('should properly report "Strict" sameSite cookie' expect(cookies[0].sameSite).toBe('Strict'); }); -it.fail(options.WEBKIT && WIN)('should properly report "Lax" sameSite cookie', async({context, page, server}) => { +it.fail(options.WEBKIT() && WIN)('should properly report "Lax" sameSite cookie', async({context, page, server}) => { server.setRoute('/empty.html', (req, res) => { res.setHeader('Set-Cookie', 'name=value;SameSite=Lax'); res.end(); diff --git a/test/browsercontext-credentials.spec.ts b/test/browsercontext-credentials.spec.ts index 8de0621b39..9de68b5e63 100644 --- a/test/browsercontext-credentials.spec.ts +++ b/test/browsercontext-credentials.spec.ts @@ -14,9 +14,9 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -import './base.fixture'; +import { options } from './playwright.fixtures'; -it.fail(options.CHROMIUM && !options.HEADLESS)('should fail without credentials', async({browser, server}) => { +it.fail(options.CHROMIUM() && !options.HEADLESS)('should fail without credentials', async({browser, server}) => { server.setAuth('/empty.html', 'user', 'pass'); const context = await browser.newContext(); const page = await context.newPage(); @@ -25,7 +25,7 @@ it.fail(options.CHROMIUM && !options.HEADLESS)('should fail without credentials' await context.close(); }); -it.fail(options.CHROMIUM && !options.HEADLESS)('should work with setHTTPCredentials', async({browser, server}) => { +it.fail(options.CHROMIUM() && !options.HEADLESS)('should work with setHTTPCredentials', async({browser, server}) => { server.setAuth('/empty.html', 'user', 'pass'); const context = await browser.newContext(); const page = await context.newPage(); @@ -48,7 +48,7 @@ it('should work with correct credentials', async({browser, server}) => { await context.close(); }); -it.fail(options.CHROMIUM && !options.HEADLESS)('should fail with wrong credentials', async({browser, server}) => { +it.fail(options.CHROMIUM() && !options.HEADLESS)('should fail with wrong credentials', async({browser, server}) => { server.setAuth('/empty.html', 'user', 'pass'); const context = await browser.newContext({ httpCredentials: { username: 'foo', password: 'bar' } diff --git a/test/browsercontext-csp.spec.ts b/test/browsercontext-csp.spec.ts index ede92827e2..cdc67a4207 100644 --- a/test/browsercontext-csp.spec.ts +++ b/test/browsercontext-csp.spec.ts @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -import './base.fixture'; +import './playwright.fixtures'; import * as utils from './utils'; diff --git a/test/browsercontext-device.spec.ts b/test/browsercontext-device.spec.ts index b4c88a39eb..4e22c69d3b 100644 --- a/test/browsercontext-device.spec.ts +++ b/test/browsercontext-device.spec.ts @@ -14,9 +14,9 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -import './base.fixture'; +import { options } from './playwright.fixtures'; -it.skip(options.FFOX)('should work', async({playwright, browser, server}) => { +it.skip(options.FIREFOX())('should work', async({playwright, browser, server}) => { const iPhone = playwright.devices['iPhone 6']; const context = await browser.newContext({ ...iPhone }); const page = await context.newPage(); @@ -26,7 +26,7 @@ it.skip(options.FFOX)('should work', async({playwright, browser, server}) => { await context.close(); }); -it.skip(options.FFOX)('should support clicking', async({playwright, browser, server}) => { +it.skip(options.FIREFOX())('should support clicking', async({playwright, browser, server}) => { const iPhone = playwright.devices['iPhone 6']; const context = await browser.newContext({ ...iPhone }); const page = await context.newPage(); @@ -38,7 +38,7 @@ it.skip(options.FFOX)('should support clicking', async({playwright, browser, ser await context.close(); }); -it.skip(options.FFOX)('should scroll to click', async({browser, server}) => { +it.skip(options.FIREFOX())('should scroll to click', async({browser, server}) => { const context = await browser.newContext({ viewport: { width: 400, diff --git a/test/browsercontext-expose-function.spec.ts b/test/browsercontext-expose-function.spec.ts index 185c835a27..f506fe9a49 100644 --- a/test/browsercontext-expose-function.spec.ts +++ b/test/browsercontext-expose-function.spec.ts @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -import './base.fixture'; +import './playwright.fixtures'; it('expose binding should work', async({browser}) => { const context = await browser.newContext(); diff --git a/test/browsercontext-locale.spec.ts b/test/browsercontext-locale.spec.ts index 5114313273..865a77cd96 100644 --- a/test/browsercontext-locale.spec.ts +++ b/test/browsercontext-locale.spec.ts @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -import './base.fixture'; +import { options } from './playwright.fixtures'; it('should affect accept-language header', async({browser, server}) => { const context = await browser.newContext({ locale: 'fr-CH' }); @@ -137,7 +137,7 @@ it('should be isolated between contexts', async({browser, server}) => { ]); }); -it.fail(options.FFOX)('should not change default locale in another context', async({browser, server}) => { +it.fail(options.FIREFOX())('should not change default locale in another context', async({browser, server}) => { async function getContextLocale(context) { const page = await context.newPage(); return await page.evaluate(() => (new Intl.NumberFormat()).resolvedOptions().locale); diff --git a/test/browsercontext-page-event.spec.ts b/test/browsercontext-page-event.spec.ts index 66dff0a12b..67bd58526e 100644 --- a/test/browsercontext-page-event.spec.ts +++ b/test/browsercontext-page-event.spec.ts @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -import './base.fixture'; +import { options } from './playwright.fixtures'; it('should have url', async({browser, server}) => { const context = await browser.newContext(); @@ -156,7 +156,7 @@ it('should fire page lifecycle events', async function({browser, server}) { await context.close(); }); -it.fail(options.WEBKIT)('should work with Shift-clicking', async({browser, server}) => { +it.fail(options.WEBKIT())('should work with Shift-clicking', async({browser, server}) => { // WebKit: Shift+Click does not open a new window. const context = await browser.newContext(); const page = await context.newPage(); @@ -170,7 +170,7 @@ it.fail(options.WEBKIT)('should work with Shift-clicking', async({browser, serve await context.close(); }); -it.fail(options.WEBKIT || options.FFOX)('should work with Ctrl-clicking', async({browser, server}) => { +it.fail(options.WEBKIT() || options.FIREFOX())('should work with Ctrl-clicking', async({browser, server}) => { // Firefox: reports an opener in this case. // WebKit: Ctrl+Click does not open a new tab. const context = await browser.newContext(); diff --git a/test/browsercontext-route.spec.ts b/test/browsercontext-route.spec.ts index f21471c685..0fbbd2e8d0 100644 --- a/test/browsercontext-route.spec.ts +++ b/test/browsercontext-route.spec.ts @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -import './base.fixture'; +import './playwright.fixtures'; it('should intercept', async({browser, server}) => { const context = await browser.newContext(); diff --git a/test/browsercontext-timezone-id.spec.ts b/test/browsercontext-timezone-id.spec.ts index b934100753..6e726bd538 100644 --- a/test/browsercontext-timezone-id.spec.ts +++ b/test/browsercontext-timezone-id.spec.ts @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -import './base.fixture'; +import { options } from './playwright.fixtures'; it('should work', async ({ browser }) => { const func = () => new Date(1479579154987).toString(); @@ -69,7 +69,7 @@ it('should work for multiple pages sharing same process', async({browser, server await context.close(); }); -it.fail(options.FFOX)('should not change default timezone in another context', async({browser, server}) => { +it.fail(options.FIREFOX())('should not change default timezone in another context', async({browser, server}) => { async function getContextTimezone(context) { const page = await context.newPage(); return await page.evaluate(() => Intl.DateTimeFormat().resolvedOptions().timeZone); diff --git a/test/browsercontext-user-agent.spec.ts b/test/browsercontext-user-agent.spec.ts index 5d003c124c..1b293fcb37 100644 --- a/test/browsercontext-user-agent.spec.ts +++ b/test/browsercontext-user-agent.spec.ts @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -import './base.fixture'; +import './playwright.fixtures'; import utils from './utils'; const {devices} = require('..'); diff --git a/test/browsercontext-viewport-mobile.spec.ts b/test/browsercontext-viewport-mobile.spec.ts index ad98171b39..d39562bdc7 100644 --- a/test/browsercontext-viewport-mobile.spec.ts +++ b/test/browsercontext-viewport-mobile.spec.ts @@ -15,9 +15,9 @@ * limitations under the License. */ -import './base.fixture'; +import { options } from './playwright.fixtures'; -it.skip(options.FFOX)('should support mobile emulation', async({playwright, browser, server}) => { +it.skip(options.FIREFOX())('should support mobile emulation', async({playwright, browser, server}) => { const iPhone = playwright.devices['iPhone 6']; const context = await browser.newContext({ ...iPhone }); const page = await context.newPage(); @@ -28,7 +28,7 @@ it.skip(options.FFOX)('should support mobile emulation', async({playwright, brow await context.close(); }); -it.skip(options.FFOX)('should support touch emulation', async({playwright, browser, server}) => { +it.skip(options.FIREFOX())('should support touch emulation', async({playwright, browser, server}) => { const iPhone = playwright.devices['iPhone 6']; const context = await browser.newContext({ ...iPhone }); const page = await context.newPage(); @@ -51,7 +51,7 @@ it.skip(options.FFOX)('should support touch emulation', async({playwright, brows } }); -it.skip(options.FFOX)('should be detectable by Modernizr', async({playwright, browser, server}) => { +it.skip(options.FIREFOX())('should be detectable by Modernizr', async({playwright, browser, server}) => { const iPhone = playwright.devices['iPhone 6']; const context = await browser.newContext({ ...iPhone }); const page = await context.newPage(); @@ -60,7 +60,7 @@ it.skip(options.FFOX)('should be detectable by Modernizr', async({playwright, br await context.close(); }); -it.skip(options.FFOX)('should detect touch when applying viewport with touches', async({browser, server}) => { +it.skip(options.FIREFOX())('should detect touch when applying viewport with touches', async({browser, server}) => { const context = await browser.newContext({ viewport: { width: 800, height: 600 }, hasTouch: true }); const page = await context.newPage(); await page.goto(server.EMPTY_PAGE); @@ -69,7 +69,7 @@ it.skip(options.FFOX)('should detect touch when applying viewport with touches', await context.close(); }); -it.skip(options.FFOX)('should support landscape emulation', async({playwright, browser, server}) => { +it.skip(options.FIREFOX())('should support landscape emulation', async({playwright, browser, server}) => { const iPhone = playwright.devices['iPhone 6']; const iPhoneLandscape = playwright.devices['iPhone 6 landscape']; const context1 = await browser.newContext({ ...iPhone }); @@ -83,7 +83,7 @@ it.skip(options.FFOX)('should support landscape emulation', async({playwright, b await context2.close(); }); -it.skip(options.FFOX)('should support window.orientation emulation', async({browser, server}) => { +it.skip(options.FIREFOX())('should support window.orientation emulation', async({browser, server}) => { const context = await browser.newContext({ viewport: { width: 300, height: 400 }, isMobile: true }); const page = await context.newPage(); await page.goto(server.PREFIX + '/mobile.html'); @@ -93,7 +93,7 @@ it.skip(options.FFOX)('should support window.orientation emulation', async({brow await context.close(); }); -it.skip(options.FFOX)('should fire orientationchange event', async({browser, server}) => { +it.skip(options.FIREFOX())('should fire orientationchange event', async({browser, server}) => { const context = await browser.newContext({ viewport: { width: 300, height: 400 }, isMobile: true }); const page = await context.newPage(); await page.goto(server.PREFIX + '/mobile.html'); @@ -112,7 +112,7 @@ it.skip(options.FFOX)('should fire orientationchange event', async({browser, ser await context.close(); }); -it.skip(options.FFOX)('default mobile viewports to 980 width', async({browser, server}) => { +it.skip(options.FIREFOX())('default mobile viewports to 980 width', async({browser, server}) => { const context = await browser.newContext({ viewport: {width: 320, height: 480 }, isMobile: true }); const page = await context.newPage(); await page.goto(server.PREFIX + '/empty.html'); @@ -120,7 +120,7 @@ it.skip(options.FFOX)('default mobile viewports to 980 width', async({browser, s await context.close(); }); -it.skip(options.FFOX)('respect meta viewport tag', async({browser, server}) => { +it.skip(options.FIREFOX())('respect meta viewport tag', async({browser, server}) => { const context = await browser.newContext({ viewport: {width: 320, height: 480 }, isMobile: true }); const page = await context.newPage(); await page.goto(server.PREFIX + '/mobile.html'); diff --git a/test/browsercontext-viewport.spec.ts b/test/browsercontext-viewport.spec.ts index 676a277ef2..0bb42bc3a3 100644 --- a/test/browsercontext-viewport.spec.ts +++ b/test/browsercontext-viewport.spec.ts @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -import './base.fixture'; +import './playwright.fixtures'; import utils from './utils'; diff --git a/test/browsertype-basic.spec.ts b/test/browsertype-basic.spec.ts index 8510a5ec49..ecefd54604 100644 --- a/test/browsertype-basic.spec.ts +++ b/test/browsertype-basic.spec.ts @@ -16,7 +16,7 @@ */ import fs from 'fs'; -import './base.fixture'; +import { options } from './playwright.fixtures'; it.skip(Boolean(process.env.CRPATH || process.env.FFPATH || process.env.WKPATH))('browserType.executablePath should work', async({browserType}) => { const executablePath = browserType.executablePath(); @@ -25,11 +25,11 @@ it.skip(Boolean(process.env.CRPATH || process.env.FFPATH || process.env.WKPATH)) }); it('browserType.name should work', async({browserType}) => { - if (options.WEBKIT) + if (options.WEBKIT()) expect(browserType.name()).toBe('webkit'); - else if (options.FFOX) + else if (options.FIREFOX()) expect(browserType.name()).toBe('firefox'); - else if (options.CHROMIUM) + else if (options.CHROMIUM()) expect(browserType.name()).toBe('chromium'); else throw new Error('Unknown browser'); diff --git a/test/browsertype-connect.spec.ts b/test/browsertype-connect.spec.ts index 33049257f5..b1188f2a67 100644 --- a/test/browsertype-connect.spec.ts +++ b/test/browsertype-connect.spec.ts @@ -14,8 +14,8 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -import './base.fixture'; +import { options } from './playwright.fixtures'; it.skip(options.WIRE).slow()('should be able to reconnect to a browser', async({browserType, defaultBrowserOptions, server}) => { const browserServer = await browserType.launchServer(defaultBrowserOptions); @@ -36,7 +36,7 @@ it.skip(options.WIRE).slow()('should be able to reconnect to a browser', async({ await browserServer.close(); }); -it.skip(options.WIRE).fail(options.CHROMIUM && WIN).slow()('should handle exceptions during connect', async({browserType, defaultBrowserOptions}) => { +it.skip(options.WIRE).fail(options.CHROMIUM() && WIN).slow()('should handle exceptions during connect', async({browserType, defaultBrowserOptions}) => { const browserServer = await browserType.launchServer(defaultBrowserOptions); const __testHookBeforeCreateBrowser = () => { throw new Error('Dummy') }; const error = await browserType.connect({ wsEndpoint: browserServer.wsEndpoint(), __testHookBeforeCreateBrowser } as any).catch(e => e); diff --git a/test/browsertype-launch-server.spec.ts b/test/browsertype-launch-server.spec.ts index 92cc3f44ff..05e17b8920 100644 --- a/test/browsertype-launch-server.spec.ts +++ b/test/browsertype-launch-server.spec.ts @@ -14,8 +14,8 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -import './base.fixture'; +import { options } from './playwright.fixtures'; it.skip(options.WIRE)('should work', async({browserType, defaultBrowserOptions}) => { const browserServer = await browserType.launchServer(defaultBrowserOptions); diff --git a/test/browsertype-launch.spec.ts b/test/browsertype-launch.spec.ts index 0c27db9a83..87dc19a6ae 100644 --- a/test/browsertype-launch.spec.ts +++ b/test/browsertype-launch.spec.ts @@ -16,8 +16,7 @@ */ import path from 'path'; -import './base.fixture'; - +import { options } from './playwright.fixtures'; it('should reject all promises when browser is closed', async({browserType, defaultBrowserOptions}) => { const browser = await browserType.launch(defaultBrowserOptions); @@ -37,7 +36,7 @@ it('should throw if userDataDir option is passed', async({browserType, defaultBr expect(waitError.message).toContain('launchPersistentContext'); }); -it.skip(options.FFOX)('should throw if page argument is passed', async({browserType, defaultBrowserOptions}) => { +it.skip(options.FIREFOX())('should throw if page argument is passed', async({browserType, defaultBrowserOptions}) => { let waitError = null; const options = Object.assign({}, defaultBrowserOptions, { args: ['http://example.com'] }); await browserType.launch(options).catch(e => waitError = e); diff --git a/test/capabilities.spec.ts b/test/capabilities.spec.ts index 4a71ca74a4..14093c9a2a 100644 --- a/test/capabilities.spec.ts +++ b/test/capabilities.spec.ts @@ -15,9 +15,9 @@ */ import url from 'url'; -import './base.fixture'; +import { options } from './playwright.fixtures'; -it.fail(options.WEBKIT && WIN)('Web Assembly should work', async function({page, server}) { +it.fail(options.WEBKIT() && WIN)('Web Assembly should work', async function({page, server}) { await page.goto(server.PREFIX + '/wasm/table2.html'); expect(await page.evaluate('loadTable()')).toBe('42, 83'); }); @@ -48,13 +48,13 @@ it('should respect CSP', async({page, server}) => { expect(await page.evaluate(() => window['testStatus'])).toBe('SUCCESS'); }); -it.fail(options.WEBKIT && (WIN || LINUX))('should play video', async({page, asset}) => { +it.fail(options.WEBKIT() && (WIN || LINUX))('should play video', async({page, asset}) => { // TODO: the test passes on Windows locally but fails on GitHub Action bot, // apparently due to a Media Pack issue in the Windows Server. // Also the test is very flaky on Linux WebKit. // // Safari only plays mp4 so we test WebKit with an .mp4 clip. - const fileName = options.WEBKIT ? 'video_mp4.html' : 'video.html'; + const fileName = options.WEBKIT() ? 'video_mp4.html' : 'video.html'; const absolutePath = asset(fileName); // Our test server doesn't support range requests required to play on Mac, // so we load the page using a file url. diff --git a/test/channels.spec.ts b/test/channels.spec.ts index 0d77729561..192963aae1 100644 --- a/test/channels.spec.ts +++ b/test/channels.spec.ts @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -import './base.fixture'; +import { options } from './playwright.fixtures'; import { ChromiumBrowser } from '..'; it('should work', async({browser}) => { @@ -65,7 +65,7 @@ it('should scope context handles', async({browserType, browser, server}) => { await expectScopeState(browser, GOLDEN_PRECONDITION); }); -it.skip(!options.CHROMIUM)('should scope CDPSession handles', async({browserType, browser, server}) => { +it.skip(!options.CHROMIUM())('should scope CDPSession handles', async({browserType, browser, server}) => { const GOLDEN_PRECONDITION = { _guid: '', objects: [ diff --git a/test/check.spec.ts b/test/check.spec.ts index db987757f5..902ff3e7bd 100644 --- a/test/check.spec.ts +++ b/test/check.spec.ts @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -import './base.fixture'; +import './playwright.fixtures'; it('should check the box', async({page}) => { await page.setContent(``); diff --git a/test/chromium-css-coverage.spec.ts b/test/chromium-css-coverage.spec.ts index 65f4804cf7..cf64cc91ef 100644 --- a/test/chromium-css-coverage.spec.ts +++ b/test/chromium-css-coverage.spec.ts @@ -13,9 +13,9 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -import './base.fixture'; +import { options } from './playwright.fixtures'; -it.skip(!options.CHROMIUM)('should work', async function({browserType, page, server}) { +it.skip(!options.CHROMIUM())('should work', async function({browserType, page, server}) { await page.coverage.startCSSCoverage(); await page.goto(server.PREFIX + '/csscoverage/simple.html'); const coverage = await page.coverage.stopCSSCoverage(); @@ -28,7 +28,7 @@ it.skip(!options.CHROMIUM)('should work', async function({browserType, page, ser expect(coverage[0].text.substring(range.start, range.end)).toBe('div { color: green; }'); }); -it.skip(!options.CHROMIUM)('should report sourceURLs', async function({page, server}) { +it.skip(!options.CHROMIUM())('should report sourceURLs', async function({page, server}) { await page.coverage.startCSSCoverage(); await page.goto(server.PREFIX + '/csscoverage/sourceurl.html'); const coverage = await page.coverage.stopCSSCoverage(); @@ -36,7 +36,7 @@ it.skip(!options.CHROMIUM)('should report sourceURLs', async function({page, ser expect(coverage[0].url).toBe('nicename.css'); }); -it.skip(!options.CHROMIUM)('should report multiple stylesheets', async function({page, server}) { +it.skip(!options.CHROMIUM())('should report multiple stylesheets', async function({page, server}) { await page.coverage.startCSSCoverage(); await page.goto(server.PREFIX + '/csscoverage/multiple.html'); const coverage = await page.coverage.stopCSSCoverage(); @@ -46,7 +46,7 @@ it.skip(!options.CHROMIUM)('should report multiple stylesheets', async function( expect(coverage[1].url).toContain('/csscoverage/stylesheet2.css'); }); -it.skip(!options.CHROMIUM)('should report stylesheets that have no coverage', async function({page, server}) { +it.skip(!options.CHROMIUM())('should report stylesheets that have no coverage', async function({page, server}) { await page.coverage.startCSSCoverage(); await page.goto(server.PREFIX + '/csscoverage/unused.html'); const coverage = await page.coverage.stopCSSCoverage(); @@ -55,7 +55,7 @@ it.skip(!options.CHROMIUM)('should report stylesheets that have no coverage', as expect(coverage[0].ranges.length).toBe(0); }); -it.skip(!options.CHROMIUM)('should work with media queries', async function({page, server}) { +it.skip(!options.CHROMIUM())('should work with media queries', async function({page, server}) { await page.coverage.startCSSCoverage(); await page.goto(server.PREFIX + '/csscoverage/media.html'); const coverage = await page.coverage.stopCSSCoverage(); @@ -66,7 +66,7 @@ it.skip(!options.CHROMIUM)('should work with media queries', async function({pag ]); }); -it.skip(!options.CHROMIUM)('should work with complicated usecases', async function({page, server}) { +it.skip(!options.CHROMIUM())('should work with complicated usecases', async function({page, server}) { await page.coverage.startCSSCoverage(); await page.goto(server.PREFIX + '/csscoverage/involved.html'); const coverage: any = await page.coverage.stopCSSCoverage(); @@ -90,7 +90,7 @@ it.skip(!options.CHROMIUM)('should work with complicated usecases', async functi ); }); -it.skip(!options.CHROMIUM)('should ignore injected stylesheets', async function({page, server}) { +it.skip(!options.CHROMIUM())('should ignore injected stylesheets', async function({page, server}) { await page.coverage.startCSSCoverage(); await page.addStyleTag({content: 'body { margin: 10px;}'}); // trigger style recalc @@ -100,7 +100,7 @@ it.skip(!options.CHROMIUM)('should ignore injected stylesheets', async function( expect(coverage.length).toBe(0); }); -it.skip(!options.CHROMIUM)('should report stylesheets across navigations', async function({page, server}) { +it.skip(!options.CHROMIUM())('should report stylesheets across navigations', async function({page, server}) { await page.coverage.startCSSCoverage({resetOnNavigation: false}); await page.goto(server.PREFIX + '/csscoverage/multiple.html'); await page.goto(server.EMPTY_PAGE); @@ -108,7 +108,7 @@ it.skip(!options.CHROMIUM)('should report stylesheets across navigations', async expect(coverage.length).toBe(2); }); -it.skip(!options.CHROMIUM)('should NOT report scripts across navigations', async function({page, server}) { +it.skip(!options.CHROMIUM())('should NOT report scripts across navigations', async function({page, server}) { await page.coverage.startCSSCoverage(); // Enabled by default. await page.goto(server.PREFIX + '/csscoverage/multiple.html'); await page.goto(server.EMPTY_PAGE); @@ -116,7 +116,7 @@ it.skip(!options.CHROMIUM)('should NOT report scripts across navigations', async expect(coverage.length).toBe(0); }); -it.skip(!options.CHROMIUM)('should work with a recently loaded stylesheet', async function({page, server}) { +it.skip(!options.CHROMIUM())('should work with a recently loaded stylesheet', async function({page, server}) { await page.coverage.startCSSCoverage(); await page.evaluate(async url => { document.body.textContent = 'hello, world'; diff --git a/test/chromium-js-coverage.spec.ts b/test/chromium-js-coverage.spec.ts index 739afcfba1..1c298fd1d7 100644 --- a/test/chromium-js-coverage.spec.ts +++ b/test/chromium-js-coverage.spec.ts @@ -13,13 +13,13 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -import './base.fixture'; +import { options } from './playwright.fixtures'; -it.skip(options.CHROMIUM)('should be missing', async function({page, server}) { +it.skip(options.CHROMIUM())('should be missing', async function({page, server}) { expect(page.coverage).toBe(null); }); -it.skip(!options.CHROMIUM)('should work', async function({browserType, page, server}) { +it.skip(!options.CHROMIUM())('should work', async function({browserType, page, server}) { await page.coverage.startJSCoverage(); await page.goto(server.PREFIX + '/jscoverage/simple.html', { waitUntil: 'load' }); const coverage = await page.coverage.stopJSCoverage(); @@ -28,7 +28,7 @@ it.skip(!options.CHROMIUM)('should work', async function({browserType, page, ser expect(coverage[0].functions.find(f => f.functionName === 'foo').ranges[0].count).toEqual(1); }); -it.skip(!options.CHROMIUM)('should report sourceURLs', async function({page, server}) { +it.skip(!options.CHROMIUM())('should report sourceURLs', async function({page, server}) { await page.coverage.startJSCoverage(); await page.goto(server.PREFIX + '/jscoverage/sourceurl.html'); const coverage = await page.coverage.stopJSCoverage(); @@ -36,14 +36,14 @@ it.skip(!options.CHROMIUM)('should report sourceURLs', async function({page, ser expect(coverage[0].url).toBe('nicename.js'); }); -it.skip(!options.CHROMIUM)('should ignore eval() scripts by default', async function({page, server}) { +it.skip(!options.CHROMIUM())('should ignore eval() scripts by default', async function({page, server}) { await page.coverage.startJSCoverage(); await page.goto(server.PREFIX + '/jscoverage/eval.html'); const coverage = await page.coverage.stopJSCoverage(); expect(coverage.length).toBe(1); }); -it.skip(!options.CHROMIUM)('shouldn\'t ignore eval() scripts if reportAnonymousScripts is true', async function({page, server}) { +it.skip(!options.CHROMIUM())('shouldn\'t ignore eval() scripts if reportAnonymousScripts is true', async function({page, server}) { await page.coverage.startJSCoverage({reportAnonymousScripts: true}); await page.goto(server.PREFIX + '/jscoverage/eval.html'); const coverage = await page.coverage.stopJSCoverage(); @@ -51,7 +51,7 @@ it.skip(!options.CHROMIUM)('shouldn\'t ignore eval() scripts if reportAnonymousS expect(coverage.length).toBe(2); }); -it.skip(!options.CHROMIUM)('should ignore playwright internal scripts if reportAnonymousScripts is true', async function({page, server}) { +it.skip(!options.CHROMIUM())('should ignore playwright internal scripts if reportAnonymousScripts is true', async function({page, server}) { await page.coverage.startJSCoverage({reportAnonymousScripts: true}); await page.goto(server.EMPTY_PAGE); await page.evaluate('console.log("foo")'); @@ -60,7 +60,7 @@ it.skip(!options.CHROMIUM)('should ignore playwright internal scripts if reportA expect(coverage.length).toBe(0); }); -it.skip(!options.CHROMIUM)('should report multiple scripts', async function({page, server}) { +it.skip(!options.CHROMIUM())('should report multiple scripts', async function({page, server}) { await page.coverage.startJSCoverage(); await page.goto(server.PREFIX + '/jscoverage/multiple.html'); const coverage = await page.coverage.stopJSCoverage(); @@ -70,7 +70,7 @@ it.skip(!options.CHROMIUM)('should report multiple scripts', async function({pag expect(coverage[1].url).toContain('/jscoverage/script2.js'); }); -it.skip(!options.CHROMIUM)('should report scripts across navigations when disabled', async function({page, server}) { +it.skip(!options.CHROMIUM())('should report scripts across navigations when disabled', async function({page, server}) { await page.coverage.startJSCoverage({resetOnNavigation: false}); await page.goto(server.PREFIX + '/jscoverage/multiple.html'); await page.goto(server.EMPTY_PAGE); @@ -78,7 +78,7 @@ it.skip(!options.CHROMIUM)('should report scripts across navigations when disabl expect(coverage.length).toBe(2); }); -it.skip(!options.CHROMIUM)('should NOT report scripts across navigations when enabled', async function({page, server}) { +it.skip(!options.CHROMIUM())('should NOT report scripts across navigations when enabled', async function({page, server}) { await page.coverage.startJSCoverage(); // Enabled by default. await page.goto(server.PREFIX + '/jscoverage/multiple.html'); await page.goto(server.EMPTY_PAGE); @@ -86,7 +86,7 @@ it.skip(!options.CHROMIUM)('should NOT report scripts across navigations when en expect(coverage.length).toBe(0); }); -it.skip(!options.CHROMIUM)('should not hang when there is a debugger statement', async function({page, server}) { +it.skip(!options.CHROMIUM())('should not hang when there is a debugger statement', async function({page, server}) { await page.coverage.startJSCoverage(); await page.goto(server.EMPTY_PAGE); await page.evaluate(() => { diff --git a/test/chromium/chromium.spec.ts b/test/chromium/chromium.spec.ts index c6af27b0ab..3e71a27e3e 100644 --- a/test/chromium/chromium.spec.ts +++ b/test/chromium/chromium.spec.ts @@ -13,10 +13,10 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -import '../base.fixture'; +import { options } from '../playwright.fixtures'; import { ChromiumBrowserContext } from '../..'; -it.skip(!options.CHROMIUM)('should create a worker from a service worker', async({page, server, context}) => { +it.skip(!options.CHROMIUM())('should create a worker from a service worker', async({page, server, context}) => { const [worker] = await Promise.all([ (context as ChromiumBrowserContext).waitForEvent('serviceworker'), page.goto(server.PREFIX + '/serviceworkers/empty/sw.html') @@ -24,7 +24,7 @@ it.skip(!options.CHROMIUM)('should create a worker from a service worker', async expect(await worker.evaluate(() => self.toString())).toBe('[object ServiceWorkerGlobalScope]'); }); -it.skip(!options.CHROMIUM)('serviceWorkers() should return current workers', async({page, server, context}) => { +it.skip(!options.CHROMIUM())('serviceWorkers() should return current workers', async({page, server, context}) => { const [worker1] = await Promise.all([ (context as ChromiumBrowserContext).waitForEvent('serviceworker'), page.goto(server.PREFIX + '/serviceworkers/empty/sw.html') @@ -42,7 +42,7 @@ it.skip(!options.CHROMIUM)('serviceWorkers() should return current workers', asy expect(workers).toContain(worker2); }); -it.skip(!options.CHROMIUM)('should not create a worker from a shared worker', async({page, server, context}) => { +it.skip(!options.CHROMIUM())('should not create a worker from a shared worker', async({page, server, context}) => { await page.goto(server.EMPTY_PAGE); let serviceWorkerCreated; (context as ChromiumBrowserContext).once('serviceworker', () => serviceWorkerCreated = true); @@ -52,7 +52,7 @@ it.skip(!options.CHROMIUM)('should not create a worker from a shared worker', as expect(serviceWorkerCreated).not.toBeTruthy(); }); -it.skip(!options.CHROMIUM)('should close service worker together with the context', async({browser, server}) => { +it.skip(!options.CHROMIUM())('should close service worker together with the context', async({browser, server}) => { const context = await browser.newContext() as ChromiumBrowserContext; const page = await context.newPage(); const [worker] = await Promise.all([ @@ -66,7 +66,7 @@ it.skip(!options.CHROMIUM)('should close service worker together with the contex expect(messages.join('|')).toBe('worker|context'); }); -it.skip(!options.CHROMIUM)('Page.route should work with intervention headers', async({server, page}) => { +it.skip(!options.CHROMIUM())('Page.route should work with intervention headers', async({server, page}) => { server.setRoute('/intervention', (req, res) => res.end(` '); let error = null; await page.evaluate('something').catch(e => error = e); - if (options.WEBKIT) + if (options.WEBKIT()) expect(error.message).toContain('Can\'t find variable: something'); else expect(error.message).toContain('something is not defined'); @@ -218,7 +217,7 @@ it('should support hasTouch option', async ({server, launchPersistent}) => { expect(await page.evaluate(() => 'ontouchstart' in window)).toBe(true); }); -it.skip(options.FFOX)('should work in persistent context', async ({server, launchPersistent}) => { +it.skip(options.FIREFOX())('should work in persistent context', async ({server, launchPersistent}) => { // Firefox does not support mobile. const {page, context} = await launchPersistent({viewport: {width: 320, height: 480}, isMobile: true}); await page.goto(server.PREFIX + '/empty.html'); @@ -303,7 +302,7 @@ it.slow()('should restore state from userDataDir', async({browserType, defaultBr await removeUserDataDir(userDataDir2); }); -it.fail(options.CHROMIUM && (WIN || MAC)).slow()('should restore cookies from userDataDir', async({browserType, defaultBrowserOptions, server, launchPersistent}) => { +it.fail(options.CHROMIUM() && (WIN || MAC)).slow()('should restore cookies from userDataDir', async({browserType, defaultBrowserOptions, server, launchPersistent}) => { const userDataDir = await makeUserDataDir(); const browserContext = await browserType.launchPersistentContext(userDataDir, defaultBrowserOptions); const page = await browserContext.newPage(); @@ -339,7 +338,7 @@ it('should have default URL when launching browser', async ({launchPersistent}) expect(urls).toEqual(['about:blank']); }); -it.skip(options.FFOX)('should throw if page argument is passed', async ({browserType, defaultBrowserOptions, server, tmpDir}) => { +it.skip(options.FIREFOX())('should throw if page argument is passed', async ({browserType, defaultBrowserOptions, server, tmpDir}) => { const options = {...defaultBrowserOptions, args: [server.EMPTY_PAGE] }; const error = await browserType.launchPersistentContext(tmpDir, options).catch(e => e); expect(error.message).toContain('can not specify page'); @@ -382,7 +381,7 @@ it('should fire close event for a persistent context', async({launchPersistent}) expect(closed).toBe(true); }); -it.skip(!options.CHROMIUM)('coverage should work', async ({server, launchPersistent}) => { +it.skip(!options.CHROMIUM())('coverage should work', async ({server, launchPersistent}) => { const {page, context} = await launchPersistent(); await page.coverage.startJSCoverage(); await page.goto(server.PREFIX + '/jscoverage/simple.html', { waitUntil: 'load' }); @@ -392,7 +391,7 @@ it.skip(!options.CHROMIUM)('coverage should work', async ({server, launchPersist expect(coverage[0].functions.find(f => f.functionName === 'foo').ranges[0].count).toEqual(1); }); -it.skip(options.CHROMIUM)('coverage should be missing', async ({launchPersistent}) => { +it.skip(options.CHROMIUM())('coverage should be missing', async ({launchPersistent}) => { const {page, context} = await launchPersistent(); expect(page.coverage).toBe(null); }); diff --git a/test/dialog.spec.ts b/test/dialog.spec.ts index 4d3990b286..8890b5b8b1 100644 --- a/test/dialog.spec.ts +++ b/test/dialog.spec.ts @@ -14,7 +14,8 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -import './base.fixture'; + +import { options } from './playwright.fixtures'; it('should fire', async({page, server}) => { page.on('dialog', dialog => { @@ -61,7 +62,7 @@ it('should dismiss the confirm prompt', async({page}) => { expect(result).toBe(false); }); -it.fail(options.WEBKIT)('should be able to close context with open alert', async({browser}) => { +it.fail(options.WEBKIT())('should be able to close context with open alert', async({browser}) => { const context = await browser.newContext(); const page = await context.newPage(); const alertPromise = page.waitForEvent('dialog'); diff --git a/test/dispatchevent.spec.ts b/test/dispatchevent.spec.ts index 06250ffa52..ceb8ba5caf 100644 --- a/test/dispatchevent.spec.ts +++ b/test/dispatchevent.spec.ts @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -import './base.fixture'; +import { options } from './playwright.fixtures'; import utils from './utils'; @@ -126,7 +126,7 @@ it('should be atomic', async({playwright, page}) => { expect(await page.evaluate(() => window['_clicked'])).toBe(true); }); -it.fail(options.WEBKIT)('should dispatch drag drop events', async({page, server}) => { +it.fail(options.WEBKIT())('should dispatch drag drop events', async({page, server}) => { await page.goto(server.PREFIX + '/drag-n-drop.html'); const dataTransfer = await page.evaluateHandle(() => new DataTransfer()); await page.dispatchEvent('#source', 'dragstart', { dataTransfer }); @@ -138,7 +138,7 @@ it.fail(options.WEBKIT)('should dispatch drag drop events', async({page, server} }, {source, target})).toBeTruthy(); }); -it.fail(options.WEBKIT)('should dispatch drag drop events', async({page, server}) => { +it.fail(options.WEBKIT())('should dispatch drag drop events', async({page, server}) => { await page.goto(server.PREFIX + '/drag-n-drop.html'); const dataTransfer = await page.evaluateHandle(() => new DataTransfer()); const source = await page.$('#source'); diff --git a/test/download.spec.ts b/test/download.spec.ts index 86b79c3fc3..d6673b37ae 100644 --- a/test/download.spec.ts +++ b/test/download.spec.ts @@ -14,8 +14,7 @@ * limitations under the License. */ -import './runner/builtin.fixtures'; -import './base.fixture'; +import { options } from './playwright.fixtures'; import fs from 'fs'; import path from 'path'; @@ -218,7 +217,7 @@ it(`should report download path within page.on('download', …) handler for Blob expect(fs.readFileSync(path).toString()).toBe('Hello world'); await page.close(); }) -it.fail(options.FFOX || options.WEBKIT)('should report alt-click downloads', async({browser, server}) => { +it.fail(options.FIREFOX() || options.WEBKIT())('should report alt-click downloads', async({browser, server}) => { // Firefox does not download on alt-click by default. // Our WebKit embedder does not download on alt-click, although Safari does. server.setRoute('/download', (req, res) => { @@ -239,7 +238,7 @@ it.fail(options.FFOX || options.WEBKIT)('should report alt-click downloads', asy await page.close(); }); -it.fail(options.CHROMIUM && !options.HEADLESS)('should report new window downloads', async({browser, server}) => { +it.fail(options.CHROMIUM() && !options.HEADLESS)('should report new window downloads', async({browser, server}) => { // TODO: - the test fails in headful Chromium as the popup page gets closed along // with the session before download completed event arrives. // - WebKit doesn't close the popup page diff --git a/test/downloads-path.spec.ts b/test/downloads-path.spec.ts index 7a35ebf227..ab2c783889 100644 --- a/test/downloads-path.spec.ts +++ b/test/downloads-path.spec.ts @@ -15,8 +15,7 @@ */ -import './runner/builtin.fixtures'; -import './base.fixture'; +import './playwright.fixtures'; import { registerFixture } from './runner'; diff --git a/test/electron/electron-app.spec.ts b/test/electron/electron-app.spec.ts index 30e42c8d0a..9da0408db5 100644 --- a/test/electron/electron-app.spec.ts +++ b/test/electron/electron-app.spec.ts @@ -13,13 +13,15 @@ * See the License for the specific language governing permissions and * limitations under the License. */ + +import { options } from '../playwright.fixtures'; import './electron.fixture'; import path from 'path'; const electronName = process.platform === 'win32' ? 'electron.cmd' : 'electron'; -it.skip(!options.CHROMIUM)('should fire close event', async ({ playwright }) => { +it.skip(!options.CHROMIUM())('should fire close event', async ({ playwright }) => { const electronPath = path.join(__dirname, '..', '..', 'node_modules', '.bin', electronName); const application = await playwright.electron.launch(electronPath, { args: [path.join(__dirname, 'testApp.js')], @@ -34,12 +36,12 @@ it.skip(!options.CHROMIUM)('should fire close event', async ({ playwright }) => expect(events.join('|')).toBe('context|application'); }); -it.skip(!options.CHROMIUM)('should script application', async ({ application }) => { +it.skip(!options.CHROMIUM())('should script application', async ({ application }) => { const appPath = await application.evaluate(async ({ app }) => app.getAppPath()); expect(appPath).toContain('electron'); }); -it.skip(!options.CHROMIUM)('should create window', async ({ application }) => { +it.skip(!options.CHROMIUM())('should create window', async ({ application }) => { const [ page ] = await Promise.all([ application.waitForEvent('window'), application.evaluate(({ BrowserWindow }) => { @@ -51,13 +53,13 @@ it.skip(!options.CHROMIUM)('should create window', async ({ application }) => { expect(await page.title()).toBe('Hello World 1'); }); -it.skip(!options.CHROMIUM)('should create window 2', async ({ application }) => { +it.skip(!options.CHROMIUM())('should create window 2', async ({ application }) => { const page = await application.newBrowserWindow({ width: 800, height: 600 }); await page.goto('data:text/html,Hello World 2'); expect(await page.title()).toBe('Hello World 2'); }); -it.skip(!options.CHROMIUM)('should create multiple windows', async ({ application }) => { +it.skip(!options.CHROMIUM())('should create multiple windows', async ({ application }) => { const createPage = async ordinal => { const page = await application.newBrowserWindow({ width: 800, height: 600 }); await Promise.all([ @@ -78,7 +80,7 @@ it.skip(!options.CHROMIUM)('should create multiple windows', async ({ applicatio expect(titles).toEqual(['Hello World 2', 'Hello World 3', 'Hello World 4']); }); -it.skip(!options.CHROMIUM)('should route network', async ({ application }) => { +it.skip(!options.CHROMIUM())('should route network', async ({ application }) => { await application.context().route('**/empty.html', (route, request) => { route.fulfill({ status: 200, @@ -91,14 +93,14 @@ it.skip(!options.CHROMIUM)('should route network', async ({ application }) => { expect(await page.title()).toBe('Hello World'); }); -it.skip(!options.CHROMIUM)('should support init script', async ({ application }) => { +it.skip(!options.CHROMIUM())('should support init script', async ({ application }) => { await application.context().addInitScript('window.magic = 42;') const page = await application.newBrowserWindow({ width: 800, height: 600 }); await page.goto('data:text/html,'); expect(await page.evaluate(() => window['copy'])).toBe(42); }); -it.skip(!options.CHROMIUM)('should expose function', async ({ application }) => { +it.skip(!options.CHROMIUM())('should expose function', async ({ application }) => { const t = Date.now(); await application.context().exposeFunction('add', (a, b) => a + b); const page = await application.newBrowserWindow({ width: 800, height: 600 }); @@ -106,7 +108,7 @@ it.skip(!options.CHROMIUM)('should expose function', async ({ application }) => expect(await page.evaluate(() => window['result'])).toBe(42); }); -it.skip(!options.CHROMIUM)('should wait for first window', async ({ application }) => { +it.skip(!options.CHROMIUM())('should wait for first window', async ({ application }) => { application.evaluate(({ BrowserWindow }) => { const window = new BrowserWindow({ width: 800, height: 600 }); window.loadURL('data:text/html,Hello World!'); @@ -115,7 +117,7 @@ it.skip(!options.CHROMIUM)('should wait for first window', async ({ application expect(await window.title()).toBe('Hello World!'); }); -it.skip(!options.CHROMIUM)('should have a clipboard instance', async ({ application }) => { +it.skip(!options.CHROMIUM())('should have a clipboard instance', async ({ application }) => { const clipboardContentToWrite = 'Hello from Playwright'; await application.evaluate(async ({clipboard}, text) => clipboard.writeText(text), clipboardContentToWrite); const clipboardContentRead = await application.evaluate(async ({clipboard}) => clipboard.readText()); diff --git a/test/electron/electron-window.spec.ts b/test/electron/electron-window.spec.ts index 363bd6d597..5dece6c2d0 100644 --- a/test/electron/electron-window.spec.ts +++ b/test/electron/electron-window.spec.ts @@ -13,27 +13,29 @@ * See the License for the specific language governing permissions and * limitations under the License. */ + +import { options } from '../playwright.fixtures'; import './electron.fixture'; -it.skip(!options.CHROMIUM)('should click the button', async({window, server}) => { +it.skip(!options.CHROMIUM())('should click the button', async({window, server}) => { await window.goto(server.PREFIX + '/input/button.html'); await window.click('button'); expect(await window.evaluate('result')).toBe('Clicked'); }); -it.skip(!options.CHROMIUM)('should check the box', async({window}) => { +it.skip(!options.CHROMIUM())('should check the box', async({window}) => { await window.setContent(``); await window.check('input'); expect(await window.evaluate('checkbox.checked')).toBe(true); }); -it.skip(!options.CHROMIUM)('should not check the checked box', async({window}) => { +it.skip(!options.CHROMIUM())('should not check the checked box', async({window}) => { await window.setContent(``); await window.check('input'); expect(await window.evaluate('checkbox.checked')).toBe(true); }); -it.skip(!options.CHROMIUM)('should type into a textarea', async({window, server}) => { +it.skip(!options.CHROMIUM())('should type into a textarea', async({window, server}) => { await window.evaluate(() => { const textarea = document.createElement('textarea'); document.body.appendChild(textarea); diff --git a/test/electron/electron.fixture.ts b/test/electron/electron.fixture.ts index 88db32ee33..e64694bf43 100644 --- a/test/electron/electron.fixture.ts +++ b/test/electron/electron.fixture.ts @@ -14,7 +14,7 @@ * limitations under the License. */ -import '../base.fixture'; +import { options } from '../playwright.fixtures'; import { registerFixture } from '../runner'; import {ElectronApplication, ElectronLauncher, ElectronPage} from '../../electron-types'; import path from 'path'; diff --git a/test/elementhandle-bounding-box.spec.ts b/test/elementhandle-bounding-box.spec.ts index 53960f450d..77dbb4be1f 100644 --- a/test/elementhandle-bounding-box.spec.ts +++ b/test/elementhandle-bounding-box.spec.ts @@ -14,10 +14,10 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -import './base.fixture'; +import { options } from './playwright.fixtures'; -it.fail(options.FFOX && !options.HEADLESS)('should work', async ({ page, server }) => { +it.fail(options.FIREFOX() && !options.HEADLESS)('should work', async ({ page, server }) => { await page.setViewportSize({ width: 500, height: 500 }); await page.goto(server.PREFIX + '/grid.html'); const elementHandle = await page.$('.box:nth-of-type(13)'); @@ -64,7 +64,7 @@ it('should work with SVG nodes', async ({ page, server }) => { expect(pwBoundingBox).toEqual(webBoundingBox); }); -it.skip(options.FFOX)('should work with page scale', async ({ browser, server }) => { +it.skip(options.FIREFOX())('should work with page scale', async ({ browser, server }) => { const context = await browser.newContext({ viewport: { width: 400, height: 400 }, isMobile: true }); const page = await context.newPage(); await page.goto(server.PREFIX + '/input/button.html'); diff --git a/test/elementhandle-click.spec.ts b/test/elementhandle-click.spec.ts index 987316f0d4..d5d1fad02b 100644 --- a/test/elementhandle-click.spec.ts +++ b/test/elementhandle-click.spec.ts @@ -14,7 +14,8 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -import './base.fixture'; + +import './playwright.fixtures'; it('should work', async ({ page, server }) => { await page.goto(server.PREFIX + '/input/button.html'); diff --git a/test/elementhandle-content-frame.spec.ts b/test/elementhandle-content-frame.spec.ts index 90313ae07e..1461190de4 100644 --- a/test/elementhandle-content-frame.spec.ts +++ b/test/elementhandle-content-frame.spec.ts @@ -14,7 +14,8 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -import './base.fixture'; + +import './playwright.fixtures'; import utils from './utils'; diff --git a/test/elementhandle-convenience.spec.ts b/test/elementhandle-convenience.spec.ts index 22ddf96948..179731e03a 100644 --- a/test/elementhandle-convenience.spec.ts +++ b/test/elementhandle-convenience.spec.ts @@ -14,8 +14,8 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -import './base.fixture'; +import './playwright.fixtures'; import utils from './utils'; it('should have a nice preview', async ({ page, server }) => { diff --git a/test/elementhandle-eval-on-selector.spec.ts b/test/elementhandle-eval-on-selector.spec.ts index 84c14663a1..ee1a48cd68 100644 --- a/test/elementhandle-eval-on-selector.spec.ts +++ b/test/elementhandle-eval-on-selector.spec.ts @@ -14,7 +14,8 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -import './base.fixture'; + +import './playwright.fixtures'; it('should work', async({page, server}) => { await page.setContent('
10
'); diff --git a/test/elementhandle-misc.spec.ts b/test/elementhandle-misc.spec.ts index 9d9966d647..6bb88e8db0 100644 --- a/test/elementhandle-misc.spec.ts +++ b/test/elementhandle-misc.spec.ts @@ -14,7 +14,8 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -import './base.fixture'; + +import './playwright.fixtures'; it('should hover', async ({ page, server }) => { await page.goto(server.PREFIX + '/input/scrollable.html'); diff --git a/test/elementhandle-owner-frame.spec.ts b/test/elementhandle-owner-frame.spec.ts index 88b9dcac80..d81352eff0 100644 --- a/test/elementhandle-owner-frame.spec.ts +++ b/test/elementhandle-owner-frame.spec.ts @@ -14,8 +14,8 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -import './base.fixture'; +import './playwright.fixtures'; import utils from './utils'; it('should work', async ({ page, server }) => { diff --git a/test/elementhandle-press.spec.ts b/test/elementhandle-press.spec.ts index 101c4e0e3c..5d6ad7409d 100644 --- a/test/elementhandle-press.spec.ts +++ b/test/elementhandle-press.spec.ts @@ -14,7 +14,8 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -import './base.fixture'; + +import './playwright.fixtures'; it('should work', async ({ page }) => { await page.setContent(``); diff --git a/test/elementhandle-query-selector.spec.ts b/test/elementhandle-query-selector.spec.ts index 846bdd8c51..32fca4ee6c 100644 --- a/test/elementhandle-query-selector.spec.ts +++ b/test/elementhandle-query-selector.spec.ts @@ -14,7 +14,8 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -import './base.fixture'; + +import './playwright.fixtures'; it('should query existing element', async({page, server}) => { await page.goto(server.PREFIX + '/playground.html'); diff --git a/test/elementhandle-screenshot.spec.ts b/test/elementhandle-screenshot.spec.ts index 9dfb7354bc..8c5b17e75b 100644 --- a/test/elementhandle-screenshot.spec.ts +++ b/test/elementhandle-screenshot.spec.ts @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -import './base.fixture'; +import { options } from './playwright.fixtures'; import utils from './utils'; import {PNG} from 'pngjs'; @@ -22,7 +22,7 @@ import path from 'path'; import fs from 'fs'; // Firefox headful produces a different image. -const ffheadful = options.FFOX && !options.HEADLESS; +const ffheadful = options.FIREFOX() && !options.HEADLESS; it.skip(ffheadful)('should work', async({page, server, golden}) => { await page.setViewportSize({width: 500, height: 500}); @@ -210,7 +210,7 @@ it.skip(ffheadful)('should work for an element with fractional dimensions', asyn expect(screenshot).toMatchImage(golden('screenshot-element-fractional.png')); }); -it.skip(options.FFOX)('should work with a mobile viewport', async({browser, server, golden}) => { +it.skip(options.FIREFOX())('should work with a mobile viewport', async({browser, server, golden}) => { const context = await browser.newContext({viewport: { width: 320, height: 480 }, isMobile: true}); const page = await context.newPage(); await page.goto(server.PREFIX + '/grid.html'); @@ -221,7 +221,7 @@ it.skip(options.FFOX)('should work with a mobile viewport', async({browser, serv await context.close(); }); -it.skip(options.FFOX)('should work with device scale factor', async({browser, server, golden}) => { +it.skip(options.FIREFOX())('should work with device scale factor', async({browser, server, golden}) => { const context = await browser.newContext({ viewport: { width: 320, height: 480 }, deviceScaleFactor: 2 }); const page = await context.newPage(); await page.goto(server.PREFIX + '/grid.html'); diff --git a/test/elementhandle-scroll-into-view.spec.ts b/test/elementhandle-scroll-into-view.spec.ts index 231a0fc28c..d949e4623e 100644 --- a/test/elementhandle-scroll-into-view.spec.ts +++ b/test/elementhandle-scroll-into-view.spec.ts @@ -14,7 +14,8 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -import './base.fixture'; + +import './playwright.fixtures'; it('should work', async ({ page, server }) => { await page.goto(server.PREFIX + '/offscreenbuttons.html'); diff --git a/test/elementhandle-select-text.spec.ts b/test/elementhandle-select-text.spec.ts index 9047eb7d54..e4f3cc7bc9 100644 --- a/test/elementhandle-select-text.spec.ts +++ b/test/elementhandle-select-text.spec.ts @@ -14,14 +14,15 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -import './base.fixture'; + +import { options } from './playwright.fixtures'; it('should select textarea', async ({ page, server }) => { await page.goto(server.PREFIX + '/input/textarea.html'); const textarea = await page.$('textarea'); await textarea.evaluate(textarea => textarea.value = 'some value'); await textarea.selectText(); - if (options.FFOX) { + if (options.FIREFOX()) { expect(await textarea.evaluate(el => el.selectionStart)).toBe(0); expect(await textarea.evaluate(el => el.selectionEnd)).toBe(10); } else { @@ -34,7 +35,7 @@ it('should select input', async ({ page, server }) => { const input = await page.$('input'); await input.evaluate(input => input.value = 'some value'); await input.selectText(); - if (options.FFOX) { + if (options.FIREFOX()) { expect(await input.evaluate(el => el.selectionStart)).toBe(0); expect(await input.evaluate(el => el.selectionEnd)).toBe(10); } else { diff --git a/test/elementhandle-type.spec.ts b/test/elementhandle-type.spec.ts index 7405c21d21..96c3b67b90 100644 --- a/test/elementhandle-type.spec.ts +++ b/test/elementhandle-type.spec.ts @@ -14,7 +14,8 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -import './base.fixture'; + +import './playwright.fixtures'; it('should work', async ({ page }) => { await page.setContent(``); diff --git a/test/elementhandle-wait-for-element-state.spec.ts b/test/elementhandle-wait-for-element-state.spec.ts index 2bcdfd7bce..440ecbdf8b 100644 --- a/test/elementhandle-wait-for-element-state.spec.ts +++ b/test/elementhandle-wait-for-element-state.spec.ts @@ -14,7 +14,8 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -import './base.fixture'; + +import './playwright.fixtures'; async function giveItAChanceToResolve(page) { for (let i = 0; i < 5; i++) diff --git a/test/emulation-focus.spec.ts b/test/emulation-focus.spec.ts index f8d323ead0..d8133b01b3 100644 --- a/test/emulation-focus.spec.ts +++ b/test/emulation-focus.spec.ts @@ -15,8 +15,7 @@ * limitations under the License. */ -import './base.fixture'; - +import { options } from './playwright.fixtures'; import utils from './utils'; it('should think that it is focused by default', async({page}) => { @@ -102,7 +101,7 @@ it('should change document.activeElement', async({page, server}) => { expect(active).toEqual(['INPUT', 'TEXTAREA']); }); -it.skip(options.FFOX && !options.HEADLESS)('should not affect screenshots', async({page, server, golden}) => { +it.skip(options.FIREFOX() && !options.HEADLESS)('should not affect screenshots', async({page, server, golden}) => { // Firefox headful produces a different image. const page2 = await page.context().newPage(); await Promise.all([ diff --git a/test/eval-on-selector-all.spec.ts b/test/eval-on-selector-all.spec.ts index 1045a900dc..a743e640a7 100644 --- a/test/eval-on-selector-all.spec.ts +++ b/test/eval-on-selector-all.spec.ts @@ -14,7 +14,8 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -import './base.fixture'; + +import './playwright.fixtures'; it('should work with css selector', async({page, server}) => { await page.setContent('
hello
beautiful
world!
'); diff --git a/test/eval-on-selector.spec.ts b/test/eval-on-selector.spec.ts index 2d976b6a43..4dfe69afcc 100644 --- a/test/eval-on-selector.spec.ts +++ b/test/eval-on-selector.spec.ts @@ -14,7 +14,8 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -import './base.fixture'; + +import './playwright.fixtures'; it('should work with css selector', async({page, server}) => { await page.setContent('
43543
'); diff --git a/test/firefox/launcher.spec.ts b/test/firefox/launcher.spec.ts index 952318ba23..213f532482 100644 --- a/test/firefox/launcher.spec.ts +++ b/test/firefox/launcher.spec.ts @@ -13,9 +13,9 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -import '../base.fixture'; +import { options } from '../playwright.fixtures'; -it.skip(!options.FFOX)('should pass firefox user preferences', async({browserType, defaultBrowserOptions}) => { +it.skip(!options.FIREFOX())('should pass firefox user preferences', async({browserType, defaultBrowserOptions}) => { const browser = await browserType.launch({ ...defaultBrowserOptions, firefoxUserPrefs: { diff --git a/test/fixtures.spec.ts b/test/fixtures.spec.ts index 5063dd773f..6c6d9b8807 100644 --- a/test/fixtures.spec.ts +++ b/test/fixtures.spec.ts @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -import './base.fixture'; +import { options } from './playwright.fixtures'; import { registerFixture } from './runner'; import path from 'path'; diff --git a/test/focus.spec.ts b/test/focus.spec.ts index 1442b06e05..e3fd167552 100644 --- a/test/focus.spec.ts +++ b/test/focus.spec.ts @@ -13,9 +13,9 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -import './base.fixture'; +import { options } from './playwright.fixtures'; -it.skip(options.FFOX)('should work', async function({page, server}) { +it.skip(options.FIREFOX())('should work', async function({page, server}) { await page.setContent(`
`); expect(await page.evaluate(() => document.activeElement.nodeName)).toBe('BODY'); await page.focus('#d1'); @@ -77,7 +77,7 @@ it('should traverse focus in all directions', async function({page}) { // Chromium and WebKit both have settings for tab traversing all links, but // it is only on by default in WebKit. -it.skip(!MAC || !options.WEBKIT)('should traverse only form elements', async function({page}) { +it.skip(!MAC || !options.WEBKIT())('should traverse only form elements', async function({page}) { await page.setContent(` diff --git a/test/frame-evaluate.spec.ts b/test/frame-evaluate.spec.ts index bba366f4c5..106b4e4241 100644 --- a/test/frame-evaluate.spec.ts +++ b/test/frame-evaluate.spec.ts @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -import './base.fixture'; +import { options } from './playwright.fixtures'; import utils from './utils'; @@ -36,7 +36,7 @@ it('should have correct execution contexts', async ({ page, server }) => { }); function expectContexts(pageImpl, count) { - if (options.CHROMIUM) + if (options.CHROMIUM()) expect(pageImpl._delegate._mainFrameSession._contextIdToContext.size).toBe(count); else expect(pageImpl._delegate._contextIdToContext.size).toBe(count); @@ -126,7 +126,7 @@ it('should be isolated between frames', async({page, server}) => { expect(a2).toBe(2); }); -it.fail(options.CHROMIUM || options.FFOX)('should work in iframes that failed initial navigation', async({page, server}) => { +it.fail(options.CHROMIUM() || options.FIREFOX())('should work in iframes that failed initial navigation', async({page, server}) => { // - Firefox does not report domcontentloaded for the iframe. // - Chromium and Firefox report empty url. // - Chromium does not report main/utility worlds for the iframe. @@ -147,7 +147,7 @@ it.fail(options.CHROMIUM || options.FFOX)('should work in iframes that failed in expect(await page.frames()[1].$('div')).toBeTruthy(); }); -it.fail(options.CHROMIUM)('should work in iframes that interrupted initial javascript url navigation', async({page, server}) => { +it.fail(options.CHROMIUM())('should work in iframes that interrupted initial javascript url navigation', async({page, server}) => { // Chromium does not report isolated world for the iframe. await page.goto(server.EMPTY_PAGE); await page.evaluate(() => { diff --git a/test/frame-frame-element.spec.ts b/test/frame-frame-element.spec.ts index 2f216abc53..12f9677c19 100644 --- a/test/frame-frame-element.spec.ts +++ b/test/frame-frame-element.spec.ts @@ -14,7 +14,8 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -import './base.fixture'; + +import './playwright.fixtures'; import utils from './utils'; diff --git a/test/frame-goto.spec.ts b/test/frame-goto.spec.ts index f76fc6b529..c724ccbdfa 100644 --- a/test/frame-goto.spec.ts +++ b/test/frame-goto.spec.ts @@ -14,7 +14,8 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -import './base.fixture'; + +import './playwright.fixtures'; import utils from './utils'; diff --git a/test/frame-hierarchy.spec.ts b/test/frame-hierarchy.spec.ts index 2a3b90bea7..254b9c1123 100644 --- a/test/frame-hierarchy.spec.ts +++ b/test/frame-hierarchy.spec.ts @@ -14,8 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -import './base.fixture'; - +import { options } from './playwright.fixtures'; import utils from './utils'; it('should handle nested frames', async({page, server}) => { @@ -172,7 +171,7 @@ it('should report different frame instance when frame re-attaches', async({page, expect(frame1).not.toBe(frame2); }); -it.fail(options.FFOX)('should refuse to display x-frame-options:deny iframe', async({page, server}) => { +it.fail(options.FIREFOX())('should refuse to display x-frame-options:deny iframe', async({page, server}) => { server.setRoute('/x-frame-options-deny.html', async (req, res) => { res.setHeader('Content-Type', 'text/html'); res.setHeader('X-Frame-Options', 'DENY'); diff --git a/test/geolocation.spec.ts b/test/geolocation.spec.ts index 008fe5d957..b7b21ce536 100644 --- a/test/geolocation.spec.ts +++ b/test/geolocation.spec.ts @@ -14,7 +14,8 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -import './base.fixture'; + +import './playwright.fixtures'; it('should work', async({page, server, context}) => { await context.grantPermissions(['geolocation']); diff --git a/test/headful.spec.ts b/test/headful.spec.ts index b4cb897377..ee06253028 100644 --- a/test/headful.spec.ts +++ b/test/headful.spec.ts @@ -14,8 +14,7 @@ * limitations under the License. */ -import './runner/builtin.fixtures'; -import './base.fixture'; +import { options } from './playwright.fixtures'; import utils from './utils'; const { makeUserDataDir, removeUserDataDir } = utils; @@ -27,7 +26,7 @@ it('should have default url when launching browser', async ({browserType, defaul await browserContext.close(); }); -it.fail(WIN && options.CHROMIUM).slow()('headless should be able to read cookies written by headful', async({browserType, defaultBrowserOptions, server}) => { +it.fail(WIN && options.CHROMIUM()).slow()('headless should be able to read cookies written by headful', async({browserType, defaultBrowserOptions, server}) => { // see https://github.com/microsoft/playwright/issues/717 const userDataDir = await makeUserDataDir(); // Write a cookie in headful chrome @@ -107,7 +106,7 @@ it('should(not) block third party cookies', async({browserType, defaultBrowserOp return document.cookie; }); await page.waitForTimeout(2000); - const allowsThirdParty = options.CHROMIUM || options.FFOX; + const allowsThirdParty = options.CHROMIUM() || options.FIREFOX(); expect(documentCookie).toBe(allowsThirdParty ? 'username=John Doe' : ''); const cookies = await page.context().cookies(server.CROSS_PROCESS_PREFIX + '/grid.html'); if (allowsThirdParty) { @@ -129,7 +128,7 @@ it('should(not) block third party cookies', async({browserType, defaultBrowserOp await browser.close(); }); -it.fail(options.WEBKIT)('should not override viewport size when passed null', async function({browserType, defaultBrowserOptions, server}) { +it.fail(options.WEBKIT())('should not override viewport size when passed null', async function({browserType, defaultBrowserOptions, server}) { // Our WebKit embedder does not respect window features. const browser = await browserType.launch({...defaultBrowserOptions, headless: false }); const context = await browser.newContext({ viewport: null }); diff --git a/test/ignorehttpserrors.spec.ts b/test/ignorehttpserrors.spec.ts index e8aa629e50..8584c16126 100644 --- a/test/ignorehttpserrors.spec.ts +++ b/test/ignorehttpserrors.spec.ts @@ -14,7 +14,8 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -import './base.fixture'; + +import './playwright.fixtures'; it('should work', async({browser, httpsServer}) => { let error = null; diff --git a/test/interception.spec.ts b/test/interception.spec.ts index d766001557..a82a379bd9 100644 --- a/test/interception.spec.ts +++ b/test/interception.spec.ts @@ -14,7 +14,8 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -import './base.fixture'; + +import './playwright.fixtures'; import { globToRegex } from '../lib/rpc/client/clientHelper'; import vm from 'vm'; diff --git a/test/jshandle-as-element.spec.ts b/test/jshandle-as-element.spec.ts index f0ac3cc0b9..3f2f4ebdbb 100644 --- a/test/jshandle-as-element.spec.ts +++ b/test/jshandle-as-element.spec.ts @@ -14,7 +14,8 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -import './base.fixture'; + +import './playwright.fixtures'; it('should work', async({page}) => { const aHandle = await page.evaluateHandle(() => document.body); diff --git a/test/jshandle-evaluate.spec.ts b/test/jshandle-evaluate.spec.ts index aaccd85d51..5e5aa102ff 100644 --- a/test/jshandle-evaluate.spec.ts +++ b/test/jshandle-evaluate.spec.ts @@ -14,7 +14,8 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -import './base.fixture'; + +import './playwright.fixtures'; it('should work with function', async({page}) => { const windowHandle = await page.evaluateHandle(() => { diff --git a/test/jshandle-json-value.spec.ts b/test/jshandle-json-value.spec.ts index 21761352b9..c867f83c90 100644 --- a/test/jshandle-json-value.spec.ts +++ b/test/jshandle-json-value.spec.ts @@ -14,7 +14,8 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -import './base.fixture'; + +import './playwright.fixtures'; it('should work', async({page}) => { const aHandle = await page.evaluateHandle(() => ({foo: 'bar'})); diff --git a/test/jshandle-properties.spec.ts b/test/jshandle-properties.spec.ts index a29dfd764a..d7c557432b 100644 --- a/test/jshandle-properties.spec.ts +++ b/test/jshandle-properties.spec.ts @@ -14,7 +14,8 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -import './base.fixture'; + +import './playwright.fixtures'; it('should work', async({page}) => { const aHandle = await page.evaluateHandle(() => ({ diff --git a/test/jshandle-to-string.spec.ts b/test/jshandle-to-string.spec.ts index b5d7967450..6c3b12f997 100644 --- a/test/jshandle-to-string.spec.ts +++ b/test/jshandle-to-string.spec.ts @@ -14,7 +14,8 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -import './base.fixture'; + +import { options } from './playwright.fixtures'; it('should work for primitives', async({page}) => { const numberHandle = await page.evaluateHandle(() => 2); @@ -53,6 +54,6 @@ it('should work with different subtypes', async({page}) => { expect((await page.evaluateHandle('new WeakSet()')).toString()).toBe('JSHandle@weakset'); expect((await page.evaluateHandle('new Error()')).toString()).toBe('JSHandle@error'); // TODO(yurys): change subtype from array to typedarray in WebKit. - expect((await page.evaluateHandle('new Int32Array()')).toString()).toBe(options.WEBKIT ? 'JSHandle@array' : 'JSHandle@typedarray'); + expect((await page.evaluateHandle('new Int32Array()')).toString()).toBe(options.WEBKIT() ? 'JSHandle@array' : 'JSHandle@typedarray'); expect((await page.evaluateHandle('new Proxy({}, {})')).toString()).toBe('JSHandle@proxy'); }); diff --git a/test/keyboard.spec.ts b/test/keyboard.spec.ts index 4e63916197..f1849161b1 100644 --- a/test/keyboard.spec.ts +++ b/test/keyboard.spec.ts @@ -14,8 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -import './base.fixture'; - +import { options } from './playwright.fixtures'; import utils from './utils'; it('should type into a textarea', async ({page}) => { @@ -83,7 +82,7 @@ it('insertText should only emit input event', async ({page, server}) => { expect(await events.jsonValue()).toEqual(['input']); }); -it.fail(options.FFOX && MAC)('should report shiftKey', async ({page, server}) => { +it.fail(options.FIREFOX() && MAC)('should report shiftKey', async ({page, server}) => { await page.goto(server.PREFIX + '/input/keyboard.html'); const keyboard = page.keyboard; const codeForKey = {'Shift': 16, 'Alt': 18, 'Control': 17}; @@ -354,17 +353,17 @@ it('should press the meta key', async ({page}) => { const lastEvent = await captureLastKeydown(page); await page.keyboard.press('Meta'); const {key, code, metaKey} = await lastEvent.jsonValue(); - if (options.FFOX && !MAC) + if (options.FIREFOX() && !MAC) expect(key).toBe('OS'); else expect(key).toBe('Meta'); - if (options.FFOX) + if (options.FIREFOX()) expect(code).toBe('OSLeft'); else expect(code).toBe('MetaLeft'); - if (options.FFOX && !MAC) + if (options.FIREFOX() && !MAC) expect(metaKey).toBe(false); else expect(metaKey).toBe(true); @@ -380,7 +379,7 @@ it('should work after a cross origin navigation', async ({page, server}) => { }); // event.keyIdentifier has been removed from all browsers except WebKit -it.skip(!options.WEBKIT)('should expose keyIdentifier in webkit', async ({page, server}) => { +it.skip(!options.WEBKIT())('should expose keyIdentifier in webkit', async ({page, server}) => { const lastEvent = await captureLastKeydown(page); const keyMap = { 'ArrowUp': 'Up', diff --git a/test/launcher.spec.ts b/test/launcher.spec.ts index f9e427a2b5..5efa99a071 100644 --- a/test/launcher.spec.ts +++ b/test/launcher.spec.ts @@ -14,8 +14,8 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -import './base.fixture'; +import './playwright.fixtures'; import path from 'path'; import utils from './utils'; diff --git a/test/logger.spec.ts b/test/logger.spec.ts index e053afa7d5..db6029a790 100644 --- a/test/logger.spec.ts +++ b/test/logger.spec.ts @@ -13,7 +13,8 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -import './base.fixture'; + +import './playwright.fixtures'; it('should log', async({browserType, defaultBrowserOptions}) => { const log = []; diff --git a/test/mouse.spec.ts b/test/mouse.spec.ts index 47967a83a0..b6c6355e61 100644 --- a/test/mouse.spec.ts +++ b/test/mouse.spec.ts @@ -14,7 +14,8 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -import './base.fixture'; + +import { options } from './playwright.fixtures'; function dimensions() { const rect = document.querySelector('textarea').getBoundingClientRect(); @@ -26,8 +27,8 @@ function dimensions() { }; } -it.fail(options.FFOX && WIN)('should click the document', async({page, server}) => { - // Occasionally times out on options.FFOX on Windows: https://github.com/microsoft/playwright/pull/1911/checks?check_run_id=607149016 +it.fail(options.FIREFOX() && WIN)('should click the document', async({page, server}) => { + // Occasionally times out on options.FIREFOX() on Windows: https://github.com/microsoft/playwright/pull/1911/checks?check_run_id=607149016 await page.evaluate(() => { window["clickPromise"] = new Promise(resolve => { document.addEventListener('click', event => { @@ -126,7 +127,7 @@ it('should set modifier keys on click', async({page, server}) => { await page.evaluate(() => document.querySelector('#button-3').addEventListener('mousedown', e => window["lastEvent"] = e, true)); const modifiers = {'Shift': 'shiftKey', 'Control': 'ctrlKey', 'Alt': 'altKey', 'Meta': 'metaKey'}; // In Firefox, the Meta modifier only exists on Mac - if (options.FFOX && !MAC) + if (options.FIREFOX() && !MAC) delete modifiers['Meta']; for (const modifier in modifiers) { await page.keyboard.down(modifier); @@ -144,7 +145,7 @@ it('should set modifier keys on click', async({page, server}) => { it('should tween mouse movement', async({page}) => { // The test becomes flaky on WebKit without next line. - if (options.WEBKIT) + if (options.WEBKIT()) await page.evaluate(() => new Promise(requestAnimationFrame)); await page.mouse.move(100, 100); await page.evaluate(() => { @@ -163,7 +164,7 @@ it('should tween mouse movement', async({page}) => { ]); }); -it.skip(options.FFOX)('should work with mobile viewports and cross process navigations', async({browser, server}) => { +it.skip(options.FIREFOX())('should work with mobile viewports and cross process navigations', async({browser, server}) => { // @see https://crbug.com/929806 const context = await browser.newContext({ viewport: {width: 360, height: 640}, isMobile: true }); const page = await context.newPage(); diff --git a/test/multiclient.spec.ts b/test/multiclient.spec.ts index a7fe2ef28f..7d4c368ce5 100644 --- a/test/multiclient.spec.ts +++ b/test/multiclient.spec.ts @@ -14,8 +14,8 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -import './base.fixture'; +import { options } from './playwright.fixtures'; it.skip(options.WIRE)('should work across sessions', async ({browserType, defaultBrowserOptions}) => { const browserServer = await browserType.launchServer(defaultBrowserOptions); diff --git a/test/navigation.spec.ts b/test/navigation.spec.ts index a511fa59b8..97c42a3b1c 100644 --- a/test/navigation.spec.ts +++ b/test/navigation.spec.ts @@ -14,7 +14,8 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -import './base.fixture'; + +import './playwright.fixtures'; it('should work with _blank target', async({page, server}) => { server.setRoute('/empty.html', (req, res) => { diff --git a/test/network-request.spec.ts b/test/network-request.spec.ts index 63cf5372f9..3409b4c934 100644 --- a/test/network-request.spec.ts +++ b/test/network-request.spec.ts @@ -14,8 +14,8 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -import './base.fixture'; +import { options } from './playwright.fixtures'; import utils from './utils'; it('should work for main frame navigation request', async({page, server}) => { @@ -47,15 +47,15 @@ it('should work for fetch requests', async({page, server}) => { it('should return headers', async({page, server}) => { const response = await page.goto(server.EMPTY_PAGE); - if (options.CHROMIUM) + if (options.CHROMIUM()) expect(response.request().headers()['user-agent']).toContain('Chrome'); - else if (options.FFOX) + else if (options.FIREFOX()) expect(response.request().headers()['user-agent']).toContain('Firefox'); - else if (options.WEBKIT) + else if (options.WEBKIT()) expect(response.request().headers()['user-agent']).toContain('WebKit'); }); -it.fail(options.CHROMIUM||options.WEBKIT)('should get the same headers as the server', async({page, server}) => { +it.fail(options.CHROMIUM()||options.WEBKIT())('should get the same headers as the server', async({page, server}) => { await page.goto(server.PREFIX + '/empty.html'); let serverRequest; server.setRoute('/something', (request, response) => { diff --git a/test/network-response.spec.ts b/test/network-response.spec.ts index 8d442f53fd..c16ece1c56 100644 --- a/test/network-response.spec.ts +++ b/test/network-response.spec.ts @@ -14,8 +14,8 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -import './base.fixture'; +import './playwright.fixtures'; import fs from 'fs'; import path from 'path'; diff --git a/test/page-add-init-script.spec.ts b/test/page-add-init-script.spec.ts index 7acfd0db3d..73bdd64c5c 100644 --- a/test/page-add-init-script.spec.ts +++ b/test/page-add-init-script.spec.ts @@ -14,8 +14,8 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -import './base.fixture'; +import './playwright.fixtures'; import path from 'path'; it('should evaluate before anything else on the page', async ({ page, server }) => { diff --git a/test/page-add-script-tag.spec.ts b/test/page-add-script-tag.spec.ts index 431d028f41..5395167321 100644 --- a/test/page-add-script-tag.spec.ts +++ b/test/page-add-script-tag.spec.ts @@ -14,8 +14,8 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -import './base.fixture'; +import { options } from './playwright.fixtures'; import path from 'path'; it('should throw an error if no options are provided', async({page, server}) => { @@ -74,7 +74,7 @@ it('should work with a path', async({page, server}) => { expect(await page.evaluate(() => window['__injected'])).toBe(42); }); -it.skip(options.WEBKIT)('should include sourceURL when path is provided', async({page, server}) => { +it.skip(options.WEBKIT())('should include sourceURL when path is provided', async({page, server}) => { await page.goto(server.EMPTY_PAGE); await page.addScriptTag({ path: path.join(__dirname, 'assets/injectedfile.js') }); const result = await page.evaluate(() => window['__injectedError'].stack); @@ -88,7 +88,7 @@ it('should work with content', async({page, server}) => { expect(await page.evaluate(() => window['__injected'])).toBe(35); }); -it.fail(options.FFOX)('should throw when added with content to the CSP page', async({page, server}) => { +it.fail(options.FIREFOX())('should throw when added with content to the CSP page', async({page, server}) => { // Firefox fires onload for blocked script before it issues the CSP console error. await page.goto(server.PREFIX + '/csp.html'); let error = null; diff --git a/test/page-add-style-tag.spec.ts b/test/page-add-style-tag.spec.ts index 98cf349d03..b162037bf9 100644 --- a/test/page-add-style-tag.spec.ts +++ b/test/page-add-style-tag.spec.ts @@ -14,8 +14,8 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -import './base.fixture'; +import './playwright.fixtures'; import path from 'path'; it('should throw an error if no options are provided', async({page, server}) => { diff --git a/test/page-basic.spec.ts b/test/page-basic.spec.ts index 5e37f06351..b350d7168b 100644 --- a/test/page-basic.spec.ts +++ b/test/page-basic.spec.ts @@ -14,7 +14,8 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -import './base.fixture'; + +import { options } from './playwright.fixtures'; it('should reject all promises when page is closed', async({context}) => { const newPage = await context.newPage(); @@ -43,9 +44,9 @@ it('should run beforeunload if asked for', async({context, server}) => { const dialog = await newPage.waitForEvent('dialog'); expect(dialog.type()).toBe('beforeunload'); expect(dialog.defaultValue()).toBe(''); - if (options.CHROMIUM) + if (options.CHROMIUM()) expect(dialog.message()).toBe(''); - else if (options.WEBKIT) + else if (options.WEBKIT()) expect(dialog.message()).toBe('Leave?'); else expect(dialog.message()).toBe('This page is asking you to confirm that you want to leave - data you have entered may not be saved.'); @@ -210,7 +211,7 @@ it('should have sane user agent', async ({page}) => { // Second part in parenthesis is platform - ignore it. // Third part for Firefox is the last one and encodes engine and browser versions. - if (options.FFOX) { + if (options.FIREFOX()) { const [engine, browser] = part3.split(' '); expect(engine.startsWith('Gecko')).toBe(true); expect(browser.startsWith('Firefox')).toBe(true); @@ -218,13 +219,13 @@ it('should have sane user agent', async ({page}) => { expect(part5).toBe(undefined); return; } - // For both options.CHROMIUM and options.WEBKIT, third part is the AppleWebKit version. + // For both options.CHROMIUM() and options.WEBKIT(), third part is the AppleWebKit version. expect(part3.startsWith('AppleWebKit/')).toBe(true); expect(part4).toBe('KHTML, like Gecko'); // 5th part encodes real browser name and engine version. const [engine, browser] = part5.split(' '); expect(browser.startsWith('Safari/')).toBe(true); - if (options.CHROMIUM) + if (options.CHROMIUM()) expect(engine.includes('Chrome/')).toBe(true); else expect(engine.startsWith('Version/')).toBe(true); @@ -243,7 +244,7 @@ it('frame.press should work', async({page, server}) => { expect(await frame.evaluate(() => document.querySelector('textarea').value)).toBe('a'); }); -it.fail(options.FFOX)('frame.focus should work multiple times', async ({ context, server }) => { +it.fail(options.FIREFOX())('frame.focus should work multiple times', async ({ context, server }) => { const page1 = await context.newPage() const page2 = await context.newPage() for (const page of [page1, page2]) { diff --git a/test/page-emulate-media.spec.ts b/test/page-emulate-media.spec.ts index 374118e144..7c30633ced 100644 --- a/test/page-emulate-media.spec.ts +++ b/test/page-emulate-media.spec.ts @@ -14,8 +14,8 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -import './base.fixture'; +import { options } from './playwright.fixtures'; import utils from './utils'; it('should emulate type', async({page, server}) => { @@ -114,7 +114,7 @@ it('should work in cross-process iframe', async({browser, server}) => { await page.close(); }); -it.fail(options.FFOX)('should change the actual colors in css', async({page}) => { +it.fail(options.FIREFOX())('should change the actual colors in css', async({page}) => { await page.setContent(`