Commit graph

59 commits

Author SHA1 Message Date
Pavel Feldman ecc130c644
test: convert evaluation.spec to jest+fixtures (#2968) 2020-07-16 11:18:38 -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
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 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
Pavel Feldman 5bb018e0e5
chore(rpc): attribute calles to page, ignore USES_HOOKS (#2764) 2020-06-29 18:58:09 -07:00
Dmitry Gozman 1fa9d30992
fix(evaluate): awaitPromise when Promise is overwritten (#2759)
Firefox and WebKit require native promises to provide awaitPromise
functionality. When the Promise is overwritten, all evaluations
in the main world produce wrong Promise, so we wrap with async
function to get a native promise instead.
2020-06-29 16:25:52 -07:00
Dmitry Gozman 064a0a1154
fix(webkit): do not swallow errors when returning by value (#2723)
We currently return undefined whenever we had an error trying
return the evaluation result by error. The most common error
is "execution context destroyed".

This produces very unexpected undefined from methods that do not
ever expect undefined. Instead, we should throw because we were
not able to return the result.
2020-06-26 09:50:57 -07:00
Dmitry Gozman d5c992e1db
chore: unify evaluations across browsers even more (#2459)
This moves all the logic around UtilityScript to javascript.ts.
Also uncovers a bug in WebKit where we cannot returnByValue after navigation.
2020-06-03 17:50:16 -07:00
Pavel Feldman e168fddac8
fix(evaluate): consistently serialize json values (#2377) 2020-05-27 17:19:05 -07:00
Pavel Feldman 5ee6494032
feat(evaluate): return user-readable error from evaluate (#2329) 2020-05-21 16:00:55 -07:00
Pavel Feldman aa0d844c76
chore: introduce utility script for evaluate helpers (#2306) 2020-05-20 15:55:33 -07:00
Yury Semikhatsky 5993a6a0e0
fix: throw from eval methods if >1 argument is passed (#2043) 2020-04-29 18:35:04 -07:00
Yury Semikhatsky 24d51cb2bb
test: delete "Node.constructor.name in utility context" (#1788) 2020-04-14 15:36:11 -07:00
Dmitry Gozman ade9d23c28
test: remove module.export.describe wrapper (#1716) 2020-04-08 15:19:09 -07:00
Dmitry Gozman e0c8fbf1a6
test: put test runner api on global, remove unused parameters (#1684) 2020-04-07 08:10:31 -07:00
Dmitry Gozman aeeac55732
feat(chromium): support oopifs (#1664)
Splits CRPage into CRPage and FrameSession, carefully broadcasting or picking the right session for each operation.
2020-04-06 15:09:43 -07:00
Andrey Lushnikov b24262b46f
feat(browser): roll Firefox to r1059 (#1551)
This fixes flaky user gesture in evaluation.
2020-03-26 01:16:07 -07:00
Andrey Lushnikov ece43aec57
test: mark 100mb evaluate test as slow (#1546) 2020-03-25 22:05:18 -07:00
Yury Semikhatsky 89e123b708
test(firefox): enable CSP tests that use new Function() (#1542) 2020-03-25 17:49:07 -07:00
Dmitry Gozman 60a248ef42
test: add test for Map as eval argument (#1457) 2020-03-20 21:24:34 -07:00
Yury Semikhatsky 34cc358ad3
tests(webkit): reenable should await promise from popup (#1447) 2020-03-20 21:22:48 -07:00
Dmitry Gozman 16c7a5bd5c
api(eval): accept zero or one arguments in all evaluation functions (#1431) 2020-03-20 15:08:17 -07:00
Dmitry Gozman 7c59f9ca9a
fix: do not wait for navigations while evaluating injected source (#1347) 2020-03-11 22:52:03 -07:00
Andrey Lushnikov ac5b518bea
test: mark as flaky according to the new policy (#1322)
Closes #1300, #1303, #1305
2020-03-10 12:56:18 -07:00
Yury Semikhatsky 9bd3711394
fix(context): reliably fire BrowserContext.Close event when browser is closing (#1277) 2020-03-09 16:53:33 -07:00
Dmitry Gozman 6c6cdc033b
api(popup): introduce BrowserContext.exposeFunction (#1176) 2020-03-03 16:46:06 -08:00
Pavel Feldman 5bd6e4970b
test: it.skip skips and it.fail expects to fail now (#1178) 2020-03-02 13:47:08 -08:00
Dmitry Gozman 823bf389a7
api: evaluateOnNewDocument -> addInitScript (#1152)
Also adds more options to specify the script.
2020-02-27 17:42:14 -08:00
Dmitry Gozman 7682865d73
feat(popups): add BrowserContext.evaluateOnNewDocument (#1136) 2020-02-27 16:18:33 -08:00
Dmitry Gozman 2e0d89e25c
fix(firefox): roll to 1029 and unskip passing tests (#984) 2020-02-13 13:19:25 -08:00
Joel Einbinder c03e8b7946
chore(tests): add types for tests (#915)
I enabled vscode autocomplete in our test files. Typechecking had too many errors to enable, but it caught some real bugs that I will fix in a follow up.

This patch contains:
* `test/types.d.ts` - d.ts file for our test runner.
* `test/tsconfig.json` - typescript project for our tests.
* JSDoc header in all specs to mark the describe as a TestSuite
* Drive-by fix of a launcher test that was using `if` instead of `it`
* Some drive-by fixes of unimpactful typos in tests.
2020-02-10 13:20:13 -08:00
Dmitry Gozman 4b761f4485
test: expect current behavior for cross-frame js handles (#833) 2020-02-04 19:34:54 -08:00
Yury Semikhatsky 603b9f54dd
fix: make contentFrame cross-frame handles test pass (#761) 2020-01-30 11:04:09 -08:00
Yury Semikhatsky 044ebd7fd8 fix: delete contexts from the map on navigation (#602) 2020-01-23 14:58:30 -08:00
Dmitry Gozman 6cf70e2e4c test(firefox): enable some passing tests (#536) 2020-01-17 17:51:48 -08:00
Dmitry Gozman 447d76d6cd
fix(firefox): assorted fixes to evaluation and remote objects (#511) 2020-01-16 15:24:37 -08:00
Yury Semikhatsky 778ab3deff chore: replace CHROME with CHROMIUM (#465) 2020-01-13 10:13:28 -08:00
Yury Semikhatsky b6f1b17906
fix(webkit): do not fire FrameNavigated when receive resource tree (#432) 2020-01-08 15:32:13 -08:00
Joel Einbinder 9fb6a68b25 fix(webkit): use protocol to serialize values instead of JSON (#373) 2020-01-03 15:39:01 -08:00
Pavel Feldman 62888d8543
revert(json): revert WK null-json mode, joel has a better fix (#372) 2020-01-03 14:06:55 -08:00
Pavel Feldman 0fab90be79
feat(evaluate): survive null JSON in WK and FF (#352) 2020-01-02 15:06:28 -08:00
Pavel Feldman b64bd35c23
feat(evaluate): survive null JSON (#351) 2020-01-02 12:13:18 -08:00
Yury Semikhatsky 701b5db452 fix(wk): make evaluateOnNewDocument work with PSON (#326) 2019-12-20 16:16:32 -08:00
Joel Einbinder ce74a659e1 test: failing test for setting JSON equal to null (#314) 2019-12-19 17:25:09 -07:00
Andrey Lushnikov a7f3490e48 feat(testrunner): implement "dit" command (#312) 2019-12-19 16:47:35 -07:00
Dmitry Gozman b378bc7f6c
feature(evaluate): support cross-context element handles (#295) 2019-12-19 11:44:07 -08:00
Joel Einbinder 1c2b6444e9 test(webkit): add tests for after cross origin navigations (#298) 2019-12-18 17:42:16 -08:00
Andrey Lushnikov 8cc682c7b8 feat(testrunner): allow focusing all tests in a file
With this change, exporting a "fdescribe" function from a file
will focus all tests inside the file.
2019-12-18 17:13:39 -08:00
Dmitry Gozman 7750db97fe
api: remove ExecutionContext from api (#290)
In the current state, it is superseeded by Frame and JSHandle.
2019-12-18 13:51:45 -08:00