275 Commits
Author SHA1 Message Date
Mykola Mokhnach 8d7da14d06 Fix application type handling for urls with parameters (#303) 2019-02-18 19:13:44 +01:00
Mykola Mokhnach 0c8ef9391f Fix /actions body while doing protocol translation (#302) 2019-02-14 12:58:58 -08:00
Mykola Mokhnach 6288fb2784 Address the case where setValue contains non-specced stuff (#299) 2019-01-29 15:55:05 +01:00
Mykola Mokhnach a969967a26 Apply command timeout only if queuing is enabled (#298) 2019-01-28 20:04:39 +01:00
Mykola Mokhnach 7b163dcb4d Handle setValue API call conversion between protocols (#297) 2019-01-27 08:37:45 +01:00
Jonathan Lipps 521229e36c add user-agent to list of cors headers (#296) 2019-01-08 11:45:56 -08:00
greenkeeper[bot] 4eab674f92 Update eslint-config-appium to the latest version 🚀 (#295)
* chore(package): update eslint-config-appium to version 4.0.1

* chore: fix linting
2019-01-07 13:11:57 -06:00
Kazuaki Matsuo a98f22607e add POST for system_time in order to set payload (#294) 2019-01-07 09:26:10 +01:00
Mykola Mokhnach fcacb0205d Tune the list of allowed headers for CORS (#293) 2018-12-28 22:55:43 +01:00
Mykola Mokhnach ee17aef91c Fix timeout arguments conversion (#292) 2018-12-27 19:26:04 +01:00
Jonathan Lipps 8d699e0359 rename the jsonwp proxy logger so it's less confusing in the logs (#291) 2018-12-10 15:00:59 -08:00
Dan Graham 644208fe60 Copy W3C/Element keys instead of renaming them (#290) 2018-12-10 13:24:36 -08:00
Mykola Mokhnach df80b7cd2b Make sure the app is not cleaned up if relative path is provided (#289) 2018-12-04 18:07:52 +01:00
Mykola Mokhnach 06094f2500 Consider getting file extension from the url if response headers are not useful (#288) 2018-11-30 18:14:30 +01:00
Dan Graham 6f565760df Do not use static yet. Still experimental. (#286) 2018-11-22 13:51:01 -08:00
Jonathan Lipps f66dadcd6b make allowing CORS conditional (#285)
* make allowing CORS conditional
It turns out blindly allowing CORS could be a security hazard (who knew)
See https://github.com/w3c/webdriver/pull/1362 for the conversation that led to this realization.
This change makes the cross domain middleware conditional (defaulting to the current behavior).
This way Appium can pass in 'false' based on a flag, for better server security.

* actually include function parameter we can use from appium
2018-11-21 16:46:53 -08:00
greenkeeper[bot] 4291f7cef7 Update lru-cache to the latest version 🚀 (#284)
* fix(package): update lru-cache to version 5.0.0

* Fix call to LRU
2018-11-21 08:14:07 -05:00
Jonathan Lipps f86b4c5685 allow correct downloading of zipped apps without content type header (#282) 2018-11-14 07:55:42 -08:00
Mykola Mokhnach cf0e95baf8 Automatically fix relative application paths (#276) 2018-11-02 10:02:20 +01:00
Mykola Mokhnach 3141e831cb Properly synchronize applications caching (#274) 2018-10-22 16:10:35 +02:00
Mykola Mokhnach 9657712c90 Remove samba support (#273) 2018-10-19 15:43:16 -07:00
Mykola Mokhnach 14cfcfcef7 Make it possible to pass multiple supported extensions to configureApp helper (#271) 2018-10-19 20:27:54 +02:00
Mykola Mokhnach 27a2d45e38 Avoid TypeError if stacktrace is undefined (#269) 2018-10-16 07:13:39 +02:00
Jonathan Lipps 02b3b87164 add custom locator strategy (#268)
* add custom locator strategy

* address review comments

* allow customFindModules cap to register multiple modules as an object

* add unit tests for custom element finding plugin
2018-10-12 10:19:57 -07:00
Isaac Murchie 2f4366187a Fix exports for new Babel 2018-10-03 09:17:26 -04:00
Isaac A. Murchie 04af064564 Update appium-gulp-plugins (#266) 2018-10-03 09:00:58 -04:00
Mykola Mokhnach 5cf4f13609 Fix protocol conversion for getWindowHandle command (#265) 2018-09-30 21:04:56 +02:00
Mykola Mokhnach d0d85bf6ff Allow numbers-as-strings while performing capabilities verification (#264) 2018-09-27 19:35:55 +02:00
Mykola Mokhnach f9581f1642 Limit the count of request agents in the proxy pool (#260) 2018-09-19 09:12:59 -07:00
Mykola Mokhnach d176cda10c Append the current session identifier to the protocol name prefix (#259) 2018-09-18 13:53:33 +02:00
Mykola Mokhnach 16e2852a1b Fix the way current protocol is determined from execute response (#258) 2018-09-11 18:27:27 +02:00
Mykola Mokhnach d80a78a615 Fix protocol detection inside the routing function (#257) 2018-09-08 20:39:08 +02:00
Mykola Mokhnach e6218fb4b1 Replace isError lodash verification as it is not reliable (#256) 2018-09-07 16:18:13 +02:00
Mykola Mokhnach 432915f234 Fix setting alert text for W3C protocol (#254) 2018-09-06 18:01:03 +02:00
Mykola Mokhnach 50e4c04805 Change logging level to debug for internal errors (#255) 2018-09-06 18:00:23 +02:00
Mykola Mokhnach deb775bd0c Properly handle POST /window conversion between protocols (#253)
* Properly handle POST /window conversion between protocols
2018-08-28 16:59:31 +02:00
Mykola Mokhnach e50ef5e6aa Remove the redundant logging from getResponseForW3CError helper (#252) 2018-08-24 16:25:56 +02:00
Mykola Mokhnach f909201791 Add JSONWP<>W3C mapping for window/handles endpoint (#251) 2018-08-21 21:50:00 +02:00
Mykola Mokhnach 5231fae89b Apply additional fixes to timeouts handler (#250)
* Apply additional fixes to timeouts handler

* Address comments

* Update the rest of tests

* Remove unused import

* fix the unit test
2018-08-15 15:26:47 +02:00
Isaac A. Murchie 5e9df93eeb Clean up error message from protocol (#249) 2018-08-15 08:04:14 -04:00
Mykola Mokhnach b161cb9527 Tune arguments transformation for /timeouts API call (#248)
* Tune arguments transformation for /timeouts API call

* Tune number verification

* Remove unnecessary validator

* Remove obsolete tests
2018-08-14 10:48:19 +02:00
Kazuaki Matsuo b90ed154d9 fix raising NotYetImplementedError against commands which exist in image-element (#245)
* fix raising NotYetImplementedError when the element is image-element
2018-08-05 22:37:59 +09:00
Mykola Mokhnach 4ed0c0b3cc Add an optional parameter to /window call (#244)
* Add an optional parameter to /window call

* update the validation

* Use util.hasValue

* Make args to make both protocols happy
2018-08-02 07:53:53 +02:00
Jonathan Lipps ec72948de2 add -image locator strategy and related logic (#235)
* add -image locator strategy and related logic

* use appium-support jimp helper

* handle find multiple elements by image

* update staleness check variable name

* ensure that a settings object always exists so we can rely on global settings always existing too

* only fix template size if user requests it in settings

* add note about implicit wait error handling

* only automatically update image element position if user turns on an appropriate setting

* add setting to control whether we check for image element staleness

* add setting to determine the image element tap strategy (w3c or mjsonwp)

* prefer single quotes

* add setting to turn off screenshot resizing if not desired

* add docstrings (except for cache class which we may not keep)

* address additional review comments

* add better jsdoc arg info

* use lru-cache npm package instead of rolling our own

* use new versino of appium-support

* make sure the lru cache is checking element size correctly

* give better names and tighten up logic around image el tap strategies

* add some unit tests for image elements

* ensure DeviceSettings has a default no-op update method

* check that driver implements action strategies and fall back / throw as appropriate

* finish out image element unit tests

* have basedriver set noop onSettingsUpdate rather than doing it in DeviceSettings

* move route avoidance detection from protocol to driver

* handle proxying actions to downstream drivers during image tap

* tighten up logic for deciding whether to proxy based on presence of image element

* add find by image specs and fix issues that arose in the process

* clean up regexes

* don't try to be smart and proxy actions for drivers; let them set it up themselves to support image elements

* change default match threshold based on experimentation

* export which settings are handled by basedriver so downstream drivers can utilize this information

* make sure to include a duration for the initial pointerMove action

* add docstring to proxyRouteIsAvoided
2018-07-30 13:17:54 -07:00
Isaac A. Murchie 855ebe15de Add method to check for unknown error (#242)
* Add method to check for unknown error

* Do not catch and re-throw proxied error

* Fix isUnknownError function and clean up handling
2018-07-26 13:11:47 -04:00
Isaac A. Murchie 42f64a87d9 Get message for MJSONWP error (#241)
* Get message for MJSONWP error

* Add comment

* Change parameter, and make work for espresso driver
2018-07-25 13:26:08 -04:00
Mykola Mokhnach dfae5caf62 Properly handle MJSONWP responses with non-zero status and return code < 400 (#240)
* Properly handle MJSONWP responses with non-zero status and return code < 400

* code 500 looks more appopriate

* Optimize downstream protocol detection

* Update the unit test

* Update errors handling inside proxyReqRes

* Improve the condition
2018-07-25 08:34:45 +02:00
Isaac A. Murchie 2bb0be7ad9 Fix handling of proxy url (#239)
* Fix handling of proxy url

* Allow no base in original proxy url
2018-07-24 15:45:22 -04:00
Mykola Mokhnach 6c81d550d9 Try to fix the destination URL if the upstream and downstream drivers operate different protocols (#238)
* Try to fix the destination URL if the upstream and downstream drivers operate different procotols

* detect route name in smarter manner

* Fix command name extraction

* consider the situation where url is equal to the endpoint

* Simplify helper functions

* Refactor command name extraction

* Refactor urls fixing

* Cache downstream procotol

* speed up downstream protocol detection

* Address comments

* Minor tunings
2018-07-24 15:25:31 +02:00
Isaac Murchie ff7320d355 Revert 0fd07f9332 2018-07-20 12:19:03 -04:00