Commit Graph

1216 Commits

Author SHA1 Message Date
Max Schmitt
1421ed99ba
test: fixed Node.js deprecation warning (#3864) 2020-09-14 07:54:21 -07:00
Max Schmitt
d7f3812123
tests: fixed OS-locale specific failing test (#3863) 2020-09-14 07:53:25 -07:00
Max Schmitt
beceeaf6a1
feat(browserContext): add BrowserContext.browser() (#3849) 2020-09-14 07:50:47 -07:00
Yury Semikhatsky
02275f2414
test(screencast): use public API for pixel tests (#3858) 2020-09-11 18:58:53 -07:00
Yury Semikhatsky
40323aa94d
fix(screencast): use viewport as default size (#3844) 2020-09-11 15:14:31 -07:00
Dmitry Gozman
c4adeb66ce
fix(snapshot): do not let a single frame fail the whole snapshot (#3857)
Sometimes, we are unable to take a frame snapshot. The most common
example would be "frame is stuck during the navigation in Chromium",
where we cannot evaluate until the frame is done navigating.

In this case, use all other frames and just stub the failing ones
with "Snapshot is not available". Chances are, noone will even see
this frame because it's an invisible tracking iframe.
2020-09-11 15:13:37 -07:00
Max Schmitt
c175dad290
chore: fix compatibility to the domain module (#3851) 2020-09-11 14:40:49 -07:00
Pavel Feldman
f94df318d5
chore: roll test runner to 0.3.9 (#3847) 2020-09-11 10:02:07 -07:00
Pavel Feldman
a597004780
chore: roll test runner to 0.3.5 (#3832) 2020-09-10 21:31:46 -07:00
Yury Semikhatsky
d2771ebfea
test(screencast): always use chromium to replay the video (#3841) 2020-09-10 18:09:17 -07:00
Dmitry Gozman
bf9c4a35f6
fix(snapshot): properly save textarea content (#3835) 2020-09-10 15:33:39 -07:00
Joel Einbinder
3c69f2a185
tes(types): use @ts-expect-error in tests where we check for errors (#3794) 2020-09-09 03:06:52 -07:00
Joel Einbinder
1791be6d16
fix(input): send keypress event for enter key in chromium (#3796) 2020-09-08 20:04:14 -07:00
Yury Semikhatsky
af58c8acb2
fix(screencast): ensure that _videostarted is fired after newPage (#3807) 2020-09-08 17:01:00 -07:00
Pavel Feldman
c83b2da54f
chore: revert isDevMode into isUnderTest (#3785) 2020-09-06 21:36:22 -07:00
Pavel Feldman
d6cd0224ab
test(screencast): mark win/webkit ac as failing (#3783) 2020-09-06 14:56:46 -07:00
Pavel Feldman
f8e1fd7ead
test: add a failing test for page.press (#3780) 2020-09-05 22:38:29 -07:00
Yury Semikhatsky
66985fc5f6
feat(screencast): add expreimental public API on context (#3766) 2020-09-04 22:37:38 -07:00
Dmitry Gozman
675ce00432
chore: introduce "instrumentation" that is used for debug and trace (#3775) 2020-09-04 16:31:52 -07:00
Yury Semikhatsky
52fd88b13d
fix(screencast): always send at least one frame in wpe (#3760) 2020-09-03 16:55:54 -07:00
Dmitry Gozman
c190310335
fix(setInputFiles): make it work with CSP enabled (#3756)
We used to do fetch() to decode the file buffer. However, this is
blocked by strict CSP policy. Instead, we can use explicit
string -> bytes conversion, and trade performance for CSP compliance.
2020-09-03 10:09:03 -07:00
Dmitry Gozman
f232f34dae
test: create a page in fixture tests to exercise browser processes (#3745)
We currently launch and then close the empty browser. This does not
trigger many codepaths related to web page process creation and
browser context.

With opening and navigating a page, we do a more real-life test.
This exposes an issue from #3740.
2020-09-03 10:07:54 -07:00
Pavel Feldman
8df1fe47bc
test: explicitly require expect (#3755) 2020-09-03 09:43:08 -07:00
Pavel Feldman
7ad5bd90a4
test: roll test-runner to 0.2.9 (#3752) 2020-09-02 23:45:42 -07:00
Pavel Feldman
42a64048e8
test: roll test-runner to 0.2.9 (#3753) 2020-09-02 23:22:23 -07:00
Pavel Feldman
175fc52747
test: roll test-runner to 0.2.8 (#3748) 2020-09-02 21:43:38 -07:00
Yury Semikhatsky
0976732ec6
fix(screencast): remove white padding in headless chromium (#3746) 2020-09-02 17:28:08 -07:00
Dmitry Gozman
de547d7d65
fix(connect): make selectors.register work in connected browser (#3664)
This is a large rework of selectors:
- Each BrowserContext now has a separate Selectors instance that has its own registrations.
  Most of them share a single sharedSelectors instance, but contexts created for a connected
  browser have their own instance.
- Connected browser now gets a RemoteBrowser object that encapsulates Selectors and Browser.
  This Selectors object is registered with the api selectors.
- Public selectors.register api iterates over all registered Selectors channels
  and registers in each of them.
- createSelector testing method migrated to ElementHandle._createSelectorForTest.
2020-09-02 16:15:43 -07:00
Dmitry Gozman
5c3bf5bf3e
test: add tests for selectors matching root behavior (#3744) 2020-09-02 16:00:15 -07:00
Yury Semikhatsky
469541a0b9
test(screencast): try to unflake tests (#3742) 2020-09-02 15:21:58 -07:00
Yury Semikhatsky
a588840d99
test(screencast): add auto scale test (#3733) 2020-09-02 13:59:15 -07:00
Yury Semikhatsky
1e64efcad1
feat(screencast): autoscale to fit requested size (#3730) 2020-09-02 10:40:50 -07:00
Dmitry Gozman
a58812523c
test: call setDevMode in wire tests (#3678) 2020-09-02 10:19:03 -07:00
Yury Semikhatsky
db9b8a003f
fix(screencast): dont throw from frameAck if target is closed (#3702) 2020-08-31 17:43:23 -07:00
Yury Semikhatsky
a17dd98cf9
feat(screencast): auto recording for new pages in chromium (#3701) 2020-08-31 15:21:02 -07:00
Yury Semikhatsky
f23dbfb009
test(screencast): more tests on Chromium, new seek impl (#3699) 2020-08-31 13:18:19 -07:00
Yury Semikhatsky
8ec55e1fb2
feat(screencast): use ffmpeg to produce webm in chromium (#3668) 2020-08-31 08:43:14 -07:00
Joel Einbinder
3cc91093a1
chore(testrunner): move out of the repo (#3687) 2020-08-29 08:27:32 -07:00
Pavel Feldman
555a8d0d10
fix(testrunner): include fixture teardown into timeout, add global timeout (#3685) 2020-08-28 19:27:49 -07:00
Pavel Feldman
657cc9b630
feat(test): use metafunc in describes (#3682) 2020-08-28 15:45:09 -07:00
Andrey Lushnikov
45e178f8b5
fix: support IP:PORT short notation to specify proxy server (#3568)
Short notation implies `http://` scheme.

Fixes #3233
2020-08-28 14:17:16 -07:00
Pavel Feldman
97e4561ee1
feat(test): introduce metafunc for skip (#3676) 2020-08-28 13:53:47 -07:00
Dmitry Gozman
e5ff283a40
fix(trace): only enable on separate tracing bots (#3677) 2020-08-28 13:50:06 -07:00
Dmitry Gozman
7b1fac90bb
test: mark all crash tests as flaky on firefox win (#3675)
All crash tests do not actually crash sometimes on firefox win.
2020-08-28 12:05:11 -07:00
Dmitry Gozman
3d6051adb7
test: mark "should work for webgl" as fixme on webkit linux (#3674)
It sometimes fails all 3 retries.
2020-08-28 12:05:01 -07:00
Darío Kondratiuk
90408aa4f4
test: Remove "request interception" from oopif tests (#3671)
We don't have request interceptions :)
2020-08-28 11:37:16 -07:00
Dmitry Gozman
b34d9aba25
feat(trace): experimental traces for our tests (#3567)
This introduces basic tracing enabled in our tests.

What is captured:
- network resources;
- snapshots at the start of most actions;
- snapshot after the test failure.

How this integrates with test runner:
- context fixture calls private method context._initSnapshotter() and uses Tracer to trace all events;
- all tests share a single test-results/trace-storage directory to store blobs;
- each test has its own trace file.
- npm run show-trace opens a bare-minimum trace viewer that renders snapshots.
2020-08-28 10:51:55 -07:00
Dmitry Gozman
4386cd4e7f
test: mark "headless should be able to read cookies written by headful" as flaky on firefox (#3673) 2020-08-28 10:38:13 -07:00
Pavel Feldman
eec92630df
test: make some tests as flaky (#3672) 2020-08-28 10:03:52 -07:00
Joel Einbinder
e2057fb8bb
chore(test): run eslint on tests (#3638) 2020-08-28 04:20:29 -07:00
Pavel Feldman
6ffdd4dfa1
feat(testrunner): allow unexpected passes (#3665) 2020-08-28 00:32:00 -07:00
Dmitry Gozman
5c0f93301d
test: always setUnderTest in index.js, rename to setDevMode (#3662)
Root index.js is only used for local development, so
assuming dev mode there is fine. This way we do not have
to worry about calling setUnderTest early enough.
2020-08-27 21:08:33 -07:00
Joel Einbinder
1a5f22d327
fix(test): import playwright types with import type (#3647)
* fix(test): import playwright types with import type

* add a check
2020-08-26 14:16:35 -07:00
Pavel Feldman
a20bb949ea
chore(testrunner): introduce test result, reuse it in ipc (#3644) 2020-08-26 14:14:23 -07:00
Dmitry Gozman
9e2e87060a
test: switch browserType.connect tests to use remoteServer (#3646)
This way we test the real scenario where server is not launched
in the same node process.

Additionally, move all connect-related tests to a single file and
clean them up.
2020-08-26 13:33:37 -07:00
Dmitry Gozman
8d7ec3aca3
fix(downloads): make path/saveAs work when connected remotely (#3634)
- saveAs uses a stream internally and pipes it to the local file;
- path throws an error when called on a remote browser.
2020-08-26 12:46:30 -07:00
Darío Kondratiuk
9b50a6d259
test: Fix Chromium JSCoverage reportAnonumousScripts test (#3641) 2020-08-26 08:59:07 -07:00
Joel Einbinder
f9eeb2984a
fix playwright being imported before toImpl could be registered (#3632) 2020-08-26 02:52:23 -07:00
Dmitry Gozman
25381cfa43
test: add some tests for remote connect (#3614)
Our current tests excercise the same-process launchServer/connect
combination. This change adds tests for remote server and immediately
exposes a bug with selector engines.
2020-08-25 19:09:30 -07:00
Yury Semikhatsky
a38564b7ca
fix(screencast): replace ScreencastStopped event with async path() (#3612) 2020-08-25 13:07:32 -07:00
Pavel Feldman
e215461898
chore: split tests for faster execution (#3613) 2020-08-24 20:26:06 -07:00
Dmitry Gozman
3b2f14fcee
test: fix wire tests (#3609) 2020-08-24 17:32:55 -07:00
Yury Semikhatsky
b9d6324d14
feat(screencast): fire start evet for popups (#3600) 2020-08-24 17:23:54 -07:00
Dmitry Gozman
a099e941d6
chore: move last rpc files to their place (#3604)
Also update check-deps to be more user-friendly.
2020-08-24 14:48:03 -07:00
Dmitry Gozman
cd220daa83
chore: move src files to server (#3593) 2020-08-24 06:51:51 -07:00
Pavel Feldman
4025f9f1ef
feat(testrunner): expose test and runner config to fixtures (#3580) 2020-08-22 16:44:56 -07:00
Dmitry Gozman
9fca63f8ec
chore: move src/rpc/client to src/client (#3581) 2020-08-22 15:13:51 -07:00
Darío Kondratiuk
72f11fdb0b
test: Remove duplicated expect (#3579) 2020-08-22 10:23:54 -07:00
Dmitry Gozman
655013d025
chore: move shared utilities to src/utils (#3575) 2020-08-22 07:07:13 -07:00
Pavel Feldman
b909924a61
test: remove mocha dependency (#3576) 2020-08-22 00:05:24 -07:00
Dmitry Gozman
6fe1cd9812
chore: move protocol files to src/protocol (#3571) 2020-08-21 18:46:11 -07:00
Pavel Feldman
398bd477ac
test: translate tests into ts, extract mocha (#3565) 2020-08-21 17:14:11 -07:00
Dmitry Gozman
57e8617474
chore: refactor impl-side events to be per-class (#3569) 2020-08-21 16:26:33 -07:00
Joel Einbinder
8ae3c4be06
feat(testrunner): delete types.d.ts (#3551) 2020-08-21 09:53:02 -07:00
Yury Semikhatsky
1f0e9db0a6
feat(firefox): support context-level screencast api (#3555) 2020-08-20 19:49:30 -07:00
Yury Semikhatsky
7a492831a1
fix(test): fix the popup test on Windows (#3558) 2020-08-20 19:48:56 -07:00
Pavel Feldman
83f399534c
test: take a screenshot upon failure example (#3556) 2020-08-20 17:45:10 -07:00
Yury Semikhatsky
071931ebb1
feat(firefox): bump to 1166 (#3557) 2020-08-20 16:51:17 -07:00
Dmitry Gozman
e2bb6a07cd
fix(click): allow clicking 1x1 sized elements (#3538)
One by one seems like a resonable minimum size for clicking.

It is not surprising to see a 1x1 native accessible control
that is covered by a custom control that handles input instead.
2020-08-20 16:49:19 -07:00
Joel Einbinder
012f9425bf
chore(test-runner): move into its own folder and typescript project (#3548) 2020-08-20 16:04:27 -07:00
Dmitry Gozman
4c5635434a
fix(permissions): browserContext.grantPermissions to respect the origin (#3542)
Due to wrong type usage, we ignored the origin while granting permissions.
Switching to generated types revealed this issue. We should follow up
with switching all dispatchers to the generated types.
2020-08-20 14:19:27 -07:00
Pavel Feldman
db2e66aa76
test: introduce global setup (#3544) 2020-08-20 12:51:05 -07:00
Max Schmitt
e32a496e2e
devops(browser-roll): fix fixture tests (#3547) 2020-08-20 11:10:57 -07:00
Pavel Feldman
86815d70e0
test: convert rename options to parameters, remove options magic (#3543) 2020-08-19 21:32:12 -07:00
Pavel Feldman
30f4c0c9fe
test runner: remove dependencies on playwright (#3539) 2020-08-19 17:47:24 -07:00
Dmitry Gozman
18292325b6
api: add waitForElementState('disabled') (#3537)
Allows waiting for the element to be disabled.
2020-08-19 17:20:10 -07:00
Dmitry Gozman
0a22e2758a
fix(chromium): disable lazy loading iframes (#3535)
These do not play nicely with our "page is loaded when all frames
are loaded" logic.
2020-08-19 15:58:13 -07:00
Max Schmitt
e679b82339
fix(devops): auto roll tests (#3536) 2020-08-19 15:04:52 -07:00
Pavel Feldman
a65b0bba5d
test: merge test options into options (#3531) 2020-08-19 13:30:54 -07:00
Dmitry Gozman
9ac1bbc2a5
chore: remove more paths and url matches from the server side (#3528) 2020-08-19 13:27:58 -07:00
Yury Semikhatsky
83de0071c9
feat(screencast): add start/stop events on context (#3483) 2020-08-19 12:45:31 -07:00
Pavel Feldman
8989d66bda
test: introduce options (#3525) 2020-08-18 23:00:45 -07:00
Joel Einbinder
97157520a6
feat(slowmo): only slowmo once per user action (#3012)
This changes the behavior of slowmo to slow down user actions instead of every protocol command. This makes slowmo a lot more predictable. Without this, there is no way to set slowmo to a good value without incurring a huge delay at the start of your test when it sets things up.
2020-08-18 19:13:40 -07:00
Pavel Feldman
b0667e8bc5
test: fix fit, do not rely upon mocha suite (#3520) 2020-08-18 18:55:26 -07:00
Dmitry Gozman
e7e8524e14
chore: remove screenshot path from the server side (#3519)
Also fixes auto-detection of mime type based on path and adds tests.
2020-08-18 18:46:56 -07:00
Dmitry Gozman
aeadf50165
chore: use HeadersArray instead of Headers object on the server side (#3512)
This simplifies implementation and avoids multiple conversions.
Also adding some tests around lowercase and wrong types.
2020-08-18 15:38:29 -07:00
Pavel Feldman
77cab8bed3
test: introduce test collector (#3515) 2020-08-18 14:12:31 -07:00
Pavel Feldman
510182f0b9
test: use isChromium, etc fixtures for browser name sniffing (#3508) 2020-08-18 12:48:32 -07:00
Joel Einbinder
b2228a660a
fix(test): disable more screenshot tests on headful firefox (#3513) 2020-08-18 11:39:10 -07:00
Darío Kondratiuk
5a964f7f99
tests: fix should get the same headers as the server (#3510)
`server.setRoute` won't return a promise
2020-08-18 09:58:00 -07:00