Mateusz Burzyński
55fb53ef82
test(keyboard): add tests for click events being dispatched when Space/Enter gets pressed while focus is on a button ( #10748 )
2021-12-07 14:48:27 -08:00
Andrey Lushnikov
a89fe3ec5c
fix: support shadow DOM with Vue and React selectors ( #10742 )
...
There were two issues:
- we did not find VDom roots inside shadow DOM
- we incorrectly relied on DOM's `contain` method to determine if
VDom's rendered node belongs to requested scope.
Fixes #10123
2021-12-07 11:23:37 -08:00
Dmitry Gozman
ec74fa6a76
feat(fill): support color and range input types ( #10736 )
2021-12-06 15:43:10 -08:00
Dmitry Gozman
516360be5f
fix(waitForEvent): include timeout value in the timeout message ( #10738 )
2021-12-06 15:42:57 -08:00
Pavel Feldman
aef0444ff5
fix(focus): make sure strictness is respected ( #10685 )
2021-12-03 10:22:50 -08:00
Pavel Feldman
f583f1604c
feat(locator.withText): allow narrowing locators to those with text ( #10688 )
2021-12-03 09:27:06 -08:00
Pavel Feldman
5bde171657
fix(chromium): disable AutoExpandDetailsElement as it breaks the web ( #10679 )
2021-12-02 13:04:15 -08:00
Pavel Feldman
2ac9c08d0c
feat(inputValue): allow on labels, retarget ( #10666 )
2021-12-02 10:31:06 -08:00
Dmitry Gozman
15b92e3f62
test: disable flaky test on wk/ff ( #10662 )
...
This is a Chromium-specific test, skip it on wk/ff.
2021-12-02 07:44:13 -08:00
github-actions[bot]
c9881a28f1
feat(firefox): roll to r1307 ( #10605 )
...
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Max Schmitt <max@schmitt.mx>
2021-11-30 14:26:26 +01:00
Max Schmitt
90e7a45211
test: add test for time/timeLog/timeEnd formatting ( #10586 )
2021-11-29 17:18:20 -08:00
Max Schmitt
e6ef3e3680
test: add console.info/debug tests ( #10577 )
2021-11-29 22:20:46 +01:00
Joel Einbinder
0878548238
test(wheel): add test for scrolling while emulating mobile ( #10224 )
2021-11-23 02:59:32 -05:00
Joel Einbinder
6d3bb458f9
fix(firefox): round down mouse coordinates ( #10483 )
2021-11-23 02:55:32 -05:00
Joel Einbinder
d70e37de80
feat: locator.dragTo ( #10287 )
2021-11-22 20:27:26 +01:00
Joel Einbinder
06ab3c0fda
feat: consider fieldset and aria-disabled when checking if an element is enabled ( #9927 )
...
Co-authored-by: Max Schmitt <max@schmitt.mx>
2021-11-22 20:25:06 +01:00
github-actions[bot]
e76edef3e2
feat(webkit): roll to r1579 ( #10409 )
...
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Max Schmitt <max@schmitt.mx>
2021-11-19 11:11:27 +01:00
Dmitry Gozman
d9f849fb14
feat(test runner): replace declare/define with "options" ( #10293 )
...
1. Fixtures defined in test.extend() can now have `{ option: true }` configuration that makes them overridable in the config. Options support all other properties of fixtures - value/function, scope, auto.
```
const test = base.extend<MyOptions>({
foo: ['default', { option: true }],
});
```
2. test.declare() and project.define are removed.
3. project.use applies overrides to default option values and nothing else. Any test.extend() and test.use() calls take priority over config options.
Required user changes: if someone used to define fixture options with test.extend(), overriding them in config will stop working. The solution is to add `{ option: true }`.
```
// Old code
export const test = base.extend<{ myOption: number, myFixture: number }>({
myOption: 123,
myFixture: ({ myOption }, use) => use(2 * myOption),
});
// New code
export const test = base.extend<{ myOption: number, myFixture: number }>({
myOption: [123, { option: true }],
myFixture: ({ myOption }, use) => use(2 * myOption),
});
```
2021-11-18 15:45:52 -08:00
github-actions[bot]
24cc266de0
feat(chromium): roll to r941965 ( #10372 )
...
Co-authored-by: Max Schmitt <max@schmitt.mx>
2021-11-18 18:46:44 +01:00
Yury Semikhatsky
c5cb73003f
docs: OR for css and xpath selectors ( #10285 )
2021-11-15 13:54:12 -08:00
Andrey Lushnikov
faf9d901c1
chore: fix test to work on Windows with auto.crlf = false ( #10296 )
2021-11-13 00:29:51 -08:00
Dmitry Gozman
6a46711347
fix(chromium): race between loadingFailed and requestPaused ( #10289 )
2021-11-12 19:06:53 -08:00
Andrey Lushnikov
80da0f7b69
test: test gardening ( #10258 )
2021-11-12 00:00:13 -08:00
Max Schmitt
ac629afd46
chore: fix API name capitalisation with APIRequestContext ( #10240 )
2021-11-11 08:46:17 -08:00
Pavel Feldman
4e90eb9406
api(frame-locator): allow nth, first, last ( #10195 )
2021-11-09 14:14:20 -08:00
Max Schmitt
d25b0f70bc
chore: api testing test nits ( #10180 )
2021-11-09 14:11:42 -08:00
github-actions[bot]
5b604acedb
feat(chromium): roll to r939194 ( #10165 )
...
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Andrey Lushnikov <aslushnikov@gmail.com>
2021-11-08 20:05:39 -08:00
Dmitry Gozman
3cc839e013
fix(route): catch all Route methods when page closes ( #10140 )
...
This fixes a common scenario where you setup a route,
and the page closes (e.g. test ends) while we are aborting/continuing
some requests that are not instrumental to the test itself.
2021-11-08 15:13:15 -08:00
Pavel Feldman
4553d76fce
api(frame-locator): introduce frame locators ( #10102 )
2021-11-08 09:58:24 -08:00
Dmitry Gozman
61ff52704c
feat(input): perform hit target check during input ( #9546 )
...
This replaces previous `checkHitTarget` heuristic that took place before the action
with a new `setupHitTargetInterceptor` that works during the action:
- Before the action we set up capturing listeners on the window.
- During the action we ensure that event target is the element we expect to interact with.
- After the action we clear the listeners.
This should catch the "layout shift" issues where things move
between action point calculation and the actual action.
Possible issues:
- **Risk:** `{ trial: true }` might dispatch move events like `mousemove` or `pointerout`,
because we do actually move the mouse but prevent all other events.
- **Timing**: The timing of "hit target check" has moved, so this may affect different web pages
in different ways, for example expose more races. In this case, we should retry the click as before.
- **No risk**: There is still a possibility of mis-targeting with iframes shifting around,
because we only intercept in the target frame. This behavior does not change.
There is an opt-out environment variable PLAYWRIGHT_NO_LAYOUT_SHIFT_CHECK that reverts to previous behavior.
2021-11-05 17:31:28 -07:00
Yury Semikhatsky
15a8b29961
test: goto finishes on window.stop() ( #10070 )
2021-11-05 16:51:22 -07:00
Pavel Feldman
f3fd3ebc37
chore(frame-selector): add more tests, use frame logic in element handle ( #10097 )
2021-11-05 16:36:01 -07:00
Pavel Feldman
f19864890f
feat(iframe): make iframe selectors work w/ element handles ( #10063 )
2021-11-05 11:06:04 -07:00
Yury Semikhatsky
83657a1df4
test: skip interception tests in electron ( #10056 )
2021-11-04 13:36:04 -07:00
Pavel Feldman
78e99249a3
feat(frame-selector): intial implementation ( #10018 )
2021-11-04 13:28:35 -07:00
github-actions[bot]
9b4d9460eb
feat(chromium): roll to r936784 ( #9986 )
2021-11-04 12:35:31 -07:00
Dmitry Gozman
2cfc997614
test: detach frame while clicking race ( #10029 )
2021-11-03 19:41:31 -07:00
Dmitry Gozman
c373986ca0
fix(evaluate): reject all context operations when frame detaches ( #9987 )
2021-11-03 10:44:50 -07:00
Yury Semikhatsky
5abb5d74ea
chore: delete legacy response interception code ( #9995 )
2021-11-02 17:48:38 -07:00
Yury Semikhatsky
06cf7132be
test: unflake wheel test in ff ( #9989 )
2021-11-02 13:56:12 -07:00
Yury Semikhatsky
13cc266b37
feat: add "commit" to possible waitUntil options ( #9892 )
2021-11-01 17:12:19 -07:00
Pavel Feldman
d79aae633c
feat(html): render the suite name before test title ( #9909 )
2021-11-01 10:53:42 -07:00
Dmitry Gozman
227e3da62f
fix(test runner): do not reuse worker that did not teardown scopes ( #9872 )
...
Two bug fixes:
- Do not use the worker that is being shutdown for a new job.
- Report unhandled errors during "expected to fail" tests as
fatal errors.
2021-10-29 13:36:12 -07:00
Pavel Feldman
2e4722d460
test: migrate to upstream fixtures ( #9835 )
2021-10-28 08:31:30 -07:00
github-actions[bot]
9af5aaabbb
feat(firefox): roll to r1298 ( #9848 )
2021-10-28 07:41:58 -07:00
Pavel Feldman
31faa7d9a7
chore: sort out base fixtures ( #9809 )
2021-10-27 08:28:53 -07:00
Pavel Feldman
273122b761
chore: align internal test harness w/ @playwright/test ( #9796 )
2021-10-26 13:45:53 -07:00
Joel Einbinder
deec8fd6c2
test(chromium): failing test for resolving responses after a navigation ( #9651 )
2021-10-21 08:29:04 -07:00
Max Schmitt
ba2576c5b9
test: page.content() hangs when there is no iframe src ( #9674 )
2021-10-21 16:59:33 +02:00
Pavel Feldman
225145fc3e
fix(expect): do not fail on navigated frames while polling ( #9659 )
2021-10-20 13:01:05 -07:00
Andrey Lushnikov
dddf70cead
tests: fix variety of tests ( #9630 )
2021-10-19 17:03:15 -07:00
Joel Einbinder
53c866c0f2
fix(monorepo): explicitly list package.json exports instead of using glob patterns ( #9584 )
2021-10-19 12:28:02 -04:00
Yury Semikhatsky
22fe1662c0
test: remove stray logging ( #9589 )
2021-10-18 11:13:18 -07:00
Yury Semikhatsky
fd81982c33
fix(selectors): combine visible with other selectors ( #9585 )
2021-10-18 10:47:37 -07:00
Yury Semikhatsky
a186278f2e
fix(selectors): empty text matcher ( #9548 )
2021-10-15 17:00:45 -07:00
Andrey Lushnikov
01c702adbb
chore: move "service" mode tests to experimental grid ( #9531 )
...
This patch moves service tests to use experimental grid.
Test changes:
- `proxy.spec.ts` - proxy setup is not supported at all in service mode.
This is because we already use proxy for browsers to properly resolve
localhost.
- `har.spec.ts` - tests disabled since connection port is different.
2021-10-15 16:11:53 -07:00
Yury Semikhatsky
25a8023720
test: popup event for pages opened from iframe ( #9484 )
2021-10-14 12:22:05 +02:00
github-actions[bot]
c054d19a5d
feat(webkit): roll to r1562 ( #9476 )
...
Co-authored-by: Max Schmitt <max@schmitt.mx>
2021-10-14 02:00:25 +02:00
Max Schmitt
94680a702d
test: mark 'should fulfill with multiple set-cookie' as fixme on Electron
2021-10-12 10:59:39 +02:00
Joel Einbinder
c89d5a50dd
chore: migrate to monorepo ( #9421 )
2021-10-11 16:52:17 +02:00
Ross Wollman
a892fe6db0
test: request.sizes() sometimes hangs in CR ( #9349 )
2021-10-07 14:26:54 -07:00
Pavel Feldman
9b7e02b88b
test: add a couple more route+headers tests ( #9322 )
2021-10-06 09:35:54 -07:00
Pavel Feldman
e8fdbbfa03
api: alias Fetch as ApiRequest ( #9330 )
2021-10-05 18:53:19 -07:00
Yury Semikhatsky
0a7b54abc3
test: set content-type to make test pass ( #9331 )
2021-10-05 18:30:07 -07:00
Ross Wollman
dbc3c11b8e
test: responseSize incorrect for 404 with content ( #9328 )
2021-10-05 17:40:08 -07:00
Yury Semikhatsky
0469a7552b
fix(fetch): do not allow to call get/post with request ( #9326 )
2021-10-05 16:36:15 -07:00
Yury Semikhatsky
701a97beca
chore(fetch): unprefix _request and _newRequest ( #9325 )
2021-10-05 13:56:34 -07:00
Pavel Feldman
6e803f7186
fix(route): allow allHeaders call within route ( #9300 )
2021-10-04 16:10:16 -07:00
Yury Semikhatsky
c516729544
fix(interception): make set-cookie work in chromium ( #9299 )
2021-10-04 13:19:05 -07:00
Pavel Feldman
913821f675
chore: roll Electron to 12.2.1 ( #9271 )
2021-10-01 19:40:47 -07:00
Yury Semikhatsky
1b4adfb916
fix(webkit): deduce response mime type from content-type ( #9264 )
2021-10-01 13:04:03 -07:00
Max Schmitt
1302e10637
test: fix 'should fulfill with fetch result and overrides' test ( #9252 )
2021-10-01 09:47:04 +02:00
Andrey Lushnikov
c63348bd03
feat(webkit): roll WebKit to 1550 ( #9239 )
2021-09-30 10:41:09 -07:00
Pavel Feldman
2b055b3092
feat(api): introduce locator.waitFor ( #9200 )
2021-09-28 13:57:11 -07:00
Yury Semikhatsky
ebe4e41606
test: add tests for Cross-Origin-Opener-Policy navigation ( #9184 )
2021-09-28 09:56:07 -07:00
Yury Semikhatsky
962547e716
test: get response body for COOP responses ( #9196 )
2021-09-28 09:54:05 -07:00
Yury Semikhatsky
6be908d959
test: canvas updates are reflected on screenshots ( #9180 )
2021-09-27 13:45:03 -07:00
Max Schmitt
cd22072685
chore: enable object-curly-spacing in ESLint ( #9168 )
2021-09-27 18:58:08 +02:00
Dmitry Gozman
ee25fefb62
chore: remove FatalDOMError ( #9119 )
...
We can now throw stackless errors instead.
Also fixed stackless errors on Firefox.
2021-09-24 20:51:09 -07:00
Dmitry Gozman
f4aaebfba0
fix(expect): produce "waiting for selector" log, corner cases ( #9140 )
2021-09-24 18:55:45 -07:00
Dmitry Gozman
418ce9c17e
test: unflake a few tests ( #9142 )
2021-09-24 15:05:20 -07:00
Yury Semikhatsky
26bca47a47
test: add failing WebKit navigation test ( #9097 )
2021-09-23 08:45:40 -07:00
Dmitry Gozman
b978ce33cb
test: unflake "should fail when frame detaches" ( #9095 )
2021-09-22 17:09:02 -07:00
Dmitry Gozman
f0d23b5d4d
fix(css selector): absolutize relative CSS selectors ( #9088 )
...
Selectors like `> div` are replaced by `:scope > div`,
which is useful for combining them with parent selectors.
This is a part of CSS Level 4 spec.
2021-09-22 14:13:00 -07:00
Dmitry Gozman
e85a3a5a41
fix(page.content): throw a nice error when navigation intervenes ( #9080 )
2021-09-22 10:40:15 -07:00
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
Yury Semikhatsky
2380b07f30
feat(fetch): introduce FetchRequest.dispose, fulfill with global fetch ( #8945 )
2021-09-15 14:02:55 -07:00
Yury Semikhatsky
5141407c6b
fix(fetch): prefix request with underscore ( #8922 )
2021-09-14 12:56:09 -07:00
Joel Einbinder
afae5bef5d
feat(mouse): page.mouse.wheel ( #8690 )
2021-09-14 15:22:52 -04:00
Pavel Feldman
a1adc15ea3
tests: mark win32/webkit cookie multivalue test as failing
2021-09-13 20:13:25 -07:00
Pavel Feldman
64f9c3ba1d
feat(api): move fetch api into the namespace ( #8871 )
2021-09-13 12:43:07 -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
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
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
Joel Einbinder
7fe30bb182
test(goto): add failing load event test for webkit ( #8809 )
2021-09-09 12:42:46 -07:00