Commit graph

1475 commits

Author SHA1 Message Date
Dmitry Gozman 78b151138e
test: try to unflake screenshot tests (#4334) 2020-11-04 07:39:08 -08:00
Dmitry Gozman 5c1149f954
test: try to unflake network idle tests (#4333)
I think that we are too slow to fire the second fetch during 500ms,
and so network idle happens prematurely.

The fix is to manually trigger the second fetch early enough.
2020-11-04 07:35:19 -08:00
Dmitry Gozman d57b43963c
fix(har): support har in persistent context (#4322) 2020-11-03 11:30:59 -08:00
Dmitry Gozman 924cc9894a
feat(text selector): normalize spaces in lax mode (#4312) 2020-11-03 04:37:06 -08:00
Andrey Lushnikov 8fed0b3319
feat(firefox): roll Firefox to r1200 (#4316)
This roll includes:
- fix for the firefox flakiness related to popups
- fix for browser context closing with beforeunload events

References #4021
2020-11-02 21:00:37 -08:00
Dmitry Gozman 1c39689dd6
api(videos): introduce a single recordVideo option bag (#4309)
api(videos): introduce a single recordVideo option bag

Currently contains `dir` and `size`, previously known as
`videosPath` and `videoSize`.
2020-11-02 19:42:05 -08:00
Andrey Lushnikov 3d3ce135f5
test: co-locate beforeunload tests (#4313)
This patch:
- co-locates beforeunload tests
- adds new tests to make sure browser and browsercontext can be closed if there's
  a page with beforeunload listener
- re-writes the `should access page after beforeunload` test to properly
  emit `beforeunload` event

References #4021
2020-11-02 17:29:35 -08:00
Dmitry Gozman f80f81545e
feat(chromium): bump to 823078 (#4308) 2020-11-02 14:34:08 -08:00
Pavel Feldman ac8ab1e1b5
feat(websocket): add WebSocket.waitForEvent and isClosed (#4301) 2020-11-02 14:09:58 -08:00
Dmitry Gozman c446bf629d
chore: cleanup some har code (#4306)
Drive-by: do not create <root>/file.png in the tests.
2020-11-02 13:38:55 -08:00
Pavel Feldman d117d0bb93
feat(scopes): make page a scope (#4300) 2020-11-02 13:06:54 -08:00
Dmitry Gozman 9c80cbdf9e
fix(docs): small docs changes for new apis (#4305) 2020-11-02 12:48:05 -08:00
Pavel 5a9ba55ee2 test: remove stale describe 2020-10-30 13:38:54 -07:00
Pavel c9fa8c08e3 fix(test): unflake web socket test on firefox 2020-10-30 12:45:53 -07:00
Andrey Lushnikov 7fbbd1822e
feat(firefox): support WebSockets on Firefox (#4289) 2020-10-30 10:34:24 -07:00
Pavel Feldman 914f6372ec
feat(proxy): enable per-context http proxy (#4280) 2020-10-29 16:12:30 -07:00
Pavel Feldman aee9068d76
test: mark flake headful chromium test as fixme (#4276) 2020-10-28 16:00:41 -07:00
Pavel Feldman f384a864a8
test(har): uncomment some raw header tests (#4273) 2020-10-28 15:58:45 -07:00
Pavel Feldman 7bedbb2d78
feat(browser): roll WebKit to r1370 (#4257) 2020-10-28 13:46:05 -07:00
Pavel Feldman 0b8c33ee75
fix(ECONRESET): fix it once and for all (#4258) 2020-10-27 11:09:41 -07:00
Max Schmitt dcbdb4a6b0
test: fixed executable path test if ran in Docker (#4219) 2020-10-27 00:04:39 -07:00
Pavel Feldman 1ef090c3ac
fix(screenshot): prioritize passed type over the extension mime (#4251) 2020-10-27 00:02:35 -07:00
Pavel Feldman be8428475d
feat(websocket): implement Web Sockets for Chromium & WebKit (#4234) 2020-10-26 22:20:43 -07:00
Pavel Feldman 7fc4b797eb
feat(har): allow saving har for context (#4214) 2020-10-26 14:32:07 -07:00
Pavel Feldman ba7949359f
chore: roll folio to 0.3.13 (#4215) 2020-10-23 12:39:46 -07:00
Pavel Feldman 14f069eac6
test(timing): relax mac/webkit expectations (#4217) 2020-10-23 12:38:32 -07:00
Pavel Feldman b3b46db560
test(firefox): add a failing slow test (#4216) 2020-10-23 12:37:38 -07:00
Yury Semikhatsky 50a6ba7fdc
feat: bump webkit version to include screencast fixes (#4200) 2020-10-23 10:33:58 -07:00
Pavel Feldman 72320275ab
fix(headers): report raw request headers on Chromium (#4207) 2020-10-22 08:49:16 -07:00
Pavel Feldman 8a42cdad30
feat(timing): introduce resource timing (#4204) 2020-10-21 23:25:57 -07:00
Andrey Lushnikov 7d28dfdb59
feat(firefox): roll Firefox to r1194 (#4183) 2020-10-20 16:51:14 -07:00
Max Schmitt 45bb984cf0
test: skip 'should play video' on macOS Big Sur (#4198) 2020-10-20 16:48:00 -07:00
Pavel Feldman 3cceb14e29
test(beforeunload): add failing beforeunload test (#4188) 2020-10-20 08:55:01 -07:00
Pavel Feldman 7433ae2798
test: follow up to an encoding test (#4187) 2020-10-20 08:47:07 -07:00
Pavel Feldman 7f76d44f77
test: add a test for page.close w/ dialogs (#4184) 2020-10-19 21:06:06 -07:00
Pavel Feldman 5e7eb7a325
test(encoding): add a test for main resource raw body (#4186) 2020-10-19 20:40:21 -07:00
Pavel Feldman efac743695
test(proxy): add a test for a second page against same proxy (#4185) 2020-10-19 18:35:37 -07:00
Yury Semikhatsky 9c160f2cc8
feat(webkit): bump to 1363 (#4178) 2020-10-19 17:40:25 -07:00
Pavel Feldman 5d997ed28b
fix(video): make video path available in persistent profiles (#4182) 2020-10-19 14:35:18 -07:00
Joel Einbinder 92dda698f8
feat: tap (#4097) 2020-10-19 10:07:33 -07:00
Joel Einbinder 86ef956b4b
feat(webkit): bump to 1357 (#4154) 2020-10-19 03:03:50 -07:00
Pavel Feldman ef3d3ca58e
doc(overrides): remove "one of" that was misleading (#4168) 2020-10-18 23:03:07 -07:00
Yury Semikhatsky fec37adf68
test: use custom header when testing header removal (#4157) 2020-10-15 10:31:07 -07:00
Joel Einbinder 7e6f2af666
test: disable failing test "should be able to remove headers" (#4152) 2020-10-15 08:52:23 -07:00
Yury Semikhatsky 180aa011d0
test: make "remove header" test actually test be havior (#4092) 2020-10-14 22:26:56 -07:00
Pavel Feldman e9f5477d52
fix(screencast): await for the first video frame on Chromium (#4145) 2020-10-14 15:09:36 -07:00
Yury Semikhatsky bb981fc0cc
fix(screencast): correctly process videos with 1 frame (#4144) 2020-10-14 14:10:35 -07:00
Pavel Feldman 381f49a0b8
chore: roll folio to 0.3.11 (#4130) 2020-10-13 22:40:25 -07:00
Pavel Feldman 5a7685665a
api(video): restore the missing video path accessor (#4132) 2020-10-13 22:15:51 -07:00
Pavel Feldman 9daedaca08
chore: roll test fixtures, replace trace w/ video (#4129) 2020-10-13 13:18:36 -07:00
Pavel Feldman 5804131c99
chore: bump folio to 0.3.9, use fixture timeout (#4118) 2020-10-13 12:17:23 -07:00
Arjun Attam 8ad340479d
fix(test): update path for screenshots on failure (#4120) 2020-10-12 21:51:17 -07:00
Pavel Feldman 3350db2d1d
chore: nit test fixes (#4114) 2020-10-12 14:27:12 -07:00
Pavel Feldman c2adc98cb0
chore: roll folio to 0.3.8 (#4113) 2020-10-12 13:48:56 -07:00
Dmitry Gozman 46b14bc740
chore: roll folio to 0.3.6 (#4110) 2020-10-12 09:16:02 -07:00
Dmitry Gozman 80ed407033
test: add a failing test for the issue 4038 (#4111)
Chromium corrupts screenshots taller than 8192.
2020-10-10 21:50:37 -07:00
Pavel Feldman 1fe3c783b4
test: roll test runner 0.9.22 (#4072) 2020-10-06 15:51:18 -07:00
Dmitry Gozman e403fd3912
test: update fixtures to new syntax (#4063)
- Some simplifications around defineParameter.
- overrideTestFixtures must be chained as well.
2020-10-05 21:40:56 -07:00
Pavel Feldman 0db09f8ed4
test: roll test runner to 0.9.20 (#4062) 2020-10-05 17:03:24 -07:00
Dmitry Gozman d31cbc21e5
fix(video): wait for videos when closing persistent context (#4040)
To achieve this, we close all the pages one by one, then wait
for the videos to finish processing, and then close the browser.
2020-10-04 18:18:05 -07:00
Dmitry Gozman e214f795e0
feat(video): support videos in remote browser (#4042) 2020-10-02 17:27:56 -07:00
Pavel Feldman 1f16ce2632
test: remove failing expectations from a passing test (#4036) 2020-10-02 11:01:04 -07:00
Dmitry Gozman 5e42029fce
api: allow exposeBinding to pass handles (#4030)
This adds an option `{ handle: true }` to pass a single handle instead of arbitrary json values.
2020-10-01 22:47:31 -07:00
Tom Jenkinson c2171218fa
test: add a test for request interception with redirects (#3994) 2020-10-01 19:55:39 -07:00
Pavel Feldman 81c1daed73
test: roll test runner 0.9.17 (#4035) 2020-10-01 13:32:52 -07:00
Dmitry Gozman 4a77363af7
api: update videos api, hide tracing (#4015) 2020-10-01 11:06:19 -07:00
Dmitry Gozman 920cc7c886
test: run crash tests with chromium wire (#4026) 2020-10-01 05:30:27 -07:00
Dmitry Gozman f885d07cb9
fix(close): fix a race during context.close and page.close (#4018)
There is a race between "close" event coming from the server and
"close" command issued from the client.

This is similar to calling close after disconnect, so added tests.
2020-09-30 21:17:30 -07:00
Andrey Lushnikov b9dcfb9909
test: minor fixes (#4024)
- missing await
- missing `defaultBrowserOptions` that's important to respect `FFPATH` (and other custom browsers)
2020-09-30 17:23:13 -07:00
Dmitry Gozman 13d48da84a
test: record trace/videos on retries (#4009) 2020-09-30 16:52:21 -07:00
Dmitry Gozman ab2714ed29
test: unflake click-timeout-4 (#4012)
We used to animate for 5 seconds, and also timeout after 5 seconds.
Presumably, this made the click work sometimes due to different timeout
schedulers in node vs browser.
2020-09-30 04:42:08 -07:00
Dmitry Gozman ccc827cd87
test: add a test for screen.avail{Width,Height} emulation (#4011)
This currently does not work in WebKit.
2020-09-30 04:14:29 -07:00
Andrey Lushnikov a20c0e0adb
roll(firefox): roll Firefox to r1174 (#4005)
The r1174 starts using cross-process frameIds. This
simplifies Juggler a lot, but regresses a rare usecase:
network requests from workers from subframes are attributed
to main frame.

This adds a test to annotate this regression. Note that this
doesn't also work in Chromium.

References #3995
2020-09-29 21:07:25 -07:00
Pavel Feldman d658b687ca
chore: refactor screencast tests (#4007) 2020-09-29 18:52:30 -07:00
Pavel Feldman 6dccd2735a
fix(wire): fix the wire mode (#4008) 2020-09-29 18:00:56 -07:00
Pavel Feldman c30b894f27
chore: add missing image test expectation (#4004) 2020-09-29 13:47:57 -07:00
Pavel Feldman de1e63dff1
test: roll test runner 0.9.16 (#3998) 2020-09-29 11:51:00 -07:00
Dmitry Gozman b3497b333e
fix(actions): wait for some time before retrying the action (#4001)
This saves some CPU cycles while waiting for the page to
change the state, e.g. for animations to complete.

Note that retrying logic is only applicable in rare
circumstances like unexpected scroll in the middle of an
action, or some overlay blocking the click. Usually,
action times out in this cases while retrying.
2020-09-29 10:28:19 -07:00
Pavel Feldman 109688a066
chore: split playwright.fixtures into files (6) (#3988) 2020-09-26 16:05:58 -07:00
Pavel Feldman 423485e0a4
chore: split playwright.fixtures into files (5) (#3986) 2020-09-26 14:16:22 -07:00
Pavel Feldman 0ee9050f1b
chore: split playwright.fixtures into files (4) (#3985) 2020-09-26 10:59:27 -07:00
Pavel Feldman cef27d620b
chore: split playwright.fixtures into files (3) (#3984) 2020-09-25 23:30:46 -07:00
Pavel Feldman 76be9540d1
chore: split playwright.fixtures into files (2) (#3983) 2020-09-25 21:43:52 -07:00
Pavel Feldman 5b9f489e55
chore: split playwright.fixtures into files (#3982) 2020-09-25 19:27:09 -07:00
Pavel Feldman 970b011cba
chore: roll @playwright/test to 0.9.6 (#3977) 2020-09-25 12:52:06 -07:00
Pavel Feldman 49bcf6efce
chore: roll test runner to 0.9.1 (#3972) 2020-09-24 13:04:09 -07:00
Pavel Feldman a42cd4b9aa
test: mark screencast tests as flaky until ffmpeg migation (#3968) 2020-09-24 10:45:20 -07:00
Dmitry Gozman fe41bbd303
test: enable videos on tracing bots (#3930) 2020-09-24 04:38:01 -07:00
Pavel Feldman 4aaf3b7596
test: roll test runner to 0.3.20 (#3963) 2020-09-23 14:52:06 -07:00
Yury Semikhatsky 1d21c1e4bd
feat(webkit): bump to 1347 (#3955) 2020-09-22 16:38:05 -07:00
Pavel Feldman 2d1cabdd3f
test: roll test runner to 0.3.18 (#3949) 2020-09-22 12:52:39 -07:00
Pavel Feldman 0e76316f82
fix(close): fix the browser.close race (#3956) 2020-09-22 12:50:39 -07:00
Joel Einbinder 75edc61531
feat(emulation): emulate a mouse pointer in headless chrome (#3922) 2020-09-21 08:20:05 -07:00
Pavel Feldman c2d9af8618
test: roll test runner to 0.3.17 (#3927) 2020-09-20 17:43:17 -07:00
Dmitry Gozman df777344a3
api(video): simplify video api (#3924)
- This leaves just `recordVideos` and `videoSize` options on the context.
- Videos are saved to `artifactsPath`. We also save their ids to trace.
- `context.close()` waits for the processed videos.
2020-09-18 17:36:43 -07:00
Dmitry Gozman 4e2d75d9f7
test: migrate some helpers to fixtures, use testOutputDir (#3926) 2020-09-18 15:52:14 -07:00
Dmitry Gozman 0ade6af689
api(trace): introduce artifacts options (#3914)
api(trace): introduce artifacts options

This introduces launch({ artifactsPath }) and newContext({ relativeArtifactsPath, recordTrace }) options.
- artifactsPath option controls the directory where all artifacts go. If not passed, artifacts are not collected.
- relativeArtifactsPath can be used to put context-specific artifacts into a subfolder. If not passed, shared artifactsPath is used.
- recordTrace controls trace recording.

We also expose trace types under playwright/types/trace.d.ts.

In the follow up:
- videos will be put into artifactsPath;
- downloads will be put into artifactsPath, or keep using existing downloadsPath when artifactsPath is not specified.
2020-09-18 11:54:00 -07:00
Dmitry Gozman 01a4060665
chore: move action instrumentation per-context (#3908)
This allows tracing to expose plugin-like api.

This also remove Progress -> ActionMetadata dependency, leaving
Progress a low-level utility.
2020-09-17 09:32:54 -07:00
Pavel Feldman 96629304ff
test: make platform a parameter (#3910) 2020-09-16 21:36:36 -07:00
Dmitry Gozman dc06f0a75c
chore: introduce evaluateInUtility private api (#3907)
This is an experimental  client-side api. We'll experiment with it in plugins like tracing.
2020-09-16 16:07:49 -07:00
Pavel Feldman 823a7a517e
test: roll test runner to 0.3.12 (#3895) 2020-09-16 10:04:39 -07:00
Dmitry Gozman 592bae1cea
feat(trace): record goto, setContent, goBack, goForward and reload (#3883) 2020-09-15 09:46:36 -07:00
Max Schmitt 8bc09af458
fix(firefox): imply default ports for proxy (#3850) 2020-09-14 21:22:07 -07:00
Pavel Feldman f758a09d8e
test: roll test runner to 0.3.11 (#3885) 2020-09-14 21:21:40 -07:00
Yury Semikhatsky 459d857bc3
feat(screencast): add saveAs and createReadableStream (#3879) 2020-09-14 18:40:55 -07:00
Yury Semikhatsky 1eb282d139
test(screencast): save video in test-results (#3876) 2020-09-14 15:04:44 -07:00
Dmitry Gozman 0a243c6792
fix(waitTask): remove rerunnable tasks from the context data upon success/failure (#3875) 2020-09-14 14:55:37 -07:00
Dmitry Gozman 7ab0c10d7b
fix(launchServer): do not throw when 'port' option is present (#3877)
We now use 'launch' under the hood, which erroneously throws
when 'port' is present.

Instead, moved validation to the client side where it belongs,
added tests for validation errors.
2020-09-14 14:43:39 -07:00
Dmitry Gozman 01198f8eef
fix($$): use utility context when possible (#3870)
This avoids the typical issue of overridden bulitins,
trading it for performance of one by one node adoptions.
2020-09-14 10:38:14 -07:00
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
Dmitry Gozman 7a77faf194
fix(testrunner): do not override debug.log (#3505)
Otherwise, our DEBUG_FILE is ignored and we dump all DEBUG on the bots.
2020-08-17 21:02:26 -07:00
Joel Einbinder dfa1f103af
feat(screenshot): create directories for screenshot file 2020-08-17 16:53:19 -07:00
Dmitry Gozman 0e9793c452
api: ElementHandle.waitForElementState (#3501)
This method waits for visible, hidden, stable or enabled state,
similar to the actionability checks performed before actions.

This gives a bit more control to the user. Some examples:
- Allows to wait for something to be stable before taking a screenshot.
- Allows to wait for the element to be hidden/detached after a specific action.
2020-08-17 16:22:34 -07:00
Max Schmitt 59e3326fc0
tests: add test for page.focus() in Firefox (#3478) 2020-08-17 16:08:47 -07:00
Dmitry Gozman 1e9c0eb705
chore: remove logger infrastructure from server side (#3487)
We do not implement LoggerSink on the server, so we can
use a simple debugLogger.
2020-08-17 14:12:31 -07:00
Pavel Feldman 3aae8c6be1
test: run tests by ordinals, not ranges (#3497) 2020-08-17 10:33:42 -07:00
Pavel Feldman 262e886940
test: organize golden files under __snapshots__ folder (#3494) 2020-08-16 19:19:52 -07:00
Andrey Lushnikov f983432536
feat(firefox): roll firefox to r1160 (#3468)
Since this is a beta build, cookie tests are restored to the
proper non-lax-by-default behavior.

Fixes #3215
2020-08-15 17:15:21 -07:00
Pavel Feldman c90039586d
test: restart worker upon any test failure (#3492) 2020-08-15 13:40:19 -07:00
Pavel Feldman c44f841f33
test: reverse dumpio into quiet, serialize output (#3491) 2020-08-15 00:19:20 -07:00
Pavel Feldman 73d2dc11d7
test: encapsulate mocha into test runner (#3490) 2020-08-14 22:26:16 -07:00
Max Schmitt 5410c30908
chore(test): fix tests when using browser path overwrites (#3453) 2020-08-14 19:34:42 -07:00
Pavel Feldman 35fbd588c8
test: implement in-process debug mode (#3486) 2020-08-14 19:31:04 -07:00
Dmitry Gozman bc23324878
chore: remove apiName plumbing and some unused methods from server side (#3481)
We append apiName where needed on the client instead.
2020-08-14 18:25:32 -07:00
Dmitry Gozman 244c2f37b6
feat(rpc): make sure filechooser is only intercepted when needed (#3482)
So that user can choose a file manually in headful mode.
2020-08-14 18:24:36 -07:00
Joel Einbinder 0c798f0572
fix(testrunner): properly run tests when the first arg is a file (#3472) 2020-08-14 16:49:49 -07:00
Dmitry Gozman 69e1e713ef
feat(click): provide preview of the element intercepting pointer events (#3449) 2020-08-14 14:48:36 -07:00
Dmitry Gozman 85c93e91a7
api: introduce ElementHandle.waitForSelector (#3452)
This is similar to Frame.waitForSelector, but relative to the handle.
2020-08-14 14:47:24 -07:00
Pavel Feldman a03c761201
test: unconditionally plumb debug to parent process (#3479) 2020-08-14 13:46:43 -07:00
Pavel Feldman d537088af8
test: deliver colorful debug messages, do not pipe stdio (#3477) 2020-08-14 13:42:03 -07:00
Dmitry Gozman dec8fb7890
fix(hover): do not require the element to be enabled before hovering (#3445) 2020-08-14 13:18:32 -07:00
Joel Einbinder c1de95f91f
feat(testrunner): pretty error messages (#3469) 2020-08-14 07:28:35 -07:00
Pavel Feldman 2f5a0a6c07
test: slowly removing testOptions (#3464) 2020-08-14 07:22:54 -07:00
Joel Einbinder 036cd5ca41
feat(testrunner): use ring character for skips (#3454) 2020-08-13 23:58:03 -07:00
Joel Einbinder f45791dd8b
feat(testrunner): support sourcemaps (#3459) 2020-08-13 23:17:46 -07:00
Pavel Feldman ee02702203
test: allow overriding test fixtures, add some test runner tests (#3463) 2020-08-13 22:35:54 -07:00
Pavel Feldman 31fac37780
test: allow overriding the worker fixtures (#3460) 2020-08-13 20:35:26 -07:00
Yury Semikhatsky 737bfa2676
test(screencast): skip test that depends on accelerated compositing (#3458) 2020-08-13 18:01:06 -07:00
Pavel Feldman 6abc352498
test: remove output and golden directory notions (#3456) 2020-08-13 17:32:27 -07:00
Dmitry Gozman 9b52ca8676
chore: remove unused non-rpc code, test options, infra, bots (#3444) 2020-08-13 16:00:23 -07:00
Joel Einbinder 176227549d
feat(testrunner): cache transformed files (#3451)
This makes parsing faster to the point where it is not worth it to report when files are parsed.
2020-08-13 14:35:05 -07:00
Joel Einbinder 84441f8f77
chore(test): run doclint tests with mocha, delete testrunner again (#3447) 2020-08-13 13:57:27 -07:00
Pavel Feldman e2cfb05786
test: print stderr upon test failure (#3448) 2020-08-13 13:32:15 -07:00
Dmitry Gozman 18b2cf5ec7
feat(rpc): use rpc protocol for browserType.connect (#3380) 2020-08-13 13:24:49 -07:00
Pavel Feldman 5498ed10a8
test: introduce --trial-run mode to capture test model (#3436) 2020-08-13 11:48:58 -07:00
Yury Semikhatsky 4bad89fa37
test(screencast): do print actual pixels on failure (#3442) 2020-08-13 10:45:06 -07:00
Yury Semikhatsky 68e6ab888c
test(screencast): test that css animations are recorded (#3427) 2020-08-13 09:12:13 -07:00
Pavel Feldman 4bb2658e74
test: fix create output folder (#3431) 2020-08-12 22:41:40 -07:00
Pavel Feldman 51bd3709ff
Revert "chore(test): run doclint tests with mocha, delete utils/testrunner (#3428)" (#3432) 2020-08-12 22:01:37 -07:00
Joel Einbinder 061ff25741
chore(test): run doclint tests with mocha, delete utils/testrunner (#3428) 2020-08-12 20:02:48 -07:00
Joel Einbinder d3677357b8
feat(testrunner): take the first argument as the test root dir (#3423) 2020-08-12 20:01:13 -07:00