Commit graph

407 commits

Author SHA1 Message Date
Andrey Lushnikov a7f3490e48 feat(testrunner): implement "dit" command (#312) 2019-12-19 16:47:35 -07:00
Dmitry Gozman 12ac458614 fix(elementhandle): contentFrame and ownerFrame work in various scenarios (#311)
Drive-by: use evaluateInUtility for various utility evals.
2019-12-19 15:19:22 -08:00
Dmitry Gozman 7e90292834 fix(networkidle): make it (almost) work with setContent (#307) 2019-12-19 15:07:57 -08:00
Pavel Feldman 331f0e603a feat: introduce BrowserServer (#308) 2019-12-19 14:51:49 -08:00
Dmitry Gozman b378bc7f6c
feature(evaluate): support cross-context element handles (#295) 2019-12-19 11:44:07 -08:00
Dmitry Gozman c172a7e7e0 feature: $wait similar to waitForFunction, but taking a selector (#303) 2019-12-18 18:11:02 -08:00
Pavel Feldman d570fc7809
feat: further strip the browser api (#304) 2019-12-18 18:07:11 -08:00
Dmitry Gozman 3669dad243 feat(urlmatch): support url matching in waitForNavigation (#300) 2019-12-18 18:03:02 -08:00
Joel Einbinder 1c2b6444e9 test(webkit): add tests for after cross origin navigations (#298) 2019-12-18 17:42:16 -08:00
Andrey Lushnikov 8cc682c7b8 feat(testrunner): allow focusing all tests in a file
With this change, exporting a "fdescribe" function from a file
will focus all tests inside the file.
2019-12-18 17:13:39 -08:00
Pavel Feldman 0e3328218d feat(context): remove the notion of incognito context (#299) 2019-12-18 16:44:02 -08:00
Yury Semikhatsky da051a72a8 fix: strip off hash from request urls (#297) 2019-12-18 16:27:20 -08:00
Pavel Feldman b5e9086576 chore: remove browser from the api (#296) 2019-12-18 16:23:05 -08:00
Yury Semikhatsky 1d4ebd37b1
tests(webkit): mark Page.navigate to invalid URL test as passing (#293) 2019-12-18 16:49:43 -07:00
Yury Semikhatsky ac2ea265fe
test(wk): unskip passing navigation test (#294) 2019-12-18 16:01:08 -07:00
Andrey Lushnikov 44b39bad33 fix(testrunner): show maximum 10 skipped tests in test report
This is to save some terminal screen real estate.

Drive-by: remove async test suites from test runner.
2019-12-18 14:33:46 -08:00
Dmitry Gozman 9afd35d3a1
feature(waitfor): waitFor visible or any by default (#284) 2019-12-18 14:28:16 -08:00
Dmitry Gozman 7750db97fe
api: remove ExecutionContext from api (#290)
In the current state, it is superseeded by Frame and JSHandle.
2019-12-18 13:51:45 -08:00
Yury Semikhatsky 58cd8210b0 test: disable new referrer test on FF 2019-12-18 13:36:35 -08:00
Yury Semikhatsky adf54ee6b3
tests: move ws-specific browser tests to corrsponding browser suites (#289) 2019-12-18 13:28:23 -07:00
Pavel Feldman 6d0dfd0abf
feat(context): start moving overrides to the context level 2019-12-18 12:23:33 -08:00
Andrey Lushnikov f56726759b
test: normalize browser executable path variables (#287) 2019-12-17 18:07:01 -08:00
Dmitry Gozman 0f8333ba89
feature(filechooser): move waitForFileChooser to common waitForEvent (#281) 2019-12-17 17:34:32 -08:00
Andrey Lushnikov 533d058ea6
fix(firefox): support late attachment and skip a few failing tests (#283) 2019-12-17 17:33:06 -08:00
Yury Semikhatsky 83833f61c1
feat(webkit): support referrer parameter in Page.navigate (#286)
* add test for reference-policy: no-referrer
2019-12-17 18:19:35 -07:00
Dmitry Gozman fd927000ea feature: update api around selectors (#280)
- Selector is again a string.
- Most methods taking selector also accept waitFor option.
- Available waitFor options are: 'visible', 'hidden', 'any' === true, false === undefined.
- waitForXPath is removed.
- waitForSelector is replaced by $(selector, { waitFor: true }).
2019-12-17 14:30:02 -08:00
Dmitry Gozman 75ae9bfeee
feature(waitFor): use URLMatch to match request/response, waitForEvent for generic (#278) 2019-12-17 14:00:39 -08:00
Andrey Lushnikov 0dafabb05e test: fix a few tests on firefox (#279) 2019-12-17 13:33:05 -07:00
Dmitry Gozman 24eb6d8671
chore: simplify extra http headers handling across browsers (#274) 2019-12-17 11:31:52 -08:00
Yury Semikhatsky e851a27350
feat(webkit): implement ElementHandle.contentFrame (#276) 2019-12-17 12:21:53 -07:00
Yury Semikhatsky 629c56b0ab test: make async stacks pass on WebKit (#277) 2019-12-17 11:04:04 -08:00
Dmitry Gozman 5a60a96410 chore: reuse navigation methods between browsers (#271) 2019-12-16 22:02:33 -08:00
Dmitry Gozman 48be99a56e feat(selectors): add id selectors (#270) 2019-12-16 20:49:18 -08:00
Yury Semikhatsky 8828228702 tests(webkit): unskip test that depends on frameStoppedLoading (#269) 2019-12-16 20:19:41 -08:00
Yury Semikhatsky 4a5929da55
fix(webkit): mark mixed content test as passing (#260)
* roll WebKit to 1042
2019-12-16 18:47:38 -07:00
Yury Semikhatsky 974f82073f feat(webkit): allow to run beforeunload when closing page (#264) 2019-12-16 17:33:36 -08:00
Yury Semikhatsky bfb8df29bb
feat(webkit): reload page after updating user agent (#268) 2019-12-16 18:29:40 -07:00
Dmitry Gozman f9f7d5c55a feature(navigation): implement networkilde0 and networkidle2 (#263) 2019-12-16 16:32:04 -08:00
Yury Semikhatsky a8f9c627f1 chore(tests): move ignoreHTTPSErrors interception test to featutes folder (#252) 2019-12-16 09:17:14 -08:00
Pavel Feldman df95b9ddb4 feat(waitFor): allow actions to wait for selector; make visible requirement default (#254) 2019-12-14 20:13:22 -07:00
Pavel Feldman a9568af21d
feat: create FF default profile prefs dynamically (#250) 2019-12-14 11:55:21 -08:00
Yury Semikhatsky 394c74fa5f chore(tests): move setCacheEnabled interception test to features (#253) 2019-12-14 11:54:52 -08:00
Dmitry Gozman 09bf6b1906 fix(navigation): expect navigation on navigation request (#248) 2019-12-14 08:20:51 -08:00
Yury Semikhatsky f539afa2a7
feat(webkit): support ignoreHTTPSErrors launcher option (#243)
Also roll webkit to 1036
2019-12-13 22:46:27 -07:00
Pavel Feldman 0b5c0a76ab feat(webkit): support emulating color scheme (#247) 2019-12-13 17:34:02 -08:00
Pavel c6afe0f155 test: enable Page.emulateMedia tests on WK 2019-12-13 16:37:49 -08:00
Dmitry Gozman dd2ce94de9
fix(navigation): waitForNavigation to pick up aborted navigation (#244) 2019-12-13 16:35:10 -08:00
Pavel cde81aaf5a fix: account for linux treatment of canceled requests 2019-12-13 14:06:00 -08:00
Dmitry Gozman 39fb556f27 fix(webkit): detect expected/aborted navigations based on network requests (#238) 2019-12-13 13:03:52 -08:00
Pavel Feldman bae8cd3fae
chrome: co-locate transport types (#236) 2019-12-12 21:30:49 -08:00
Pavel Feldman 5822de844a chore: rename common files to start with lower case 2019-12-12 20:55:29 -08:00
Pavel Feldman c7cf4886ea api: s/createIncognitoBrowserContext/newContext/ 2019-12-12 20:14:50 -08:00
Dmitry Gozman 90f0b8c2b0
fix(firefox): setContent to properly listen for lifecycle events (#219) 2019-12-12 20:11:33 -08:00
Andrey Lushnikov ee1f4784c6
feat(firefox): implement browser.firefox.wsEndpoint() (#233)
This lets us pass the fixtures test for browser shutdown.
2019-12-12 18:40:48 -08:00
Pavel 0675d8ec9a test: happy webkit test patch 2019-12-12 18:27:07 -08:00
Dmitry Gozman d378a8d3fc chore: reuse processLauncher between browsers (#231)
Drive-by: improve test runner to always exit and kill browsers
2019-12-12 17:52:13 -08:00
Dmitry Gozman 3b202fb4b8 fix(webkit): handle frameAttached event (#227) 2019-12-12 17:50:37 -08:00
Pavel Feldman 738502b0f0
fix(resize): wait for the ack when resizing gtk (#230) 2019-12-12 17:49:48 -08:00
Pavel Feldman ad067261fc test: removed accidental fit 2019-12-12 11:26:17 -08:00
Pavel Feldman 043e2f7513 test: uncomment utility world test 2019-12-12 10:36:11 -08:00
Pavel Feldman 58fd7c5c45 test: remove BigInt tests, no one uses BigInt yet (#224) 2019-12-12 10:38:34 -07:00
Dmitry Gozman 59b0900321
feat(selectors): introduce zs selector engine (#214) 2019-12-12 09:02:37 -08:00
Pavel Feldman 856787a8e6 feat(webkit): roll to 1029 (#222) 2019-12-12 08:59:33 -08:00
Dmitry Gozman 3c7181a545 fix(webkit): fix ordering of provisional messages relative to the rest (#225) 2019-12-12 09:59:08 -07:00
Pavel Feldman cca2659578 test: update console tests (#223) 2019-12-12 08:58:37 -08:00
Pavel Feldman 66e93ce2c0 test: rearrange / uncomment more tests 2019-12-11 22:52:14 -08:00
Pavel Feldman 995300b778 test: rearrange / uncomment some tests 2019-12-11 22:43:06 -08:00
Pavel Feldman 19cac9a0c1 test: rebaseline wk/mac network tests 2019-12-11 19:32:07 -08:00
Pavel Feldman 7c7c13e89d fix(webkit): fix a couple of navigation tests (#217) 2019-12-11 17:46:26 -08:00
Pavel Feldman 6440323003 fix(webkit): wait for main response on subresource-free goto (#216) 2019-12-11 16:19:37 -08:00
Joel Einbinder 78847c2f52 test(webkit): add failing test for navigating after disabling javascript (#215) 2019-12-11 16:04:02 -07:00
Pavel Feldman 4824a25cc6
fix(csp): fix some of the csp tests (#211) 2019-12-11 13:51:03 -08:00
Pavel Feldman 357e175964 fix(webkit): fullPage screenshot w/o viewport (#210) 2019-12-11 11:26:34 -08:00
Pavel Feldman 26e96bf591 test: follow up with chromiunm test fixes 2019-12-11 07:38:20 -08:00
Dmitry Gozman 57acdfd860 chore: reuse LifecycleWatcher between browsers (#208) 2019-12-11 07:17:32 -08:00
Pavel Feldman e42e361d20
feat(webkit): use new bypass csp method (#207) 2019-12-10 19:26:13 -08:00
Pavel Feldman 0353dbb3be test: rearrange remaining launcher tests 2019-12-10 19:23:21 -08:00
Joel Einbinder 02f2209b13 test(firefox): enable some tests that already firefox passes (#204) 2019-12-10 17:09:06 -08:00
Pavel Feldman 8c548ed9e9
feat(webkit): implement page.exposeFunction (#195) 2019-12-10 15:17:42 -08:00
Dmitry Gozman 5ffb710d7d
chore: reuse BrowserContext across browsers (#201) 2019-12-10 15:13:56 -08:00
Joel Einbinder 0af3b9dfc8 feat(webkit): page.on('popup') (#202) 2019-12-10 15:07:00 -08:00
Joel Einbinder c8067dbcde fix(test): Disable spellcheck in our textarea tests (#203) 2019-12-10 14:53:26 -08:00
Pavel Feldman fe6addc71a test: rearrange launcher tests more 2019-12-10 14:02:48 -08:00
Pavel Feldman f37d9bfe95 test: extract chromium-specific connect tests 2019-12-10 13:28:50 -08:00
Andrey Lushnikov 329b34e894
feat: implement mac keyboard (#197)
This list contains all of the default keyboard shortcuts for macos, and the Objective-C selector that they trigger on the [NSStandardKeyBindingResponding](https://developer.apple.com/documentation/appkit/nsstandardkeybindingresponding/3005237-moveleft?language=objc). We need these for basic keyboard functionality like ArrowUp and ArrowDown to work on WebKit for mac. For other browsers on mac, the same list can be used to enable better mac keyboard emulation.

The list was made by constructing NSEvents on a mac and seeing what selectors they triggered on an NSTextView. The conversion from NSEvents to DOM codes was done partially by hand as the code that does this conversion lives across many files in WebKit. There may be some errors or missing commands, but in general this should be a more faithful mac keyboard emulation than what we do in Chromium currently.

Notably absent from the list are Cut, Copy, Paste, Paste Special, Undo, and Redo. They are handled in a slightly different way.
2019-12-10 13:22:01 -08:00
Pavel Feldman c61c5b056f test: group interception tests in interception.spec 2019-12-10 13:11:20 -08:00
Pavel Feldman 44d6f608ef feat(webkit): use webkit worlds (#194) 2019-12-09 23:24:12 -08:00
Dmitry Gozman b4c89ca0f9
chore: unify frame lifecycle events between browsers (#172) 2019-12-09 16:34:42 -08:00
Dmitry Gozman e5a85e4e67
chore(webkit): migrate to common Page (#189) 2019-12-09 15:45:32 -08:00
Dmitry Gozman 640646b794
chore(firefox): migrate to common Page (#188) 2019-12-09 14:53:17 -08:00
Joel Einbinder e3f34bd69a
fix(fill): throw when the element isn't fillable (#160)
An element is fillable if its:
- In dom
- Not display:none or visibility:hidden
- textarea or input or contenteditable

if textarea or input it must also be
- not readOnly
- not disabled

#133
2019-12-09 14:51:19 -08:00
Pavel Feldman f5cd742b79
test: rebaseline some click tests (#179) 2019-12-08 17:17:49 -08:00
Pavel Feldman 51c975b098 chore: group more feature test files 2019-12-08 09:04:07 -08:00
Pavel 5274f2bd3c chore: only test request interception for Chrome & FF 2019-12-06 17:37:45 -08:00
Yury Semikhatsky 02e29219fd fix(webkit): make go back/forard return null on error (#171) 2019-12-06 16:38:23 -08:00
Pavel 0884e29695 chore: rearrange test spec files 2019-12-06 16:15:47 -08:00
Pavel b45ea22660 test: fix element.handle nested frames 2019-12-06 15:11:14 -08:00
Pavel bcb62de4b2 fix(test): make click tests pass everywhere 2019-12-06 14:48:41 -08:00
Pavel 349ce22565 lint: follow up with lints 2019-12-06 12:04:11 -08:00
Pavel Feldman bb1888c86e feat(screenshots): make them work everywhere (#164) 2019-12-06 11:33:24 -08:00
Joel Einbinder 1c9103e642 test(chrome): failing test for clicking when scroll-behavior is smooth (#136) 2019-12-05 17:58:19 -08:00
Andrey Lushnikov 929a5944bd test: fix chromium tests (#155)
3 chromium tests were failing on Linux.
2019-12-05 15:12:22 -07:00
Pavel Feldman 2d77760f01
chore: move tests around after targets extraction (#153) 2019-12-05 13:15:17 -08:00
Dmitry Gozman d4f0084f67
chore: move element coordinates handling to common (#139)
Browser now implement boundingBox(), contentQuads() and layoutViewport().
2019-12-05 09:54:50 -08:00
Yury Semikhatsky 25af050bd4 feat(webkit): add page back/forward commands (#144) 2019-12-05 08:32:52 -08:00
Pavel Feldman e1c4eaae28
chore: make targets chromium feature (#137) 2019-12-04 16:12:43 -08:00
Dmitry Gozman fc5898892b
feat(selectors): support optional "visible" property in all selectors (#129) 2019-12-04 13:11:10 -08:00
Joel Einbinder 492f539310
chore(firefox): lint against the juggler protocol (#94) 2019-12-04 10:33:29 -08:00
Yury Semikhatsky ba54ad46b3 feat(page): add Page.setJavaScriptEnabled for WebKit (#125) 2019-12-03 10:47:02 -08:00
Dmitry Gozman 6b3c2632e7
feat(selectors): support various selectors in waitFor methods (#122) 2019-12-03 10:43:13 -08:00
Dmitry Gozman bb1433a143
feat(selectors): support various kinds of selectors (#118)
This adds support for generic "engine=body [>> engine=body]*" selector syntax
and auto-detects simple css or xpath.
2019-12-02 17:33:44 -08:00
Pavel Feldman 505c9e3660 test: uncomment more cookies tests 2019-12-02 17:02:33 -08:00
Pavel Feldman 040f93faa2 feat(cookies): implement cookies across the board (#121) 2019-12-02 16:36:46 -08:00
Yury Semikhatsky 2ca2a4cb18 feat(launcher): throw on browser launch failure, default args (#119) 2019-12-02 16:17:53 -08:00
Dmitry Gozman b6c892842b
feat(screenshot): multiple element screenshots are now taken sequentially (#114)
This makes multiple element screenshots to not fight for the page viewport
by putting viewport manipulation under screenshot task queue.

Drive-by: encapsulated all screenshot logic in Screenshotter.
2019-12-02 10:53:58 -08:00
Pavel Feldman f28b31672e
test: fix file chooser tests (#110) 2019-11-27 16:18:04 -08:00
Pavel Feldman cf9c4d153a feat(webkit): implement file chooser interception (frontend) (#98) 2019-11-27 13:50:24 -08:00
Joel Einbinder 49f8963bf1
feat(webkit): dialogs (#75) 2019-11-27 12:24:52 -08:00
Pavel Feldman 72b1bb783b
feat(chromium): roll chromium to r719491, lint, test (#99) 2019-11-26 22:53:34 -08:00
Pavel Feldman cc41377fe2 chore: move emulateTimeZone and setGeolocation to Overrides (#92) 2019-11-26 15:13:49 -08:00
Pavel Feldman c7a07ea2a8 chore: move more unsupported apis to interception (#91) 2019-11-26 15:01:27 -08:00
Pavel Feldman 64d3e83ddf
chrome(filechooser): align file chooser implementations (#88) 2019-11-26 14:29:21 -08:00
Pavel Feldman a4e24c718b
feat(cookies): move cookie management to BrowserContext (#82) 2019-11-26 11:23:13 -08:00
Pavel Feldman 2eb653740a feat(headful): remove bringToFront (#84) 2019-11-26 11:00:54 -08:00
Pavel Feldman 991f4a9072
docs: fix the docs validator (#86) 2019-11-26 08:52:47 -08:00
Andrey Lushnikov d4d0654666
feat(firefox): roll Firefox to r1003 (#78) 2019-11-25 16:49:15 -08:00
Pavel Feldman 2e581f1625 feat(emulate): implement emulateMedia color scheme in FF (#71) 2019-11-25 15:00:04 -08:00
Pavel Feldman eaa5e93b8b feat(filechooser): supported file chooser in FF (#70) 2019-11-25 13:56:39 -08:00
Dmitry Gozman d5ad3960c3 chore: move Keyboard to common, with RawKeyboardImpl per vendor (#69) 2019-11-25 11:19:20 -08:00
Pavel Feldman 3190044c00 feat(firefox): implemented *.fill (#63) 2019-11-22 16:55:35 -08:00
Yury Semikhatsky ef847b1941 fix(page): support multiple bootstrap scripts (#59) 2019-11-22 16:25:36 -08:00
Pavel Feldman ef464e447f
feat(input): dblclick/trippleclick feature parity (#60) 2019-11-22 14:46:34 -08:00
Yury Semikhatsky 37a9c17d3e fix (#58) 2019-11-22 14:04:04 -08:00
Yury Semikhatsky ac01262c88
feat(page): support Page.evaluateOnNewDocument for WebKit (#55) 2019-11-22 13:14:07 -08:00
Dmitry Gozman e04910501b
feat(select): use ElementHandle instead of 'id=foo' when choosing options (#54) 2019-11-22 11:54:49 -08:00
Pavel Feldman 508c1960dd
chore: unify emulateMedia APIs (#53) 2019-11-22 11:24:56 -08:00
Dmitry Gozman 7783400156 feat(select): allow to select options by value/label/id/index (#46) 2019-11-21 21:19:21 -08:00
Pavel Feldman 1e91257d6e chore: group chromium-specific features (#45) 2019-11-21 16:54:10 -08:00
Pavel Feldman e3dcac1d46
chore: move interception API into features/ (#43) 2019-11-21 14:41:38 -08:00
Andrey Lushnikov 43836c9178 Revert "docs: show browser test stats in the readme (#24)"
This reverts test stats from the README.md
The stats now leave in a designated status page.
2019-11-21 13:00:48 -08:00
Joel Einbinder 92a6500b23 feat(webkit): page.fill and friends (#40) 2019-11-20 16:57:37 -08:00
Pavel Feldman e869b12f46 chore: remove touchscreen API (#41) 2019-11-20 16:55:02 -08:00
Joel Einbinder 206cf7b83f feat(webkit): pass all keyboard tests (#39)
Add `keyboard.sendCharacter` and fixes up all of the keyboard tests.

Drive-by to actually allow selectively installing browsers.
2019-11-20 16:39:12 -08:00
Pavel Feldman f9a89eb313 chore: split vendor APIs (#38) 2019-11-20 15:16:57 -08:00
Pavel Feldman 1fe1e150f3 chore: move geolocation into features/ (#37) 2019-11-20 14:18:05 -08:00
Pavel Feldman cf97e2c140 chore: remove handle.boxModel API (#36) 2019-11-20 14:15:19 -08:00
Pavel Feldman 653b4b9df3 chore: remove SecurityDetails API (#35) 2019-11-20 13:53:27 -08:00
Pavel Feldman a216063829 chore: remove Request.fromCache/ServiceWorker APIs (#34) 2019-11-20 11:57:21 -08:00
Pavel Feldman 76eb289f54
chore: move permissions API into features/ (#33)
- drive-by accessibility spec moved to a shared folder
2019-11-20 09:40:26 -08:00
Pavel Feldman 48a78b2c8a
chore: remove page.queryObjects API (#31) 2019-11-20 09:28:40 -08:00
Pavel Feldman 35e6d10517
chore: remove page.metrics API (#30) 2019-11-20 09:28:22 -08:00
Pavel Feldman 83ed65dce8 chore: move workers into features/ (#29) 2019-11-19 17:32:43 -08:00
Joel Einbinder 0a8d55d954 docs: show browser test stats in the readme (#24) 2019-11-19 16:30:24 -08:00
Pavel Feldman 85035fedea chore: move pdf, tracing, coverage, a11y into featuress/ (#28) 2019-11-19 16:29:28 -08:00
Pavel Feldman 6b5ab68e70 test: fix failing chromium tests (#26) 2019-11-19 13:51:09 -08:00
Pavel Feldman 4b13b5e3c6 chore: remove page.pdf API (#25) 2019-11-19 13:50:23 -08:00
Pavel Feldman 9ba375c063 Initial commit 2019-11-19 10:58:15 -08:00