appium_lib_core 3.10.0 → 4.1.0

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.
Files changed (34) hide show
  1. checksums.yaml +4 -4
  2. data/.github/ISSUE_TEMPLATE/issue-report.md +29 -0
  3. data/.github/workflows/unittest.yml +68 -0
  4. data/.rubocop.yml +22 -12
  5. data/CHANGELOG.md +51 -2
  6. data/README.md +1 -3
  7. data/appium_lib_core.gemspec +4 -4
  8. data/azure-pipelines.yml +0 -20
  9. data/ci-jobs/functional/ios_setup.yml +2 -0
  10. data/ci-jobs/functional/publish_test_result.yml +2 -2
  11. data/ci-jobs/functional/run_appium.yml +7 -2
  12. data/ci-jobs/functional/start-emulator.sh +1 -1
  13. data/ci-jobs/functional_test.yml +19 -48
  14. data/lib/appium_lib_core.rb +5 -5
  15. data/lib/appium_lib_core/android/device.rb +6 -3
  16. data/lib/appium_lib_core/common/base/bridge.rb +10 -36
  17. data/lib/appium_lib_core/common/base/driver.rb +3 -2
  18. data/lib/appium_lib_core/common/base/http_default.rb +2 -1
  19. data/lib/appium_lib_core/common/base/search_context.rb +2 -4
  20. data/lib/appium_lib_core/common/command/common.rb +0 -2
  21. data/lib/appium_lib_core/common/command/mjsonwp.rb +0 -2
  22. data/lib/appium_lib_core/common/command/w3c.rb +0 -2
  23. data/lib/appium_lib_core/common/device/app_management.rb +4 -4
  24. data/lib/appium_lib_core/common/touch_action/multi_touch.rb +2 -2
  25. data/lib/appium_lib_core/common/touch_action/touch_actions.rb +3 -3
  26. data/lib/appium_lib_core/common/wait.rb +2 -2
  27. data/lib/appium_lib_core/driver.rb +24 -4
  28. data/lib/appium_lib_core/ios/xcuitest/device.rb +2 -2
  29. data/lib/appium_lib_core/version.rb +2 -2
  30. data/lib/appium_lib_core/windows/device.rb +2 -2
  31. data/release_notes.md +61 -0
  32. data/script/commands.rb +3 -3
  33. metadata +12 -11
  34. data/.travis.yml +0 -24
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: cd289d16dabe2e45527ce5f09ed786082f81001039217e4f3025f5666b084ac6
4
- data.tar.gz: b4a8cf9d7b0bb1f526bf910de4518796d2fcead98693a2bfa1c333eeb32a0d57
3
+ metadata.gz: 5328494c785b852424a9ba61e627ed78c54c4bca6baf2643f16a647f4edfcf22
4
+ data.tar.gz: 130869ab5ca0d2967f98b5beed348d3e31bb7c90eb5219da60f2d8f973e8a381
5
5
  SHA512:
6
- metadata.gz: 32aa153b24cf08f661783cc0a1bfe93ef2ddea8b3b7b5eeffc89416c0dda6d97942afe146aff4ee8cdb055093acdc6c992ea359dd0311aa64b96e77613e06719
7
- data.tar.gz: 67e5c83063987d25dd47cac816f5bedae955b5359bbe71dad7a4f54bcd7e047b2b09095eab08df748b06b44b3ee514113a1b652b7903e9a9ae90bd357736751e
6
+ metadata.gz: 48aae8b8e934edac9f178cc365825605fc40c7ff63a36e8e7cfe7baf7c815ec89dfecf60350dff401dcfdac80f1e892c86022659b65fc7000c55f7e4fa3b0243
7
+ data.tar.gz: 4cc0a6c8eb8b1258a6e7df79666ed4dd21cf3f6cae8c613fd5e3a34a11f15f7614151f296931205bc55d2c817cef298d682e6eb6dc95fb3ee826a864d39350f2
@@ -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.4, 2.5, 2.6, 2.7, 3.0]
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.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
@@ -1,7 +1,15 @@
1
1
  AllCops:
2
- TargetRubyVersion: 2.3
3
- Metrics/LineLength:
2
+ TargetRubyVersion: 2.4
3
+ Layout/LineLength:
4
4
  Max: 128
5
+ Layout/RescueEnsureAlignment:
6
+ Enabled: false
7
+ Layout/EmptyLinesAroundAttributeAccessor:
8
+ Enabled: false
9
+ Layout/EmptyLineBetweenDefs:
10
+ Enabled: false
11
+ Layout/HashAlignment:
12
+ Enabled: false
5
13
  Metrics/MethodLength:
6
14
  Enabled: false
7
15
  Metrics/ModuleLength:
@@ -11,16 +19,13 @@ Metrics/ClassLength:
11
19
  Metrics/AbcSize:
12
20
  Enabled: false
13
21
  Metrics/CyclomaticComplexity:
14
- Max: 13
22
+ Max: 14
15
23
  Metrics/PerceivedComplexity:
16
- Max: 13
24
+ Max: 14
17
25
  Metrics/ParameterLists:
18
26
  Enabled: false
19
27
  Lint/NestedMethodDefinition:
20
28
  Enabled: false
21
- # TODO: Replace <<- with <<~ after dropping Ruby 2.2
22
- Layout/IndentHeredoc:
23
- Enabled: false
24
29
  Style/ZeroLengthPredicate:
25
30
  Enabled: false
26
31
  Style/Documentation:
@@ -29,12 +34,9 @@ Style/CommentedKeyword:
29
34
  Enabled: false
30
35
  Style/PercentLiteralDelimiters:
31
36
  Enabled: false
32
- Style/BracesAroundHashParameters:
33
- Enabled: false
34
37
  Style/SymbolArray:
35
38
  Enabled: false
36
- # TODO: will remove after stopping support 2.2
37
- Style/NumericPredicate:
39
+ Style/UnpackFirst:
38
40
  Enabled: false
39
41
  Naming/AccessorMethodName:
40
42
  Enabled: false
@@ -44,5 +46,13 @@ Naming/MemoizedInstanceVariableName:
44
46
  - test/**/*
45
47
  Naming/RescuedExceptionsVariableName:
46
48
  Enabled: false
47
- Layout/RescueEnsureAlignment:
49
+ Style/CaseLikeIf:
50
+ Enabled: false
51
+ Style/RedundantRegexpEscape:
52
+ Enabled: false
53
+ Style/OptionalBooleanParameter:
54
+ Enabled: false
55
+ Style/ExplicitBlockArgument:
56
+ Enabled: false
57
+ Style/KeywordParametersOrder:
48
58
  Enabled: false
@@ -5,11 +5,60 @@ Read `release_notes.md` for commit level details.
5
5
  ## [Unreleased]
6
6
 
7
7
  ### Enhancements
8
+ - Ruby 3.0 support
8
9
 
9
10
  ### Bug fixes
10
11
 
11
12
  ### Deprecations
12
13
 
14
+ ## [4.1.0] - 2020-12-25
15
+
16
+ ### Enhancements
17
+ - Ruby 3.0 support
18
+
19
+ ### Bug fixes
20
+
21
+ ### Deprecations
22
+
23
+ ## [4.0.0] - 2020-12-19
24
+
25
+ Supported Ruby version is 2.4+
26
+
27
+ ### Enhancements
28
+
29
+ ### Bug fixes
30
+
31
+ ### Deprecations
32
+ - No longer work with `forceMjsonwp` capability to force the session MJSONWP
33
+
34
+ ## [3.11.1] - 2020-11-20
35
+
36
+ ### Enhancements
37
+
38
+ ### Bug fixes
39
+ - Fix `install_app` to be able to set no args for options
40
+
41
+ ### Deprecations
42
+
43
+ ## [3.11.0] - 2020-08-01
44
+
45
+ ### Enhancements
46
+ - Security update [GHSA-2v5c-755p-p4gv](https://github.com/advisories/GHSA-2v5c-755p-p4gv)
47
+ - Affects only _::Appium::Core::WebSocket_
48
+
49
+ ### Bug fixes
50
+
51
+ ### Deprecations
52
+
53
+ ## [3.10.1] - 2020-06-29
54
+
55
+ ### Enhancements
56
+
57
+ ### Bug fixes
58
+ - Fix duplication warning of `execute_cdp`
59
+
60
+ ### Deprecations
61
+
13
62
  ## [3.10.0] - 2020-06-09
14
63
 
15
64
  ### Enhancements
@@ -57,7 +106,7 @@ Read `release_notes.md` for commit level details.
57
106
  ### Enhancements
58
107
  - Add `x-idempotency-key` header support (https://github.com/appium/appium-base-driver/pull/400)
59
108
  - Can disable the header with `enable_idempotency_header: false` in `appium_lib` capability. Defaults to `true`.
60
- - Add chrome devtools endpoint which is available chrome module in Selenium Ruby binding
109
+ - Add chrome devtools endpoint which is available chrome module in Selenium Ruby binding
61
110
  - https://github.com/appium/appium-base-driver/pull/405
62
111
 
63
112
  ### Bug fixes
@@ -149,7 +198,7 @@ Read `release_notes.md` for commit level details.
149
198
 
150
199
  ### Enhancements
151
200
  - Add `execute_driver` to run a batch script
152
- - It requires Appium version which has `execute_driver` support
201
+ - It requires Appium version which has `execute_driver` support
153
202
 
154
203
  ### Bug fixes
155
204
 
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/AppiumCI/Appium%20CI/_apis/build/status/appium.ruby_lib_core?branchName=master)](https://dev.azure.com/AppiumCI/Appium%20CI/_build/latest?definitionId=54&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
 
@@ -4,7 +4,7 @@ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
4
  require 'appium_lib_core/version'
5
5
 
6
6
  Gem::Specification.new do |spec|
7
- spec.required_ruby_version = '>= 2.2'
7
+ spec.required_ruby_version = '>= 2.4'
8
8
 
9
9
  spec.name = 'appium_lib_core'
10
10
  spec.version = Appium::Core::VERSION
@@ -23,15 +23,15 @@ 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'
30
30
  spec.add_development_dependency 'yard', '~> 0.9.11'
31
31
  spec.add_development_dependency 'minitest', '~> 5.0'
32
32
  spec.add_development_dependency 'minitest-reporters', '~> 1.1'
33
- spec.add_development_dependency 'webmock', '~> 3.8.0'
34
- spec.add_development_dependency 'rubocop', '0.68.1'
33
+ spec.add_development_dependency 'webmock', '~> 3.11.0'
34
+ spec.add_development_dependency 'rubocop', '1.7.0'
35
35
  spec.add_development_dependency 'appium_thor', '~> 1.0'
36
36
  spec.add_development_dependency 'pry'
37
37
  spec.add_development_dependency 'pry-byebug'
@@ -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,3 +3,5 @@ steps:
3
3
  displayName: Xcode Select ${{ parameters.xcodeVersion }}
4
4
  - script: xcrun simctl list
5
5
  displayName: List Installed Simulators
6
+ - script: defaults write com.apple.iphonesimulator PasteboardAutomaticSync -bool false
7
+ displayName: Disable pasteboard automatic sync
@@ -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)'
@@ -11,9 +11,14 @@ steps:
11
11
  displayName: Installed node dependencies
12
12
  - task: UseRubyVersion@0
13
13
  inputs:
14
- versionSpec: '2.4' # so far, bundler does not work over 2.5 since it raises openssl error
15
- - script: nohup appium --relaxed-security &
14
+ versionSpec: '2.7'
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
19
+ env:
20
+ JAVA_HOME: $(JAVA_HOME_11_X64)
21
+ PATH: $(JAVA_HOME_11_X64)/bin:$(PATH)
17
22
  - script: |
18
23
  gem install bundler;
19
24
  bundle install --retry=3 --jobs=4 --path vendor/bundle;
@@ -18,7 +18,7 @@ echo ${ANDROID_HOME}/emulator/emulator -list-avds
18
18
  echo "Starting emulator"
19
19
 
20
20
  # Start emulator in background
21
- nohup ${ANDROID_HOME}/emulator/emulator -avd testemulator -accel auto -no-boot-anim -no-snapshot > /dev/null 2>&1 &
21
+ nohup ${ANDROID_HOME}/emulator/emulator -avd testemulator -accel auto -no-boot-anim -gpu auto -no-snapshot > /dev/null 2>&1 &
22
22
  ${ANDROID_HOME}/platform-tools/adb wait-for-device shell 'while [[ -z $(getprop sys.boot_completed | tr -d '\r') ]]; do sleep 1; done; input keyevent 82'
23
23
 
24
24
  ${ANDROID_HOME}/platform-tools/adb devices
@@ -2,13 +2,14 @@
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.5
6
- xcodeForTVOS: 11.5
7
- androidSDK: 29
5
+ xcodeForIOS: 12.2
6
+ xcodeForTVOS: 12.2
7
+ androidSDK: 30
8
8
  appiumVersion: 'beta'
9
9
  ignoreVersionSkip: true
10
10
  CI: true
11
11
 
12
+
12
13
  jobs:
13
14
  # Run unit tests on different Node versions
14
15
  - job: func_test_ios_base
@@ -24,10 +25,8 @@ jobs:
24
25
  xcodeVersion: ${{ parameters.xcodeForIOS }}
25
26
  - template: ./functional/run_appium.yml
26
27
  - script: bundle exec rake test:func:ios TESTS=test/functional/ios/driver_test.rb,test/functional/ios/patch_test.rb
27
- displayName: Run tests
28
+ displayName: Run tests func_test_ios_base
28
29
  - template: ./functional/publish_test_result.yml
29
- parameters:
30
- xcodeVersion: 'Run_func_test_on_iOS'
31
30
 
32
31
  - job: func_test_ios_webdriver1
33
32
  pool:
@@ -42,10 +41,8 @@ jobs:
42
41
  xcodeVersion: ${{ parameters.xcodeForIOS }}
43
42
  - template: ./functional/run_appium.yml
44
43
  - 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
44
+ displayName: Run tests func_test_ios_webdriver1
46
45
  - template: ./functional/publish_test_result.yml
47
- parameters:
48
- xcodeVersion: 'Run_func_test_on_iOS_webdriver1'
49
46
 
50
47
  - job: func_test_ios_webdriver2
51
48
  pool:
@@ -60,10 +57,8 @@ jobs:
60
57
  xcodeVersion: ${{ parameters.xcodeForIOS }}
61
58
  - template: ./functional/run_appium.yml
62
59
  - script: bundle exec rake test:func:ios TESTS=test/functional/ios/webdriver/device_test.rb
63
- displayName: Run tests
60
+ displayName: Run tests func_test_ios_webdriver2
64
61
  - template: ./functional/publish_test_result.yml
65
- parameters:
66
- xcodeVersion: 'Run_func_test_on_iOS_webdriver2'
67
62
 
68
63
  - job: func_test_ios_ios1
69
64
  pool:
@@ -78,10 +73,8 @@ jobs:
78
73
  xcodeVersion: ${{ parameters.xcodeForIOS }}
79
74
  - template: ./functional/run_appium.yml
80
75
  - script: bundle exec rake test:func:ios TESTS=test/functional/ios/ios/device_test.rb
81
- displayName: Run tests
76
+ displayName: Run tests func_test_ios_ios1
82
77
  - template: ./functional/publish_test_result.yml
83
- parameters:
84
- xcodeVersion: 'Run_func_test_on_iOS_ios1'
85
78
 
86
79
  - job: func_test_ios_ios2
87
80
  pool:
@@ -96,10 +89,8 @@ jobs:
96
89
  xcodeVersion: ${{ parameters.xcodeForIOS }}
97
90
  - template: ./functional/run_appium.yml
98
91
  - 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
92
+ displayName: Run tests func_test_ios_ios2
100
93
  - template: ./functional/publish_test_result.yml
101
- parameters:
102
- xcodeVersion: 'Run_func_test_on_iOS_ios2'
103
94
 
104
95
  - job: func_test_ios_ios3
105
96
  pool:
@@ -116,10 +107,8 @@ jobs:
116
107
  displayName: Install ffmpeg and applesimutils
117
108
  - template: ./functional/run_appium.yml
118
109
  - 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
110
+ displayName: Run tests func_test_ios_ios3
120
111
  - template: ./functional/publish_test_result.yml
121
- parameters:
122
- xcodeVersion: 'Run_func_test_on_iOS_ios3'
123
112
 
124
113
  - job: func_test_ios_tvos
125
114
  pool:
@@ -134,10 +123,8 @@ jobs:
134
123
  xcodeVersion: ${{ parameters.xcodeForTVOS }}
135
124
  - template: ./functional/run_appium.yml
136
125
  - script: bundle exec rake test:func:ios TESTS=test/functional/ios/tv_driver_test.rb
137
- displayName: Run tests
126
+ displayName: Run tests func_test_ios_tvos
138
127
  - template: ./functional/publish_test_result.yml
139
- parameters:
140
- xcodeVersion: 'Run_func_test_on_iOS_tv'
141
128
 
142
129
  # Skip since opencv4nodejs fails to install on the macOS instance
143
130
  # - job: func_test_ios_opencv
@@ -157,8 +144,6 @@ jobs:
157
144
  # - script: bundle exec rake test:func:ios test/functional/ios/ios/image_comparison_test.rb
158
145
  # displayName: Run tests
159
146
  # - template: ./functional/publish_test_result.yml
160
- # parameters:
161
- # xcodeVersion: 'Run_func_test_on_iOS_opencv'
162
147
 
163
148
 
164
149
  - job: func_test_android_base
@@ -179,10 +164,8 @@ jobs:
179
164
  - template: ./functional/android_setup.yml
180
165
  - template: ./functional/run_appium.yml
181
166
  - script: bundle exec rake test:func:android TESTS=test/functional/android/driver_test.rb,test/functional/android/patch_test.rb
182
- displayName: Run tests
167
+ displayName: Run tests func_test_android_base
183
168
  - template: ./functional/publish_test_result.yml
184
- parameters:
185
- xcodeVersion: 'Run_func_test_on_android_base'
186
169
 
187
170
  - job: func_test_android_webdriver
188
171
  pool:
@@ -202,10 +185,8 @@ jobs:
202
185
  - template: ./functional/android_setup.yml
203
186
  - template: ./functional/run_appium.yml
204
187
  - 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
188
+ displayName: Run tests func_test_android_webdriver
206
189
  - template: ./functional/publish_test_result.yml
207
- parameters:
208
- xcodeVersion: 'Run_func_test_on_android_base'
209
190
 
210
191
  - job: func_test_android_android1
211
192
  pool:
@@ -225,10 +206,8 @@ jobs:
225
206
  - template: ./functional/android_setup.yml
226
207
  - template: ./functional/run_appium.yml
227
208
  - 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
209
+ displayName: Run tests func_test_android_android1
229
210
  - template: ./functional/publish_test_result.yml
230
- parameters:
231
- xcodeVersion: 'func_test_android_android1'
232
211
 
233
212
  - job: func_test_android_android2
234
213
  pool:
@@ -247,11 +226,9 @@ jobs:
247
226
  steps:
248
227
  - template: ./functional/android_setup.yml
249
228
  - template: ./functional/run_appium.yml
250
- - 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
229
+ - script: bundle exec rake test:func:android TESTS=test/functional/android/android/search_context_test.rb,test/functional/android/android/mjpeg_server_test.rb
230
+ displayName: Run tests func_test_android_android2
252
231
  - template: ./functional/publish_test_result.yml
253
- parameters:
254
- xcodeVersion: 'func_test_android_android3'
255
232
 
256
233
  - job: func_test_android_android3
257
234
  pool:
@@ -271,10 +248,8 @@ jobs:
271
248
  - template: ./functional/android_setup.yml
272
249
  - template: ./functional/run_appium.yml
273
250
  - script: bundle exec rake test:func:android TESTS=test/functional/android/android/device_data_test.rb
274
- displayName: Run tests
251
+ displayName: Run tests func_test_android_android3
275
252
  - template: ./functional/publish_test_result.yml
276
- parameters:
277
- xcodeVersion: 'func_test_android_android3'
278
253
 
279
254
  - job: func_test_android_mobile_command_espresso
280
255
  pool:
@@ -295,10 +270,8 @@ jobs:
295
270
  - template: ./functional/android_setup.yml
296
271
  - template: ./functional/run_appium.yml
297
272
  - script: bundle exec rake test:func:android TESTS=test/functional/android/android/mobile_commands_test.rb
298
- displayName: Run tests
273
+ displayName: Run tests func_test_android_mobile_command_espresso
299
274
  - template: ./functional/publish_test_result.yml
300
- parameters:
301
- xcodeVersion: 'func_test_android_mobile_command_espresso'
302
275
 
303
276
  # Skip since opencv4nodejs fails to install on the macOS instance
304
277
  # - job: func_test_android_opencv
@@ -321,7 +294,5 @@ jobs:
321
294
  # - script: npm install -g opencv4nodejs@5.1.0
322
295
  # displayName: Install opencv4nodejs@5.1.0
323
296
  # - script: bundle exec rake test:func:android TESTS=test/functional/android/android/image_comparison_test.rb
324
- # displayName: Run tests
297
+ # displayName: Run tests func_test_android_opencv
325
298
  # - template: ./functional/publish_test_result.yml
326
- # parameters:
327
- # xcodeVersion: 'func_test_android_android2'
@@ -34,11 +34,11 @@ module Appium
34
34
 
35
35
  hash.each_with_object({}) do |pair, acc|
36
36
  key = begin
37
- pair[0].to_sym
38
- rescue StandardError => e
39
- ::Appium::Logger.warn(e.message)
40
- pair[0]
41
- end
37
+ pair[0].to_sym
38
+ rescue StandardError => e
39
+ ::Appium::Logger.warn(e.message)
40
+ pair[0]
41
+ end
42
42
 
43
43
  value = pair[1]
44
44
  acc[key] = value.is_a?(Hash) ? symbolize_keys(value) : value
@@ -25,7 +25,7 @@ module Appium
25
25
  module Device
26
26
  extend Forwardable
27
27
 
28
- # rubocop:disable Metrics/LineLength
28
+ # rubocop:disable Layout/LineLength
29
29
 
30
30
  # @!method open_notifications
31
31
  # Open Android notifications
@@ -307,7 +307,7 @@ module Appium
307
307
  ## class << self
308
308
  ####
309
309
 
310
- # rubocop:enable Metrics/LineLength
310
+ # rubocop:enable Layout/LineLength
311
311
 
312
312
  class << self
313
313
  def extended(_mod)
@@ -412,7 +412,10 @@ module Appium
412
412
  end
413
413
 
414
414
  ::Appium::Core::Device.add_endpoint_method(:execute_cdp) do
415
- def execute_cdp(cmd, **params)
415
+ # SeleniumWebdriver could already define this method
416
+ return if method_defined? :execute_cdp
417
+
418
+ def execute_cdp(cmd, params = {})
416
419
  execute :chrome_send_command, {}, { cmd: cmd, params: params }
417
420
  end
418
421
  end
@@ -60,9 +60,6 @@ module Appium
60
60
  # Creates session handling both OSS and W3C dialects.
61
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.
65
- #
66
63
  # @param [::Selenium::WebDriver::Remote::W3C::Capabilities, Hash] desired_capabilities A capability
67
64
  # @return [::Selenium::WebDriver::Remote::Capabilities, ::Selenium::WebDriver::Remote::W3C::Capabilities]
68
65
  #
@@ -76,25 +73,6 @@ module Appium
76
73
  # platformVersion: '11.4',
77
74
  # deviceName: 'iPhone Simulator',
78
75
  # useNewWDA: true,
79
- # forceMjsonwp: true
80
- # },
81
- # appium_lib: {
82
- # wait: 30
83
- # }
84
- # }
85
- # core = ::Appium::Core.for(caps)
86
- # driver = core.start_driver #=> driver.dialect == :oss
87
- #
88
- # @example
89
- #
90
- # opts = {
91
- # caps: {
92
- # platformName: :ios,
93
- # automationName: 'XCUITest',
94
- # app: 'test/functional/app/UICatalog.app.zip',
95
- # platformVersion: '11.4',
96
- # deviceName: 'iPhone Simulator',
97
- # useNewWDA: true,
98
76
  # },
99
77
  # appium_lib: {
100
78
  # wait: 30
@@ -194,21 +172,17 @@ module Appium
194
172
  force_mjsonwp = desired_capabilities[FORCE_MJSONWP]
195
173
  desired_capabilities = delete_force_mjsonwp(desired_capabilities) unless force_mjsonwp.nil?
196
174
 
197
- if force_mjsonwp
198
- {
199
- desiredCapabilities: desired_capabilities
200
- }
201
- else
202
- new_caps = add_appium_prefix(desired_capabilities)
203
- w3c_capabilities = ::Selenium::WebDriver::Remote::W3C::Capabilities.from_oss(new_caps)
204
-
205
- {
206
- desiredCapabilities: desired_capabilities,
207
- capabilities: {
208
- firstMatch: [w3c_capabilities]
209
- }
175
+ ::Appium::Logger.warn "'forceMjsonwp' no longer works. Sending both W3C and MJSONWP capabilities" if force_mjsonwp
176
+
177
+ new_caps = add_appium_prefix(desired_capabilities)
178
+ w3c_capabilities = ::Selenium::WebDriver::Remote::W3C::Capabilities.from_oss(new_caps)
179
+
180
+ {
181
+ desiredCapabilities: desired_capabilities,
182
+ capabilities: {
183
+ firstMatch: [w3c_capabilities]
210
184
  }
211
- end
185
+ }
212
186
  end
213
187
  end # class Bridge
214
188
  end # class Base
@@ -311,6 +311,7 @@ module Appium
311
311
 
312
312
  # Perform a block within the given context, then switch back to the starting context.
313
313
  # @param [String] context The context to switch to for the duration of the block.
314
+ # @param [Proc] block The block to involve within the context
314
315
  #
315
316
  # @example
316
317
  #
@@ -318,8 +319,8 @@ module Appium
318
319
  # @driver.find_element :tag, "button"
319
320
  # end # The result of 'find_element :tag, "button"'
320
321
  #
321
- def within_context(context)
322
- block_given? ? @bridge.within_context(context, &Proc.new) : @bridge.within_context(context)
322
+ def within_context(context, &block)
323
+ block_given? ? @bridge.within_context(context, &block) : @bridge.within_context(context)
323
324
  end
324
325
 
325
326
  # Change to the default context. This is equivalent to +set_context nil+.
@@ -36,7 +36,8 @@ module Appium
36
36
 
37
37
  attr_reader :additional_headers
38
38
 
39
- def initialize(open_timeout: nil, read_timeout: nil)
39
+ # override
40
+ def initialize(open_timeout: nil, read_timeout: nil) # rubocop:disable Lint/MissingSuper
40
41
  @open_timeout = open_timeout
41
42
  @read_timeout = read_timeout
42
43
  @additional_headers = {}
@@ -18,7 +18,6 @@ module Appium
18
18
  module SearchContext
19
19
  # referenced: ::Selenium::WebDriver::SearchContext
20
20
 
21
- # rubocop:disable Layout/AlignHash
22
21
  FINDERS = ::Selenium::WebDriver::SearchContext::FINDERS.merge(
23
22
  accessibility_id: 'accessibility id',
24
23
  image: '-image',
@@ -37,9 +36,8 @@ module Appium
37
36
  # Tizen with Tizen prefix
38
37
  tizen_uiautomation: '-tizen uiautomation'
39
38
  )
40
- # rubocop:enable Layout/AlignHash
41
39
 
42
- # rubocop:disable Metrics/LineLength
40
+ # rubocop:disable Layout/LineLength
43
41
  #
44
42
  # Find the first element matching the given arguments
45
43
  #
@@ -129,7 +127,7 @@ module Appium
129
127
  # # For Tizen
130
128
  # @driver.find_elements :tizen_uiautomation, '....'
131
129
  #
132
- # rubocop:enable Metrics/LineLength
130
+ # rubocop:enable Layout/LineLength
133
131
  def find_element(*args)
134
132
  how, what = extract_args(args)
135
133
  by = _set_by_from_finders(how)
@@ -12,7 +12,6 @@
12
12
  # See the License for the specific language governing permissions and
13
13
  # limitations under the License.
14
14
 
15
- # rubocop:disable Layout/AlignHash
16
15
  module Appium
17
16
  module Core
18
17
  # ref: https://github.com/appium/appium-base-driver/blob/master/lib/mjsonwp/routes.js
@@ -109,4 +108,3 @@ module Appium
109
108
  end # module Commands
110
109
  end # module Core
111
110
  end # module Appium
112
- # rubocop:enable Layout/AlignHash
@@ -12,7 +12,6 @@
12
12
  # See the License for the specific language governing permissions and
13
13
  # limitations under the License.
14
14
 
15
- # rubocop:disable Layout/AlignHash
16
15
  module Appium
17
16
  module Core
18
17
  module Commands
@@ -27,4 +26,3 @@ module Appium
27
26
  end # module Commands
28
27
  end # module Core
29
28
  end # Appium
30
- # rubocop:enable Layout/AlignHash
@@ -12,7 +12,6 @@
12
12
  # See the License for the specific language governing permissions and
13
13
  # limitations under the License.
14
14
 
15
- # rubocop:disable Layout/AlignHash
16
15
  module Appium
17
16
  module Core
18
17
  module Commands
@@ -55,4 +54,3 @@ module Appium
55
54
  end # module Commands
56
55
  end # module Core
57
56
  end # module Appium
58
- # rubocop:enable Layout/AlignHash
@@ -34,7 +34,7 @@ module Appium
34
34
  execute :app_strings, {}, opts
35
35
  end
36
36
 
37
- def background_app(duration = 0) # rubocop:disable Lint/UnusedMethodArgument
37
+ def background_app(duration = 0)
38
38
  # Should override in each driver
39
39
  raise NotImplementedError
40
40
  end
@@ -47,7 +47,7 @@ module Appium
47
47
  grant_permissions: nil)
48
48
  args = { appPath: path }
49
49
 
50
- args[:options] = {} unless options?(replace, timeout, allow_test_packages, use_sdcard, grant_permissions)
50
+ args[:options] = {} if options?(replace, timeout, allow_test_packages, use_sdcard, grant_permissions)
51
51
 
52
52
  args[:options][:replace] = replace unless replace.nil?
53
53
  args[:options][:timeout] = timeout unless timeout.nil?
@@ -92,8 +92,8 @@ module Appium
92
92
 
93
93
  private
94
94
 
95
- def options?(replace, timeout, allow_test_packages, use_sdcard, grant_permissions)
96
- replace.nil? || timeout.nil? || allow_test_packages.nil? || use_sdcard.nil? || grant_permissions.nil?
95
+ def options?(*args)
96
+ args.compact.any?
97
97
  end
98
98
  end # module AppManagement
99
99
  end # module Device
@@ -24,8 +24,8 @@ module Appium
24
24
  # @example
25
25
  #
26
26
  # @driver = Appium::Core.for(opts).start_driver
27
- # action_1 = TouchAction.new(@driver).press(x: 45, y: 100).wait(600).release
28
- # action_2 = TouchAction.new(@driver).tap(element: el, x: 50, y:5, count: 3)
27
+ # action_1 = Appium::Core::TouchAction.new(@driver).press(x: 45, y: 100).wait(600).release
28
+ # action_2 = Appium::Core::TouchAction.new(@driver).tap(element: el, x: 50, y:5, count: 3)
29
29
  #
30
30
  # multi_touch_action = MultiTouch.new(@driver)
31
31
  # multi_touch_action.add action_1
@@ -27,9 +27,9 @@ module Appium
27
27
  # @example
28
28
  #
29
29
  # @driver = Appium::Core.for(opts).start_driver
30
- # action = TouchAction.new(@driver).press(x: 45, y: 100).wait(600).release
30
+ # action = Appium::Core::TouchAction.new(@driver).press(x: 45, y: 100).wait(600).release
31
31
  # action.perform
32
- # action = TouchAction.new(@driver).swipe(....)
32
+ # action = Appium::Core::TouchAction.new(@driver).swipe(....)
33
33
  # action.perform
34
34
  #
35
35
  class TouchAction
@@ -59,7 +59,7 @@ module Appium
59
59
  # Press down for a specific duration.
60
60
  # Alternatively, you can use +press(...).wait(...).release()+ instead of +long_press+ if duration doesn't work well.
61
61
  # https://github.com/appium/ruby_lib/issues/231#issuecomment-269895512
62
- # e.g. Appium::TouchAction.new.press(x: 280, y: 530).wait(2000).release.perform
62
+ # e.g. Appium::Core::TouchAction.new.press(x: 280, y: 530).wait(2000).release.perform
63
63
  #
64
64
  # @param opts [Hash] Options
65
65
  # @option opts [WebDriver::Element] element the element to press.
@@ -53,7 +53,7 @@ module Appium
53
53
  return yield(object)
54
54
  rescue ::Errno::ECONNREFUSED => e
55
55
  raise e
56
- rescue *ignored => last_error # rubocop:disable Lint/HandleExceptions
56
+ rescue *ignored => last_error
57
57
  # swallowed
58
58
  end
59
59
  sleep interval
@@ -98,7 +98,7 @@ module Appium
98
98
  return result if result
99
99
  rescue ::Errno::ECONNREFUSED => e
100
100
  raise e
101
- rescue *ignored => last_error # rubocop:disable Lint/HandleExceptions
101
+ rescue *ignored => last_error
102
102
  # swallowed
103
103
  end
104
104
  sleep interval
@@ -494,7 +494,7 @@ module Appium
494
494
  private
495
495
 
496
496
  # @private
497
- def extend_for(device:, automation_name:)
497
+ def extend_for(device:, automation_name:) # rubocop:disable Metrics/CyclomaticComplexity
498
498
  extend Appium::Core
499
499
  extend Appium::Core::Device
500
500
 
@@ -505,21 +505,39 @@ module Appium
505
505
  ::Appium::Core::Android::Espresso::Bridge.for self
506
506
  when :uiautomator2
507
507
  ::Appium::Core::Android::Uiautomator2::Bridge.for self
508
+ when :gecko
509
+ ::Appium::Logger.debug('Gecko Driver for Android')
508
510
  else # default and UiAutomator
509
511
  ::Appium::Core::Android::Uiautomator1::Bridge.for self
510
512
  end
511
513
  when :ios, :tvos
512
514
  case automation_name
515
+ when :safari
516
+ ::Appium::Logger.debug('SafariDriver for iOS')
513
517
  when :xcuitest
514
518
  ::Appium::Core::Ios::Xcuitest::Bridge.for self
515
519
  else # default and UIAutomation
516
520
  ::Appium::Core::Ios::Uiautomation::Bridge.for self
517
521
  end
518
522
  when :mac
519
- # no Mac specific extentions
520
- ::Appium::Logger.debug('mac')
523
+ case automation_name
524
+ when :safari
525
+ ::Appium::Logger.debug('SafariDriver for macOS')
526
+ when :gecko
527
+ ::Appium::Logger.debug('Gecko Driver for macOS')
528
+ when :mac2
529
+ ::Appium::Logger.debug('macOS XCUITest')
530
+ else
531
+ # no Mac specific extentions
532
+ ::Appium::Logger.debug('macOS Native')
533
+ end
521
534
  when :windows
522
- ::Appium::Core::Windows::Bridge.for self
535
+ case automation_name
536
+ when :gecko
537
+ ::Appium::Logger.debug('Gecko Driver for Windows')
538
+ else
539
+ ::Appium::Core::Windows::Bridge.for self
540
+ end
523
541
  when :tizen
524
542
  # https://github.com/Samsung/appium-tizen-driver
525
543
  ::Appium::Logger.debug('tizen')
@@ -531,6 +549,8 @@ module Appium
531
549
  when :mac
532
550
  # In this case also can be mac
533
551
  ::Appium::Logger.debug('mac')
552
+ when :gecko # other general platform
553
+ ::Appium::Logger.debug('Gecko Driver')
534
554
  else
535
555
  ::Appium::Logger.warn("No matched driver by platformName: #{device} and automationName: #{automation_name}")
536
556
  end
@@ -23,7 +23,7 @@ module Appium
23
23
  module Device
24
24
  extend Forwardable
25
25
 
26
- # rubocop:disable Metrics/LineLength
26
+ # rubocop:disable Layout/LineLength
27
27
 
28
28
  # @!method hide_keyboard(close_key = nil, strategy = nil)
29
29
  # Hide the onscreen keyboard
@@ -171,7 +171,7 @@ module Appium
171
171
  # @driver.battery_info #=> { state: :full, level: 0.7 }
172
172
  #
173
173
 
174
- # rubocop:enable Metrics/LineLength
174
+ # rubocop:enable Layout/LineLength
175
175
 
176
176
  ####
177
177
  ## class << self
@@ -14,7 +14,7 @@
14
14
 
15
15
  module Appium
16
16
  module Core
17
- VERSION = '3.10.0' unless defined? ::Appium::Core::VERSION
18
- DATE = '2020-06-09' unless defined? ::Appium::Core::DATE
17
+ VERSION = '4.1.0' unless defined? ::Appium::Core::VERSION
18
+ DATE = '2020-12-25' unless defined? ::Appium::Core::DATE
19
19
  end
20
20
  end
@@ -20,7 +20,7 @@ module Appium
20
20
  module Device
21
21
  extend Forwardable
22
22
 
23
- # rubocop:disable Metrics/LineLength
23
+ # rubocop:disable Layout/LineLength
24
24
 
25
25
  # @since Appium 1.18.0
26
26
  # @!method start_recording_screen(remote_path: nil, user: nil, pass: nil, method: 'PUT', force_restart: nil, time_limit: nil, fps: nil, preset: nil, video_filter: nil, capture_clicks: nil, capture_cursor: nil, audio_input: nil)
@@ -69,7 +69,7 @@ module Appium
69
69
  # @driver.start_recording_screen capture_cursor: true, capture_clicks: true, time_limit: '260'
70
70
  #
71
71
 
72
- # rubocop:enable Metrics/LineLength
72
+ # rubocop:enable Layout/LineLength
73
73
 
74
74
  ####
75
75
  ## class << self
@@ -1,3 +1,64 @@
1
+ #### v4.1.0 2020-12-25
2
+
3
+ - [89110a9](https://github.com/appium/ruby_lib_core/commit/89110a995b869471a134f8c45ebe8dfbaabfba63) Release 4.1.0
4
+ - [c833315](https://github.com/appium/ruby_lib_core/commit/c83331560738c0a656509516fc5f610855d5dfed) chore(deps-dev): update rubocop requirement from = 1.6.1 to = 1.7.0 (#294)
5
+ - [83d57aa](https://github.com/appium/ruby_lib_core/commit/83d57aa3ad7fd100c081ecc21ab0d5c5d40bf95f) feat: support Ruby 3 (#295)
6
+ - [e13c58f](https://github.com/appium/ruby_lib_core/commit/e13c58fe4355dcb2631f0a42248d991165f428f7) feat: bump rubocop (#293)
7
+
8
+
9
+ #### v4.0.0 2020-12-19
10
+
11
+ - [66e2306](https://github.com/appium/ruby_lib_core/commit/66e23069722d5ccd9ca10f5a1bdf2733cb249a2c) Release 4.0.0
12
+ - [4ba9098](https://github.com/appium/ruby_lib_core/commit/4ba9098188b51d3534e35b0fae9340de7100f516) feat: drop forcemjsonwp (#291)
13
+ - [5df301c](https://github.com/appium/ruby_lib_core/commit/5df301cb559eed1431cc790655dc89c22be54eb9) chore(deps-dev): update webmock requirement from ~> 3.10.0 to ~> 3.11.0 (#290)
14
+ - [76c0ff7](https://github.com/appium/ruby_lib_core/commit/76c0ff7fa540261c5793cde1f79dc14bf752fd35) feat: bump supported ruby version (#289)
15
+ - [ea5dd00](https://github.com/appium/ruby_lib_core/commit/ea5dd0008a56821750a5b256b912f252dd46b78d) test: add a few steps
16
+ - [9c56f30](https://github.com/appium/ruby_lib_core/commit/9c56f302d46b2ea5d970c79536260720a6bd25ec) docs: add full module path in example
17
+ - [f88ae2c](https://github.com/appium/ruby_lib_core/commit/f88ae2c0d6e02d40089298e8bf5ec19b2af012cd) chore: Add mac2 sample and log (#288)
18
+ - [39e4611](https://github.com/appium/ruby_lib_core/commit/39e4611adac83dee85c21893fc1f904bf828f21e) ci: bump iOS versions (#287)
19
+ - [d76ebdd](https://github.com/appium/ruby_lib_core/commit/d76ebddf0d0f664e49a616a1f94425eba887245e) docs: update badge
20
+
21
+
22
+ #### v3.11.1 2020-11-20
23
+
24
+ - [4fe582c](https://github.com/appium/ruby_lib_core/commit/4fe582c1318c2b5de83fcf87e36d1fedab8ed81a) Release 3.11.1
25
+ - [e017ebc](https://github.com/appium/ruby_lib_core/commit/e017ebcaa8c50653e2f45871465c78ad5a8ce81e) fix: install_app args options bug (#286)
26
+ - [e7b881c](https://github.com/appium/ruby_lib_core/commit/e7b881c19be1b3a9acf7d01f34f59307b8e16b89) chore(deps-dev): update webmock requirement from ~> 3.9.1 to ~> 3.10.0 (#284)
27
+ - [d1e8cb8](https://github.com/appium/ruby_lib_core/commit/d1e8cb864f00d4f4bd307b523cc205ee2a636d33) feat: add safari and geckodriver (#283)
28
+ - [569ea09](https://github.com/appium/ruby_lib_core/commit/569ea09f7777dd2508f1919ddcf9b88aba272647) test: use predicate instead of name for 'value' (#282)
29
+ - [e4d63eb](https://github.com/appium/ruby_lib_core/commit/e4d63eb82248a79b41fbbc39db5b03cc35d447cd) ci: remove duplicated test running
30
+ - [30be7dc](https://github.com/appium/ruby_lib_core/commit/30be7dca0ec3cdcafa647899447387924970df34) test: fix tests
31
+ - [94d4250](https://github.com/appium/ruby_lib_core/commit/94d4250033107ff956a2b9c1f0b30fedba286b5d) test: remove a trick
32
+ - [6605f78](https://github.com/appium/ruby_lib_core/commit/6605f78fb0d996faad7f1e21f1876eab5184d430) test: tweak test cases
33
+ - [7dbbadb](https://github.com/appium/ruby_lib_core/commit/7dbbadbda69ee2f710393768fb994e8e43adb3bb) fix lint
34
+ - [7619052](https://github.com/appium/ruby_lib_core/commit/76190523c95e3f6a1ab9a9af48d60605d2f87266) tweak test cases
35
+ - [87cb224](https://github.com/appium/ruby_lib_core/commit/87cb224a3f32261823fd5bacd9349cbe2158b54c) chore(deps-dev): update webmock requirement from ~> 3.8.0 to ~> 3.9.1 (#281)
36
+ - [577a75a](https://github.com/appium/ruby_lib_core/commit/577a75a690b6f0688dead506c26704c82ea6f2e9) ci: update for espresso (#280)
37
+
38
+
39
+ #### v3.11.0 2020-08-01
40
+
41
+ - [0ed888e](https://github.com/appium/ruby_lib_core/commit/0ed888efd87def79cdb1ca922268b466485a2261) Release 3.11.0
42
+ - [f7dc534](https://github.com/appium/ruby_lib_core/commit/f7dc5349a48ac305df740f7be1f6e5f9b90e1e0e) chore: update faye-websocket (#279)
43
+ - [2fa2440](https://github.com/appium/ruby_lib_core/commit/2fa24404aa993c643191a2de0f8c2c800680ec5f) test: tweak espresso (#278)
44
+ - [ba7f71d](https://github.com/appium/ruby_lib_core/commit/ba7f71d82393b75d7119dbb50f8c0ae781d0933e) ci: revert
45
+ - [c2cf5d7](https://github.com/appium/ruby_lib_core/commit/c2cf5d7ef04c51e0b978676ea5145223f1b16f2e) test: add allOf example (#274)
46
+ - [f7c21b8](https://github.com/appium/ruby_lib_core/commit/f7c21b878ac9970f6d621deedf4c9adce7515700) ci: tweak version
47
+ - [2162392](https://github.com/appium/ruby_lib_core/commit/2162392bfa5cc949aae9b4020d6b53b7b23953f9) ci: specify which beta (#273)
48
+
49
+
50
+ #### v3.10.1 2020-06-29
51
+
52
+ - [9537c61](https://github.com/appium/ruby_lib_core/commit/9537c619220177a4cac82368405fec681a5ab231) Release 3.10.1
53
+ - [3b962f5](https://github.com/appium/ruby_lib_core/commit/3b962f55cc954699e72b38c94e5a1f05c82867f9) ci: runs tests on windows host as GitHub Actions (#272)
54
+ - [f60b4f1](https://github.com/appium/ruby_lib_core/commit/f60b4f193c590d861342828bd740cefda7e96b9a) ci: remove travis (#271)
55
+ - [b1aa80d](https://github.com/appium/ruby_lib_core/commit/b1aa80dd1cc200917df9958b6274e0a82b5ffc40) ci: run unittests on GitHub Actions (#270)
56
+ - [ad90f79](https://github.com/appium/ruby_lib_core/commit/ad90f79b726aa480edf989fed2a8b00ced6c52fd) chore: Update issue templates
57
+ - [cf546a0](https://github.com/appium/ruby_lib_core/commit/cf546a0c62f815df4bb3ece4932b8033fad25ae2) ci: tune Azure (#269)
58
+ - [14e7e56](https://github.com/appium/ruby_lib_core/commit/14e7e56a2bccb4c4cc53e0b10284e3837e50a1af) ci: bump android emulator version (#268)
59
+ - [8d2cd95](https://github.com/appium/ruby_lib_core/commit/8d2cd95445d95716617c426e759e19e861ef09e2) chore: remove pry added accidentally
60
+
61
+
1
62
  #### v3.10.0 2020-06-09
2
63
 
3
64
  - [9eff959](https://github.com/appium/ruby_lib_core/commit/9eff959240effde56460c77878a24a20d047f9e9) Release 3.10.0
@@ -17,9 +17,9 @@ require './lib/appium_lib_core'
17
17
 
18
18
  module Script
19
19
  class CommandsChecker
20
- attr_reader :spec_commands
21
- attr_reader :implemented_mjsonwp_commands, :implemented_w3c_commands, :implemented_core_commands
22
- attr_reader :webdriver_oss_commands, :webdriver_w3c_commands
20
+ attr_reader :spec_commands,
21
+ :implemented_mjsonwp_commands, :implemented_w3c_commands, :implemented_core_commands,
22
+ :webdriver_oss_commands, :webdriver_w3c_commands
23
23
 
24
24
  # Set commands implemented in this core library.
25
25
  #
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.10.0
4
+ version: 4.1.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-06-09 00:00:00.000000000 Z
11
+ date: 2020-12-26 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
@@ -120,28 +120,28 @@ dependencies:
120
120
  requirements:
121
121
  - - "~>"
122
122
  - !ruby/object:Gem::Version
123
- version: 3.8.0
123
+ version: 3.11.0
124
124
  type: :development
125
125
  prerelease: false
126
126
  version_requirements: !ruby/object:Gem::Requirement
127
127
  requirements:
128
128
  - - "~>"
129
129
  - !ruby/object:Gem::Version
130
- version: 3.8.0
130
+ version: 3.11.0
131
131
  - !ruby/object:Gem::Dependency
132
132
  name: rubocop
133
133
  requirement: !ruby/object:Gem::Requirement
134
134
  requirements:
135
135
  - - '='
136
136
  - !ruby/object:Gem::Version
137
- version: 0.68.1
137
+ version: 1.7.0
138
138
  type: :development
139
139
  prerelease: false
140
140
  version_requirements: !ruby/object:Gem::Requirement
141
141
  requirements:
142
142
  - - '='
143
143
  - !ruby/object:Gem::Version
144
- version: 0.68.1
144
+ version: 1.7.0
145
145
  - !ruby/object:Gem::Dependency
146
146
  name: appium_thor
147
147
  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
@@ -332,14 +333,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
332
333
  requirements:
333
334
  - - ">="
334
335
  - !ruby/object:Gem::Version
335
- version: '2.2'
336
+ version: '2.4'
336
337
  required_rubygems_version: !ruby/object:Gem::Requirement
337
338
  requirements:
338
339
  - - ">="
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