Commit Graph

689 Commits

Author SHA1 Message Date
Dmitry Gozman
b575c0e2e6
fix(actions): do not throw evaluate protocol errors from actions (#8997)
When using `evaluate` or `evaluateHandle` internally during actions
like `click`, we can sometimes get protocol errors if page
navigates. In this case, we throw the protocol error right away.

Instead, we can treat such a protocol error similar to "detached"
error and retry in the new execution context.
2021-09-17 22:18:00 -07:00
Yury Semikhatsky
cc15227327
fix: do not dedup header values (#8998) 2021-09-17 17:19:13 -07:00
Pavel Feldman
63ff405e6e
fix(inspector): stop on all snapshottable actions (#8990) 2021-09-17 15:24:15 -07:00
Yury Semikhatsky
43a690c204
feat(fetch): set content-length header if post data is present (#8979) 2021-09-17 09:00:18 -07:00
Yury Semikhatsky
806a71a4f0
feat(fetch): support form data and json encodings (#8975) 2021-09-16 17:48:43 -07:00
Dmitry Gozman
43213614a1
fix(test runner): after hooks step should not be nested (#8969) 2021-09-16 15:51:27 -07:00
Joel Einbinder
eafba43e15
fix(snapshot): render adoptedStyleSheets used in more than one node (#8886)
.
2021-09-16 09:37:38 -04:00
Dmitry Gozman
5379b2dcba
fix(test runner): account for errors with inconsistent stack/message (#8950) 2021-09-15 21:28:36 -07:00
Yury Semikhatsky
2380b07f30
feat(fetch): introduce FetchRequest.dispose, fulfill with global fetch (#8945) 2021-09-15 14:02:55 -07:00
Darrell Breeden
d82cb9a2ff
feat: addition of tags to JSON reporter output (#8920) 2021-09-15 12:30:22 -07:00
Pavel Feldman
14bc663742
chrome: don't nest pw:api steps (#8932) 2021-09-15 11:34:23 -07:00
Dmitry Gozman
b8a46580dd
fix(expect): toHaveText, toContainText and toHaveTitle normalize whitespace (#8929) 2021-09-14 19:24:29 -07:00
Yury Semikhatsky
c58f34fb2e
feat(fetch): introduce global fetch request (#8927) 2021-09-14 18:31:35 -07:00
Pavel Feldman
5253a7eb54
feat(html): restore trace, video, screenshot (#8925) 2021-09-14 16:26:31 -07:00
Yury Semikhatsky
5141407c6b
fix(fetch): prefix request with underscore (#8922) 2021-09-14 12:56:09 -07:00
Yury Semikhatsky
bdea9c74c4
fix(connect): report all frames in existing page to the client (#8910) 2021-09-14 12:44:49 -07:00
Joel Einbinder
afae5bef5d
feat(mouse): page.mouse.wheel (#8690) 2021-09-14 15:22:52 -04:00
Will 保哥
db1c8b2693
fix(codegen): NUnit's Equal API should be Assert.AreEqual (#8859) 2021-09-13 21:19:21 -07:00
Pavel Feldman
aa76cb5610
fix(tracing): fix tests via tracking context close state (#8906) 2021-09-13 21:12:36 -07:00
Pavel Feldman
16baaa317d
chore: remove stale html experiments (#8905) 2021-09-13 20:34:46 -07:00
Pavel Feldman
a1adc15ea3 tests: mark win32/webkit cookie multivalue test as failing 2021-09-13 20:13:25 -07:00
Pavel Feldman
1925c85dfb
feat(report): render attachment as a part of failure (#8903) 2021-09-13 18:07:40 -07:00
Pavel Feldman
b76e993951
chore: remove log from htmlreport (#8898) 2021-09-13 18:07:15 -07:00
Dmitry Gozman
d9d2d809a2
fix(test): make use in config accept option values only (#8828)
Also include default options in FullConfig/FullProject.
Also make examples compile and add a test.
2021-09-13 17:50:31 -07:00
Dmitry Gozman
ed34a67d4a
fix(junit reporter): put stdio under testcase (#8900)
When output happened during test execution, it should be
under `<testcase><system-out>...</system-out></testcase>`.
2021-09-13 17:50:08 -07:00
Dmitry Gozman
440651e05c
test(test runner): calling test.step() from fixture (#8899) 2021-09-13 17:49:58 -07:00
Dmitry Gozman
6c41ad3329
test: expect(locator).toHaveCount should wait (#8901) 2021-09-13 17:06:19 -07:00
Yury Semikhatsky
b79be5d98d
feat(fetch): introduce failOnStatusCode (#8896) 2021-09-13 15:38:27 -07:00
Yury Semikhatsky
f8c0f0d637
feat(fetch): support query params (#8893) 2021-09-13 14:29:44 -07:00
Pavel Feldman
64f9c3ba1d
feat(api): move fetch api into the namespace (#8871) 2021-09-13 12:43:07 -07:00
Joel Einbinder
bf35da3656
fix(test-runner): accept unix separators even on windows (#8881)
.
2021-09-13 12:09:38 -04:00
Ross Wollman
549411dc33
feat(har): add _requestref (#8847) 2021-09-11 17:25:00 -07:00
Pavel Feldman
798d0bfa9b
chore: fix headers api again (#8854) 2021-09-11 13:27:00 -07:00
Yury Semikhatsky
b6180055df
feat(fetch): make fetch api public (#8853) 2021-09-10 18:36:55 -07:00
Yury Semikhatsky
8d6bcfb66c
test: headers return only last header value for duplicates (#8851) 2021-09-10 16:37:10 -07:00
Max Schmitt
cfe7c1a7e3
fix(sizes): responseBodySize on CR & WK macOS (#8846) 2021-09-10 23:19:34 +02:00
Yury Semikhatsky
ebdad167f2
feat(fetch): support new headers api (#8843) 2021-09-10 14:03:56 -07:00
Max Schmitt
8a3e992031
test: add test for responseBodySize with chunked requests (#8839) 2021-09-10 20:53:08 +02:00
Yury Semikhatsky
3c5d8ff18d
test: skip failing interception tests in Electron (#8836) 2021-09-10 09:33:12 -07:00
Dmitry Gozman
bcb0c1745b
fix(waitForEventInfo): reply from the server side (#8825)
Otherwise, client thinks that `waitForEventInfo` is a pending operation.
2021-09-09 21:20:26 -07:00
Pavel Feldman
665143d629
chore(report): don't generate file per test (#8822) 2021-09-09 17:35:31 -07:00
Dmitry Gozman
e85fba1c7d
fix(check): allow checking/unchecking role=radio elements (#8821)
We already do this for `role=checkbox` but not for radio.
2021-09-09 16:01:21 -07:00
Pavel Feldman
7bbb63d143
feat(test): start authoring raw reporter (#8790) 2021-09-09 14:17:18 -07:00
Andrey Lushnikov
c5ce263de7
fix: make sure page.goto navigates away from pages with beforeunload (#8770)
As of today, we can't navigate away from a page with beforeunload unless
we have an explicit `beforeunload` handler.

This patch updates our dialog auto-closing logic so that it auto-accepts
all beforeunload dialogs.

Fixes #8144
2021-09-09 13:19:50 -07:00
Joel Einbinder
7fe30bb182
test(goto): add failing load event test for webkit (#8809) 2021-09-09 12:42:46 -07:00
Yury Semikhatsky
1ad6c8af6f
test: response finish hangs when page closes (#8816) 2021-09-09 12:27:57 -07:00
Yury Semikhatsky
81ae790288
feat(fetch): support ignoreHTTPSErrors (#8795) 2021-09-08 20:32:52 -07:00
Yury Semikhatsky
5550f58284
feat(fetch): fetch with request parameter (#8793) 2021-09-08 16:31:58 -07:00
Yury Semikhatsky
b11b274b0d
feat(fetch): fulfill without passing fetch response body client<->server (#8789) 2021-09-08 14:59:12 -07:00
Pavel Feldman
5a305a9c2e
fix(recorder): move recorder scripts into the main world (#8761) 2021-09-08 14:27:05 -07:00
Yury Semikhatsky
b4ca77be23
feat(fetch): get body lazily (#8784) 2021-09-08 13:40:07 -07:00
Yury Semikhatsky
77b3b0965a
feat(fetch): timeout option and default timeout (#8762) 2021-09-08 10:01:40 -07:00
Max Schmitt
25b5927a4d
docs: sizes enhancements (#8771) 2021-09-08 14:09:11 +02:00
Yury Semikhatsky
6263361284
feat(fetch): browser proxy credentials (#8760) 2021-09-07 17:42:31 -07:00
Yury Semikhatsky
afe92a6fcf
fix(runner): avoid line wrapping in list reporter (#8705) 2021-09-07 17:42:17 -07:00
Dmitry Gozman
bcbb792cf3
fix(tracing): retain script resources, but no body (#8758) 2021-09-07 15:23:13 -07:00
Dmitry Gozman
b30772c67e
fix(tracing): collect apiName for mouse/keyboard/touchscreen (#8755) 2021-09-07 13:48:30 -07:00
Daniel Dyssegaard Kallick
b2c59a15dd
feat(test-runner): include test step in json report (#8476) 2021-09-07 13:35:30 -07:00
Max Schmitt
913fb29353 test: fix 'should filter favicon and favicon redirects' in har.spec.ts 2021-09-07 19:42:14 +02:00
Dmitry Gozman
3739113e74
fix(test runner): allow dot-files and dot-directories with tests (#8751) 2021-09-07 10:32:47 -07:00
Joel Einbinder
e914f6bbc7
feat(network): remove Headers class and add headersArray method (#8749) 2021-09-07 10:27:53 -07:00
Max Schmitt
4f4bc72828
chore: add more tests for Request.sizes() (#8686) 2021-09-07 19:19:12 +02:00
Max Schmitt
e40b805782
feat(test-runner): support baseURL in toHaveURL (#8743) 2021-09-07 18:34:02 +02:00
Max Schmitt
b6ec6339d0
test: fix flaky 'should not fire events for favicon' test (#8738) 2021-09-07 13:05:29 +02:00
Max Schmitt
e832038ea2
test: skip wss/https tests which were failing on transport mode (#8733) 2021-09-07 11:17:09 +02:00
github-actions[bot]
f768ac03ee
feat(firefox): roll to r1292 (#8731)
Co-authored-by: Max Schmitt <max@schmitt.mx>
2021-09-06 22:57:26 +02:00
github-actions[bot]
1f43df3249
feat(firefox): roll to r1291 (#8704)
Co-authored-by: Max Schmitt <max@schmitt.mx>
2021-09-06 13:36:10 +02:00
Yury Semikhatsky
152f6c6f1c
fix: support connectOverCDP over https (#8703) 2021-09-03 17:52:22 -07:00
Yury Semikhatsky
e5e461c0de
fix: use logger from config if specified (#8697) 2021-09-03 14:21:25 -07:00
Dmitry Gozman
5d278db17b
fix(snapshot): remove CSP meta from snapshot (#8698) 2021-09-03 13:44:02 -07:00
Dmitry Gozman
e2b092c1a0
feat(html reporter): show log for pw:api and expect steps (#8692) 2021-09-03 13:08:17 -07:00
Max Schmitt
e7d4d61442
feat: add forced-colors media query emulation (#6903) 2021-09-03 21:48:06 +02:00
Dmitry Gozman
f7a490f80e
test: unflake trace-viewer.spec.ts (#8694) 2021-09-03 12:34:47 -07:00
Dmitry Gozman
2b4a93972d
test: use ToT test runner for non-test-runner tests (#8671) 2021-09-03 11:22:25 -07:00
Max Schmitt
31c76a086d test: fix port forwarding tests in Docker 2021-09-03 12:53:21 +02:00
Pavel Feldman
5ac11a7760
fix(headers): fix webkit win headers tests (#8675) 2021-09-02 22:05:22 -07:00
Pavel Feldman
0d5b41ce7b
feat(headers): add Headers.headers that would mimic the behavior of the deprecated getters (#8665) 2021-09-02 20:48:23 -07:00
Dmitry Gozman
620712a5d9
feat(expect): support array of RegExp objects in toHaveText/toHaveClass (#8667) 2021-09-02 15:48:04 -07:00
Dmitry Gozman
e691b649de
feat(test runner): describe.parallel (#8662) 2021-09-02 15:42:07 -07:00
Pavel Feldman
94170dacbd
chore: rename rawHeaders to allHeaders (#8659) 2021-09-02 11:46:52 -07:00
Pavel Feldman
54bda2c8dd
fix(size): fix some of the request.size() problems (#8645) 2021-09-02 10:39:57 -07:00
Fokke Zandbergen
0ae38b5aec
fix(test-runner): WebServer: use socket for reuseExistingServer to detect servers that aren't using SO_REUSEADDR (#8537) 2021-09-02 18:39:41 +02:00
Yury Semikhatsky
bafa426231
feat(runner): support multiple names in project filter (#8600) 2021-09-02 09:29:55 -07:00
Chad Sheets
23daf84cdd
fix(har): favicon redirect handling (#8176) 2021-09-02 08:31:25 -07:00
Henrik Nygren
0202cdf797
fix(codegen): use new toHaveURL syntax (#8624) 2021-09-02 17:24:31 +02:00
Pavel Feldman
42e44f888b
feat(rawheaders): introduce initial plumbing (#8638) 2021-09-01 18:28:20 -07:00
Dmitry Gozman
b1260602ac
docs: update global setup docs (#8637)
Changing example to "authenticate once", and also updating the auth doc.
Adding a test with the same setup.
2021-09-01 15:35:46 -07:00
Max Schmitt
e0e4b48df6 test: skip security details on WK/Win 2021-09-01 23:21:03 +02:00
Dmitry Gozman
9618a8477b
feat(trace viewer): show call duration (#8634) 2021-09-01 13:41:47 -07:00
Dmitry Gozman
4f4cf448c2
fix(test runner): generate unique outputDir for beforeAll/afterAll (#8633) 2021-09-01 13:41:35 -07:00
Dmitry Gozman
1a9215a6ec
fix(html reporter): do not throw when attachment is actually missing (#8630) 2021-09-01 12:20:28 -07:00
Andrey Lushnikov
30b6614e5a
browser(firefox): enable SharedArrayBuffer in Firefox builds (#8610) 2021-09-01 12:27:37 +02:00
Pavel Feldman
1b2845764d
test: unflake trace viewer tests (#8603) 2021-08-31 21:49:08 -07:00
Pavel Feldman
ae3a4f5257
test: speculative fix for redirect event order (#8602) 2021-08-31 17:48:39 -07:00
Dmitry Gozman
0f34cfe339
test: roll test runner to 1.15.0-next-1630432230000 (#8599) 2021-08-31 17:06:32 -07:00
Dmitry Gozman
b8f8ca7493
feat(tracing): tracing.{start,stop}Chunk instead of tracing._export (#8521) 2021-08-31 17:03:31 -07:00
Dmitry Gozman
bee8ed117b
feat(html reporter): preview source code, steps and step errors (#8598) 2021-08-31 16:34:52 -07:00
Pavel Feldman
0fd5078b2b
chore: simplify client-side browserType.connect routine (#8596) 2021-08-31 15:56:55 -07:00
Pavel Feldman
246ac6aea6
chore: implement browserType.connect on the driver side (#8566) 2021-08-31 12:51:13 -07:00
Dmitry Gozman
900362ec0b
fix(test runner): report unhandled rejections during worker teardown (#8592) 2021-08-31 10:50:30 -07:00
Yury Semikhatsky
9f8e8444d8
feat(fetch): support response decompression (#8571) 2021-08-31 09:34:58 -07:00
Yury Semikhatsky
dd6dacb125
fix(fetch): throw on network error (#8565) 2021-08-30 14:34:31 -07:00
Yury Semikhatsky
6d51ed6e4d
feat(fetch): support baseURL, add tests for invalid args (#8562) 2021-08-30 13:41:25 -07:00
Yury Semikhatsky
4c1b47a00c
test: fix webkit win expectation for sameSite attribute (#8559) 2021-08-30 12:01:22 -07:00
github-actions[bot]
b6b9b4c170
feat(chromium): roll to r916288 (#8551)
Co-authored-by: Max Schmitt <max@schmitt.mx>
2021-08-30 19:51:06 +02:00
Pavel Feldman
e47bacdecb
fix(cookies): read response headers off extra info event, if any (#8526) 2021-08-30 09:58:44 -07:00
Pavel Feldman
57243bd023 chore: fix har tests 2021-08-30 09:42:41 -07:00
Andrey Lushnikov
cded6bc8d9
test: unskip iframe test on firefox (#8546)
Fixes #8016
2021-08-30 02:49:25 -07:00
Pavel Feldman
e574f4b7fd
feat(api): introduce setChecked convenience method (#8525) 2021-08-29 20:00:40 -07:00
Dmitry Gozman
37a897c9b4
fix(test runner): report beforeAll timeout instead of hanging (#8529)
We used to not report fatal error and hang forever because worker
did not run any tests but also did not report any errors.

Also properly show stack-less errors.
2021-08-28 07:19:45 -07:00
Yury Semikhatsky
60b0f46b60
feat(fetch): support setHTTPCredentials (#8528) 2021-08-27 23:47:33 -07:00
Yury Semikhatsky
3727aa5b67
feat(fetch): send extra http headers (#8527) 2021-08-27 23:47:21 -07:00
Dmitry Gozman
bf13259fa9
test: roll test runner to aug-27 (#8523) 2021-08-27 16:26:51 -07:00
Max Schmitt
3ea2f209ea
fix(har): requestFinished/page-close race (#8518) 2021-08-28 01:09:18 +02:00
Yury Semikhatsky
951b9ac21a
fix(fetch): handle cookies on redirects (#8519) 2021-08-27 15:28:36 -07:00
Max Schmitt
f3dde0650f
feat(network): expose bodySize, transferSize, and headerSize (#8234) 2021-08-27 22:53:57 +02:00
Max Schmitt
89245de0ef
fix(har): rewrite sizes and make transferSize work in WK/Linux (#8504) 2021-08-27 20:42:45 +02:00
Andrey Lushnikov
5901cb321d
browser(firefox): fix file chooser in iframes #8510 (#8510)
References #8016
2021-08-27 09:28:24 -07:00
Yury Semikhatsky
768a97cfdc
feat(fetch): set user-agent and other default headers (#8491) 2021-08-27 08:26:19 -07:00
Michael Rienstra
ed0c47a06f
fix(test-runner): minor error message typo (#8489) 2021-08-27 10:15:16 +02:00
Pavel Feldman
4ed976f2e9
chore: remove isContextDestroyedError heuristic (#8456) 2021-08-26 18:44:49 -07:00
Max Schmitt
998f2ab959
chore: hide Route.fulfill._response from API (#8483) 2021-08-27 00:44:20 +02:00
Ross Wollman
a1313727e8
fix(har): HAR artifacts need to be marked remote (#8462)
This is a follow-up fix to microsoft/playwright#8385.

Testing options are limited right now, but this change was confirmed
with a client running on my physical machine and a LaunchServer running
in a Docker container.

Before this change, the har.spec.ts only passed when the client and
server were on the some filesystem.

microsoft/playwright#8450 will likely give us options to test this in an
automated way in the official CI suite.
2021-08-26 11:26:08 -07:00
Andrey Lushnikov
2198769f6c
fix(react-vue): support nested trees (#8467)
Turns out you can mount nested trees in both React and Vue.
This patch changes root discovery to support nested trees.

Fixes #8455
2021-08-26 03:07:33 -07:00
Pavel Feldman
95be45967a
feat(strict): list ambiguous matches when throwing strict exception (#8449) 2021-08-25 14:51:03 -07:00
Dmitry Gozman
a479cb6f52
fix(test runner): add an overload for test.skip(title, fn) (#8454)
We shipped this feature, but forgot to add the right overload to d.ts.
2021-08-25 14:36:36 -07:00
Yury Semikhatsky
204b6321b4
feat(webkit): bump to 1534 (#8451) 2021-08-25 14:27:49 -07:00
Ross Wollman
cd110e6477
feat(har): Remotely accessible HAR file (#8385)
This change ensure's the HAR file is saved at `recordHar.path` on the
client instead of the server.

NB: The goal was to make this change transparent to the user and NOT
introduce any new APIs. Namely, I want to leave the API open for
potential `context.har.start()` and `context.har.stop()`.

This does BREAK servers that expect the HAR to be at the `recordHar.path`
on the server, but I think that's OK since there haven't been reports
of missing HAR on client making me think not many users are getting
HAR with client and server on different hosts anyways.

Closes #8355
2021-08-25 13:32:56 -07:00
Dmitry Gozman
de85d8bb83
fix(test runner): do not special case test.fail (#8447)
This makes `test.fail` tests considered as passing when they actually fail:
- Stop restarting the worker.
- Retry when it passes instead of a fail.
- Behaves similar to regular tests in a `describe.serial` suite.
2021-08-25 12:19:50 -07:00
Max Schmitt
6c8c18dc73 test: skip 'should work with lazy loading iframes' on Android 2021-08-25 14:27:44 +02:00
Max Schmitt
8189de42cf
test: fix package installation tests (#8430) 2021-08-25 13:34:54 +02:00
Dmitry Gozman
29eb6cb777
chore: migrate tracing to har (#8417)
chore: migrate tracing to har

- `HarTracer` is used by both `HarRecorder` that implements
  `recordHar` context option, and by tracing.
- We keep the `trace.network` format for now, so it is not
  yet a valid har file, but it contains har entries.
2021-08-24 21:09:41 -07:00
Dmitry Gozman
33852635b7
fix(fetch): skip tests on non-default modes, add node-fetch to deps list (#8425) 2021-08-24 19:41:29 -07:00
Yury Semikhatsky
a6740c852a
test: webkit linux fails to load application/octet-stream resource (#8424) 2021-08-24 17:34:29 -07:00
Dmitry Gozman
b188468fa4
fix(tracing): rewrite blob urls so that we can intercept them (#8423) 2021-08-24 17:05:26 -07:00
Yury Semikhatsky
338d3c8fd4
test: override dns lookup to support subdomains (#8419) 2021-08-24 16:55:10 -07:00
Yury Semikhatsky
c0010d16c6
feat: introduce BrowserContext._fetch (#8349) 2021-08-24 14:29:04 -07:00
Dmitry Gozman
b0a7843247
chore: migrate tracing ResourceSnapshot to follow har entry format (#8391)
This will ease the migration of tracing to har.
2021-08-24 13:17:58 -07:00
Dmitry Gozman
75fb77355a
test(test runner): check retries with beforeAll failure and multiple tests (#8413) 2021-08-24 12:22:16 -07:00
Max Schmitt
8e20f13079
feat(routes): add support for the times option (#8399) 2021-08-24 20:45:50 +02:00
Yury Semikhatsky
59422a00f5
feat(route): rename method, add response option (#8386) 2021-08-24 11:07:54 -07:00
Joel Einbinder
a8a3799e9d
fix(test-runner): use describe name in output dir (#8282) 2021-08-24 10:33:40 -04:00
Joel Einbinder
ce2aa1782b
fix(test): fix broken codegen test (#8383) 2021-08-23 22:38:50 -04:00
Dmitry Gozman
47724fed5a
chore(tracing): rework start/export chunks (#8378)
Instead of filtering the whole trace file on export, we write
into separate trace file for each chunk. We also write a separate
trace.network file with all resources, because it is reused between
chunks.

This brings us towards `tracing.startFile()/stopFile()` api.
2021-08-23 16:08:09 -07:00
Joel Einbinder
0ed3c79d51
fix(selectors): nicer errors if the selector engine returns a bad value (#8259)
Co-authored-by: Pavel Feldman <pavel.feldman@gmail.com>
2021-08-23 22:54:02 +02:00
Joel Einbinder
60829f8909
fix(codegen): escape tricky characters (#8350) 2021-08-23 12:22:19 -04:00
Dmitry Gozman
f9b87268a7
fix(test runner): afterAll error should not mask beforeAll error (#8358) 2021-08-23 09:21:40 -07:00
Ross Wollman
25a4c7b3df
feat(launchServer): accept wsPath option (#8353) 2021-08-22 09:04:47 -07:00
Pavel Feldman
0997c13151
fix(test-runner): do not attach non-existent diff (#8297) 2021-08-20 13:40:27 -07:00
Andrey Lushnikov
48e94c15c1
feat: support multiple roots in React and Vue selectors (#8313)
Fixes #8230
2021-08-20 05:05:52 -07:00
Dmitry Gozman
7818f5fa0b
test: add a tracing bot that collects a trace for most contexts (#8316) 2021-08-19 19:09:19 -07:00
Dmitry Gozman
e5be2c9205
feat(test runner): show failure details for flaky test runs (#8332)
Currently, we just say "foo.spec.ts > my test" is flaky, but do not
show how exactly the failed run went.
2021-08-19 18:20:53 -07:00
Dmitry Gozman
9c96468b9e
fix(tracing): do not stall while capturing snapshot with an open dialog (#8328) 2021-08-19 18:20:15 -07:00
Pavel Feldman
80dded6ccf
feat(proxy): bind proxy to open port (#8331) 2021-08-19 18:08:55 -07:00
Dmitry Gozman
70eca0401d
fix(test runner): avoid internal error for step end without begin (#8327)
fix(test runner): avoid internal error for step end without begin

Consider the following scenario:
- Test finishes and starts tearing down fixtures.
- Fixture teardown starts a step S and then times out.
- We declare the test finished (with timeout).
- Dispatcher shuts down the worker and spins a new one for a retry.
  Additionally, it clears steps information for the test to be
  ready for the new retry. Step S information is lost.
- Meanwhile, during worker teardown, the step S does
  actually finish (usually with an error), and we send stepEnd for S.
- Dispatcher does not know what to do with step S end and
  prints an internal error.

The fix is to ignore certain messages from the shutting down worker that failed.
2021-08-19 17:04:09 -07:00
Pavel Feldman
cad7fc2ef7
feat(proxy): support local.playwright for proxying (#8330) 2021-08-19 16:56:06 -07:00
Pavel Feldman
44887c237d
chore: reimplement socks to be readable (#8315) 2021-08-19 15:16:46 -07:00
Max Schmitt
96a9a26f9f
fix: strict mode on page.* methods on context level (#8324) 2021-08-19 23:08:28 +02:00
Yury Semikhatsky
356d69ae3f
test: make borwsercontext-proxy tests use test proxy server (#8318) 2021-08-19 13:34:32 -07:00
Max Schmitt
ddcdb6d413
chore(protocol): do client hello instead of server hello (#8019) 2021-08-19 17:31:14 +02:00
Yury Semikhatsky
c00db569e3
test: skip interception test in electron (#8240) 2021-08-19 16:44:13 +02:00
Yury Semikhatsky
d42169aba1
test: proxy server fixture, new test for https via http proxy (#8299) 2021-08-19 07:36:03 -07:00
Dmitry Gozman
f06e7b91fb
fix(tracing): serialize resource writes against trace export (#8296)
Inlining TraceSnapshotter makes it easier to serialize writes and removes no-op glue.
We also stop writing the same resource twice.
2021-08-19 07:26:24 -07:00
Pavel Feldman
4d7956c70b
chore: roll test runner to ToT (#8291) 2021-08-18 14:32:36 -07:00
Pavel Feldman
6ef76e333e
feat(strict): add context-level selector strictness (#8290) 2021-08-18 12:51:45 -07:00
Dmitry Gozman
8d81890e47
feat(codegen): support --save-trace option (#8267) 2021-08-18 07:27:45 -07:00
Pavel Feldman
710cec80a0
feat(test-runner): render step titles (#8270) 2021-08-17 16:41:36 -07:00
Pavel Feldman
97ba4f22f3
feat(test-runner): report nested steps (#8266) 2021-08-17 13:57:26 -07:00
Dmitry Gozman
99993e173b
fix(snapshots): account for malformed headers (#8241)
When browser receives multiple header values for the same header name,
we present them as LF-separated value. This is not considered valid in
Node, so we should split by LF when serving a snapshot.

There more invalid characters in headers, so just in case we try/catch it.
2021-08-16 17:40:46 -07:00
Dmitry Gozman
246495f705
fix(tracing): improve captureStackTrace (#8236)
- Simplify by only considering client/ vs non-client/
- Fix stack traces when calling from other playwright code, e.g. from the cli
- Account for re-entrant calls that happen when
  instrumenting context creation/desctruction
- Add tests
- Fix StackTraceView on Windows
2021-08-16 17:06:38 -07:00
Dmitry Gozman
2aff06ec73
fix(test runner): make sure tracing is not running on non-retries (#8232)
When sharing a context between tests and using `'on-first-retry'` we
could end up with tracing still running in non-retried tests. That's
extra overhead without a reason.
2021-08-16 16:46:35 -07:00
Yury Semikhatsky
8cc4140933
fix: throw if intercepted response fails (#8195) 2021-08-16 16:40:47 -07:00
Ross Wollman
101662765c
api(cdp): newCDPSession accepts frames, too (#8157)
Without this, Playwright's CDP feature leaves unreachable
targets (namely OOPIFs).

This change allows for more advanced experimentation in user-land
without relying on out-of-band CDP connections and clients.

Now you can, for example, call `DOM.getDocument` on the
page OR main frame, observe there is an iframe node with
no `contentDocument` (i.e. OOPIF), make note of the referenced
`frameId`, and then iterate of page.frames() calling `Target.getInfo`
on each to link the Playwright Frame with the CDP `frameId` and
then recurse.

Relates #8113
2021-08-16 12:49:10 -07:00
Pavel Feldman
bdb772d710
fix(android): fix android tests (#8209) 2021-08-15 22:54:30 -07:00
Yury Semikhatsky
39f663834f
test: intercepted response status line (#8189) 2021-08-13 16:28:42 -07:00
Yury Semikhatsky
4705c90682
fix(firefox): fulfill response with empty body (#8166) 2021-08-12 11:00:20 -07:00
Andrey Lushnikov
45f51239a6
chore: roll TestRunner to tip-of-tree (#8168) 2021-08-12 10:03:23 -07:00
Andrey Lushnikov
04a37aea5e
test: fix electron tests (#8169) 2021-08-12 09:38:46 -07:00
Yury Semikhatsky
d0d6899822
test: download event for navigations that change into downloads (#8167) 2021-08-12 09:34:32 -07:00
Dmitry Gozman
d32d50a906 fix(test runner): make sure we always teardown all fixtures (#8158)
Even if one of the fixtures throws, we should teardown all of them
so that we can run afterAll hooks.
2021-08-12 09:08:56 -07:00
Pavel Feldman
d2d71c4cdb
fix(reporter): group fixture initialization under before hooks (#8072) 2021-08-12 07:58:00 -07:00
Dmitry Gozman
44cdda43fe
feat(test runner): show stdio for failures in terminal reporters (#8150) 2021-08-11 16:44:19 -07:00
Yury Semikhatsky
59df541de5
fix: fulfill intercepted response with empty body (#8151) 2021-08-11 14:47:05 -07:00
Yury Semikhatsky
1694b3e90c
feat(firefox): response interception after redirects (#8148) 2021-08-11 12:48:30 -07:00
Yury Semikhatsky
41770bf444
feat(webkit): response interception after redirects (#8017) 2021-08-11 11:14:50 -07:00
Pavel Feldman
1d4e2fe98c
feat(nth): make nth and visible selectors public (#8142) 2021-08-11 11:06:09 -07:00
Dmitry Gozman
052e0e197c
fix(types): allow specifying scope when overriding fixtures (#8139)
Otherwise it show a confusing error.
2021-08-11 10:44:15 -07:00
Yury Semikhatsky
e9e3349e2f
test: update sameSite cookie expectations on WebKit Win (#8138) 2021-08-11 10:27:41 -07:00
Dmitry Gozman
a5e0965087
feat(test runner): implement test.describe.serial (#8132) 2021-08-10 21:26:45 -07:00
Joel Einbinder
64da74fba8
feat(test-runner): allow non-ascii characters in the output dir path (#8093) 2021-08-10 21:24:35 -07:00
Pavel Feldman
21b510c6e7
chore(tracing): remove resource id (#8131) 2021-08-10 21:23:31 -07:00
Andrey Lushnikov
4975f4179e
feat: make React and Vue selectors experimental (#8106) 2021-08-10 17:21:16 -07:00
Andrey Lushnikov
792986c92d
feat: support props matching in react and vue selectors (#8104) 2021-08-10 17:10:14 -07:00
Dmitry Gozman
c9c1ea6546
fix(test runner): disallow use(workerFixture) in describes (#8119)
Using a worker fixture forces a new worker. This might be unexpected
when part of the test file runs in one worker, and another runs
in another worker. Top-level use of worker fixtures is still fine.
2021-08-10 16:32:32 -07:00
Dmitry Gozman
9d6c7cdf20
fix(test runner): ensure we run after hooks after failures (#8102) 2021-08-10 10:54:05 -07:00
Dmitry Gozman
2744cd6c9a
feat(test runner): remove createContext fixture (#8109)
We can now use `browser.newContext()` or `browser.newPage()` instead.
2021-08-10 09:26:36 -07:00
Yury Semikhatsky
75981bc0aa
fix(tests): do not throw if page did not produce video (#8112)
Fixes #8103
2021-08-10 01:24:14 -07:00
Dmitry Gozman
3bf3318350
fix(test runner): make sure options, trace and screenshot apply to all contexts (#8083)
- Uses some auto fixtures to set default options and instrumentation on BrowserType.
- Moves screenshot, trace and video to worker-scoped fixtures.
- Throws in page/context when used from beforeAll/afterAll.
- Plumbs around BrowserType to be accessible from Browser and BrowserContext.
2021-08-09 18:09:11 -07:00
Dmitry Gozman
e638c4597f
fix(test runner): do not swallow afterAll failure (#8099) 2021-08-09 14:21:53 -07:00
Andrey Lushnikov
29f7dfa3ee
feat(chromium): roll Chromium to M94 (#8047) 2021-08-09 13:57:17 -07:00