Commit graph

1223 commits

Author SHA1 Message Date
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
Joel Einbinder ec24516e66
chore(test): remove try/finally pattern from fixtures (#3409) 2020-08-12 17:51:07 -07:00
Dmitry Gozman f4e65f6dca
test: implement spec builder (#3422) 2020-08-12 16:49:55 -07:00
Yury Semikhatsky f0fcdc8f51
test(firefox): make headful screencast tests work under xvfb (#3421) 2020-08-12 16:07:01 -07:00
Dmitry Gozman eb67c86213
test: fix it.fail().slow is not a function (#3420) 2020-08-12 15:22:26 -07:00
Pavel Feldman a4a07c46c3
test: support --grep, --forbid-only (#3417) 2020-08-12 14:57:37 -07:00
Dmitry Gozman a574fa6edb
api: add Frame.page() getter (#3392) 2020-08-12 14:45:36 -07:00
Dmitry Gozman adfeaa49ed
feat(firefox): bump to 1157 (#3395) 2020-08-12 14:45:00 -07:00
Pavel Feldman 962ddc09c4
test: consolidate runner files (#3415) 2020-08-12 13:47:44 -07:00
Pavel Feldman 7e07634cc6
test: use mocha in ci/cd (#3406) 2020-08-12 11:48:30 -07:00
Yury Semikhatsky 16b471fac6
test(screencast): video recording during cros-process navigation (#3396) 2020-08-12 10:18:41 -07:00
Pavel Feldman 4061bc696a
test: make fit run single test (#3394) 2020-08-11 19:44:13 -07:00
Joel Einbinder 6054f14794
chore(tests): convert all tests to typescript (#3384) 2020-08-11 15:50:53 -07:00
Yury Semikhatsky 812d7eefe9
feat(webkit): bump to 1325 (#3388) 2020-08-11 13:59:23 -07:00
Andrey Lushnikov 2db97e3b2d
feat(firefox): migrate to protocol-based proxy implementation (#3362)
This migrates Firefox to the protocol-based proxy implementation.

Benefits:
- supports secure web proxies (already supported by Chromium)
- unlocks support for SOCKS proxies with authentication
2020-08-11 11:36:27 -07:00
Pavel Feldman bfdb59eada
test: make mocha runner work in parallel (#3383) 2020-08-11 10:57:30 -07:00
Dmitry Gozman 9697ad635f
fix(chromium): handle the case when new pending comes before old commit (#3370) 2020-08-11 08:59:00 -07:00
Darío Kondratiuk ff2c2b299f
test: Fix insertText test title (#3386) 2020-08-11 08:43:38 -07:00
Joel Einbinder 77e75b447b
chore(test): move electron tests to typescript (#3379) 2020-08-10 23:04:38 -07:00
Yury Semikhatsky d8d845afcc
feat(screencast): add private recording APIs and basic test (#3296) 2020-08-10 21:22:57 -07:00
Dmitry Gozman 8bb6d73b44
feat(rpc): keep non-rpc linux bots for now (#3381) 2020-08-10 20:49:53 -07:00
Pavel Feldman 823ef86470
test: add support for mocha (#3376) 2020-08-10 20:10:39 -07:00
Joel Einbinder d76166beca
chore(test): require playwright fixtures from userland (#3355)
This patch moves fixtures.js to base.fixtures.ts that sits next to tests. All tests get an extra import to get the base fixtures (both types and implementations).
2020-08-10 16:48:34 -07:00
Dmitry Gozman 3179e71912
feat(rpc): in-process rpc on by default (#3104) 2020-08-10 14:18:58 -07:00
Pavel Feldman 6f09590c9a
test: restore nojest runner (#3359) 2020-08-08 19:43:00 -07:00
Dmitry Gozman 7e2cc77524
test: add a test for newCDPSession rejecting on non-pages (#3353) 2020-08-07 15:40:46 -07:00
Dmitry Gozman 83f5628549
feat(rpc): misc fixes (#3351) 2020-08-07 15:40:21 -07:00
Pavel Feldman f6d321fb6a
test: do not inherit from the Node environment (#3348) 2020-08-07 14:27:04 -07:00
Pavel Feldman b3091deb78
fix(cors): allow routing the cors request with credentials (#3336) 2020-08-07 14:02:41 -07:00
Joel Einbinder eac8aeedaf
chore(types): convert tests to typescript part 3 (#3340) 2020-08-07 11:19:15 -07:00
Yury Semikhatsky 1bcbf19e86
test(video): mark test as failing in WebKit Linux (#3344) 2020-08-07 09:53:34 -07:00
Andrey Lushnikov 411c738026
feat(firefox): roll to r1154 (#3333)
This roll includes firefox upstream roll. A few tests were hard on me,
so they are currently disabled:

- `should work with subframes return 204`
- `should work when subframe issues window.stop()`

Additionally, new firefox changes cookie treatment that affected a
portion of our cookie tests.

References #3215
2020-08-06 17:16:52 -07:00
Joel Einbinder 83ac3f43f3
chore(test): convert some more tests to typescript (#3329) 2020-08-06 14:12:14 -07:00
Pavel Feldman 4b3fb6dcca
chore(test): convert tests to typescript (1) (#3307) 2020-08-06 08:27:00 -07:00
Pavel Feldman 5c0b88fb10
feat(test): add dot report for aslushnikov (#3317) 2020-08-05 21:18:20 -07:00
Pavel Feldman 0a5d340e8e
test: print failed tests upon interrupt (#3316) 2020-08-05 17:31:13 -07:00
Yury Semikhatsky 5f7b5469b9
test: overridden timezone does not change default in another context (#3313) 2020-08-05 16:31:43 -07:00
Yury Semikhatsky aa2ec09e97
test: default and overriden locale isolation between contexts (#3308) 2020-08-05 13:43:38 -07:00
Pavel Feldman 9280037d0f
chore(test): add blank lines (#3303) 2020-08-05 11:43:40 -07:00
Yury Semikhatsky 9ec026730f
chore(test): use pathToFileURL (#3292) 2020-08-04 17:26:42 -07:00
Pavel Feldman 57490b74c6
test: remove describes (6) (#3295) 2020-08-04 16:32:10 -07:00
Pavel Feldman 4cbfa09c2c
test: remove describes (5) (#3294) 2020-08-04 15:57:25 -07:00
Pavel Feldman 2e65b0afff
test: remove describes (4) (#3286) 2020-08-04 15:09:24 -07:00
Pavel Feldman 573f580fa8
test: remove describes (3) (#3278) 2020-08-03 16:30:37 -07:00
Yury Semikhatsky de55fa6482
fix(webkit): ensure WebKit can play h264 video (#3272) 2020-08-03 16:06:57 -07:00
Pavel Feldman bb267356fd
test: remove describes (2) (#3276) 2020-08-03 15:23:53 -07:00
Pavel Feldman 5c4f06703d
test: remove describes (#3274) 2020-08-03 13:41:48 -07:00
Dmitry Gozman 3edfb2a9d8
test: add REPORT_ONLY mode for test collection (#3225) 2020-07-31 11:02:11 -07:00
Ross Wollman ce0ddd270b
feat(download): create directories for saveAs (#3249)
This is to match the behavior for screenshots path added in #3247.
2020-07-30 23:21:03 -07:00
Dmitry Gozman 21eafbcdae
test: unflake screenshot test (#3245) 2020-07-30 16:49:58 -07:00
Dmitry Gozman 2f95b6e34e
feat(selectors): auto-detect xpath starting with ".." (#3239) 2020-07-30 16:21:48 -07:00
Joel Einbinder 08916781a8
fix(test): display correct error when golden files mismatch (#3234) 2020-07-30 11:20:48 -07:00
Dmitry Gozman cefb1b9727
feat(rpc): run fixtures.jest.js with channel (#3227)
Also, introduce setupInProcess wrapper to be used for in-process rpc.
2020-07-30 10:22:28 -07:00
Ross Wollman 7dd9f2c290
test(iframes): add x-frame-options display test (#3217)
Firefox is marked as failing since Playwright's build of Firefox happily
displays the iframe while the consumer build of Firefox refuses display
of the iframe.
2020-07-29 16:49:02 -07:00
Dmitry Gozman 9132d23b2b
fix(screenshot): wait for stable position before taking element screenshot (#3216)
Same goes for scrollIntoViewIfNeeded.
2020-07-29 16:36:02 -07:00
Dmitry Gozman 10225d1983
test: fix a race in the oopif test (#3211) 2020-07-29 14:42:28 -07:00
Dmitry Gozman 84a17f27eb
fix(rpc): Frame.dblclick is missing notWaitAfter (#3210) 2020-07-29 11:45:19 -07:00
Max Schmitt 21b1be7351
docs(selectors): fixed selector register example (#3169) 2020-07-29 10:37:57 -07:00
Yury Semikhatsky a700a7a9a8
feat(chromium): roll to 07/29 (#3207) 2020-07-29 09:57:02 -07:00
Dmitry Gozman bdfde5cd5c
fix(firefox): roll firefox for postdata fix (#3196) 2020-07-28 18:47:25 -07:00
Dmitry Gozman fab5eba64f
fix(oopifs): translate coordinates to viewport (#3201)
Renderer-based method DOM.getContentQuads and DOM.getBoxModel return
coordinates relative to the local root's viewport, but we need them relative
to the root viewport.
2020-07-28 15:52:33 -07:00
Dmitry Gozman a59220b06d
test: prepare fixtures test to run with rpc (#3190) 2020-07-27 18:40:21 -07:00
Yury Semikhatsky 576e2c5287
fix(webkit): correctly report outerWidth/Height on Mac (#3133) 2020-07-27 16:06:50 -07:00
Yury Semikhatsky 101dd3b120
fix(test): make video test pass on Mac (#3121) 2020-07-27 13:56:43 -07:00
Dmitry Gozman 97c10002e7
api: introduce Browser.version() (#3177) 2020-07-27 13:41:35 -07:00
Dmitry Gozman b2179193c6
feat(rpc): replace implicit scopes with explicit dispose (#3173)
This adds one more protocol message __dispose__
to dispose a scope and all child objects.

Now, client side does not need a notion of scope anymore -
it just disposes the whole object subtree upon __dispose__.
Server, on the other hand, marks some objects as scopes
and disposes them manually, also asserting that all parents
are proper scopes.
2020-07-27 10:21:39 -07:00
Darío Kondratiuk d0b758a8d2
test: improve autowaiting tests (#3168) 2020-07-25 23:58:03 -07:00
Dmitry Gozman 98cc9db8e8
chore: simplify doclint (#3162)
This renames CRBrowserContext events into ChromiumBrowserContext and
simplifies some doclint/coverage logic.
2020-07-24 20:40:21 -07:00
Joel Einbinder 1455cae974
test(emulation): add failing test for setting dark theme in firefox (#3149) 2020-07-24 14:47:32 -07:00
Pavel Feldman e7cca86757
fix(postData): allow overriding binary post data (#3120) 2020-07-24 12:16:45 -07:00
Dmitry Gozman deccddba24
feat(rpc): update BrowserServer (#3112)
- Make BrowserServer a scope.
- Plumb exitCode and signal to BrowserServer.on('close').
- Use toImpl in a test.
2020-07-24 10:17:07 -07:00
Dmitry Gozman 0f0e2acfaf
fix(type): unify selection behavior when typing (#3141)
Before typing/pressing, we focus the target element. WebKit
sometimes selects the value in this case. To unify the behavior
between the browsers we behave similar to human:
- when the input is already focused, we just type;
- when the input is not focused, we focus it, move caret
  to the start (like if user clicked at the start to focus the input)
  and then type.
Note this only affects inputs with non-empty value.
2020-07-24 09:30:31 -07:00
Joel Einbinder 059004b179
fix(test): don't leave so many zombies on sigint (#3130) 2020-07-23 16:47:43 -07:00
Joel Einbinder d2f24e8888
integrate toBeGolden with jest's snapshot system (#3124) 2020-07-23 14:19:51 -07:00
Yury Semikhatsky e5afd92762
chore(tests): resuse tmp file helpers from utils (#3119) 2020-07-23 12:42:39 -07:00
Dmitry Gozman 2bed312911
fix(electron): emit close events in the correct order (#3111) 2020-07-23 11:02:43 -07:00
Dmitry Gozman 30e21e0bee
test: fix api coverage (#3114)
Coverage for browser-specific events was missing.
2020-07-23 10:30:47 -07:00
Dmitry Gozman 244ce45799
test: add a test for mouse.dblclick (#3115)
We never call it the tests, but coverage does not catch it.
2020-07-23 10:30:35 -07:00
Dmitry Gozman b1a5a02154
feat(rpc): client-side parameters validation (#3069) 2020-07-22 18:05:07 -07:00
Pavel Feldman e56e148597
test(postData): add a failing firefox test (#3098) 2020-07-22 17:27:05 -07:00
Pavel Feldman 80c0711d98
feat(firefox): roll firefox to r1137 (#3095) 2020-07-22 15:59:37 -07:00
Pavel Feldman baa0956915
Revert "test: screenshot on failure (#3053)" (#3091)
It should be opt-in and configurable. The folder we collect information
into should be consistent with the rest of the artifacts we collect.
Lets revisit it later.
2020-07-22 15:00:37 -07:00
Ross Wollman d8a17fb0ab
api(download): Add saveAs helper (#2872) 2020-07-22 14:55:27 -07:00
Dmitry Gozman 1aee8dfc7c
feat(rpc): align types/guids in the protocol with their pdl definition (#3079)
This makes the protocol self-explanatory, and avoids silly conversions
in codegenerators, e.g. cdpSession <-> CDPSession.
2020-07-22 10:37:21 -07:00
Joel Einbinder 773ee08e9d
chore(test): restore api coverage checks (#3068)
* chore(test): restore api coverage checks

* try to catch the correct error on the bots

* try to trick github into taking the new code

* uninstall coverage

* dgozman comments
2020-07-22 09:08:10 -07:00
Pavel Feldman 2b0b0a9119
fix(misc): assorted fixes (#3031) 2020-07-21 23:48:21 -07:00
Dmitry Gozman ced0bc2d1b
api: make clear the use of null in page.emulateMedia (#3078)
We can pass null to disable emulating particular feature.
This change updates the docs and rpc protocol accordingly.
2020-07-21 18:56:41 -07:00
Joel Einbinder f4b7ed5542
fix(chromium): reland support selectAll on macos (#3038)
Co-authored-by: Joel Einbinder <joel.einbinde@gmail.com>
2020-07-21 16:33:46 -07:00
Dmitry Gozman 1553f19bab
chore: update error messages to match future rpc validator (#3075) 2020-07-21 15:25:31 -07:00
Pavel Feldman 99658c2d32
feat(bringToFront): enable on all browsers (#3052) 2020-07-21 09:36:54 -07:00
Joel Einbinder a03f1dd156
test: screenshot on failure (#3053) 2020-07-21 09:32:13 -07:00
Joel Einbinder 23f506b3e6
fix(test): write after end in proxy test (#3039) 2020-07-20 13:31:24 -07:00
Dmitry Gozman cfe3aa3d94
test: add a few tests for null values (#3035) 2020-07-20 09:39:16 -07:00
Dmitry Gozman 29504c0824
feat(rpc): make SerializedValue format pdl-friendly (#3007)
This avoids sum types and instead uses different fields
for different types.
2020-07-19 19:46:19 -07:00
Pavel Feldman b5f9985d3a
devops: make headful a matrix, collect test results (#3027) 2020-07-18 10:50:58 -07:00
Dmitry Gozman 13c3f7243c
test: restart worker fixtures after test failure (#3021)
This way previous test that leaves browser in a bad state does not
affect future tests.
2020-07-17 19:54:37 -07:00
Pavel Feldman c45b5797fa
test: support slow marker (#3018) 2020-07-17 17:17:06 -07:00
Pavel Feldman 68ef90d258
test(click): split into several files (#3016) 2020-07-17 16:33:57 -07:00
Pavel Feldman f2239b5bda
test: respect CR/FF/WK/PATH env (#3015) 2020-07-17 16:33:22 -07:00
Dmitry Gozman 91e1a25f34
feat(rpc): gracefully close browsers in server process on disconnect (#3005) 2020-07-17 16:14:23 -07:00
Pavel Feldman 9d9801192e
test: wire test commands to jest (#3014) 2020-07-17 16:09:27 -07:00
Joel Einbinder 8904f401c2
chore(jest): defaultbrowsercontext.jest.js (#3003) 2020-07-17 16:07:31 -07:00
Pavel Feldman a8216339d8
Revert "fix(chromium): select all on macos should work again (#3006)" (#3011) 2020-07-17 14:34:05 -07:00
Pavel Feldman 096ec4c44f
test: move fixtures to jest (#3010) 2020-07-17 13:53:23 -07:00
Pavel Feldman 24f6d19e27
test: move remaining tests to jest (#3009) 2020-07-17 13:02:50 -07:00
Joel Einbinder 631fbce7ff
fix(chromium): select all on macos should work again (#3006)
* fix(chromium): select all on macos should work again

* Update src/chromium/crInput.ts

Co-authored-by: Joel Einbinder <joel.einbinde@gmail.com>
2020-07-17 10:59:48 -07:00
Joel Einbinder 9140063c90
fix(accessibility): don't filter everything when the page has a title (#2909) 2020-07-17 10:48:50 -07:00
Dmitry Gozman d8bedd851d
chore: explicitly type SerializedArgument, fix rpc dispatchEvent (#2988)
We now have types for SerializedValue/SerializedArgument. This will
allow us to avoid double parse/serialize for evaluation arguments/results.

Drive-by: typing exposed a bug in ElementHandle.dispatchEvent().
2020-07-17 09:53:13 -07:00
Pavel Feldman 070a257600
test: move all generic page tests to jest (#3002) 2020-07-17 09:49:12 -07:00
Joel Einbinder df8b27069e
chore(jest): convert browser tests to jest (#3000) 2020-07-17 08:22:39 -07:00
Pavel Feldman 1c0504ae28
test: respect fixtures in describe, match image snapshots (#2989) 2020-07-16 22:38:52 -07:00
Darío Kondratiuk fe95ee00c3
test: group browserType.launchServer tests (#2944) 2020-07-16 20:33:40 -07:00
Pavel Feldman 424f11d165
test: convert some tests to the jest+fixtures (#2983) 2020-07-16 16:59:45 -07:00
Dmitry Gozman 056f0e290d
feat(rpc): ensure that error stack traces point to the user code (#2961)
This also adds more "_wrapApiCall" calls for correct logs and stack traces.
2020-07-16 14:32:21 -07:00
Dmitry Gozman 4c8ba3ed67
chore: remove cli (#2976)
It will be a separate package instead.
2020-07-16 13:13:26 -07:00
Dmitry Gozman 513899a3b9
test: add a test for arbitrary options (#2977)
We should be able to accept unexpected properties in options objects.
2020-07-16 12:21:36 -07:00
Pavel Feldman ecc130c644
test: convert evaluation.spec to jest+fixtures (#2968) 2020-07-16 11:18:38 -07:00
Dmitry Gozman 198ecee875
api(exposeBinding): allow handles in the binding result (#2970) 2020-07-15 20:05:11 -07:00
Dmitry Gozman aa4c893b09
feat(rpc): implement waitForNavigation on the client (#2949)
Drive-by: fix electron issues, exposed by the test using
waitForNavigation.

Drive-by: mark some tests skip(CHANNEL) that were mistakenly
marked skip(USES_HOOKS).
2020-07-15 18:48:19 -07:00
Pavel Feldman 19cd96c46a
test: add the jest-circus experimental runner (#2962) 2020-07-15 16:52:41 -07:00
Dmitry Gozman c51ea0afd1
feat(rpc): remove PageAttribution from the protocol, attribute on the client side (#2957)
This also changes timeout error format to
"page.click: Timeout 5000ms exceeded", so that all errors
can be similarly prefixed with api name.

We can now have different api names in different clients,
and our protocol is more reasonable.
2020-07-15 14:04:39 -07:00
Dmitry Gozman 4a00e5c4ea
test: remove flaky test for binding on error pages (#2952)
I wasn't able to make it consistently pass...
2020-07-14 21:20:14 -07:00
Dmitry Gozman 2d5c0328cd
feat(rpc): return objects for every protocol command (#2950)
For future extensibility, returning objects with fields instead
of plain strings or channels.
2020-07-14 18:26:50 -07:00
Dmitry Gozman 1b84ec9023
fix(binding): dispatch binding after the page has been initialized (#2938)
... but not after it was closed.
2020-07-14 13:34:49 -07:00
Pavel Feldman d5bd459986
chore(rpc): remove some paths from the channel (#2934) 2020-07-14 10:51:37 -07:00
Dmitry Gozman cc8fe5a763
feat(rpc): support electron (#2933) 2020-07-13 21:46:59 -07:00
Dmitry Gozman 9fdb3e23c3
feat(rpc): support selectors (#2936) 2020-07-13 17:47:15 -07:00
Dmitry Gozman 65d45c18c3
feat(rpc): introduce Waiter for various waitFor implementations (#2935)
Use it for waitForEvent and waitForLoadState.
2020-07-13 16:03:24 -07:00
Dmitry Gozman 9fd30e58e2
feat(rpc): ensure feature-detection works as before (#2898)
For this, some tests are migrated from skip() to feature detection,
like our users would do.
2020-07-13 15:26:09 -07:00
Dmitry Gozman 2151757621
feat(rpc): run rpc tests in-process and out-of-process (#2929) 2020-07-13 15:00:20 -07:00
Dmitry Gozman 6d94c92053
feat(rpc): support no-serialization mode, run hook tests (#2925)
Added rpc_json_linux bots to excercise serialization - these
do not run hook tests.
2020-07-13 08:31:20 -07:00
Dmitry Gozman 6674458496
feat(rpc): log api calls into LoggerSink (#2904) 2020-07-10 18:00:10 -07:00
Dmitry Gozman fc6861410b
feat(rpc): merge DispatcherScope and Dispatcher (#2918) 2020-07-10 16:24:11 -07:00
Pavel Feldman ebb4c3320f
test: mark 2 chromium not important win tests as failed (#2914) 2020-07-10 16:15:12 -07:00
Andrey Lushnikov a403d4beff
fix(firefox): fix launching firefox without dependencies (#2900)
We always have to reject promises with some error. Otherwise,
our error-rewriting logic in try-catch miserably fails.

With this patch, attempt to launch Firefox when it's missing
dependencies will actually result in a thrown exception with
pretty logs. Without this patch, Playwright throws internal error.
2020-07-10 16:04:19 -07:00
Pavel Feldman 631f76df75
chore(rpc): remove union types from page and handles (#2912) 2020-07-10 15:39:11 -07:00
Dmitry Gozman b6fd4dc56c
feat(rpc): merge ChannelOwner and ConnectionScope (#2911) 2020-07-10 15:11:47 -07:00
Dmitry Gozman 54f9a0dd7b
test: update headfull chromium expectations after a recent roll (#2908) 2020-07-10 14:26:49 -07:00
Pavel Feldman d561465214
devops: use matrix in GHA, add non-linux rpc (#2907) 2020-07-10 13:15:57 -07:00
Pavel Feldman c89c30e333
fix(popup): do not report frameless pages (#2910) 2020-07-10 13:15:39 -07:00
Dmitry Gozman a91ec9a15d
feat(rpc): pass more tests (#2896)
Includes coverage, tracing and misc close() tests.
2020-07-09 15:33:01 -07:00
Dmitry Gozman 7039409397
test: skip devtools test with USES_HOOKS (#2895) 2020-07-09 13:45:28 -07:00
Joel Einbinder e90ba26250
fix(context): fire close event for persistent contexts (#2891) 2020-07-09 08:34:07 -07:00
Dmitry Gozman 8fe29feb21
feat(rpc): support more chromium-specific apis (#2883)
This includes page CDPSession, backgroundPages() and serviceWorkers().

This has also revealed an issue with closing order between the context
and the service worker.
2020-07-08 21:36:03 -07:00
Pavel Feldman b3ca4afd40
chore: misc test fixes (#2857) 2020-07-08 18:42:31 -07:00
Pavel Feldman 6209d14f87
chore: misc test fixes (#2888) 2020-07-08 18:42:04 -07:00
Andrey Lushnikov c3ac0371e6
test: add test to validate user-agent sanity (#2887) 2020-07-08 17:45:45 -07:00
Andrey Lushnikov 458aaa508f
feat(chromium): roll Chromium to r786218 (#2879)
This roll includes:
- https://crrev.com/786119 - mac: close context menu when destroying RenderViewContextMenuMacCocoa

Fixes #2700
2020-07-08 17:09:42 -07:00
Joel Einbinder 040c6a6a41
chore(jest): run tests with jest (#2754)
Experimentally run `npx jest` to run our tests with jest.
2020-07-08 11:13:18 -07:00
Joel Einbinder 8611ee8df7
chore(testrunner): typescript test files (#2751)
This lets our spec files be .ts instead of just .js. The typescript files will be checked against the public types. Tests are compiled with babel just in time before running them, emulating the jest experience. TypeScript tests are also linted with eslint.

I converted keyboard.spec.js as the first demo. I'll follow up converting some more more tests.
2020-07-08 00:20:36 -07:00
Dmitry Gozman 0c80c22716
feat(rpc): plumb CDPSession (#2862) 2020-07-07 18:47:00 -07:00
Dmitry Gozman 2a86ead0ac
chore: replace FrameTask with internal events on Frame (#2856)
We now use a few helper.waitForEvent calls to wait for internal
events kNavigationEvent and kLifecycleEvent. With these events,
we should be able to replicate logic over rpc.
2020-07-07 15:22:05 -07:00
Dmitry Gozman 35cb20d5ad
test: unflake recorder tests (#2808)
We ensure that recorder is installed in the main frame before running the test.
2020-07-07 14:11:59 -07:00