appium_lib_core 3.2.0 → 3.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 4ffb1cbef0e8af1c0cf3b8dba42764a0decc3f9b5938ebff6f95f09c7438e516
4
- data.tar.gz: baaeb26f3d7333f9aeccfcb25e84a81caadae91ff90b95ce3b8f884c14fb7872
3
+ metadata.gz: 3ff75e0359bf70b322aa12cd173ef3fea0df195997233905a017e6fe4cf5f38c
4
+ data.tar.gz: 114ac1d61568e2cbe0325f8d1b286e9ae1955cb1a48bd9400c7c3e153c859ee9
5
5
  SHA512:
6
- metadata.gz: 7b102f1ee71cb033a2763b14f390fde773da2c02dc0c5ff6869c366a25067afd1c7448b228111c7117f1c6f5efd9e88e55f534b3c48dd1b3a1769a40bfb720c2
7
- data.tar.gz: 70d55ecdd3cc250c6d504954006dfef47b7e89db80fcc05379ea7e71362ad572a61786651239c5f5cbd462efb4e0e8776aa594bef1540a0148278cf0789f9a4c
6
+ metadata.gz: d5787feb8efa19498e62c01a0458801c69979a32325b61f92367a4dca60c29dfcf7510d88e25d237196332ac63db22593177e6523981b960e28bc6e7c25e7e8a
7
+ data.tar.gz: e81f4f201e7fe44c4f97da21738c9399823ca8cdafe86f9f10e81c7d55f7847e37b9471745fbe180cb69aa2a59614d20cf5995835af0001b519aed7013654438
@@ -21,6 +21,8 @@ Lint/NestedMethodDefinition:
21
21
  # TODO: Replace <<- with <<~ after dropping Ruby 2.2
22
22
  Layout/IndentHeredoc:
23
23
  Enabled: false
24
+ Style/ZeroLengthPredicate:
25
+ Enabled: false
24
26
  Style/Documentation:
25
27
  Enabled: false
26
28
  Style/CommentedKeyword:
@@ -8,7 +8,21 @@ Read `release_notes.md` for commit level details.
8
8
 
9
9
  ### Bug fixes
10
10
 
11
+
12
+ ## [3.2.1] - 2019-07-19
13
+
14
+ ### Enhancements
15
+ - Add `video_filters` argument for `start_recording_screen` iOS
16
+ - It is available over Appium 1.15.0
17
+
18
+ ### Bug fixes
19
+ - Fix wrong warning message in driver detection
20
+
11
21
  ### Deprecations
22
+ - `Driver#set_immediate_value(element, *value)`
23
+ - Use `Element#immediate_value(*value)` instead
24
+ - `Driver#replace_value(element, *value)`
25
+ - Use `Element#replace_value(*value)` instead
12
26
 
13
27
  ## [3.2.0] - 2019-06-27
14
28
 
data/README.md CHANGED
@@ -4,7 +4,7 @@
4
4
 
5
5
  | Travis, Ubuntu | Azure, Windows and functional tests |
6
6
  |:---:|:---:|
7
- |[![Build Status](https://travis-ci.org/appium/ruby_lib_core.svg?branch=master)](https://travis-ci.org/appium/ruby_lib_core)|[![Build Status](https://dev.azure.com/kazucocoa/ruby_lib_core_windows/_apis/build/status/appium.ruby_lib_core)](https://dev.azure.com/kazucocoa/ruby_lib_core_windows/_build/latest?definitionId=4)|
7
+ |[![Build Status](https://travis-ci.org/appium/ruby_lib_core.svg?branch=master)](https://travis-ci.org/appium/ruby_lib_core)|[![Build Status](https://dev.azure.com/kazucocoa/ruby_lib_core/_apis/build/status/ruby_lib_core?branchName=master)](https://dev.azure.com/kazucocoa/ruby_lib_core/_build/latest?definitionId=9&branchName=master)|
8
8
 
9
9
  This library is a Ruby client for Appium. The gem is available via [appium_lib_core](https://rubygems.org/gems/appium_lib_core).
10
10
 
@@ -76,6 +76,16 @@ $ PARALLEL=1 bundle exec parallel_test test/functional/android -n 3
76
76
  $ PARALLEL=1 bundle exec parallel_test test/functional/ios -n 2
77
77
  ```
78
78
 
79
+ ## CI
80
+
81
+ - Runs on CI environment (on Azure)
82
+ - Non `IGNORE_VERSION_SKIP` or `IGNORE_VERSION_SKIP=true` runs all tests ignoring `skip` them by Appium versions
83
+ - `IGNORE_VERSION_SKIP=false` skips the following tests if the Appium version is lower than the requirement
84
+
85
+ ```
86
+ $ IGNORE_VERSION_SKIP=true CI=true bundle exec rake test:func:android
87
+ ```
88
+
79
89
  ## Run a test case
80
90
  1. Launch the Appium server locally.
81
91
  2. Run the following script.
@@ -24,3 +24,12 @@ jobs:
24
24
  - template: ./ci-jobs/functional/publish_test_result.yml
25
25
  parameters:
26
26
  xcodeVersion: 'Run_unit_tests_on_Windows_environment'
27
+
28
+ # Runs tests nightly to make sure they works against appium@beta
29
+ schedules:
30
+ - cron: "0 0 * * *"
31
+ displayName: Daily Nightly build (UTC)
32
+ branches:
33
+ include:
34
+ - master
35
+ always: true
@@ -1,12 +1,14 @@
1
1
  steps:
2
2
  - task: NodeTool@0
3
3
  inputs:
4
- versionSpec: 11.x
5
- displayName: Install Node 11.x
6
- - script: npm install -g appium@beta --chromedriver_version='2.44'
4
+ versionSpec: 10.x
5
+ displayName: Install Node 10.x
6
+ - script: npm install -g appium@${APPIUM_VERSION} --chromedriver_version='2.44'
7
7
  displayName: Install appium beta
8
8
  - script: npm install -g mjpeg-consumer
9
9
  displayName: Install MJPEG Consumer
10
+ - script: npm list --depth 2 -g || echo 'ok'
11
+ displayName: Installed node dependencies
10
12
  - task: UseRubyVersion@0
11
13
  inputs:
12
14
  versionSpec: '2.4' # so far, bundler does not work over 2.5 since it raises openssl error
@@ -1,18 +1,27 @@
1
1
  # jobs for functional test
2
2
  parameters:
3
3
  vmImage: 'macOS-10.14'
4
+ vmImageForIOS: 'macOS-10.13' # Not sure the reason, but macOS 10.14 instance raises no info.plist error
5
+ xcodeForIOS: 10.1
6
+ xcodeForTVOS: 10.2
7
+ androidSDK: 28
8
+ appiumVersion: 'beta'
9
+ ignoreVersionSkip: true
10
+ CI: true
4
11
 
5
12
  jobs:
6
13
  # Run unit tests on different Node versions
7
14
  - job: func_test_ios_base
8
15
  pool:
9
- vmImage: ${{ parameters.vmImage }}
16
+ vmImage: ${{ parameters.vmImageForIOS }}
10
17
  variables:
11
- CI: true
18
+ CI: ${{ parameters.ci }}
19
+ IGNORE_VERSION_SKIP: ${{ parameters.ignoreVersionSkip }}
20
+ APPIUM_VERSION: ${{ parameters.appiumVersion }}
12
21
  steps:
13
22
  - template: ./functional/ios_setup.yml
14
23
  parameters:
15
- xcodeVersion: 10.1
24
+ xcodeVersion: ${{ parameters.xcodeForIOS }}
16
25
  - template: ./functional/run_appium.yml
17
26
  - script: bundle exec rake test:func:ios TESTS=test/functional/ios/driver_test.rb,test/functional/ios/patch_test.rb
18
27
  displayName: Run tests
@@ -22,13 +31,15 @@ jobs:
22
31
 
23
32
  - job: func_test_ios_webdriver1
24
33
  pool:
25
- vmImage: ${{ parameters.vmImage }}
34
+ vmImage: ${{ parameters.vmImageForIOS }}
26
35
  variables:
27
- CI: true
36
+ CI: ${{ parameters.ci }}
37
+ IGNORE_VERSION_SKIP: ${{ parameters.ignoreVersionSkip }}
38
+ APPIUM_VERSION: ${{ parameters.appiumVersion }}
28
39
  steps:
29
40
  - template: ./functional/ios_setup.yml
30
41
  parameters:
31
- xcodeVersion: 10.1
42
+ xcodeVersion: ${{ parameters.xcodeForIOS }}
32
43
  - template: ./functional/run_appium.yml
33
44
  - script: bundle exec rake test:func:ios TESTS=test/functional/ios/webdriver/create_session_test.rb,test/functional/ios/webdriver/w3c_actions_test.rb
34
45
  displayName: Run tests
@@ -38,13 +49,15 @@ jobs:
38
49
 
39
50
  - job: func_test_ios_webdriver2
40
51
  pool:
41
- vmImage: ${{ parameters.vmImage }}
52
+ vmImage: ${{ parameters.vmImageForIOS }}
42
53
  variables:
43
- CI: true
54
+ CI: ${{ parameters.ci }}
55
+ IGNORE_VERSION_SKIP: ${{ parameters.ignoreVersionSkip }}
56
+ APPIUM_VERSION: ${{ parameters.appiumVersion }}
44
57
  steps:
45
58
  - template: ./functional/ios_setup.yml
46
59
  parameters:
47
- xcodeVersion: 10.1
60
+ xcodeVersion: ${{ parameters.xcodeForIOS }}
48
61
  - template: ./functional/run_appium.yml
49
62
  - script: bundle exec rake test:func:ios TESTS=test/functional/ios/webdriver/device_test.rb
50
63
  displayName: Run tests
@@ -54,13 +67,15 @@ jobs:
54
67
 
55
68
  - job: func_test_ios_ios1
56
69
  pool:
57
- vmImage: ${{ parameters.vmImage }}
70
+ vmImage: ${{ parameters.vmImageForIOS }}
58
71
  variables:
59
- CI: true
72
+ CI: ${{ parameters.ci }}
73
+ IGNORE_VERSION_SKIP: ${{ parameters.ignoreVersionSkip }}
74
+ APPIUM_VERSION: ${{ parameters.appiumVersion }}
60
75
  steps:
61
76
  - template: ./functional/ios_setup.yml
62
77
  parameters:
63
- xcodeVersion: 10.1
78
+ xcodeVersion: ${{ parameters.xcodeForIOS }}
64
79
  - template: ./functional/run_appium.yml
65
80
  - script: bundle exec rake test:func:ios TESTS=test/functional/ios/ios/device_test.rb
66
81
  displayName: Run tests
@@ -70,14 +85,18 @@ jobs:
70
85
 
71
86
  - job: func_test_ios_ios2
72
87
  pool:
73
- vmImage: ${{ parameters.vmImage }}
88
+ vmImage: ${{ parameters.vmImageForIOS }}
74
89
  variables:
75
- CI: true
90
+ CI: ${{ parameters.ci }}
91
+ IGNORE_VERSION_SKIP: ${{ parameters.ignoreVersionSkip }}
92
+ APPIUM_VERSION: ${{ parameters.appiumVersion }}
76
93
  steps:
77
94
  - template: ./functional/ios_setup.yml
78
95
  parameters:
79
- xcodeVersion: 10.1
96
+ xcodeVersion: ${{ parameters.xcodeForIOS }}
80
97
  - template: ./functional/run_appium.yml
98
+ - script: npm install -g appium opencv4nodejs@4.17.0
99
+ displayName: Install opencv4nodejs@4.17.0
81
100
  - script: bundle exec rake test:func:ios TESTS=test/functional/ios/ios/device_wda_attachment_test.rb,test/functional/ios/ios/image_comparison_test.rb
82
101
  displayName: Run tests
83
102
  - template: ./functional/publish_test_result.yml
@@ -86,13 +105,15 @@ jobs:
86
105
 
87
106
  - job: func_test_ios_ios3
88
107
  pool:
89
- vmImage: ${{ parameters.vmImage }}
108
+ vmImage: ${{ parameters.vmImageForIOS }}
90
109
  variables:
91
- CI: true
110
+ CI: ${{ parameters.ci }}
111
+ IGNORE_VERSION_SKIP: ${{ parameters.ignoreVersionSkip }}
112
+ APPIUM_VERSION: ${{ parameters.appiumVersion }}
92
113
  steps:
93
114
  - template: ./functional/ios_setup.yml
94
115
  parameters:
95
- xcodeVersion: 10.1
116
+ xcodeVersion: ${{ parameters.xcodeForIOS }}
96
117
  - script: brew install ffmpeg && brew tap wix/brew && brew install wix/brew/applesimutils
97
118
  displayName: Install ffmpeg and applesimutils
98
119
  - template: ./functional/run_appium.yml
@@ -106,11 +127,13 @@ jobs:
106
127
  pool:
107
128
  vmImage: ${{ parameters.vmImage }}
108
129
  variables:
109
- CI: true
130
+ CI: ${{ parameters.ci }}
131
+ IGNORE_VERSION_SKIP: ${{ parameters.ignoreVersionSkip }}
132
+ APPIUM_VERSION: ${{ parameters.appiumVersion }}
110
133
  steps:
111
134
  - template: ./functional/ios_setup.yml
112
135
  parameters:
113
- xcodeVersion: 10.2
136
+ xcodeVersion: ${{ parameters.xcodeForTVOS }}
114
137
  - template: ./functional/run_appium.yml
115
138
  - script: bundle exec rake test:func:ios TESTS=test/functional/ios/tv_driver_test.rb
116
139
  displayName: Run tests
@@ -122,8 +145,10 @@ jobs:
122
145
  pool:
123
146
  vmImage: ${{ parameters.vmImage }}
124
147
  variables:
125
- CI: true
126
- ANDROID_SDK_VERSION: 28
148
+ CI: ${{ parameters.ci }}
149
+ ANDROID_SDK_VERSION: ${{ parameters.androidSDK }}
150
+ IGNORE_VERSION_SKIP: ${{ parameters.ignoreVersionSkip }}
151
+ APPIUM_VERSION: ${{ parameters.appiumVersion }}
127
152
  steps:
128
153
  - template: ./functional/android_setup.yml
129
154
  - template: ./functional/run_appium.yml
@@ -137,8 +162,10 @@ jobs:
137
162
  pool:
138
163
  vmImage: ${{ parameters.vmImage }}
139
164
  variables:
140
- CI: true
141
- ANDROID_SDK_VERSION: 28
165
+ CI: ${{ parameters.ci }}
166
+ ANDROID_SDK_VERSION: ${{ parameters.androidSDK }}
167
+ IGNORE_VERSION_SKIP: ${{ parameters.ignoreVersionSkip }}
168
+ APPIUM_VERSION: ${{ parameters.appiumVersion }}
142
169
  steps:
143
170
  - template: ./functional/android_setup.yml
144
171
  - template: ./functional/run_appium.yml
@@ -152,8 +179,10 @@ jobs:
152
179
  pool:
153
180
  vmImage: ${{ parameters.vmImage }}
154
181
  variables:
155
- CI: true
156
- ANDROID_SDK_VERSION: 28
182
+ CI: ${{ parameters.ci }}
183
+ ANDROID_SDK_VERSION: ${{ parameters.androidSDK }}
184
+ IGNORE_VERSION_SKIP: ${{ parameters.ignoreVersionSkip }}
185
+ APPIUM_VERSION: ${{ parameters.appiumVersion }}
157
186
  steps:
158
187
  - template: ./functional/android_setup.yml
159
188
  - template: ./functional/run_appium.yml
@@ -167,11 +196,15 @@ jobs:
167
196
  pool:
168
197
  vmImage: ${{ parameters.vmImage }}
169
198
  variables:
170
- CI: true
171
- ANDROID_SDK_VERSION: 28
199
+ CI: ${{ parameters.ci }}
200
+ ANDROID_SDK_VERSION: ${{ parameters.androidSDK }}
201
+ IGNORE_VERSION_SKIP: ${{ parameters.ignoreVersionSkip }}
202
+ APPIUM_VERSION: ${{ parameters.appiumVersion }}
172
203
  steps:
173
204
  - template: ./functional/android_setup.yml
174
205
  - template: ./functional/run_appium.yml
206
+ - script: npm install -g appium opencv4nodejs@4.17.0
207
+ displayName: Install opencv4nodejs@4.17.0
175
208
  - script: bundle exec rake test:func:android TESTS=test/functional/android/android/image_comparison_test.rb,test/functional/android/android/mjpeg_server_test.rb
176
209
  displayName: Run tests
177
210
  - template: ./functional/publish_test_result.yml
@@ -182,8 +215,10 @@ jobs:
182
215
  pool:
183
216
  vmImage: ${{ parameters.vmImage }}
184
217
  variables:
185
- CI: true
186
- ANDROID_SDK_VERSION: 28
218
+ CI: ${{ parameters.ci }}
219
+ ANDROID_SDK_VERSION: ${{ parameters.androidSDK }}
220
+ IGNORE_VERSION_SKIP: ${{ parameters.ignoreVersionSkip }}
221
+ APPIUM_VERSION: ${{ parameters.appiumVersion }}
187
222
  steps:
188
223
  - template: ./functional/android_setup.yml
189
224
  - template: ./functional/run_appium.yml
@@ -197,8 +232,10 @@ jobs:
197
232
  pool:
198
233
  vmImage: ${{ parameters.vmImage }}
199
234
  variables:
200
- CI: true
201
- ANDROID_SDK_VERSION: 28
235
+ CI: ${{ parameters.ci }}
236
+ ANDROID_SDK_VERSION: ${{ parameters.androidSDK }}
237
+ IGNORE_VERSION_SKIP: ${{ parameters.ignoreVersionSkip }}
238
+ APPIUM_VERSION: ${{ parameters.appiumVersion }}
202
239
  steps:
203
240
  - template: ./functional/android_setup.yml
204
241
  - template: ./functional/run_appium.yml
@@ -212,9 +249,11 @@ jobs:
212
249
  pool:
213
250
  vmImage: ${{ parameters.vmImage }}
214
251
  variables:
215
- CI: true
216
- ANDROID_SDK_VERSION: 28
252
+ CI: ${{ parameters.ci }}
253
+ ANDROID_SDK_VERSION: ${{ parameters.androidSDK }}
217
254
  AUTOMATION_NAME_DROID: espresso
255
+ IGNORE_VERSION_SKIP: ${{ parameters.ignoreVersionSkip }}
256
+ APPIUM_VERSION: ${{ parameters.appiumVersion }}
218
257
  steps:
219
258
  - template: ./functional/android_setup.yml
220
259
  - template: ./functional/run_appium.yml
@@ -77,7 +77,7 @@ module Appium
77
77
  # Same as #network_connection_type in selenium-webdriver.
78
78
  #
79
79
  # Returns a key of <code>{:airplane_mode: 1, wifi: 2, data: 4, all: 6, none: 0}</code> in #network_connection_type
80
- # Returns a number of the mode in `#get_network_connection`
80
+ # Returns a number of the mode in +#get_network_connection+
81
81
  #
82
82
  # @example
83
83
  #
@@ -129,7 +129,7 @@ module Appium
129
129
  # Defaults to 'Done' for iOS(except for XCUITest).
130
130
  # @param [Symbol] strategy The symbol of the strategy which closes the keyboard.
131
131
  # XCUITest ignore this argument.
132
- # Default for iOS is `:pressKey`. Default for Android is `:tapOutside`.
132
+ # Default for iOS is +:pressKey+. Default for Android is +:tapOutside+.
133
133
  #
134
134
  # @example
135
135
  #
@@ -154,12 +154,12 @@ module Appium
154
154
  # @option opts [String] :app_activity The target activity [required]
155
155
  # @option opts [String] :app_wait_package The package to start before the target package [optional]
156
156
  # @option opts [String] :app_wait_activity The activity to start before the target activity [optional]
157
- # @option opts [String] :intent_action The intent action to give it when start the target activity (`-a`) [optional]
158
- # @option opts [String] :intent_category The intent category to give it when start the target activity (`-c`) [optional]
159
- # @option opts [String] :intent_flags The intent flag to give it when start the target activity (`-f`) [optional]
157
+ # @option opts [String] :intent_action The intent action to give it when start the target activity (+-a+) [optional]
158
+ # @option opts [String] :intent_category The intent category to give it when start the target activity (+-c+) [optional]
159
+ # @option opts [String] :intent_flags The intent flag to give it when start the target activity (+-f+) [optional]
160
160
  # @option opts [String] :optional_intent_arguments The optional intent action to give it when start the target activity [optional]
161
161
  # You can set arbitrary arguments with space as string.
162
- # e.g. `'--ez your_extra_bool bool --ei your_extra_int 1'`
162
+ # e.g. +'--ez your_extra_bool bool --ei your_extra_int 1'+
163
163
  # @option opts [bool] :dont_stop_app_on_reset Do not stop the app when the reset is called in Appium create/delete session [optional]
164
164
  #
165
165
  # @example
@@ -170,7 +170,7 @@ module Appium
170
170
 
171
171
  # @!method set_network_connection(mode)
172
172
  # Set the device network connection mode
173
- # Same as `#network_connection_type` in selenium-webdriver.
173
+ # Same as +#network_connection_type+ in selenium-webdriver.
174
174
  #
175
175
  # @param [String] mode Bit mask that represent the network mode
176
176
  # Or the key matched with <code>{:airplane_mode: 1, wifi: 2, data: 4, all: 6, none: 0}</code>
@@ -204,7 +204,7 @@ module Appium
204
204
  # Get the resource usage information of the application.
205
205
  # https://github.com/appium/appium-base-driver/blob/be29aec2318316d12b5c3295e924a5ba8f09b0fb/lib/mjsonwp/routes.js#L303
206
206
  # @param [String] package_name: Package name
207
- # @param [String] data_type: Data type get with `get_performance_data_types`
207
+ # @param [String] data_type: Data type get with +get_performance_data_types+
208
208
  # @param [String] data_read_timeout: Command timeout. Default is 2.
209
209
  #
210
210
  # @example
@@ -220,13 +220,13 @@ module Appium
220
220
  # An exception will be thrown if the generated media file is too big to
221
221
  # fit into the available process memory.
222
222
  # This option only has an effect if there is screen recording process in progress
223
- # and `forceRestart` parameter is not set to `true`.
223
+ # and +forceRestart+ parameter is not set to +true+.
224
224
  # @param [String] user The name of the user for the remote authentication.
225
225
  # @param [String] pass The password for the remote authentication.
226
226
  # @param [String] method The http multipart upload method name. The 'PUT' one is used by default.
227
227
  # @param [Boolean] force_restart Whether to try to catch and upload/return the currently running screen recording
228
- # (`false`, the default setting on server) or ignore the result of it
229
- # and start a new recording immediately (`true`).
228
+ # (+false+, the default setting on server) or ignore the result of it
229
+ # and start a new recording immediately (+true+).
230
230
  #
231
231
  # @param [String] video_size The format is widthxheight.
232
232
  # The default value is the device's native display resolution (if supported),
@@ -241,7 +241,7 @@ module Appium
241
241
  # present then the most recent screen recording chunk is going to be returned as the result.
242
242
  # @param [String] bit_rate The video bit rate for the video, in megabits per second.
243
243
  # 4 Mbp/s(4000000) is by default for Android API level below 27. 20 Mb/s(20000000) for API level 27 and above.
244
- # @param [Boolean] bug_report Set it to `true` in order to display additional information on the video overlay,
244
+ # @param [Boolean] bug_report Set it to +true+ in order to display additional information on the video overlay,
245
245
  # such as a timestamp, that is helpful in videos captured to illustrate bugs.
246
246
  # This option is only supported since API level 27 (Android P).
247
247
  #
@@ -30,7 +30,7 @@ module Appium
30
30
  # Battery level in range [0.0, 1.0], where 1.0 means 100% charge. -1 is returned
31
31
  # if the actual value cannot be retrieved from the system.
32
32
  # Battery state. The following symbols are possible
33
- # `:unknown, :charging, :discharging, :not_charging, :full`
33
+ # +:unknown, :charging, :discharging, :not_charging, :full+
34
34
  #
35
35
  # @example
36
36
  #
@@ -58,10 +58,10 @@ module Appium
58
58
 
59
59
  # Override
60
60
  # Creates session handling both OSS and W3C dialects.
61
- # Copy from Selenium::WebDriver::Remote::Bridge to keep using `merged_capabilities` for Appium
61
+ # Copy from Selenium::WebDriver::Remote::Bridge to keep using +merged_capabilities+ for Appium
62
62
  #
63
- # If `desired_capabilities` has `forceMjsonwp: true` in the capability, this bridge works with mjsonwp protocol.
64
- # If `forceMjsonwp: false` or no the capability, it depends on server side whether this bridge works as w3c or mjsonwp.
63
+ # If +desired_capabilities+ has +forceMjsonwp: true+ in the capability, this bridge works with mjsonwp protocol.
64
+ # If +forceMjsonwp: false+ or no the capability, it depends on server side whether this bridge works as w3c or mjsonwp.
65
65
  #
66
66
  # @param [::Selenium::WebDriver::Remote::W3C::Capabilities, Hash] desired_capabilities A capability
67
67
  # @return [::Selenium::WebDriver::Remote::Capabilities, ::Selenium::WebDriver::Remote::W3C::Capabilities]
@@ -125,7 +125,7 @@ module Appium
125
125
  json_create(oss_status, value)
126
126
  end
127
127
 
128
- # Append `appium:` prefix for Appium following W3C spec
128
+ # Append +appium:+ prefix for Appium following W3C spec
129
129
  # https://www.w3.org/TR/webdriver/#dfn-validate-capabilities
130
130
  #
131
131
  # @param [::Selenium::WebDriver::Remote::W3C::Capabilities, Hash] capabilities A capability
@@ -43,18 +43,18 @@ module Appium
43
43
  end
44
44
 
45
45
  # Perform touch actions for W3C module.
46
- # Generate `touch` pointer action here and users can use this via `driver.action`
46
+ # Generate +touch+ pointer action here and users can use this via +driver.action+
47
47
  # - https://seleniumhq.github.io/selenium/docs/api/rb/Selenium/WebDriver/W3CActionBuilder.html
48
48
  # - https://seleniumhq.github.io/selenium/docs/api/rb/Selenium/WebDriver/PointerActions.html
49
49
  # - https://seleniumhq.github.io/selenium/docs/api/rb/Selenium/WebDriver/KeyActions.html
50
50
  #
51
- # 'mouse' action is by default in the Ruby client. Appium server force the `mouse` action to `touch` once in
51
+ # 'mouse' action is by default in the Ruby client. Appium server force the +mouse+ action to +touch+ once in
52
52
  # the server side. So we don't consider the case.
53
53
  #
54
54
  # @example
55
55
  #
56
56
  # element = @driver.find_element(:id, "some id")
57
- # @driver.action.click(element).perform # The `click` is a part of `PointerActions`
57
+ # @driver.action.click(element).perform # The 'click' is a part of 'PointerActions'
58
58
  #
59
59
  def action(async = false)
60
60
  # Used for default duration of each touch actions
@@ -143,21 +143,21 @@ module Appium
143
143
 
144
144
  # For Appium
145
145
  # override
146
- # called in `extend DriverExtensions::HasNetworkConnection`
146
+ # called in 'extend DriverExtensions::HasNetworkConnection'
147
147
  def network_connection
148
148
  execute :get_network_connection
149
149
  end
150
150
 
151
151
  # For Appium
152
152
  # override
153
- # called in `extend DriverExtensions::HasNetworkConnection`
153
+ # called in 'extend DriverExtensions::HasNetworkConnection'
154
154
  def network_connection=(type)
155
155
  execute :set_network_connection, {}, { parameters: { type: type } }
156
156
  end
157
157
 
158
158
  # For Appium
159
159
  # No implementation for W3C webdriver module
160
- # called in `extend DriverExtensions::HasLocation`
160
+ # called in 'extend DriverExtensions::HasLocation'
161
161
  def location
162
162
  obj = execute(:get_location) || {}
163
163
  ::Selenium::WebDriver::Location.new obj['latitude'], obj['longitude'], obj['altitude']
@@ -165,8 +165,17 @@ module Appium
165
165
 
166
166
  # For Appium
167
167
  # No implementation for W3C webdriver module
168
- # called in `extend DriverExtensions::HasLocation`
169
- def set_location(lat, lon, alt)
168
+ # called in +extend DriverExtensions::HasLocation+
169
+ # It has below code as well. We should consider the same context in Selenium 4 as backward compatibility.
170
+ #
171
+ # def location=(loc)
172
+ # # note: Location = Struct.new(:latitude, :longitude, :altitude)
173
+ # raise TypeError, "expected #{Location}, got #{loc.inspect}:#{loc.class}" unless loc.is_a?(Location)
174
+ #
175
+ # @bridge.set_location loc.latitude, loc.longitude, loc.altitude
176
+ # end
177
+ #
178
+ def set_location(lat, lon, alt = 0.0)
170
179
  loc = { latitude: lat, longitude: lon, altitude: alt }
171
180
  execute :set_location, {}, { location: loc }
172
181
  end