appium_lib_core 3.7.0 → 3.11.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 16c3547b36730999941512edcad25073f99425d0312d71fa5fa6e487e3790cd3
4
- data.tar.gz: b65e1f458ff358048c71772478e328afe6b1b88fba047928e78b98463be1eaad
3
+ metadata.gz: 4dd7162d340f5712d5ecef7ef6061f8b19d1ad66d528a674563b3eb315de066b
4
+ data.tar.gz: 024f6ac6c493595db8251eca602e5a1976376364f84225b6c1cb8e69ca97550d
5
5
  SHA512:
6
- metadata.gz: ab6ec325103678537790277605a17796adf96469223057f2ca7444a1335155d7c09b68a6dc4a78e5c326d28564cc5e212363e7099a6f40604cbe64e82528bf84
7
- data.tar.gz: 8bf9ea9236f5de5b6cd8c0d5a432f49a31a54b44c408d48a9eaca2e28f1347f47f0e6bcf927ef3085d8f8c4775d7e0077d11d68775ae221d729ab20f7ec6be12
6
+ metadata.gz: 26086370c36d9d98676a78e42c831bb91040d4024ecb6059a49e27b185aaa669f0b1d5fcccce8702f78d44b93436ea26c86ff92065e42d2783fed9d46e338909
7
+ data.tar.gz: 7545b8db05d2259a7efc56ec3baf7fbc3b5a25929f11e6d80c951fe0005c690af51fca4f07bd2c178bf3cdfe00508a596fe56e467f7b4e678cd2c28c70369ba8
@@ -0,0 +1,29 @@
1
+ ---
2
+ name: issue report
3
+ about: Create a report to help us improve
4
+ title: ''
5
+ labels: ''
6
+ assignees: ''
7
+
8
+ ---
9
+
10
+ ## This is a
11
+ * [ ] Bug report
12
+ * [ ] Question
13
+ * [ ] Feature Request
14
+
15
+ ## Summary
16
+
17
+ ## Environment
18
+ * `ruby_lib_core` version:
19
+ * Mobile platform/version/device under test:
20
+
21
+ ## Actual behaviour and steps to reproduce
22
+
23
+ ## Expected behaviour
24
+
25
+ ## Link to Appium/Ruby logs
26
+
27
+ Create a [GIST](https://gist.github.com) which is a paste of your _full_ Appium logs, and link them here.
28
+
29
+ ## Any additional comments
@@ -0,0 +1,68 @@
1
+ name: Runs lint and unit tests
2
+
3
+ on:
4
+ push:
5
+ branches: [ master ]
6
+ pull_request:
7
+ branches: [ master ]
8
+
9
+ jobs:
10
+ test:
11
+ strategy:
12
+ fail-fast: false
13
+ matrix:
14
+ ruby: [2.2, 2.3, 2.4, 2.5, 2.6, 2.7]
15
+
16
+ runs-on: ubuntu-latest
17
+
18
+ env:
19
+ UNIT_TEST: true
20
+
21
+ steps:
22
+ - uses: actions/checkout@v2
23
+ - name: Set up Ruby
24
+ uses: ruby/setup-ruby@v1
25
+ with:
26
+ ruby-version: ${{ matrix.ruby }}
27
+ - name: Install dependencies
28
+ run: bundle install
29
+ - name: Run tests
30
+ run: |
31
+ bundle exec rake rubocop
32
+ bundle exec parallel_test test/unit/ -n 4
33
+ AUTOMATION_NAME_DROID=espresso bundle exec parallel_test test/unit/android -n 4
34
+ AUTOMATION_NAME_DROID=appium AUTOMATION_NAME_IOS=appium bundle exec parallel_test test/unit -n 4
35
+
36
+ test-win:
37
+ strategy:
38
+ fail-fast: false
39
+ matrix:
40
+ # Does not add 2.7 on Windows so far since a command fails only on Windows
41
+ ruby: [2.2, 2.3, 2.4, 2.5, 2.6]
42
+
43
+ runs-on: windows-latest
44
+
45
+ env:
46
+ UNIT_TEST: true
47
+
48
+ steps:
49
+ - uses: actions/checkout@v2
50
+ - name: Set up Ruby
51
+ uses: ruby/setup-ruby@v1
52
+ with:
53
+ ruby-version: ${{ matrix.ruby }}
54
+ - name: Install dependencies
55
+ run: |
56
+ gem install ffi
57
+ bundle install
58
+ gem uninstall --force eventmachine && gem install eventmachine --platform ruby
59
+ - name: Run tests
60
+ run: |
61
+ parallel_test test/unit/ -n 4
62
+
63
+ setx AUTOMATION_NAME_DROID espresso
64
+ parallel_test test/unit/android -n 4
65
+
66
+ setx AUTOMATION_NAME_DROID appium
67
+ setx AUTOMATION_NAME_IOS appium
68
+ parallel_test test/unit -n 4
@@ -11,11 +11,11 @@ Metrics/ClassLength:
11
11
  Metrics/AbcSize:
12
12
  Enabled: false
13
13
  Metrics/CyclomaticComplexity:
14
- Max: 13
14
+ Max: 14
15
15
  Metrics/PerceivedComplexity:
16
- Max: 13
16
+ Max: 14
17
17
  Metrics/ParameterLists:
18
- Max: 6
18
+ Enabled: false
19
19
  Lint/NestedMethodDefinition:
20
20
  Enabled: false
21
21
  # TODO: Replace <<- with <<~ after dropping Ruby 2.2
@@ -10,12 +10,73 @@ Read `release_notes.md` for commit level details.
10
10
 
11
11
  ### Deprecations
12
12
 
13
+ ## [3.11.0] - 2020-08-01
14
+
15
+ ### Enhancements
16
+ - Security update [GHSA-2v5c-755p-p4gv](https://github.com/advisories/GHSA-2v5c-755p-p4gv)
17
+ - Affects only _::Appium::Core::WebSocket_
18
+
19
+ ### Bug fixes
20
+
21
+ ### Deprecations
22
+
23
+ ## [3.10.1] - 2020-06-29
24
+
25
+ ### Enhancements
26
+
27
+ ### Bug fixes
28
+ - Fix duplication warning of `execute_cdp`
29
+
30
+ ### Deprecations
31
+
32
+ ## [3.10.0] - 2020-06-09
33
+
34
+ ### Enhancements
35
+ - Remove deprecated `Selenium::WebDriver::Error::TimeOutError`
36
+
37
+ ### Bug fixes
38
+
39
+ ### Deprecations
40
+
41
+ ## [3.9.0] - 2020-05-31
42
+
43
+ ### Enhancements
44
+ - `capabilities:` is available in addition to `desired_capabilities:` and `caps:` as a capability
45
+ ```ruby
46
+ # case 1
47
+ opts = { caps: { }, appium_lib: { } }
48
+ @driver = Appium::Core.for(opts).start_driver
49
+
50
+ # case 2
51
+ opts = { capabilities: { }, appium_lib: { } }
52
+ @driver = Appium::Core.for(opts).start_driver
53
+
54
+ # case 3
55
+ opts = { desired_capabilities: { }, appium_lib: { } }
56
+ @driver = Appium::Core.for(opts).start_driver
57
+ ```
58
+
59
+ ### Bug fixes
60
+
61
+ ### Deprecations
62
+
63
+ ## [3.8.0] - 2020-05-17
64
+
65
+ ### Enhancements
66
+ - Add options for `start_recording_screen`
67
+ - `file_field_name`, `form_fields` and `headers` are available since Appium 1.18.0
68
+
69
+ ### Bug fixes
70
+ - Fix `x-idempotency-key` header to add it only in new session request (https://github.com/appium/ruby_lib_core/issues/262)
71
+
72
+ ### Deprecations
73
+
13
74
  ## [3.7.0] - 2020-04-18
14
75
 
15
76
  ### Enhancements
16
77
  - Add `x-idempotency-key` header support (https://github.com/appium/appium-base-driver/pull/400)
17
78
  - Can disable the header with `enable_idempotency_header: false` in `appium_lib` capability. Defaults to `true`.
18
- - Add chrome devtools endpoint which is available chrome module in Selenium Ruby binding
79
+ - Add chrome devtools endpoint which is available chrome module in Selenium Ruby binding
19
80
  - https://github.com/appium/appium-base-driver/pull/405
20
81
 
21
82
  ### Bug fixes
@@ -107,7 +168,7 @@ Read `release_notes.md` for commit level details.
107
168
 
108
169
  ### Enhancements
109
170
  - Add `execute_driver` to run a batch script
110
- - It requires Appium version which has `execute_driver` support
171
+ - It requires Appium version which has `execute_driver` support
111
172
 
112
173
  ### Bug fixes
113
174
 
data/README.md CHANGED
@@ -2,9 +2,7 @@
2
2
 
3
3
  [![Gem Version](https://badge.fury.io/rb/appium_lib_core.svg)](https://badge.fury.io/rb/appium_lib_core)
4
4
 
5
- | Travis, Ubuntu | Azure, Windows and functional tests |
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/_apis/build/status/ruby_lib_core?branchName=master)](https://dev.azure.com/kazucocoa/ruby_lib_core/_build/latest?definitionId=9&branchName=master)|
5
+ [![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
6
 
9
7
  This library is a Ruby client for Appium. The gem is available via [appium_lib_core](https://rubygems.org/gems/appium_lib_core).
10
8
 
@@ -23,7 +23,7 @@ Gem::Specification.new do |spec|
23
23
  spec.require_paths = ['lib']
24
24
 
25
25
  spec.add_runtime_dependency 'selenium-webdriver', '~> 3.14', '>= 3.14.1'
26
- spec.add_runtime_dependency 'faye-websocket', '~> 0.10.0'
26
+ spec.add_runtime_dependency 'faye-websocket', '~> 0.11.0'
27
27
 
28
28
  spec.add_development_dependency 'bundler', '>= 1.14'
29
29
  spec.add_development_dependency 'rake', '~> 13.0'
@@ -4,26 +4,6 @@
4
4
  # https://docs.microsoft.com/azure/devops/pipelines/languages/ruby
5
5
  jobs:
6
6
  - template: ./ci-jobs/functional_test.yml
7
- - job: Run_unit_tests_on_Windows_environment
8
- pool:
9
- vmImage: 'vs2017-win2016'
10
- variables:
11
- UNIT_TEST: true
12
- steps:
13
- - task: UseRubyVersion@0
14
- inputs:
15
- versionSpec: '2.5'
16
- - script: gem install bundler ffi:1.10.0
17
- displayName: 'Gem install bundler and ffi for Windows environment'
18
- - script: bundle install --retry=3 --jobs=4
19
- displayName: 'Call bundle install'
20
- - script: gem uninstall --force eventmachine && gem install eventmachine --platform ruby
21
- displayName: 'bundle re-install eventmachine for Windows because of Windows environment issue'
22
- - script: parallel_test test/unit/ -n 4
23
- displayName: 'Run parallel_test test/unit/ -n 4'
24
- - template: ./ci-jobs/functional/publish_test_result.yml
25
- parameters:
26
- xcodeVersion: 'Run_unit_tests_on_Windows_environment'
27
7
 
28
8
  # Runs tests nightly to make sure they works against appium@beta
29
9
  schedules:
@@ -3,7 +3,7 @@ steps:
3
3
  condition: always()
4
4
  inputs:
5
5
  testResultsFiles: 'test/reports/TEST-AppiumLibCoreTest*.xml'
6
- testRunTitle: ${{ parameters.title }}
6
+ testRunTitle: '$(Agent.JobName)'
7
7
  - task: ArchiveFiles@2
8
8
  condition: always()
9
9
  inputs:
@@ -15,4 +15,4 @@ steps:
15
15
  condition: always()
16
16
  inputs:
17
17
  pathtoPublish: '$(Build.ArtifactStagingDirectory)'
18
- artifactName: 'test reports'
18
+ artifactName: '$(Agent.JobName)'
@@ -12,7 +12,9 @@ steps:
12
12
  - task: UseRubyVersion@0
13
13
  inputs:
14
14
  versionSpec: '2.4' # so far, bundler does not work over 2.5 since it raises openssl error
15
- - script: nohup appium --relaxed-security &
15
+ - script: |
16
+ mkdir -p test/report
17
+ nohup appium --relaxed-security --log-timestamp --log-no-colors > test/report/appium.out 2>&1 &
16
18
  displayName: Run Appium in background
17
19
  - script: |
18
20
  gem install bundler;
@@ -2,13 +2,15 @@
2
2
  parameters:
3
3
  vmImage: 'macOS-10.15'
4
4
  vmImageForIOS: 'macOS-10.15' # Not sure the reason, but macOS 10.14 instance raises no info.plist error
5
- xcodeForIOS: 11.4
6
- xcodeForTVOS: 11.4
7
- androidSDK: 29
5
+ xcodeForIOS: 11.5
6
+ xcodeForTVOS: 11.5
7
+ androidSDK: 30
8
+ androidBuildToolsVersion: '28.0.3'
8
9
  appiumVersion: 'beta'
9
10
  ignoreVersionSkip: true
10
11
  CI: true
11
12
 
13
+
12
14
  jobs:
13
15
  # Run unit tests on different Node versions
14
16
  - job: func_test_ios_base
@@ -24,10 +26,8 @@ jobs:
24
26
  xcodeVersion: ${{ parameters.xcodeForIOS }}
25
27
  - template: ./functional/run_appium.yml
26
28
  - script: bundle exec rake test:func:ios TESTS=test/functional/ios/driver_test.rb,test/functional/ios/patch_test.rb
27
- displayName: Run tests
29
+ displayName: Run tests func_test_ios_base
28
30
  - template: ./functional/publish_test_result.yml
29
- parameters:
30
- xcodeVersion: 'Run_func_test_on_iOS'
31
31
 
32
32
  - job: func_test_ios_webdriver1
33
33
  pool:
@@ -42,10 +42,8 @@ jobs:
42
42
  xcodeVersion: ${{ parameters.xcodeForIOS }}
43
43
  - template: ./functional/run_appium.yml
44
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
45
- displayName: Run tests
45
+ displayName: Run tests func_test_ios_webdriver1
46
46
  - template: ./functional/publish_test_result.yml
47
- parameters:
48
- xcodeVersion: 'Run_func_test_on_iOS_webdriver1'
49
47
 
50
48
  - job: func_test_ios_webdriver2
51
49
  pool:
@@ -60,10 +58,8 @@ jobs:
60
58
  xcodeVersion: ${{ parameters.xcodeForIOS }}
61
59
  - template: ./functional/run_appium.yml
62
60
  - script: bundle exec rake test:func:ios TESTS=test/functional/ios/webdriver/device_test.rb
63
- displayName: Run tests
61
+ displayName: Run tests func_test_ios_webdriver2
64
62
  - template: ./functional/publish_test_result.yml
65
- parameters:
66
- xcodeVersion: 'Run_func_test_on_iOS_webdriver2'
67
63
 
68
64
  - job: func_test_ios_ios1
69
65
  pool:
@@ -78,10 +74,8 @@ jobs:
78
74
  xcodeVersion: ${{ parameters.xcodeForIOS }}
79
75
  - template: ./functional/run_appium.yml
80
76
  - script: bundle exec rake test:func:ios TESTS=test/functional/ios/ios/device_test.rb
81
- displayName: Run tests
77
+ displayName: Run tests func_test_ios_ios1
82
78
  - template: ./functional/publish_test_result.yml
83
- parameters:
84
- xcodeVersion: 'Run_func_test_on_iOS_ios1'
85
79
 
86
80
  - job: func_test_ios_ios2
87
81
  pool:
@@ -96,10 +90,8 @@ jobs:
96
90
  xcodeVersion: ${{ parameters.xcodeForIOS }}
97
91
  - template: ./functional/run_appium.yml
98
92
  - script: bundle exec rake test:func:ios TESTS=test/functional/ios/ios/device_wda_attachment_test.rb,test/functional/ios/ios/search_context_test.rb
99
- displayName: Run tests
93
+ displayName: Run tests func_test_ios_ios2
100
94
  - template: ./functional/publish_test_result.yml
101
- parameters:
102
- xcodeVersion: 'Run_func_test_on_iOS_ios2'
103
95
 
104
96
  - job: func_test_ios_ios3
105
97
  pool:
@@ -116,10 +108,8 @@ jobs:
116
108
  displayName: Install ffmpeg and applesimutils
117
109
  - template: ./functional/run_appium.yml
118
110
  - script: bundle exec rake test:func:ios TESTS=test/functional/ios/ios/mjpeg_server_test.rb,test/functional/ios/ios/mobile_commands_test.rb
119
- displayName: Run tests
111
+ displayName: Run tests func_test_ios_ios3
120
112
  - template: ./functional/publish_test_result.yml
121
- parameters:
122
- xcodeVersion: 'Run_func_test_on_iOS_ios3'
123
113
 
124
114
  - job: func_test_ios_tvos
125
115
  pool:
@@ -134,10 +124,8 @@ jobs:
134
124
  xcodeVersion: ${{ parameters.xcodeForTVOS }}
135
125
  - template: ./functional/run_appium.yml
136
126
  - script: bundle exec rake test:func:ios TESTS=test/functional/ios/tv_driver_test.rb
137
- displayName: Run tests
127
+ displayName: Run tests func_test_ios_tvos
138
128
  - template: ./functional/publish_test_result.yml
139
- parameters:
140
- xcodeVersion: 'Run_func_test_on_iOS_tv'
141
129
 
142
130
  # Skip since opencv4nodejs fails to install on the macOS instance
143
131
  # - job: func_test_ios_opencv
@@ -157,8 +145,6 @@ jobs:
157
145
  # - script: bundle exec rake test:func:ios test/functional/ios/ios/image_comparison_test.rb
158
146
  # displayName: Run tests
159
147
  # - template: ./functional/publish_test_result.yml
160
- # parameters:
161
- # xcodeVersion: 'Run_func_test_on_iOS_opencv'
162
148
 
163
149
 
164
150
  - job: func_test_android_base
@@ -169,6 +155,7 @@ jobs:
169
155
  ANDROID_SDK_VERSION: ${{ parameters.androidSDK }}
170
156
  IGNORE_VERSION_SKIP: ${{ parameters.ignoreVersionSkip }}
171
157
  APPIUM_VERSION: ${{ parameters.appiumVersion }}
158
+ ANDROID_BUILD_TOOLS_VERSION: ${{ parameters.androidBuildToolsVersion }}
172
159
  strategy:
173
160
  matrix:
174
161
  uiautomator2:
@@ -179,10 +166,8 @@ jobs:
179
166
  - template: ./functional/android_setup.yml
180
167
  - template: ./functional/run_appium.yml
181
168
  - script: bundle exec rake test:func:android TESTS=test/functional/android/driver_test.rb,test/functional/android/patch_test.rb
182
- displayName: Run tests
169
+ displayName: Run tests func_test_android_base
183
170
  - template: ./functional/publish_test_result.yml
184
- parameters:
185
- xcodeVersion: 'Run_func_test_on_android_base'
186
171
 
187
172
  - job: func_test_android_webdriver
188
173
  pool:
@@ -192,6 +177,7 @@ jobs:
192
177
  ANDROID_SDK_VERSION: ${{ parameters.androidSDK }}
193
178
  IGNORE_VERSION_SKIP: ${{ parameters.ignoreVersionSkip }}
194
179
  APPIUM_VERSION: ${{ parameters.appiumVersion }}
180
+ ANDROID_BUILD_TOOLS_VERSION: ${{ parameters.androidBuildToolsVersion }}
195
181
  strategy:
196
182
  matrix:
197
183
  uiautomator2:
@@ -202,10 +188,8 @@ jobs:
202
188
  - template: ./functional/android_setup.yml
203
189
  - template: ./functional/run_appium.yml
204
190
  - script: bundle exec rake test:func:android TESTS=test/functional/android/webdriver/create_session_test.rb,test/functional/android/webdriver/device_test.rb,test/functional/android/webdriver/w3c_actions_test.rb
205
- displayName: Run tests
191
+ displayName: Run tests func_test_android_webdriver
206
192
  - template: ./functional/publish_test_result.yml
207
- parameters:
208
- xcodeVersion: 'Run_func_test_on_android_base'
209
193
 
210
194
  - job: func_test_android_android1
211
195
  pool:
@@ -215,6 +199,7 @@ jobs:
215
199
  ANDROID_SDK_VERSION: ${{ parameters.androidSDK }}
216
200
  IGNORE_VERSION_SKIP: ${{ parameters.ignoreVersionSkip }}
217
201
  APPIUM_VERSION: ${{ parameters.appiumVersion }}
202
+ ANDROID_BUILD_TOOLS_VERSION: ${{ parameters.androidBuildToolsVersion }}
218
203
  strategy:
219
204
  matrix:
220
205
  uiautomator2:
@@ -225,10 +210,8 @@ jobs:
225
210
  - template: ./functional/android_setup.yml
226
211
  - template: ./functional/run_appium.yml
227
212
  - script: bundle exec rake test:func:android TESTS=test/functional/android/android/device_test.rb
228
- displayName: Run test/functional/android/android/device_test.rb
213
+ displayName: Run tests func_test_android_android1
229
214
  - template: ./functional/publish_test_result.yml
230
- parameters:
231
- xcodeVersion: 'func_test_android_android1'
232
215
 
233
216
  - job: func_test_android_android2
234
217
  pool:
@@ -238,6 +221,7 @@ jobs:
238
221
  ANDROID_SDK_VERSION: ${{ parameters.androidSDK }}
239
222
  IGNORE_VERSION_SKIP: ${{ parameters.ignoreVersionSkip }}
240
223
  APPIUM_VERSION: ${{ parameters.appiumVersion }}
224
+ ANDROID_BUILD_TOOLS_VERSION: ${{ parameters.androidBuildToolsVersion }}
241
225
  strategy:
242
226
  matrix:
243
227
  uiautomator2:
@@ -248,10 +232,8 @@ jobs:
248
232
  - template: ./functional/android_setup.yml
249
233
  - template: ./functional/run_appium.yml
250
234
  - script: bundle exec rake test:func:android TESTS=test/functional/android/android/mobile_commands_test.rb,test/functional/android/android/search_context_test.rb,test/functional/android/android/mjpeg_server_test.rb
251
- displayName: Run tests
235
+ displayName: Run tests func_test_android_android2
252
236
  - template: ./functional/publish_test_result.yml
253
- parameters:
254
- xcodeVersion: 'func_test_android_android3'
255
237
 
256
238
  - job: func_test_android_android3
257
239
  pool:
@@ -261,6 +243,7 @@ jobs:
261
243
  ANDROID_SDK_VERSION: ${{ parameters.androidSDK }}
262
244
  IGNORE_VERSION_SKIP: ${{ parameters.ignoreVersionSkip }}
263
245
  APPIUM_VERSION: ${{ parameters.appiumVersion }}
246
+ ANDROID_BUILD_TOOLS_VERSION: ${{ parameters.androidBuildToolsVersion }}
264
247
  strategy:
265
248
  matrix:
266
249
  uiautomator2:
@@ -271,10 +254,8 @@ jobs:
271
254
  - template: ./functional/android_setup.yml
272
255
  - template: ./functional/run_appium.yml
273
256
  - script: bundle exec rake test:func:android TESTS=test/functional/android/android/device_data_test.rb
274
- displayName: Run tests
257
+ displayName: Run tests func_test_android_android3
275
258
  - template: ./functional/publish_test_result.yml
276
- parameters:
277
- xcodeVersion: 'func_test_android_android3'
278
259
 
279
260
  - job: func_test_android_mobile_command_espresso
280
261
  pool:
@@ -285,6 +266,7 @@ jobs:
285
266
  AUTOMATION_NAME_DROID: espresso
286
267
  IGNORE_VERSION_SKIP: ${{ parameters.ignoreVersionSkip }}
287
268
  APPIUM_VERSION: ${{ parameters.appiumVersion }}
269
+ ANDROID_BUILD_TOOLS_VERSION: ${{ parameters.androidBuildToolsVersion }}
288
270
  strategy:
289
271
  matrix:
290
272
  uiautomator2:
@@ -295,10 +277,8 @@ jobs:
295
277
  - template: ./functional/android_setup.yml
296
278
  - template: ./functional/run_appium.yml
297
279
  - script: bundle exec rake test:func:android TESTS=test/functional/android/android/mobile_commands_test.rb
298
- displayName: Run tests
280
+ displayName: Run tests func_test_android_mobile_command_espresso
299
281
  - template: ./functional/publish_test_result.yml
300
- parameters:
301
- xcodeVersion: 'func_test_android_mobile_command_espresso'
302
282
 
303
283
  # Skip since opencv4nodejs fails to install on the macOS instance
304
284
  # - job: func_test_android_opencv
@@ -309,6 +289,7 @@ jobs:
309
289
  # ANDROID_SDK_VERSION: ${{ parameters.androidSDK }}
310
290
  # IGNORE_VERSION_SKIP: ${{ parameters.ignoreVersionSkip }}
311
291
  # APPIUM_VERSION: ${{ parameters.appiumVersion }}
292
+ # ANDROID_BUILD_TOOLS_VERSION: ${{ parameters.androidBuildToolsVersion }}
312
293
  # strategy:
313
294
  # matrix:
314
295
  # uiautomator2:
@@ -321,7 +302,5 @@ jobs:
321
302
  # - script: npm install -g opencv4nodejs@5.1.0
322
303
  # displayName: Install opencv4nodejs@5.1.0
323
304
  # - script: bundle exec rake test:func:android TESTS=test/functional/android/android/image_comparison_test.rb
324
- # displayName: Run tests
305
+ # displayName: Run tests func_test_android_opencv
325
306
  # - template: ./functional/publish_test_result.yml
326
- # parameters:
327
- # xcodeVersion: 'func_test_android_android2'
@@ -213,7 +213,7 @@ module Appium
213
213
  # @driver.get_performance_data package_name: package_name, data_type: data_type, data_read_timeout: 2
214
214
  #
215
215
 
216
- # @!method start_recording_screen(remote_path: nil, user: nil, pass: nil, method: 'PUT', force_restart: nil, video_size: nil, time_limit: '180', bit_rate: '4000000', bug_report: nil)
216
+ # @!method start_recording_screen(remote_path: nil, user: nil, pass: nil, method: 'PUT', file_field_name: nil, form_fields: nil, headers: nil, force_restart: nil, video_size: nil, time_limit: '180', bit_rate: '4000000', bug_report: nil)
217
217
  # @param [String] remote_path The path to the remote location, where the resulting video should be uploaded.
218
218
  # The following protocols are supported: http/https, ftp.
219
219
  # Null or empty string value (the default setting) means the content of resulting
@@ -225,6 +225,11 @@ module Appium
225
225
  # @param [String] user The name of the user for the remote authentication.
226
226
  # @param [String] pass The password for the remote authentication.
227
227
  # @param [String] method The http multipart upload method name. The 'PUT' one is used by default.
228
+ # @param [String] file_field_name The name of the form field containing the binary payload in multipart/form-data
229
+ # requests since Appium 1.18.0. Defaults to 'file'.
230
+ # @param [Array<Hash, Array<String>>] form_fields The form fields mapping in multipart/form-data requests since Appium 1.18.0.
231
+ # If any entry has the same key in this mapping, then it is going to be ignored.
232
+ # @param [Hash] headers The additional headers in multipart/form-data requests since Appium 1.18.0.
228
233
  # @param [Boolean] force_restart Whether to try to catch and upload/return the currently running screen recording
229
234
  # (+false+, the default setting on server) or ignore the result of it
230
235
  # and start a new recording immediately (+true+).
@@ -407,6 +412,9 @@ module Appium
407
412
  end
408
413
 
409
414
  ::Appium::Core::Device.add_endpoint_method(:execute_cdp) do
415
+ # SeleniumWebdriver could already define this method
416
+ return if method_defined? :execute_cdp
417
+
410
418
  def execute_cdp(cmd, **params)
411
419
  execute :chrome_send_command, {}, { cmd: cmd, params: params }
412
420
  end
@@ -25,11 +25,13 @@ module Appium
25
25
  end
26
26
 
27
27
  ::Appium::Core::Device.add_endpoint_method(:start_recording_screen) do
28
- # rubocop:disable Metrics/ParameterLists
29
- def start_recording_screen(remote_path: nil, user: nil, pass: nil, method: 'PUT', force_restart: nil,
28
+ def start_recording_screen(remote_path: nil, user: nil, pass: nil, method: 'PUT',
29
+ file_field_name: nil, form_fields: nil, headers: nil, force_restart: nil,
30
30
  video_size: nil, time_limit: '180', bit_rate: nil, bug_report: nil)
31
31
  option = ::Appium::Core::Base::Device::ScreenRecord.new(
32
- remote_path: remote_path, user: user, pass: pass, method: method, force_restart: force_restart
32
+ remote_path: remote_path, user: user, pass: pass, method: method,
33
+ file_field_name: file_field_name, form_fields: form_fields, headers: headers,
34
+ force_restart: force_restart
33
35
  ).upload_option
34
36
 
35
37
  option[:videoSize] = video_size unless video_size.nil?
@@ -44,7 +46,6 @@ module Appium
44
46
 
45
47
  execute(:start_recording_screen, {}, { options: option })
46
48
  end
47
- # rubocop:enable Metrics/ParameterLists
48
49
  end
49
50
  end
50
51
  end # module Screen
@@ -34,17 +34,12 @@ module Appium
34
34
  "appium/ruby_lib_core/#{VERSION} (#{::Selenium::WebDriver::Remote::Http::Common::DEFAULT_HEADERS['User-Agent']})"
35
35
  }.freeze
36
36
 
37
- attr_accessor :additional_headers
37
+ attr_reader :additional_headers
38
38
 
39
- def initialize(open_timeout: nil, read_timeout: nil, enable_idempotency_header: true)
39
+ def initialize(open_timeout: nil, read_timeout: nil)
40
40
  @open_timeout = open_timeout
41
41
  @read_timeout = read_timeout
42
-
43
- @additional_headers = if enable_idempotency_header
44
- { RequestHeaders::KEYS[:idempotency] => SecureRandom.uuid }
45
- else
46
- {}
47
- end
42
+ @additional_headers = {}
48
43
  end
49
44
 
50
45
  # Update <code>server_url</code> provided when ruby_lib _core created a default http client.
@@ -135,8 +135,6 @@ module Appium
135
135
  by = _set_by_from_finders(how)
136
136
  begin
137
137
  bridge.find_element_by by, what.to_s, ref
138
- rescue Selenium::WebDriver::Error::TimeOutError # will deprecate
139
- raise Selenium::WebDriver::Error::NoSuchElementError
140
138
  rescue Selenium::WebDriver::Error::TimeoutError
141
139
  raise Selenium::WebDriver::Error::NoSuchElementError
142
140
  end
@@ -152,8 +150,6 @@ module Appium
152
150
  by = _set_by_from_finders(how)
153
151
  begin
154
152
  bridge.find_elements_by by, what.to_s, ref
155
- rescue Selenium::WebDriver::Error::TimeOutError # will deprecate
156
- []
157
153
  rescue Selenium::WebDriver::Error::TimeoutError
158
154
  []
159
155
  end
@@ -25,7 +25,8 @@ module Appium
25
25
 
26
26
  METHOD = %w(POST PUT).freeze
27
27
 
28
- def initialize(remote_path: nil, user: nil, pass: nil, method: 'PUT', force_restart: nil)
28
+ def initialize(remote_path: nil, user: nil, pass: nil, method: 'PUT',
29
+ file_field_name: nil, form_fields: nil, headers: nil, force_restart: nil)
29
30
  @upload_option = if remote_path.nil?
30
31
  {}
31
32
  else
@@ -36,6 +37,9 @@ module Appium
36
37
  option[:user] = user unless user.nil?
37
38
  option[:pass] = pass unless pass.nil?
38
39
  option[:method] = method
40
+ option[:fileFieldName] = file_field_name unless file_field_name.nil?
41
+ option[:formFields] = form_fields unless form_fields.nil?
42
+ option[:headers] = headers unless headers.nil?
39
43
  option
40
44
  end
41
45
 
@@ -47,9 +51,11 @@ module Appium
47
51
  end
48
52
 
49
53
  module Command
50
- def stop_recording_screen(remote_path: nil, user: nil, pass: nil, method: 'PUT')
54
+ def stop_recording_screen(remote_path: nil, user: nil, pass: nil, method: 'PUT',
55
+ file_field_name: nil, form_fields: nil, headers: nil)
51
56
  option = ::Appium::Core::Base::Device::ScreenRecord.new(
52
- remote_path: remote_path, user: user, pass: pass, method: method
57
+ remote_path: remote_path, user: user, pass: pass, method: method,
58
+ file_field_name: file_field_name, form_fields: form_fields, headers: headers
53
59
  ).upload_option
54
60
 
55
61
  params = option.empty? ? {} : { options: option }
@@ -105,7 +105,8 @@ module Appium
105
105
  # @return [Appium::Core::Base::Http::Default] the http client
106
106
  attr_reader :http_client
107
107
 
108
- # Return if adding 'x-idempotency-key' header is each request.
108
+ # Return if adding 'x-idempotency-key' header is enabled for each new session request.
109
+ # Following commands should not have the key.
109
110
  # The key is unique for each http client instance. Defaults to <code>true</code>
110
111
  # https://github.com/appium/appium-base-driver/pull/400
111
112
  # @return [Bool]
@@ -181,7 +182,9 @@ module Appium
181
182
 
182
183
  # Creates a new driver and extend particular methods
183
184
  # @param [Hash] opts A options include capabilities for the Appium Server and for the client.
184
- # @option opts [Hash] :caps Appium capabilities. Prior than :desired_capabilities
185
+ # @option opts [Hash] :caps Appium capabilities.
186
+ # @option opts [Hash] :capabilities The same as :caps.
187
+ # This param is for compatibility with Selenium WebDriver format
185
188
  # @option opts [Hash] :desired_capabilities The same as :caps.
186
189
  # This param is for compatibility with Selenium WebDriver format
187
190
  # @option opts [Appium::Core::Options] :appium_lib Capabilities affect only ruby client
@@ -194,8 +197,8 @@ module Appium
194
197
  #
195
198
  # # format 1
196
199
  # @core = Appium::Core.for caps: {...}, appium_lib: {...}
197
- # # format 2. 'desired_capabilities:' is also available instead of 'caps:'. Either is fine.
198
- # @core = Appium::Core.for url: "http://127.0.0.1:8080/wd/hub", desired_capabilities: {...}, appium_lib: {...}
200
+ # # format 2. 'capabilities:' or 'desired_capabilities:' is also available instead of 'caps:'.
201
+ # @core = Appium::Core.for url: "http://127.0.0.1:8080/wd/hub", capabilities: {...}, appium_lib: {...}
199
202
  # # format 3. 'appium_lib: {...}' can be blank
200
203
  # @core = Appium::Core.for url: "http://127.0.0.1:8080/wd/hub", desired_capabilities: {...}
201
204
  #
@@ -225,9 +228,9 @@ module Appium
225
228
  # @core.start_driver # Connect to 'http://127.0.0.1:8080/wd/hub' because of 'port: 8080'
226
229
  #
227
230
  # # Start iOS driver with .zip file over HTTP
228
- # # 'desired_capabilities:' is also available instead of 'caps:'. Either is fine.
231
+ # # 'desired_capabilities:' or 'capabilities:' is also available instead of 'caps:'. Either is fine.
229
232
  # opts = {
230
- # desired_capabilities: {
233
+ # capabilities: {
231
234
  # platformName: :ios,
232
235
  # platformVersion: '11.0',
233
236
  # deviceName: 'iPhone Simulator',
@@ -349,9 +352,17 @@ module Appium
349
352
  http_client_ops: { http_client: nil, open_timeout: 999_999, read_timeout: 999_999 })
350
353
  @custom_url ||= server_url || "http://127.0.0.1:#{@port}/wd/hub"
351
354
 
352
- create_http_client http_client: http_client_ops.delete(:http_client),
353
- open_timeout: http_client_ops.delete(:open_timeout),
354
- read_timeout: http_client_ops.delete(:read_timeout)
355
+ @http_client = get_http_client http_client: http_client_ops.delete(:http_client),
356
+ open_timeout: http_client_ops.delete(:open_timeout),
357
+ read_timeout: http_client_ops.delete(:read_timeout)
358
+
359
+ if @enable_idempotency_header
360
+ if @http_client.instance_variable_defined? :@additional_headers
361
+ @http_client.additional_headers[Appium::Core::Base::Http::RequestHeaders::KEYS[:idempotency]] = SecureRandom.uuid
362
+ else
363
+ ::Appium::Logger.warn 'No additional_headers attribute in this http client instance'
364
+ end
365
+ end
355
366
 
356
367
  begin
357
368
  # included https://github.com/SeleniumHQ/selenium/blob/43f8b3f66e7e01124eff6a5805269ee441f65707/rb/lib/selenium/webdriver/remote/driver.rb#L29
@@ -371,6 +382,11 @@ module Appium
371
382
  raise "ERROR: Unable to connect to Appium. Is the server running on #{@custom_url}?"
372
383
  end
373
384
 
385
+ if @http_client.instance_variable_defined? :@additional_headers
386
+ # We only need the key for a new session request. Should remove it for other following commands.
387
+ @http_client.additional_headers.delete Appium::Core::Base::Http::RequestHeaders::KEYS[:idempotency]
388
+ end
389
+
374
390
  # If "automationName" is set only server side, this method set "automationName" attribute into @automation_name.
375
391
  # Since @automation_name is set only client side before start_driver is called.
376
392
  set_automation_name_if_nil
@@ -382,14 +398,14 @@ module Appium
382
398
 
383
399
  private
384
400
 
385
- def create_http_client(http_client: nil, open_timeout: nil, read_timeout: nil)
386
- @http_client = http_client || Appium::Core::Base::Http::Default.new(
387
- enable_idempotency_header: @enable_idempotency_header
388
- )
401
+ def get_http_client(http_client: nil, open_timeout: nil, read_timeout: nil)
402
+ client = http_client || Appium::Core::Base::Http::Default.new
389
403
 
390
404
  # open_timeout and read_timeout are explicit wait.
391
- @http_client.open_timeout = open_timeout if open_timeout
392
- @http_client.read_timeout = read_timeout if read_timeout
405
+ client.open_timeout = open_timeout if open_timeout
406
+ client.read_timeout = read_timeout if read_timeout
407
+
408
+ client
393
409
  end
394
410
 
395
411
  # Ignore setting default wait if the target driver has no implementation
@@ -527,7 +543,10 @@ module Appium
527
543
  def validate_keys(opts)
528
544
  flatten_ops = flatten_hash_keys(opts)
529
545
 
530
- raise Error::NoCapabilityError unless opts.member?(:caps) || opts.member?(:desired_capabilities)
546
+ # FIXME: Remove 'desired_capabilities' in the next major Selenium update
547
+ unless opts.member?(:caps) || opts.member?(:capabilities) || opts.member?(:desired_capabilities)
548
+ raise Error::NoCapabilityError
549
+ end
531
550
 
532
551
  if !opts.member?(:appium_lib) && flatten_ops.member?(:appium_lib)
533
552
  raise Error::CapabilityStructureError, 'Please check the value of appium_lib in the capability'
@@ -548,7 +567,8 @@ module Appium
548
567
 
549
568
  # @private
550
569
  def get_caps(opts)
551
- Core::Base::Capabilities.create_capabilities(opts[:caps] || opts[:desired_capabilities] || {})
570
+ # FIXME: Remove 'desired_capabilities' in the next major Selenium update
571
+ Core::Base::Capabilities.create_capabilities(opts[:caps] || opts[:capabilities] || opts[:desired_capabilities] || {})
552
572
  end
553
573
 
554
574
  # @private
@@ -51,7 +51,7 @@ module Appium
51
51
  #
52
52
 
53
53
  # @since Appium 1.9.1
54
- # @!method start_recording_screen(remote_path: nil, user: nil, pass: nil, method: nil, force_restart: nil, video_type: 'mjpeg', video_fps: nil, time_limit: '180', video_quality: 'medium', video_scale: nil, video_filters: nil, pixel_format: nil)
54
+ # @!method start_recording_screen(remote_path: nil, user: nil, pass: nil, method: 'PUT', file_field_name: nil, form_fields: nil, headers: nil, force_restart: nil, video_type: 'mjpeg', video_fps: nil, time_limit: '180', video_quality: nil, video_scale: nil, video_filters: nil, pixel_format: nil)
55
55
  #
56
56
  # Record the display of devices running iOS Simulator since Xcode 9 or real devices since iOS 11
57
57
  # (ffmpeg utility is required: 'brew install ffmpeg').
@@ -68,6 +68,11 @@ module Appium
68
68
  # @param [String] user The name of the user for the remote authentication.
69
69
  # @param [String] pass The password for the remote authentication.
70
70
  # @param [String] method The http multipart upload method name. The 'PUT' one is used by default.
71
+ # @param [String] file_field_name The name of the form field containing the binary payload in multipart/form-data
72
+ # requests since Appium 1.18.0. Defaults to 'file'.
73
+ # @param [Array<Hash, Array<String>>] form_fields The form fields mapping in multipart/form-data requests since Appium 1.18.0.
74
+ # If any entry has the same key in this mapping, then it is going to be ignored.
75
+ # @param [Hash] headers The additional headers in multipart/form-data requests since Appium 1.18.0.
71
76
  # @param [Boolean] force_restart Whether to try to catch and upload/return the currently running screen recording
72
77
  # (+false+, the default setting on server) or ignore the result of it
73
78
  # and start a new recording immediately (+true+).
@@ -32,9 +32,11 @@ module Appium
32
32
 
33
33
  ::Appium::Core::Device.add_endpoint_method(:get_performance_record) do
34
34
  def get_performance_record(save_file_path: './performance', profile_name: 'Activity Monitor',
35
- remote_path: nil, user: nil, pass: nil, method: 'PUT')
35
+ remote_path: nil, user: nil, pass: nil, method: 'PUT',
36
+ file_field_name: nil, form_fields: nil, headers: nil)
36
37
  option = ::Appium::Core::Base::Device::ScreenRecord.new(
37
- remote_path: remote_path, user: user, pass: pass, method: method
38
+ remote_path: remote_path, user: user, pass: pass, method: method,
39
+ file_field_name: file_field_name, form_fields: form_fields, headers: headers
38
40
  ).upload_option
39
41
 
40
42
  option[:profileName] = profile_name
@@ -20,18 +20,20 @@ module Appium
20
20
  module Screen
21
21
  def self.add_methods
22
22
  ::Appium::Core::Device.add_endpoint_method(:start_recording_screen) do
23
- # rubocop:disable Metrics/ParameterLists
24
- def start_recording_screen(remote_path: nil, user: nil, pass: nil, method: 'PUT', force_restart: nil,
25
- video_type: 'mjpeg', time_limit: '180', video_quality: 'medium',
23
+ def start_recording_screen(remote_path: nil, user: nil, pass: nil, method: 'PUT',
24
+ file_field_name: nil, form_fields: nil, headers: nil, force_restart: nil,
25
+ video_type: 'mjpeg', time_limit: '180', video_quality: nil,
26
26
  video_fps: nil, video_scale: nil, video_filters: nil, pixel_format: nil)
27
27
  option = ::Appium::Core::Base::Device::ScreenRecord.new(
28
- remote_path: remote_path, user: user, pass: pass, method: method, force_restart: force_restart
28
+ remote_path: remote_path, user: user, pass: pass, method: method,
29
+ file_field_name: file_field_name, form_fields: form_fields, headers: headers,
30
+ force_restart: force_restart
29
31
  ).upload_option
30
32
 
31
33
  option[:videoType] = video_type
32
34
  option[:timeLimit] = time_limit
33
- option[:videoQuality] = video_quality
34
35
 
36
+ option[:videoQuality] = video_quality unless video_quality.nil?
35
37
  option[:videoFps] = video_fps unless video_fps.nil?
36
38
  option[:videoScale] = video_scale unless video_scale.nil?
37
39
  option[:videoFilters] = video_filters unless video_filters.nil?
@@ -39,7 +41,6 @@ module Appium
39
41
 
40
42
  execute(:start_recording_screen, {}, { options: option })
41
43
  end
42
- # rubocop:enable Metrics/ParameterLists
43
44
  end
44
45
  end
45
46
  end # module Screen
@@ -14,7 +14,7 @@
14
14
 
15
15
  module Appium
16
16
  module Core
17
- VERSION = '3.7.0' unless defined? ::Appium::Core::VERSION
18
- DATE = '2020-04-18' unless defined? ::Appium::Core::DATE
17
+ VERSION = '3.11.0' unless defined? ::Appium::Core::VERSION
18
+ DATE = '2020-08-01' unless defined? ::Appium::Core::DATE
19
19
  end
20
20
  end
@@ -19,7 +19,6 @@ module Appium
19
19
  module Screen
20
20
  def self.add_methods
21
21
  ::Appium::Core::Device.add_endpoint_method(:start_recording_screen) do
22
- # rubocop:disable Metrics/ParameterLists
23
22
  def start_recording_screen(force_restart: nil, time_limit: nil,
24
23
  fps: nil, preset: nil, video_filter: nil,
25
24
  capture_clicks: nil, capture_cursor: nil, audio_input: nil)
@@ -35,7 +34,6 @@ module Appium
35
34
 
36
35
  execute(:start_recording_screen, {}, { options: option })
37
36
  end
38
- # rubocop:enable Metrics/ParameterLists
39
37
  end
40
38
  end
41
39
  end # module Screen
@@ -1,3 +1,51 @@
1
+ #### v3.11.0 2020-08-01
2
+
3
+ - [0ed888e](https://github.com/appium/ruby_lib_core/commit/0ed888efd87def79cdb1ca922268b466485a2261) Release 3.11.0
4
+ - [f7dc534](https://github.com/appium/ruby_lib_core/commit/f7dc5349a48ac305df740f7be1f6e5f9b90e1e0e) chore: update faye-websocket (#279)
5
+ - [2fa2440](https://github.com/appium/ruby_lib_core/commit/2fa24404aa993c643191a2de0f8c2c800680ec5f) test: tweak espresso (#278)
6
+ - [ba7f71d](https://github.com/appium/ruby_lib_core/commit/ba7f71d82393b75d7119dbb50f8c0ae781d0933e) ci: revert
7
+ - [c2cf5d7](https://github.com/appium/ruby_lib_core/commit/c2cf5d7ef04c51e0b978676ea5145223f1b16f2e) test: add allOf example (#274)
8
+ - [f7c21b8](https://github.com/appium/ruby_lib_core/commit/f7c21b878ac9970f6d621deedf4c9adce7515700) ci: tweak version
9
+ - [2162392](https://github.com/appium/ruby_lib_core/commit/2162392bfa5cc949aae9b4020d6b53b7b23953f9) ci: specify which beta (#273)
10
+
11
+
12
+ #### v3.10.1 2020-06-29
13
+
14
+ - [9537c61](https://github.com/appium/ruby_lib_core/commit/9537c619220177a4cac82368405fec681a5ab231) Release 3.10.1
15
+ - [3b962f5](https://github.com/appium/ruby_lib_core/commit/3b962f55cc954699e72b38c94e5a1f05c82867f9) ci: runs tests on windows host as GitHub Actions (#272)
16
+ - [f60b4f1](https://github.com/appium/ruby_lib_core/commit/f60b4f193c590d861342828bd740cefda7e96b9a) ci: remove travis (#271)
17
+ - [b1aa80d](https://github.com/appium/ruby_lib_core/commit/b1aa80dd1cc200917df9958b6274e0a82b5ffc40) ci: run unittests on GitHub Actions (#270)
18
+ - [ad90f79](https://github.com/appium/ruby_lib_core/commit/ad90f79b726aa480edf989fed2a8b00ced6c52fd) chore: Update issue templates
19
+ - [cf546a0](https://github.com/appium/ruby_lib_core/commit/cf546a0c62f815df4bb3ece4932b8033fad25ae2) ci: tune Azure (#269)
20
+ - [14e7e56](https://github.com/appium/ruby_lib_core/commit/14e7e56a2bccb4c4cc53e0b10284e3837e50a1af) ci: bump android emulator version (#268)
21
+ - [8d2cd95](https://github.com/appium/ruby_lib_core/commit/8d2cd95445d95716617c426e759e19e861ef09e2) chore: remove pry added accidentally
22
+
23
+
24
+ #### v3.10.0 2020-06-09
25
+
26
+ - [9eff959](https://github.com/appium/ruby_lib_core/commit/9eff959240effde56460c77878a24a20d047f9e9) Release 3.10.0
27
+ - [0602e2a](https://github.com/appium/ruby_lib_core/commit/0602e2ab2b332f7db8e39b7da73707a50720fadd) feat: Remove timeout deprecated (#267)
28
+
29
+
30
+ #### v3.9.0 2020-05-31
31
+
32
+ - [f306188](https://github.com/appium/ruby_lib_core/commit/f306188102222088fbd31b0b9249c6a39ddd074f) Release 3.9.0
33
+ - [30c6529](https://github.com/appium/ruby_lib_core/commit/30c65299e4dffb9a2cea8b7a11b27cfcba294707) ci: run with Xcode 11.5 (#265)
34
+ - [a10f2d1](https://github.com/appium/ruby_lib_core/commit/a10f2d15ef83e9ce7003b88ec1c0923c922974ea) feat: allow :capabilities as argument (#266)
35
+
36
+
37
+ #### v3.8.0 2020-05-17
38
+
39
+ - [8986a54](https://github.com/appium/ruby_lib_core/commit/8986a5400d6a3575b7413f15bb61de09af2ec789) Release 3.8.0
40
+ - [2379f9a](https://github.com/appium/ruby_lib_core/commit/2379f9a69b43e8c2d2b584ac1e56d3a1aea5e85b) refactor: move idempotency in driver (#264)
41
+ - [8103619](https://github.com/appium/ruby_lib_core/commit/8103619313328064df516e7094e2c8a6e1e9719c) fix: x-idempotency-key only for a new session (#263)
42
+ - [971f912](https://github.com/appium/ruby_lib_core/commit/971f912a6b4d8e28896d146939c9e5b86dd4b1e0) feat: Add options for start_recording_screen (#261)
43
+ - [11f840a](https://github.com/appium/ruby_lib_core/commit/11f840a2945b0376bb3ad762e9b2eefd0aace3b4) ci: add wait
44
+ - [4931f4e](https://github.com/appium/ruby_lib_core/commit/4931f4e318e94f9253edd649757f5c774c3404a7) ci: tweak flaky case
45
+ - [cb6ef1a](https://github.com/appium/ruby_lib_core/commit/cb6ef1a74dae7200952630076dd58af6bb9500ec) Merge branch 'master' of github.com:appium/ruby_lib_core
46
+ - [9117de2](https://github.com/appium/ruby_lib_core/commit/9117de2674f018cfe8e10d9dadc188af846e6be4) ci: relax tests for uia2
47
+
48
+
1
49
  #### v3.7.0 2020-04-18
2
50
 
3
51
  - [5ffe630](https://github.com/appium/ruby_lib_core/commit/5ffe630e670943c6f6f60c0e331cdab4685e31c7) Release 3.7.0
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: appium_lib_core
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.7.0
4
+ version: 3.11.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Kazuaki MATSUO
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2020-04-18 00:00:00.000000000 Z
11
+ date: 2020-08-01 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: selenium-webdriver
@@ -36,14 +36,14 @@ dependencies:
36
36
  requirements:
37
37
  - - "~>"
38
38
  - !ruby/object:Gem::Version
39
- version: 0.10.0
39
+ version: 0.11.0
40
40
  type: :runtime
41
41
  prerelease: false
42
42
  version_requirements: !ruby/object:Gem::Requirement
43
43
  requirements:
44
44
  - - "~>"
45
45
  - !ruby/object:Gem::Version
46
- version: 0.10.0
46
+ version: 0.11.0
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: bundler
49
49
  requirement: !ruby/object:Gem::Requirement
@@ -219,11 +219,12 @@ executables: []
219
219
  extensions: []
220
220
  extra_rdoc_files: []
221
221
  files:
222
+ - ".github/ISSUE_TEMPLATE/issue-report.md"
222
223
  - ".github/contributing.md"
223
224
  - ".github/issue_template.md"
225
+ - ".github/workflows/unittest.yml"
224
226
  - ".gitignore"
225
227
  - ".rubocop.yml"
226
- - ".travis.yml"
227
228
  - CHANGELOG.md
228
229
  - Gemfile
229
230
  - LICENSE.txt
@@ -339,7 +340,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
339
340
  - !ruby/object:Gem::Version
340
341
  version: '0'
341
342
  requirements: []
342
- rubygems_version: 3.0.1
343
+ rubygems_version: 3.1.2
343
344
  signing_key:
344
345
  specification_version: 4
345
346
  summary: Minimal Ruby library for Appium.
@@ -1,24 +0,0 @@
1
- sudo: false
2
- cache: bundler
3
- language: ruby
4
- rvm:
5
- - 2.2
6
- - 2.3
7
- - 2.4
8
- - 2.5
9
- - 2.6
10
- - 2.7
11
-
12
- before_install:
13
- - gem update bundler
14
-
15
- script:
16
- - bundle exec rake rubocop
17
- - UNIT_TEST=true bundle exec parallel_test test/unit/ -n 4
18
- - UNIT_TEST=true AUTOMATION_NAME_DROID=espresso bundle exec parallel_test test/unit/android -n 4
19
- - UNIT_TEST=true AUTOMATION_NAME_DROID=appium AUTOMATION_NAME_IOS=appium bundle exec parallel_test test/unit -n 4
20
-
21
- notifications:
22
- email:
23
- on_success: never
24
- on_failure: never