Commit Graph

1832 Commits

Author SHA1 Message Date
Andrey Lushnikov
59562de0ec
fix(pipe): do not store accumulated message as string (#16641)
Accumulated message must be stored raw; otherwise, unicode encoding
will break while trying to decode them.

Fixes #16367
2022-08-18 07:53:56 -07:00
Playwright Service
3843a15d5f
feat(webkit): roll to r1704 (#16628)
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Max Schmitt <max@schmitt.mx>
2022-08-18 10:55:11 +02:00
Playwright Service
94c9db299d
feat(webkit): roll to r1703 (#16604) 2022-08-17 17:13:00 -07:00
Yury Semikhatsky
94c99314c6
test: mouse drag (#16623) 2022-08-17 15:36:14 -07:00
sand4rt
007e197e3d
test(ct): react rerender (#16597) 2022-08-16 22:01:37 -07:00
Yury Semikhatsky
8ebf9d7699
test: disable page/page-set-content.spec.ts:126 in webkit (#16596)
The test started failing on WebKit after WebKit/WebKit@7de67f9 The cause is the same as in other browsers - missing utility context. Disabling the test in WebKit similar to the other browsers in order to prepare for the next webkit roll.

Related: #16536
2022-08-16 15:31:30 -07:00
sand4rt
e6994b5dc1
chore(ct): react tests (#16584) 2022-08-16 11:25:55 -07:00
Pavel Feldman
93b4fa3537
chore(ct): svelte-kit is being a moving target, remove tests for now (#16589) 2022-08-16 11:13:27 -07:00
sand4rt
3785298ddf
fix(ct): react favicon path (#16572) 2022-08-16 10:48:41 -07:00
sand4rt
d9850e0e86
feat(ct): react rerender (#16560) 2022-08-16 10:47:33 -07:00
sand4rt
b41da08c1e
chore(ct): react vite tests (#16525) 2022-08-15 13:17:56 -07:00
Pavel Feldman
e64b09cc28 Revert "feat(ct): react rerender (#16549)"
This reverts commit a62accf8ae.
I'll reapply them in order.
2022-08-15 13:17:15 -07:00
sand4rt
a62accf8ae
feat(ct): react rerender (#16549) 2022-08-15 13:10:38 -07:00
Max Schmitt
13596b7be3
chore: language specific dropdowns in codegen (#16452) 2022-08-15 19:44:46 +02:00
Pavel Feldman
bd06d1604f
chore: render original exception location in error frame (#16515) 2022-08-15 09:28:55 -07:00
Dmitry Gozman
0d3b3d08ab
test: add more tests for retarget behavior (#16513) 2022-08-12 16:29:13 -07:00
Dmitry Gozman
3ae50861a3
fix(reload): make sure reload() does not pick same-document navigaiton (#16504)
We lack `documentId` when doing a reload over browser protocols, so
`reload()` waits for the next navigation to finish. Sometimes, the page
might issue a same-document navigation while reload is in progress,
which confuses the reload command.

To fix the issue, just ignore same-document navigations for reload,
because it is always a new document.
2022-08-12 13:48:47 -07:00
Dmitry Gozman
0ff00e5978
test: put existing retarget tests to a separate file (#16510) 2022-08-12 12:40:40 -07:00
Pavel Feldman
e1d3246d1c
fix(ct): pass local config to preview (#16481) 2022-08-12 10:37:35 -07:00
Dmitry Gozman
3dc1920ce8
feat(expect): toHaveText/toContainText work with text in shadow dom (#16433) 2022-08-11 14:10:12 -07:00
Max Schmitt
e911eead9b
test: unflake 'should fill japanese text' (#16431) 2022-08-11 08:48:55 +02:00
Ross Wollman
a3836de182
chore: relax npm version constraint in installation tests (#16427)
Resolves #16281.
2022-08-10 15:33:47 -07:00
Dmitry Gozman
7acbd052e4
test: migrate some expect() tests to be more readable (#16394)
This moves some expect() matchers tests from test runner tests to page tests,
because these are implemented through a library call anyway.

Makes tests more readbable, faster and easier to test specific details.
2022-08-10 15:10:25 -07:00
Johannes Loher
3e67a7c836
feat(plugins): send accept header in webServer url checking (#16251) 2022-08-10 12:48:37 -07:00
Andrey Lushnikov
4cbb95e06d
test: fix firefox-beta tests (#16278) 2022-08-10 11:00:59 +02:00
Max Schmitt
699a52ec74
fix(codegen): make sure input recording with japanese IME Work (#16400)
Co-authored-by: kawasaki.taiga <kigtaiga@gmail.com>
Co-authored-by: Max Schmitt <max@schmitt.mx>
2022-08-10 09:46:30 +02:00
Ross Wollman
e20baacc9c
test: fix large string expectations (#16388) 2022-08-09 21:39:13 -07:00
Dmitry Gozman
baa2ef2700
fix(test runner): show interrupted as yellow (#16396)
Drive-by: fix unreadable character in "duplicate titles" error.
2022-08-09 21:17:30 -07:00
Dmitry Gozman
f58c376443
fix(test runner): do not resolve relative imports through baseUrl (#16395) 2022-08-09 21:16:27 -07:00
Yury Semikhatsky
11391910e7
Revert "fix(codegen): make sure input recording with japanese IME Wor… (#16393)
Revert "fix(codegen): make sure input recording with japanese IME Work (#16210)"

This reverts commit 925de8da2b.
2022-08-09 16:47:32 -07:00
Denis Sokolov
92aacb9345
test: another test for baseUrl/relative imports (#16338)
#15891
2022-08-10 01:05:48 +02:00
YA2KM
925de8da2b
fix(codegen): make sure input recording with japanese IME Work (#16210)
Co-authored-by: kawasaki.taiga <kigtaiga@gmail.com>
Co-authored-by: Max Schmitt <max@schmitt.mx>
2022-08-10 01:02:42 +02:00
Ross Wollman
a3d99f1b4a
chore: trace viewer fallback error (#16365)
Fixes #16349.
2022-08-09 15:53:11 -07:00
Max Schmitt
ff5f241b84
chore: set --allow-pre-commit-input flag on Android/Electron (#16383) 2022-08-09 23:18:15 +02:00
Max Schmitt
e725b5f8a9
fix(esm): fix TS type check with NodeNext mode (#16340) 2022-08-09 20:06:06 +02:00
Ross Wollman
5dea817355
test: corrupted large string repro (#16369)
Repro for #16367.
2022-08-09 10:44:52 -07:00
Dmitry Gozman
0fa20d5d1e
fix(click): make it work for display:contents elements (#16356)
After protocol fixes in all browsers, we can now scroll and click display:contents elements.
The only problem is that `elementsFromPoint()` misbehaves in Chromium and Firefox, so we
need a workaround. Hopefully, it will be fixed upstream - shadow dom spec folks think
"it becomes a real compatibility concern".

This needs Chromium 105 roll.
2022-08-08 16:05:09 -07:00
Ross Wollman
36b92d8847
fix: toBeFocused should match shadow elements (#16362)
Fixes #16268.
2022-08-08 15:34:58 -07:00
Max Schmitt
1ca6635bb8
fix(cli): store trace/storage/har on SIGINT (#16339) 2022-08-09 00:13:38 +02:00
Dmitry Gozman
f6d94f0ac9
chore: update "X fatal errors" message (#16325)
Also, exlude certain errors from triggering this message:
- `no tests found`
- `duplicate test titles are not allowed`
- `--forbid-only found a focused test`
- `Timed out waiting 3600s for the entire test run`
2022-08-05 21:21:43 -07:00
Pavel Feldman
8ed238843b
chore: allow inspecting element from server (#16324) 2022-08-05 19:34:57 -07:00
Dmitry Gozman
7a86e140f5
chore: remove TestProject.projectSetup (#16321)
There are better ideas to address this issue in more general manner.
2022-08-05 15:24:30 -07:00
Dmitry Gozman
cb30cb4eb7
feat(test runner): add --trace cli option (#16277) 2022-08-05 09:20:39 -07:00
Dmitry Gozman
919b1cbb22
fix(test runner): do not swallow afterEach errors after skipped tests (#16276)
Drive-by: add more test runner logging.
2022-08-04 18:49:23 -07:00
Pavel Feldman
97fa2518e9
fix(reuse): clear storage after stopping all scripts (#16275) 2022-08-04 16:39:18 -07:00
Pavel Feldman
3aa5710b49
feat(reuse): retain different browser types when reusing (#16269) 2022-08-04 15:04:00 -07:00
Pavel Feldman
b3d30a808f
fix(reuse): reset sw, db, storages (#16265) 2022-08-04 15:01:34 -07:00
sand4rt
bd5eddd62e
fix(ct): multi root vue components (#16211) 2022-08-04 10:43:43 -07:00
Dmitry Gozman
2fa48483af
test: unflake "should retain traces for interrupted tests" (#16235)
Ensure both tests start before one of them finishes.
2022-08-04 09:18:18 -07:00
sand4rt
e5cc78af67
chore(ct): change setProps to rerender (#16204) 2022-08-03 18:14:00 -07:00
Yury Semikhatsky
e4efc300c7
test: unskip passing firefox tests (#16233) 2022-08-03 17:43:00 -07:00
Andrey Lushnikov
fb76d62a2b
feat(firefox): roll Firefox stable to 103 (#16224) 2022-08-03 16:55:19 -07:00
Pavel Feldman
74f7005c02
chore: preserve window while reusing window (#16225) 2022-08-03 16:14:28 -07:00
Dmitry Gozman
03fe75251b
fix(test runner): show tests as interrupted when maxFailures stops them (#16178)
Previously, we marked these tests as skipped, and it was sometimes
confusing, because they did actually run and produce some output/artifacts.
2022-08-03 15:25:25 -07:00
Yury Semikhatsky
165ab9bfa9
test: update macos 12 test expectations (#16223) 2022-08-03 14:51:11 -07:00
Max Schmitt
9795a4ba60 test: mark again some Android tests as fixme 2022-08-03 10:51:45 +02:00
Yury Semikhatsky
bdba9dbaf9
test: skip should capture canvas changes on macos <= 11 (#16182) 2022-08-02 17:49:19 -07:00
Yury Semikhatsky
0bab5c60c4
test: content-length is recomputed for postBody override (#16169) 2022-08-02 13:55:52 -07:00
Max Schmitt
a2fc636f8e
test: unskip working Android tests (#16171) 2022-08-02 22:51:10 +02:00
Dmitry Gozman
445fe032f5
feat(test runner): separate interrupted status from skipped (#16124) 2022-08-02 12:55:43 -07:00
Max Schmitt
153670978d
chore: fix Android 13 compatibility (#16139) 2022-08-02 18:22:27 +02:00
Dmitry Gozman
3112edb4ca
feat(test runner): TestProject.projectSetup (#16063)
`projectSetup` is a project-scoped alternative to `globalSetup`.
It is only executed if at least one test from the project is scheduled to run.
2022-08-01 09:01:23 -07:00
sand4rt
8027bd375e
chore(ct): removed unused createApp function (#16079) 2022-07-31 14:35:05 -07:00
Pavel Feldman
5a79054544
feat(innerloop): allow reusing browsers over the remote connection (#16065) 2022-07-31 14:31:17 -07:00
sand4rt
557db4c35e
chore(ct): mount result refactor (#16067) 2022-07-29 20:07:23 -07:00
Yury Semikhatsky
d05044f366
test: console messages are dispatched when page has workers (#16066) 2022-07-29 16:58:25 -07:00
Yury Semikhatsky
7d306bbc66
feat: return value from step (#16060) 2022-07-29 15:16:07 -07:00
Dmitry Gozman
e830fe821d
feat(test runner): introduce test.describe.fixme (#16059) 2022-07-29 12:44:22 -07:00
Dmitry Gozman
809002df60
fix(events): avoid firing lifecycle events twice (#16055)
Previously, when some iframe started/finished a new navigation, we
could have removed and then re-addded load/domcontentloaded on the
main frame.

Drive-by: unflake wheel test in Firefox.
2022-07-29 12:44:04 -07:00
Yury Semikhatsky
af8e3e7afa
feat: print response text when toBeOK fails (#16040) 2022-07-29 11:46:48 -07:00
sand4rt
4a47e275c8
feat(ct): vue set props (#16058) 2022-07-29 11:45:06 -07:00
Dmitry Gozman
62e4e80599
feat(test runner): show the number of fatal errors at the end (#15975) 2022-07-28 14:46:21 -07:00
Dmitry Gozman
829a1b8444
fix(isVisible): make sure isVisible check is atomic (#16004) 2022-07-28 14:09:36 -07:00
Max Schmitt
a089bf3df5
chore(test-runner): better error message if page gets used inside beforeAll (#16012) 2022-07-28 23:07:28 +02:00
Dmitry Gozman
3d89506704
fix(fixtures): make undefined option mean "default value" (#16026)
In the following example, `locale` inside the `describe`
would be reverted to the default value:

```js
test.use({ locale: 'en-GB' });

test.decsribe(() => {
  test.use({ locale: undefined });
});
```
2022-07-28 12:57:05 -07:00
Max Schmitt
6482ff7a7f
chore: roll Electron to 16.2.8 (#16017) 2022-07-28 15:41:32 +02:00
Pavel Feldman
8c190c3e09
feat(testId): expose persistent test id (#16003) 2022-07-27 20:17:19 -07:00
Yury Semikhatsky
a128dda84e
feat(webkit): roll to r1691 (#16000) 2022-07-27 16:39:01 -07:00
Pavel Feldman
2eff208e54
feat(ct): allow unmounting components (#15974) 2022-07-27 15:12:36 -07:00
Dmitry Gozman
607910f6aa
fix(isVisible): do not retarget visibility checks (#16002)
We used to go to the enclosing button (inherited from click logic), which is unexpected.
2022-07-27 14:02:35 -07:00
Yury Semikhatsky
93b255ce90
test: unflake wheel test (#16001) 2022-07-27 13:27:46 -07:00
Eran Rom
68d558f896
chore(default context): Apply context workaround only when browser and scenario match (#15904) 2022-07-27 12:23:22 -07:00
Dmitry Gozman
a94fe361a2
test: unflake a few tests (#15959) 2022-07-27 11:27:53 -07:00
Dmitry Gozman
6009804e0e
Revert "fix(test runner): ignore undefined values in fixtures definit…ions (#15119)" (#15979)
Revert "fix(test runner): ignore undefined values in fixtures definitions (#15119)"

Revert commit d7b63fa0b4.
Add a test for the broken behavior.
2022-07-27 08:51:45 -07:00
Yury Semikhatsky
24ed337e1e
test: wheel event is dispatched to svg element (#15967) 2022-07-26 14:21:36 -07:00
Dmitry Gozman
cd9dccbe27
fix(test runner): serial suites inside parallel suite should run in parallel (#15769) 2022-07-26 13:38:25 -07:00
Dmitry Gozman
c0d78c5642
fix(runner): friendly error message instead of "digests do not match" (#15939) 2022-07-26 08:53:32 -07:00
Pavel Feldman
9a00c7319b
test: add a passing test for issue (#15928) 2022-07-25 15:31:00 -07:00
Pavel Feldman
6fcc916f00
test: passing test for issue 15891 (#15930) 2022-07-25 15:28:14 -07:00
Dmitry Gozman
9ce727c936
feat(list reporter): number test runs to see testing progress (#15693)
Drive-by: replace a few colors.gray with colors.dim for better contrast.
2022-07-25 13:22:25 -07:00
Max Schmitt
004cd9273c
fix(test-runner): multiple webServer types (#15901) 2022-07-25 10:39:06 +02:00
Dmitry Gozman
4bec6309df
fix(lifecycle): recalculate lifecycle on iframe detach (#15812)
It could be that iframe was blocking some event, like load or networkidle,
and we never updated the lifecycle after the iframe was detached. This
lead to goto and other navigation commands to never resolve.
2022-07-22 19:44:02 -07:00
Dmitry Gozman
f22d611ec5
test: rebaseline page-event-crash test (#15817) 2022-07-20 16:12:54 -07:00
Dmitry Gozman
ba3c8ffa5c
test: make sure browser crashes in CLI tests are marked as such (#15821) 2022-07-20 15:32:57 -07:00
Dmitry Gozman
f954891491
fix(runner): globalTeardown without globalSetup should work (#15814) 2022-07-20 12:41:35 -07:00
Max Schmitt
501b24a078
test: android test enhancements (#15797) 2022-07-20 18:27:08 +02:00
Playwright Service
919bf1f805
feat(chromium-tip-of-tree): roll to r1026 (#15795)
Co-authored-by: Max Schmitt <max@schmitt.mx>
2022-07-19 23:20:37 +02:00
Dmitry Gozman
6a60de1b2f
test: add failing test for traces after interruption (#15796) 2022-07-19 13:50:52 -07:00
Dmitry Gozman
7396a20277
test: display:contents should be scrollable into view (#15765) 2022-07-18 13:36:45 -07:00
Max Schmitt
c3af05eb26
test: enhance tracing tests to cover edge cases (#15709) 2022-07-15 13:31:58 -07:00
Dmitry Gozman
b637ce1250
test: skip tests that modify env in non-default mode (#15725) 2022-07-15 13:06:19 -07:00
Dmitry Gozman
a56d801352
fix(test runner): show fixture name when worker times out (#15724) 2022-07-15 13:05:48 -07:00
Pavel Feldman
a198b6d753
chore: reparent context objects into the object (#15689) 2022-07-15 08:56:47 -07:00
Ross Wollman
732b8f4760
chore: PW_EXPERIMENTAL_SERVICE_WORKER_NETWORK_EVENTS and doc clarifications (#15688) 2022-07-14 17:40:22 -07:00
Max Schmitt
4bba41ab8f
Revert "feat(matchers): add toContainClass (#15491)" (#15670)
This reverts commit e4debd0bf6.
2022-07-14 22:03:37 +02:00
Yury Semikhatsky
cb81d23ad6
fix(selectors): max hasText regex against nested nodes (#15638) 2022-07-14 08:23:11 -07:00
Ross Wollman
9387327a97
docs: Service Worker examples and explanations (#15595)
Resolves #15582.
2022-07-13 16:42:46 -07:00
Pavel Feldman
d02914fa3a
chore: relax transpilation criteria to allow ems imports of .vue files (#15592) 2022-07-13 16:11:38 -07:00
Dmitry Gozman
22ead7b5ab
Revert "fix(test runner): handle istty in line reporter (#15455)" (#15633)
This reverts commit 767babc3a2.
2022-07-13 15:11:56 -07:00
Dmitry Gozman
51c3ea55ed
Revert "feat(line reporter): show testing progress (#15547)" (#15631)
This reverts commit e76d9b3b28.
2022-07-13 13:54:26 -07:00
Pavel Feldman
5a0adbdbbc
chore: bump vite-svelte (#15628) 2022-07-13 12:57:29 -07:00
Yury Semikhatsky
3436e64b75
feat: dispatch wheel event (#15593) 2022-07-12 17:17:45 -07:00
Pavel Feldman
00848b1bcf
fix(ct): restore public folder deployment (#15594) 2022-07-12 16:14:48 -07:00
Yury Semikhatsky
a6daf600a9
fix: support hasColors and getColorDepth in worker (#15590) 2022-07-12 14:47:14 -07:00
Pavel Feldman
3939b9f36e
chore: migrate component testing to server-side page reuse (#15477) 2022-07-12 14:30:24 -07:00
Max Schmitt
e4debd0bf6
feat(matchers): add toContainClass (#15491) 2022-07-12 23:17:10 +02:00
Yury Semikhatsky
008a85b143
feat(webkit): roll to r1681 (#15577) 2022-07-12 14:07:56 -07:00
Ross Wollman
8858162692
fix: Service Workers+Interception: missing page-level Network events (#15549)
Fixes #15474.

Notes:

* page-level requests that are also handled by a SW's fetch handler, should not be interceptable at the page-level
* `Network.requestWillBeSent` does not provide enough metadata for Playwright to fire the `request` event at that time, so it does it as soon as it gets to the end of the request lifecycle
2022-07-12 13:23:35 -07:00
Max Schmitt
7e1801bd30
fix(matchers): repeating values lead to no error (#15559) 2022-07-12 20:03:27 +02:00
Pavel Feldman
f3d3231b29
feat(ct): allow configuring apps per test (#15551) 2022-07-12 09:37:33 -07:00
Dmitry Gozman
64353c4b96
fix(test runner): make sure worker cleans up if last test was skipped (#15552) 2022-07-11 21:33:56 -07:00
Dmitry Gozman
e76d9b3b28
feat(line reporter): show testing progress (#15547)
Line reporter now shows stats in addition to the test name:
```
[chromium] › page/page-click-react.spec.ts:108:1 › should not retarget when element changes on hover
[21/93] Passed: 17 Flaky: 0 Failed: 0 Skipped: 4 (7s)
```
2022-07-11 20:44:50 -07:00
Ross Wollman
60b34e9091
test: page-level request/response events with SW fetch handlers and interception (#15544)
Relates #15474.
2022-07-11 16:32:42 -07:00
Yury Semikhatsky
87531289e2
test: case insensitive regex in hasText (#15540) 2022-07-11 14:24:08 -07:00
Ross Wollman
6219e945d5
test: cover Service Worker update (#15537) 2022-07-11 13:57:41 -07:00
Ross Wollman
2ee235ff1b
test: fix flaky SW tests (#15536)
The Service Worker tests had some races in them that only were apparent
on the bots. To repro, I ran the tests with:

```
xvfb-run taskset -c 0 npm run ctest -- chromium.spec.ts --headed --reporter=line --repeat-each 10 --workers=1
```

Just because Playwright has a SW, does not mean the worker has fully loaded
it's main/import scripts.
2022-07-11 13:56:38 -07:00
Pavel Feldman
3a9b29f46c
feat(ct-vue): allow configuring apps per test (#15538) 2022-07-11 13:54:05 -07:00
Pavel Feldman
5fc637e44a
chore: experimental resetForReuse (#15432) 2022-07-11 13:10:08 -07:00
Meir Blachman
a5571c9981
test: service worker main request/response should be marked correctly (#15482) 2022-07-11 12:29:49 -07:00
Max Schmitt
98ea418124
fix(expect): expect.not types (#15487) 2022-07-11 18:31:53 +02:00
Pavel Feldman
dd0eb5fb1d
fix(ct): support components w/o mount options (#15501) 2022-07-09 11:22:49 -07:00
Yury Semikhatsky
2850aae924
fix(webkit): use new protocol methods for bindings (#15503) 2022-07-08 15:11:29 -07:00
Dmitry Gozman
6dc4a51c92
fix(test runner): more friendly test duration (#15476)
fix(test runner): more firendly test duration

Reported test duration now does not include time spent in
`beforeAll`, `afterAll` and fixtures that have a separate timeout.

This is to avoid different reported test execution time,
depending on the test execution order.
2022-07-08 11:45:44 -07:00
Dmitry Gozman
894ead5198
fix(test runner): mention fixture in worker teardown timeout error message (#15499) 2022-07-08 11:44:37 -07:00
Yury Semikhatsky
5f42725358
feat(webkit): roll to r1674 (#15384)
Also reverted screenshot test changes from 4de14e7 as the breaking change was reverted upstream in Revert [251706@main] getComputedStyle(img).height returns string of a rounded int not a float WebKit/WebKit#1902
2022-07-08 11:07:06 -07:00
Yury Semikhatsky
51aa5fea78
fix: colors in console output from worker (#15421)
Color highlights regressed in #14455

Fixes #15366
2022-07-07 17:56:41 -07:00
Ross Wollman
799d4703bc
feature(test-runner): multiple web servers (#15388)
Fixes #8206.

Since #8206 is a long-awaited (~ 1 year old), popular (~ 45 reactions, frequently requested in community channels, etc.), this PR aims to unblock folks.

Notably, we do not innovate on the `webServer` API, despite knowing we're not in love with it. We'll save the innovation for either Plugins or a new `LaunchConfigs` option. (We haven't yet arrived at a Plugin API we like, and instead of launching a new option guessing what the "better" launchConfig API would be, let's wait and see how folks use this new Array-variant of `webServer` which—despite its name—can be used for non-Web Server launches!
2022-07-07 15:27:21 -07:00
Max Schmitt
86a65a03e4
chore: add CI to default user agent (#15450) 2022-07-07 21:43:47 +02:00
jfgreffier
efec0261a1
feat(inspector): add keyboard shortcuts (#12014) (#15326) 2022-07-07 11:25:48 -07:00
Playwright Service
adf03eaa4c
feat(chromium-tip-of-tree): roll to r1023 (#15447)
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Max Schmitt <max@schmitt.mx>
2022-07-07 19:21:58 +02:00
Dmitry Gozman
767babc3a2
fix(test runner): handle istty in line reporter (#15455)
When running without tty, line reporter outputs a line for each
percent of the tests, thus limiting the output to ~100 lines.

In addition, reporters now support PLAYWRIGHT_LIVE_TERMINAL
env variable to force tty mode.
2022-07-07 09:55:12 -07:00
Andrey Lushnikov
ddad16faf8
test: enable test for page unhandled error in ff (#15451)
Fixes #14165
2022-07-07 08:17:57 -07:00
Playwright Service
72c3574943
feat(firefox-beta): roll to r1335 (#15433)
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Andrey Lushnikov <aslushnikov@gmail.com>
2022-07-07 05:49:40 -07:00
Dmitry Gozman
89c16cbc8b
feat(runner): anonymous describes (#15424)
Useful to set some options without coming up with an artificial name.

```js
test.describe(() => {
  test.use({ colorScheme: 'dark' });

  test('my test', () => {});
})
```
2022-07-06 13:54:11 -07:00
Dmitry Gozman
c02d83fb11
fix(runner): filter only after duplicate titles check (#15401) 2022-07-06 12:51:26 -07:00
Dmitry Gozman
0142bdce76
test: mark driver mode as remote (#15402)
Otherwise we are passing buffers as objects, not as base64.
2022-07-06 09:20:07 -07:00
Yury Semikhatsky
00d5d26f3b
test: relax expectation to work for webkit (#15397) 2022-07-05 22:15:40 -07:00
Dmitry Gozman
ee82837fb5
fix(fixtures): do not run user function when required fixture has failed (#15385)
Currently, it is possible to run a function, e.g. a second `beforeEach` hook,
that will receive `null` for the fixture that has already failed before.

This PR skips running any user function that uses a fixture that has already
failed, just like if the fixture would be initialized again and failing for
the second time.
2022-07-05 17:15:28 -07:00
Andrey Lushnikov
3b269d0ed7
browser(ff-beta): roll Firefox-Beta to 103.0b5 (#15394) 2022-07-05 15:47:35 -07:00
Andrey Lushnikov
530867e8ab
browser(firefox): report unhandled rejections for Firefox (#15391)
References #14165
2022-07-05 15:46:28 -07:00
Dmitry Gozman
d60b8aba23
fix(codegen): handle more context options (#15319)
The following options now work across languages:
- `recordHar`
- `serviceWorkers`

In addition, object properties are now sorted alphabetically.
Drive-by: fixed `--target` help message to include all available targets.
2022-07-05 13:30:46 -07:00
Ross Wollman
8cdc4513f1
test: repro for load event fired too often (#15320)
Repro derived from #15086. This does not look like a recent regression (if any at all) as it reproduces in both 1.22 and 1.23.
2022-07-05 11:09:36 -07:00
Ross Wollman
981f5ab8c1
fix(test-runner): apply fixme v. skip annotations (#15277)
Currently, if `text.fixme()` or `test.skip()` is used within a test, we
add a `fixme` or `skip` annotation. However, if the wrapper style is
used:

```
test.fixme('should work', () => {…})
```

the annotations were missing. This change adds annotations for the
above.

These annotations are important for reporting purposes and knowing
exactly what flavor of "skipped" was used.

Fixes #15239.
2022-07-05 10:46:30 -07:00
Dmitry Gozman
2a805c1f1c
fix(line reporter): print currently running test (#15339) 2022-07-05 09:07:55 -07:00
Sean Doyle
ef5a56ce18
feat(evaluate): serialized URL instances (#15023)
Add support for returning [URL][] instances from `page.evaluate` calls.
Follow the patterns established by `Date` and `RegExp` serialization.

[URL]: https://developer.mozilla.org/en-US/docs/Web/API/URL
2022-07-05 17:53:02 +02:00
Dmitry Gozman
71dcad3b2e
test: fix some flaky failures (#15314)
- Never use open shadow root for highlight. This messes up
  our selectors that accidentally match internal preview elements.
- Remove failing electron test that we do not care about.
- Skip `channels.spec.ts` in non-default mode.
2022-07-01 13:57:33 -07:00
Ross Wollman
6cb3236acd
feat(chromium): Service Worker Network Instrumentation and Inspection (#14716)
Adds Chromium support for Service Worker Networking (interception/routing, Request/Response events, and HAR).

Resolves #1090.
Depends on #14714 and #14714.
Supercedes #14321.
Follow up #14711.

Landed upstream patches:
- https://chromium-review.googlesource.com/c/chromium/src/+/3510917
- https://chromium-review.googlesource.com/c/chromium/src/+/3526571
- https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/3566669
- https://chromium-review.googlesource.com/c/chromium/src/+/3544685
- https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/3610924
- https://chromium-review.googlesource.com/c/chromium/src/+/3689949
2022-07-01 12:49:43 -07:00
Pavel Feldman
295ea7a3cb
fix(config): fall back to context options (#15309) 2022-07-01 10:20:13 -07:00
Dmitry Gozman
82032be368
chore(server): validate/convert protocol both ways (#14811)
Previously, we only validated/converted on the way to the server,
but not from the server.

Validating both ways catches issues earlier, and allows us to
perform automatic conversions, for example only converting
buffers to base64 when sending over wire.
2022-07-01 09:58:07 -07:00
Pavel Feldman
c4d2342339
fix(config): fall back to launch options (#15293) 2022-07-01 08:12:57 -07:00
Dmitry Gozman
5083da9d98
test: unflake "should truncate long test names" (#15286) 2022-06-30 20:24:00 -07:00
Dmitry Gozman
b86926e691
fix(test runner): update timeout error messages (#15117)
Some of the current timeout error messages are confusing, because they do not suggest that the issue is most likely a slow test. This PR updates timeout messages as follows:
- Test timeout of 30000ms exceeded.
- Test timeout of 30000ms exceeded while setting up "browser".
- Test timeout of 30000ms exceeded while tearing down "context".
- Test timeout of 30000ms exceeded while setting up "playwright configuration".
- Test timeout of 30000ms exceeded while running "beforeEach" hook.
- Test timeout of 30000ms exceeded while running "afterEach" hook.
- "beforeAll" hook timeout of 30000ms exceeded.
- "afterAll" hook timeout of 30000ms exceeded.
- Worker teardown timeout of 30000ms exceeded.
- "skip" modifier timeout of 30000ms exceeded.
- Fixture "myCustomFixture" timeout of 5000ms exceeded.
2022-06-30 17:05:08 -07:00
Dmitry Gozman
dc1d8dc3da
test: improve a few test runner tests that time out (#15287) 2022-06-30 17:03:01 -07:00
Max Schmitt
3d1d723c56
fix(esm): show codeframe when errors get reported (#15262) 2022-06-30 21:17:08 +02:00
Yury Semikhatsky
4de14e7d2c
feat(webkit): roll to r1673 (#15276) 2022-06-30 12:07:33 -07:00
Dmitry Gozman
f0b3b280a5
test: increase small timeouts to accomodate two workers (#15257) 2022-06-30 09:05:39 -07:00
Max Schmitt
71fc53bbf8
fix(matchers): toHaveClass on SVG elements (#15267)
Fixes #15260
2022-06-30 07:01:26 -07:00
Max Schmitt
b0bb99f413
test: unflake React.js and Vue tests (#15264)
React takes time to render on overbooked machines. Let's use web-first assertions to test that they work as expected.

Error: expect(received).toBe(expected) // Object.is equality

Expected: 1
Received: 0
    at /home/runner/work/playwright/playwright/tests/page/selectors-react.spec.ts:34:71

<img width="887" alt="image" src="https://user-images.githubusercontent.com/17984549/176618419-7653e5d8-4853-4618-af3b-2698827879d2.png">
2022-06-30 07:00:05 -07:00
Max Schmitt
f2ccd45cfd
test: unskip viewport size test (#15268) 2022-06-30 15:58:11 +02:00
Dmitry Gozman
da9d68265b
test: disable network sizes tests on old electron (#15252) 2022-06-29 17:50:42 -07:00
Ross Wollman
9fb80c905b
test: match more of output to ensure source map support is good (#15206)
Co-authored-by: Max Schmitt <max@schmitt.mx>
2022-06-29 22:26:48 +02:00
Max Schmitt
b3c31f5b13
fix: do not throw on removeListener without listener (#15224)
Co-authored-by: Andrey Lushnikov <aslushnikov@gmail.com>
2022-06-29 13:53:13 +02:00
Dmitry Gozman
8220ab1379
feat(firefox): roll ff 1328 and ff-beta 1330 (#15185) 2022-06-29 03:04:46 -07:00
Max Schmitt
e34fa4feeb
fix(evaluate): fallback to toJSON if it exists when serializing (#15188)
* fix(evaluate): fallback to toJSON if it exists when serializing

* fix test in ff

* window.performance test
2022-06-29 08:07:32 +02:00
Pavel Feldman
6a8d835145
chore: allow updating har while routing (#15197) 2022-06-28 15:09:36 -07:00
Yury Semikhatsky
bcb013d240
test: goForward is flaky in firefox (#15182) 2022-06-28 09:15:54 -07:00
Dmitry Gozman
79163e802a
fix(test runner): screenshot immediately after failure (#15159)
Previously, screenshot was taken after hooks and fixtures teardown.
However, hooks can easily modify the state of the page, and
screenshot would not reflect the moment of failure.

Instead, we take screenshots immediately after the test function
finishes with an error.
2022-06-27 17:46:39 -07:00
Dmitry Gozman
d7b63fa0b4
fix(test runner): ignore undefined values in fixtures definitions (#15119)
These mean "I don't want to specify this fixture/option"
instead of "I want the value of undefined", aligned with how TypeScript works.
We already do similar things in the config.
2022-06-27 11:31:41 -07:00
Dmitry Gozman
a93db3cf11
fix(reporter): line reporter should not swallow half-line stdout (#15114) 2022-06-27 11:25:42 -07:00
Playwright Service
fab12c70f7
feat(chromium): roll to r1012 (#15111)
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Andrey Lushnikov <aslushnikov@gmail.com>
2022-06-27 10:01:10 +02:00
Yury Semikhatsky
53404ad167
test: request method is overridden (#15089) 2022-06-24 16:26:12 -07:00
Dmitry Gozman
660516d22a
fix(network): make allHeaders wait until all headers are available (#15094)
fix(network): make allHeaders wait until all header are available

Before, calling `allHeaders()` from `page.on('request')` would yield
provisional headers instead.

With these changes:
- In Firefox, all headers are available immediately.
- In Chromium, all headers are available upon requestWillBeSentExtraInfo.
- In WebKit, all headers are available upon responseReceived.
- In all browsers, intercepted requests use "provisional" headers
  as all headers, since there is no network stack to change the headers.

Drive-by: migrated Chromium to `hasExtraInfo` flags that simplifies
the logic quite a bit.
2022-06-24 13:51:09 -07:00
Dmitry Gozman
2f11807552
fix(click): no element should intercept events over the target frame (#15043)
When target element is inside a non-main frame, there could be an
overlay in some of the parent frames that intercepts pointer events.
However, we never detected this case.
2022-06-24 13:17:25 -07:00
Pavel Feldman
ae6f48c4b8
fix(route): match against updated url while chaining (#15112) 2022-06-24 10:48:16 -07:00
Pavel Feldman
1ce1246a0e
test: stress runners (#15078) 2022-06-23 15:55:12 -07:00
Max Schmitt
88695be397
test: unflake launcher CR extensions test (#15064)
chore: unflake launcher CR extensions test
2022-06-23 09:36:33 +02:00
Dmitry Gozman
a46aaee6e8
fix(reporters): truncate long test titles from the start (#15052)
Most useful information is at the end - test name, current step, retry.
We truncate the repetitive project + suites at the start.
2022-06-22 17:03:54 -07:00
Pavel Feldman
7bd72716f9
feat(har): introduce the slim mode (#15053) 2022-06-22 14:44:12 -07:00
Dmitry Gozman
033c250f6d
fix(har): remove types/har.d.ts, update har.ts per spec (#15046)
Drive-by: typo fix in `notFound` option name.
2022-06-22 12:16:29 -07:00
Yury Semikhatsky
4f5954c302
test: API request trace has postData (#15041) 2022-06-22 09:13:29 -07:00
Max Schmitt
fb441faab1
fix: request/response events with backgroundPages (#15032) 2022-06-22 17:23:51 +02:00
Max Schmitt
d40761541f
test: update accessibility test expectations (#15029) 2022-06-22 09:20:51 +02:00
Pavel Feldman
9525bedc1f
feat(har): re-add routeFromHAR (#15024) 2022-06-21 22:12:37 -07:00
Dmitry Gozman
c02e165eb6
fix(test runner): toHaveScreenshot should not overwrite matching expectations (#15028)
Even in the `--update-snapshots` mode we should keep existing files if
they are matching under the threshold, to avoid needless churn.
2022-06-21 18:01:25 -07:00
Ross Wollman
25bc4c4ac7
tests: async fallback handlers (#15027) 2022-06-21 16:53:36 -07:00
Yury Semikhatsky
f2b3491705
test: skip page-click-scroll on linux headed too (#15025) 2022-06-21 14:51:23 -07:00
Playwright Service
c0c1ada9fe
feat(webkit): roll to r1667 (#14960) 2022-06-21 14:04:52 -07:00
Dmitry Gozman
6af6fab84a
fix(har): internal redirect in renderer-initiated navigations (#15000)
fix(har): internal redirect in renderer-initiated navigations
2022-06-21 11:01:01 -07:00
Max Schmitt
5b5d24a7a5
chore: roll stable test-runner to 1.23.0-alpha-1655778679000 (#15015) 2022-06-21 18:53:38 +02:00
Pavel Feldman
3fa5d1d8ec test(har): suppress route after failure on android & electron 2022-06-21 09:16:50 -07:00
Pavel Feldman
883e4d449a
test(har): add more har tests (#14997) 2022-06-20 17:22:32 -07:00
Dmitry Gozman
e3da3ebfa4
feat(har): do not expose HAR types, remove HARResponse fulfill (#14992) 2022-06-20 15:19:54 -07:00
Dmitry Gozman
5397394653
feature(har): add testOptions.har (#14991)
Can now be used with `test.use({ har })`.
Also added more tests for latest har features.
2022-06-20 13:37:31 -07:00
Ross Wollman
c3bbf8963d
test: installation test for CDN failover (#14963) 2022-06-20 11:24:23 -07:00
Pavel Feldman
e5372c3421
chore: move har router into local utils (#14967) 2022-06-18 20:24:55 -07:00
Pavel Feldman
e8070ee1b2
chore: warn users on clashing test output and html reporter folders (#14964) 2022-06-18 15:47:26 -07:00
Yury Semikhatsky
ed6b14f0f4
fix(har): restart redirected navigation (#14939) 2022-06-17 21:17:30 -07:00
Pavel Feldman
030e7d211c
chore(har): allow replaying from zip har (#14962) 2022-06-17 16:11:22 -07:00
Ross Wollman
b9114f9cbc
fix(html-reporter): file-browser friendly extensions (#14943)
Fixes #14904.

This is done to make looking at the raw contents of the report
friendlier when using a file browser. However, it should be noted, the
public API of the HTML Reporter makes no guarantees of its contents
structure/layout/naming-conventions.
2022-06-17 08:09:49 -07:00
Pavel Feldman
e9069bef6b
fix(body): fetch body explicitly for prefetched scripts (#14941) 2022-06-16 22:07:43 -07:00
Pavel Feldman
be64e9ce66
chore(har): attach resources for .zip hars (#14938) 2022-06-16 18:27:25 -07:00
Dmitry Gozman
2e646ef92a
test: fix multiple focus highlights in ff codegen tests (#14937) 2022-06-16 17:49:08 -07:00
Pavel Feldman
245c33a5d4
feat(har): allow storing content as separate files (#14934) 2022-06-16 16:33:32 -07:00
Playwright Service
c17dbe3ab3
feat(chromium-tip-of-tree): roll to r1016 (#14912)
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Max Schmitt <max@schmitt.mx>
2022-06-16 19:36:37 +02:00
Dmitry Gozman
cdb862767f
fix(page): "load" event should fire before "waitForLoadState" resolves (#14897)
Currently, `loadstate` and `load` are two separate events in the protocol,
and are fired in this order. As a result, `waitForLoadState()` sometimes
resolves before the `'load'` event is fired, which is unexpected.

Also fixes a flaky test that assumed `load` event comes after `domcontentloaded`
for the empty page, which is not always a case in Chromium.
2022-06-16 09:35:53 -07:00
Yury Semikhatsky
c349c1d57f
feat: newContext.har (#14892)
Replaced {Page,BrowserContext}.(un)routeFromHar with browser.newContext.har.
2022-06-15 16:35:44 -07:00
Pavel Feldman
225ab68d1c
fix(test): fix the route test (#14890) 2022-06-15 16:15:45 -07:00
Yury Semikhatsky
259c8d64a5
feat: Page.routeFromHar (#14870) 2022-06-15 08:41:46 -07:00
Yury Semikhatsky
e00a26a11d
feat(route): fulfill with HARResponse (#14865) 2022-06-14 15:07:22 -07:00
Dmitry Gozman
e640f553b5
fix(connectOverCDP): make sure downloads work in default context (#14864) 2022-06-14 12:36:35 -07:00
Pavel Feldman
9cf068ad06
feat(fallback): allow falling back w/ overrides (#14849) 2022-06-13 17:56:16 -07:00
Ross Wollman
3974d1b359
revert(#14797): fix(test runner): collect artifacts when calling browser.close() (#14846)
Revert "fix(test runner): collect artifacts when calling `browser.close()` (#14797)"

This reverts commit c7a28ac7e9.

Looks like it broke a bunch of tracing tests:

* Good: https://github.com/microsoft/playwright/runs/6838098316?check_suite_focus=true
* First Bad: https://github.com/microsoft/playwright/runs/6838104691?check_suite_focus=true
* Still bad on HEAD (88664c39c9): https://github.com/microsoft/playwright/runs/6868333846?check_suite_focus=true
2022-06-13 17:20:59 -07:00
Pavel Feldman
88664c39c9
chore: remove esm error interception, it only confuses users (#14829) 2022-06-13 12:32:42 -07:00
Pavel Feldman
dcdd3c3cdb
feat(route): explicitly fall back to the next handler (#14834) 2022-06-13 12:30:51 -07:00
Dmitry Gozman
05c56f5942
test: fix video tests on headed mac (#14841) 2022-06-13 11:53:31 -07:00
Max Schmitt
e23960e8b2 test: make Electron bots green 2022-06-13 12:20:57 +02:00
Pavel Feldman
41529bb1a5
chore: respect sigint in global setup (#14805) 2022-06-12 13:06:00 -07:00
Pavel Feldman
c7b3f4646f
fix(strict): escape css class names when generating selectors (#14810) 2022-06-12 09:39:30 -07:00
Pavel Feldman
380e787065
fix(ct): respect boolean shorthands (#14798) 2022-06-10 17:34:21 -07:00
Pavel Feldman
30f3d526eb
feat(server): consider 3XX, 400-403 responses as started server 2022-06-10 14:47:29 -07:00
Dmitry Gozman
7c0bff15ca
feat(fulfill): improve fulfilling from har (#14789)
- `har` option is now an object `{ path, fallback }`.
- Allows falling back to `abort()`, `continue()` or throwing.
- Matches based on url + method.
- Follows redirects in the HAR file.
- Nice error/stack when throwing.
- Tests.
2022-06-10 14:26:45 -07:00
Dmitry Gozman
c7a28ac7e9
fix(test runner): collect artifacts when calling browser.close() (#14797)
Previously, we only collected artifacts on context closure.
However, in serial mode it is possible to close the browser instead.
2022-06-10 14:11:34 -07:00
Dmitry Gozman
868e00253f
feat(har): store textual content without base64 encoding (#14772) 2022-06-10 14:10:52 -07:00
Pavel Feldman
7a568a2952
feat(route): chain routes (#14771) 2022-06-10 09:06:39 -07:00
Playwright Service
a98394033c
feat(chromium-tip-of-tree): roll to r1014 (#14742)
Co-authored-by: Max Schmitt <max@schmitt.mx>
2022-06-10 15:59:49 +02:00
Sergio Freire
060cd9d97c
feat(junit reporter): link testcases to Xray test issues and provide additional metadata for Xray Test Management (#11374)
Co-authored-by: Sergio Freire <sergio.freire@xpand-it.com>
2022-06-10 10:31:48 +02:00
Sergio Freire
d193bd64c4
feat(junit reporter): add option to force usage of CDATA sections for content in XML elements (#12744)
Co-authored-by: Sergio Freire <sergio.freire@xpand-it.com>
2022-06-10 10:25:52 +02:00
Yury Semikhatsky
873307a39d
test(firefox): skip more video tests when tracing is on (#14768) 2022-06-09 14:21:21 -07:00
Dmitry Gozman
652ec2f1fa test: split accname, fix select preventing context closure 2022-06-09 13:58:22 -07:00
Yury Semikhatsky
7ce17a97b1
test: capture canvas changes test passes after last roll (#14760) 2022-06-09 13:55:46 -07:00
Max Schmitt
98c34ac270 test: make Android green 2022-06-09 22:53:37 +02:00
Pavel Feldman
0711a8b169 test(ff): narrow down bounding box skips 2022-06-09 13:47:58 -07:00
Pavel Feldman
211fae295f test(electron): skip fromServiceWorker 2022-06-09 13:40:42 -07:00
Dmitry Gozman
e4c60d47b1
test: fix pause.spec on tracing bots (#14766) 2022-06-09 13:34:01 -07:00
Pavel Feldman
833d332fa3
test(ff): fix headed tests (#14764) 2022-06-09 12:56:07 -07:00
Max Schmitt
b4c8db68d2
test: fix electron tests (#14744) 2022-06-09 14:54:51 +02:00
Max Schmitt
3853014fa7
chore: add ubuntu 22 support (#14588) 2022-06-09 13:20:18 +02:00
Dmitry Gozman
e975aef961
feat(route): fulfill from har (#14720)
feat(route): fulfill from har

This allows to use pre-recorded HAR file to fulfill routes.
2022-06-08 20:29:03 -07:00
Pavel Feldman
067d5ac81a test(electron): revert bogus fix 2022-06-09 01:33:11 -08:00
Pavel Feldman
13762c82f9
tests: nuke the failing/flaky test (#14724) 2022-06-08 17:21:19 -08:00