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.
- checksums.yaml +4 -4
- data/.github/ISSUE_TEMPLATE/issue-report.md +29 -0
- data/.github/workflows/unittest.yml +68 -0
- data/.rubocop.yml +22 -12
- data/CHANGELOG.md +51 -2
- data/README.md +1 -3
- data/appium_lib_core.gemspec +4 -4
- data/azure-pipelines.yml +0 -20
- data/ci-jobs/functional/ios_setup.yml +2 -0
- data/ci-jobs/functional/publish_test_result.yml +2 -2
- data/ci-jobs/functional/run_appium.yml +7 -2
- data/ci-jobs/functional/start-emulator.sh +1 -1
- data/ci-jobs/functional_test.yml +19 -48
- data/lib/appium_lib_core.rb +5 -5
- data/lib/appium_lib_core/android/device.rb +6 -3
- data/lib/appium_lib_core/common/base/bridge.rb +10 -36
- data/lib/appium_lib_core/common/base/driver.rb +3 -2
- data/lib/appium_lib_core/common/base/http_default.rb +2 -1
- data/lib/appium_lib_core/common/base/search_context.rb +2 -4
- data/lib/appium_lib_core/common/command/common.rb +0 -2
- data/lib/appium_lib_core/common/command/mjsonwp.rb +0 -2
- data/lib/appium_lib_core/common/command/w3c.rb +0 -2
- data/lib/appium_lib_core/common/device/app_management.rb +4 -4
- data/lib/appium_lib_core/common/touch_action/multi_touch.rb +2 -2
- data/lib/appium_lib_core/common/touch_action/touch_actions.rb +3 -3
- data/lib/appium_lib_core/common/wait.rb +2 -2
- data/lib/appium_lib_core/driver.rb +24 -4
- data/lib/appium_lib_core/ios/xcuitest/device.rb +2 -2
- data/lib/appium_lib_core/version.rb +2 -2
- data/lib/appium_lib_core/windows/device.rb +2 -2
- data/release_notes.md +61 -0
- data/script/commands.rb +3 -3
- metadata +12 -11
- data/.travis.yml +0 -24
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 5328494c785b852424a9ba61e627ed78c54c4bca6baf2643f16a647f4edfcf22
|
4
|
+
data.tar.gz: 130869ab5ca0d2967f98b5beed348d3e31bb7c90eb5219da60f2d8f973e8a381
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
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
|
data/.rubocop.yml
CHANGED
@@ -1,7 +1,15 @@
|
|
1
1
|
AllCops:
|
2
|
-
TargetRubyVersion: 2.
|
3
|
-
|
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:
|
22
|
+
Max: 14
|
15
23
|
Metrics/PerceivedComplexity:
|
16
|
-
Max:
|
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
|
-
|
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
|
-
|
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
|
data/CHANGELOG.md
CHANGED
@@ -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
|
[](https://badge.fury.io/rb/appium_lib_core)
|
4
4
|
|
5
|
-
|
6
|
-
|:---:|:---:|
|
7
|
-
|[](https://travis-ci.org/appium/ruby_lib_core)|[](https://dev.azure.com/kazucocoa/ruby_lib_core/_build/latest?definitionId=9&branchName=master)|
|
5
|
+
[](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
|
|
data/appium_lib_core.gemspec
CHANGED
@@ -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.
|
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.
|
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.
|
34
|
-
spec.add_development_dependency 'rubocop', '
|
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'
|
data/azure-pipelines.yml
CHANGED
@@ -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: $
|
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: '
|
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.
|
15
|
-
- script:
|
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
|
data/ci-jobs/functional_test.yml
CHANGED
@@ -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:
|
6
|
-
xcodeForTVOS:
|
7
|
-
androidSDK:
|
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
|
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/
|
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'
|
data/lib/appium_lib_core.rb
CHANGED
@@ -34,11 +34,11 @@ module Appium
|
|
34
34
|
|
35
35
|
hash.each_with_object({}) do |pair, acc|
|
36
36
|
key = begin
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
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
|
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
|
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
|
-
|
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
|
-
|
200
|
-
|
201
|
-
|
202
|
-
|
203
|
-
|
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
|
-
|
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, &
|
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
|
-
|
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
|
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
|
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)
|
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] = {}
|
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?(
|
96
|
-
|
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
|
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
|
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
|
-
|
520
|
-
|
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
|
-
|
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
|
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
|
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 = '
|
18
|
-
DATE = '2020-
|
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
|
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
|
72
|
+
# rubocop:enable Layout/LineLength
|
73
73
|
|
74
74
|
####
|
75
75
|
## class << self
|
data/release_notes.md
CHANGED
@@ -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
|
data/script/commands.rb
CHANGED
@@ -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
|
-
|
22
|
-
|
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:
|
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-
|
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.
|
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.
|
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.
|
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.
|
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:
|
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:
|
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.
|
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.
|
343
|
+
rubygems_version: 3.1.2
|
343
344
|
signing_key:
|
344
345
|
specification_version: 4
|
345
346
|
summary: Minimal Ruby library for Appium.
|
data/.travis.yml
DELETED
@@ -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
|