4245 Commits

Author SHA1 Message Date
Pavel Feldman
54aca430b0
chore: prepare to reuse test server from ui mode (4) (#29995) 2024-03-19 13:00:49 -07:00
jonghoonpark
b929c0d8f7
feat(ui-mode): add key shortcuts for playwright uI test runner (#29868) 2024-03-19 12:36:42 +01:00
Dmitry Gozman
be1af15d57
feat: always enable ESM loader with the new API (#29991)
It does not require a process restart anymore, so safe to enable.

Fixes #29747.
2024-03-18 21:54:25 -07:00
Dmitry Gozman
b41b802662
fix(test runner): avoid dependency tracking colliding between esm and cjs (#29994)
When collecting dependencies both from CJS loader and from ESM loader,
the latter would overwrite the dependencies set instead of appending.

Also make sure cts/cjs/mts/mjs are all supported equally.

References #29747.
2024-03-18 17:17:58 -07:00
Dmitry Gozman
70e6cdac57
feat: enterFrame/exitFrame (#29992)
This introduces `Locator.enterFrame()` and `FrameLocator.exitFrame()` to
convert between locator and frame locator.

Fixes #29336.
2024-03-18 13:42:08 -07:00
Max Schmitt
a6d1fb93de
fix(trace-viewer): encode attachment filenames as UTF-8 (#29993)
Fixes https://github.com/microsoft/playwright/issues/29967

Tested in Firefox, Chromium, and Safari. This now leads to "good
attachment names" in Chromium and Safari, for Firefox, it won't produce
attachments, it will open them inline, but this is not a regression, was
before like that already.

See here for the spec:
https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Disposition#filename_2

---------

Signed-off-by: Max Schmitt <max@schmitt.mx>
2024-03-18 21:26:45 +01:00
Yury Semikhatsky
35db70ea1d
chore: trim file names longer than 60 chars (was 100) (#29725)
Test-specific output dir and snapshot names are trimmed to 60 chars
instead of just 100. The snapshot names are still trimmed at 100 chars
for backwards compatibility.


Reference https://github.com/microsoft/playwright/issues/29719
2024-03-18 12:53:15 -07:00
Pavel Feldman
ef4438ee99
chore: prepare to reuse test server from ui mode (2) (#29966) 2024-03-18 09:59:02 -07:00
Pavel Feldman
6faadf5160
chore: prepare to reuse test server from ui mode (#29965) 2024-03-18 09:50:11 -07:00
Max Schmitt
048d6669fd
fix(reuse): reset Origin Private File System API (#29921)
Fixes https://github.com/microsoft/playwright/issues/29901

This clears the Origin Private File System API when using VSCode
extension.
2024-03-15 17:40:46 +01:00
Max Schmitt
5bc6ca6345
fix: allow disposing ElementHandles multiple times (#29953)
Fixes https://github.com/microsoft/playwright/issues/29945
2024-03-15 16:26:56 +01:00
Max Schmitt
7cbef691ae
fix: throw error if setInputFile does not exist (#29944)
Fixes https://github.com/microsoft/playwright/issues/29941
2024-03-14 20:27:33 +01:00
Max Schmitt
93dc89fa1f
test: add file upload test case with popup handling (#29937)
https://github.com/microsoft/playwright/issues/29923

---------

Signed-off-by: Max Schmitt <max@schmitt.mx>
2024-03-14 19:26:42 +01:00
Dmitry Gozman
349b25e61a
fix(storageState): try to collect storage state on existing pages first (#29915)
This helps in a case where navigating to an origin fails for some
reason, for example because a registered service worker loads some
content into the supposedly blank page.

Fixes #29402.
2024-03-12 19:20:35 -07:00
Yury Semikhatsky
166d2d4fde
chore: separate results for repeated snapshot names (#29880)
Reference #29719
2024-03-12 16:10:43 -07:00
Max Schmitt
38fc74db7c
fix: postDataJSON with application/x-www-form-urlencoded; charset=UTF-8 (#29889)
Fixes https://github.com/microsoft/playwright/issues/29872
2024-03-12 17:20:39 +01:00
Yury Semikhatsky
59228f19ce
fix: tty.WriteStream method stubs for process.stdout/stderr (#29865)
Fixes #29839
2024-03-11 10:11:16 -07:00
Max Schmitt
94e61fc95a
test: bump ct typescript version (#29855) 2024-03-11 17:09:26 +01:00
Yury Semikhatsky
7f6f17d1c3
chore: simplify toMatchSnapshot names calculation (#29862)
Reference https://github.com/microsoft/playwright/issues/29719
2024-03-10 11:11:35 -07:00
Dmitry Gozman
d214778548
chore(test runner): move timeout handling to the top, stop inheriting runnable (#29857) 2024-03-08 15:19:36 -08:00
Dmitry Gozman
875ce1cf09
fix(chromium): use blockedReason as failure reason when available (#29849)
This covers blocked requests, e.g. mixed-content, that receive
`loadingFailed` with empty `errorText`.

Also, forcefully resolve `allHeaders()` in this case, since we know
there will be no actual network headers.

Fixes #29833.
2024-03-07 14:07:04 -08:00
Dmitry Gozman
006ee7f3b0
feat: separate timeout for after hooks (#29828)
Instead of sharing the timeout with the test, and then extending it when
test times out, we give after hooks a separate timeout.
2024-03-06 12:31:54 -08:00
Sarkis Matinyan
0c3f60e95e
fix(ui): show stack frames in ui mode (#29560)
#29558, #29500
2024-03-06 12:29:35 -08:00
Lukas Bockstaller
425f737eb6
feat: exposes tags in testInfo (#29794)
Fixes #29793.

---------

Signed-off-by: Lukas Bockstaller <lukas.bockstaller@everest-erp.com>
Co-authored-by: Dmitry Gozman <dgozman@gmail.com>
2024-03-06 08:33:06 -08:00
Dmitry Gozman
1d4bdc6898
chore(test runner): make runAsStage throw and catch errors explicitly (#29814) 2024-03-05 16:35:11 -08:00
Dmitry Gozman
a3ed799cd5
fix(tsconfig): when extending, retain pathsBasePath from the original config (#29822)
This fixes a case where we incorrectly used the final config's base path
when resolving relative path mappings in the absence of the baseUrl.

Fixes #29816.
2024-03-05 16:34:39 -08:00
Dmitry Gozman
abfd2c4e66
feat(ui mode): text filter should filter by explicit tags (#29821)
Fixes #29815.
2024-03-05 10:58:55 -08:00
Dmitry Gozman
5eb8fea616
chore: rewrite worker main through TestInfoImpl._runAsStage (#29644) 2024-03-04 19:36:58 -08:00
Max Schmitt
291567b922
test(remove-cookie): do not rely on external websites for tests (#29811)
Fixes https://github.com/microsoft/playwright/issues/29795
2024-03-04 23:49:12 +01:00
Rui Figueira
73ffaf65d7
fix(codegen): fill action prevents omnibox navigation recording (#29790)
This PR is a fix proposal for a bug when trying to record a omnibox
navigation after a recorded action (e.g., `fill`).

The following test, included in this PR, reproduces the problem:

```ts
  test('should record omnibox navigations after recordAction', async ({ page, openRecorder, server }) => {
    const recorder = await openRecorder();
    await recorder.setContentAndWait(`<textarea></textarea>`);
    await Promise.all([
      recorder.waitForOutput('JavaScript', 'fill'),
      page.locator('textarea').fill('Hello world'),
    ]);
    // for performed actions, 5 seconds is the time needed to ensure they are committed
    await page.waitForTimeout(5000);
    await page.goto(server.PREFIX + `/empty.html`);
    await recorder.waitForOutput('JavaScript', `await page.goto('${server.PREFIX}/empty.html');`);
  });
```

After performed actions (e.g., `click`), it successfully records the
navigation as long as there's at least a 5 sec. gap between both
actions. That happens because after that 5 sec. interval the performed
action is automatically commited and therefore the navigation is not
stored as a signal of that action.

The proposed fix for recorded actions also forces that action to be
automatically commited after 5 sec (for testing, I'm using 500ms to
speed up the test execution).
2024-03-04 12:31:03 -08:00
PaulTriandafilov
8e48ee714d
feat(playwright-core): add remove cookies api (#29698) 2024-03-02 07:27:01 -08:00
Pavel Feldman
ef924c14e7
chore: do not use project id in telereporter (#29776) 2024-03-01 21:44:08 -08:00
Pavel Feldman
bbcc3c1238
chore: remove private config usage from telereporter (#29771) 2024-03-01 13:14:12 -08:00
Dmitry Gozman
a8c26d235c
Revert "chore(role): cache element list by role (#29130)" (#29765)
This reverts commit 1ce3ca25a2676ca773a736035699cf3fe0c35d0d.

Added a regression test.

Fixes #29760.
2024-03-01 09:37:28 -08:00
Pavel Feldman
baf2cdf936
fix(ct): stop-gap for shared file import (#29744)
Fixes: https://github.com/microsoft/playwright/issues/29739
2024-02-29 19:13:32 -08:00
Dmitry Gozman
0f30cdab23
feat(firefox): roll ff and ff-beta to 1442 (#29751)
This requires changes in `FFPage`.
Also fixing a new ff-specific test that introduced flakiness on the
bots.

Closes https://github.com/microsoft/playwright/pull/29750
Closes https://github.com/microsoft/playwright/pull/29724
Closes https://github.com/microsoft/playwright/pull/29681
Closes https://github.com/microsoft/playwright/pull/29678
2024-02-29 14:44:45 -08:00
Pavel Feldman
d9a00342c8
fix(HEAD): revert GET->HEAD migration, net-effect was negative (#29738)
Fixes: https://github.com/microsoft/playwright/issues/29732
2024-02-29 09:02:05 -08:00
Dmitry Gozman
aedd7ca0be
chore: make CRNetworkManager handle multiple sessions (#29721)
It was already handling worker sessions, but not OOPIFs. As a result,
some functionality was properly implemented only for OOPIFs and not for
workers.

This change removes OOPIFs fanout for network-related calls from CRPage
and moves that to the CRNetworkManager, now also covering workers.
2024-02-28 15:51:27 -08:00
Stevan Freeborn
52b803ecf5
feat(trace mode): add on-first-failure mode for traces (#29647)
Implements the changes suggested in #29531
2024-02-28 14:39:18 -08:00
Pavel Feldman
d48aadac7e
fix: point to the right cli program export (#29715)
Fixes: https://github.com/microsoft/playwright/issues/29711
2024-02-28 14:05:42 -08:00
Yury Semikhatsky
d8c16c1edf
chore: roll stable runner to 1.42.0-beta-1708998235000 (#29675) 2024-02-27 08:36:03 -08:00
Yury Semikhatsky
1c8e8bea7e
chore: roll stable test runner to 1.42.0-beta-1708994059000 (#29672) 2024-02-26 17:39:25 -08:00
Andrey Lushnikov
b183159fd0
test: add regression test for cross-context clicking (#29668)
References https://github.com/microsoft/playwright/issues/29096
2024-02-26 16:52:49 -08:00
Pavel Feldman
9d0430fa26
chore: strengthen linting (#29669) 2024-02-26 16:52:28 -08:00
Sander
015a1bcc1c
feat(ct): double unmounting component throws error (#29650) 2024-02-26 11:16:27 -08:00
Sander
7e502e91b2
fix(ct): solid pass children when they are defined (#29648) 2024-02-26 11:15:08 -08:00
Dmitry Gozman
d7c4ee901a
test: enable localhost proxy tests on webkit mac, unless bypass rules are set (#29641) 2024-02-23 14:27:30 -08:00
Jeppe Reinhold
4d868f6ba8
fix(ct-react+ct-react17): only pass children to React.createElement when they are defined (#29592) 2024-02-23 12:30:42 -08:00
Pavel Feldman
a3aea813bc
chore: implement server-based list files (#29633) 2024-02-23 08:29:44 -08:00
Dmitry Gozman
f9aebda5db
fix(fixtures): attribute teardown step to the right TestInfo instance (#29523) 2024-02-20 12:35:43 -08:00