appium_lib_core 5.0.0 → 5.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/workflows/codeql-analysis.yml +70 -0
- data/.github/workflows/unittest.yml +1 -1
- data/.rubocop.yml +6 -0
- data/CHANGELOG.md +25 -0
- data/README.md +1 -1
- data/appium_lib_core.gemspec +2 -2
- data/lib/appium_lib_core/common/base/bridge.rb +11 -7
- data/lib/appium_lib_core/common/base/driver.rb +17 -15
- data/lib/appium_lib_core/common/device/app_management.rb +2 -14
- data/lib/appium_lib_core/version.rb +2 -2
- data/release_notes.md +32 -0
- metadata +7 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 15447eabf9741951c87185aa6844f1b7acfab0bbcef6e70061ccebbd423dc00b
|
4
|
+
data.tar.gz: a135b4d1b7b4cfd49cce6a684a98fcb508a5a7f8bf770c35b2c323ac74a4f5e2
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 424e4f1bf4e4fa14bf5582cf74ff32cc248ab430878900bb154ed4a12ad089a84c6c087cee9f2db352ed2292e781c278510d8cb4c86b9582e9af4eb56a705e0f
|
7
|
+
data.tar.gz: 7d95d25ff6b670c3bd0a2ac6a295a4ef085bbde7479a40fdb0fece4100d1e2a76ba3ab814b0225de007f748f1c6d0f3c0d7b36df1b4010a11dad3951570d90b9
|
@@ -0,0 +1,70 @@
|
|
1
|
+
# For most projects, this workflow file will not need changing; you simply need
|
2
|
+
# to commit it to your repository.
|
3
|
+
#
|
4
|
+
# You may wish to alter this file to override the set of languages analyzed,
|
5
|
+
# or to provide custom queries or build logic.
|
6
|
+
#
|
7
|
+
# ******** NOTE ********
|
8
|
+
# We have attempted to detect the languages in your repository. Please check
|
9
|
+
# the `language` matrix defined below to confirm you have the correct set of
|
10
|
+
# supported CodeQL languages.
|
11
|
+
#
|
12
|
+
name: "CodeQL"
|
13
|
+
|
14
|
+
on:
|
15
|
+
push:
|
16
|
+
branches: [ master ]
|
17
|
+
pull_request:
|
18
|
+
# The branches below must be a subset of the branches above
|
19
|
+
branches: [ master ]
|
20
|
+
schedule:
|
21
|
+
- cron: '39 12 * * 0'
|
22
|
+
|
23
|
+
jobs:
|
24
|
+
analyze:
|
25
|
+
name: Analyze
|
26
|
+
runs-on: ubuntu-latest
|
27
|
+
permissions:
|
28
|
+
actions: read
|
29
|
+
contents: read
|
30
|
+
security-events: write
|
31
|
+
|
32
|
+
strategy:
|
33
|
+
fail-fast: false
|
34
|
+
matrix:
|
35
|
+
language: [ 'ruby' ]
|
36
|
+
# CodeQL supports [ 'cpp', 'csharp', 'go', 'java', 'javascript', 'python', 'ruby' ]
|
37
|
+
# Learn more about CodeQL language support at https://git.io/codeql-language-support
|
38
|
+
|
39
|
+
steps:
|
40
|
+
- name: Checkout repository
|
41
|
+
uses: actions/checkout@v2
|
42
|
+
|
43
|
+
# Initializes the CodeQL tools for scanning.
|
44
|
+
- name: Initialize CodeQL
|
45
|
+
uses: github/codeql-action/init@v1
|
46
|
+
with:
|
47
|
+
languages: ${{ matrix.language }}
|
48
|
+
# If you wish to specify custom queries, you can do so here or in a config file.
|
49
|
+
# By default, queries listed here will override any specified in a config file.
|
50
|
+
# Prefix the list here with "+" to use these queries and those in the config file.
|
51
|
+
# queries: ./path/to/local/query, your-org/your-repo/queries@main
|
52
|
+
|
53
|
+
# Autobuild attempts to build any compiled languages (C/C++, C#, or Java).
|
54
|
+
# If this step fails, then you should remove it and run the build manually (see below)
|
55
|
+
- name: Autobuild
|
56
|
+
uses: github/codeql-action/autobuild@v1
|
57
|
+
|
58
|
+
# ℹ️ Command-line programs to run using the OS shell.
|
59
|
+
# 📚 https://git.io/JvXDl
|
60
|
+
|
61
|
+
# ✏️ If the Autobuild fails above, remove it and uncomment the following three lines
|
62
|
+
# and modify them (or add more) to build your code if your project
|
63
|
+
# uses a compiled language
|
64
|
+
|
65
|
+
#- run: |
|
66
|
+
# make bootstrap
|
67
|
+
# make release
|
68
|
+
|
69
|
+
- name: Perform CodeQL Analysis
|
70
|
+
uses: github/codeql-action/analyze@v1
|
data/.rubocop.yml
CHANGED
@@ -58,6 +58,8 @@ Style/KeywordParametersOrder:
|
|
58
58
|
Enabled: false
|
59
59
|
Gemspec/DateAssignment:
|
60
60
|
Enabled: true
|
61
|
+
Gemspec/RequireMFA:
|
62
|
+
Enabled: true
|
61
63
|
Layout/LineEndStringConcatenationIndentation:
|
62
64
|
Enabled: true
|
63
65
|
Layout/SpaceBeforeBrackets:
|
@@ -104,6 +106,8 @@ Lint/UnexpectedBlockArity:
|
|
104
106
|
Enabled: true
|
105
107
|
Lint/UnmodifiedReduceAccumulator:
|
106
108
|
Enabled: true
|
109
|
+
Lint/UselessRuby2Keywords:
|
110
|
+
Enabled: true
|
107
111
|
Security/IoMethods:
|
108
112
|
Enabled: true
|
109
113
|
Style/ArgumentsForwarding:
|
@@ -144,3 +148,5 @@ Style/StringChars:
|
|
144
148
|
Enabled: true
|
145
149
|
Style/SwapValues:
|
146
150
|
Enabled: true
|
151
|
+
Style/OpenStructUse:
|
152
|
+
Enabled: true
|
data/CHANGELOG.md
CHANGED
@@ -10,6 +10,31 @@ Read `release_notes.md` for commit level details.
|
|
10
10
|
|
11
11
|
### Deprecations
|
12
12
|
|
13
|
+
## [5.1.0] - 2021-12-25
|
14
|
+
|
15
|
+
### Enhancements
|
16
|
+
- Make default pointerType `touch` for the pointer in W3C actions instead of `mouse` for Appium
|
17
|
+
- This change should not affect W3C actions
|
18
|
+
|
19
|
+
## [5.0.3] - 2021-12-13
|
20
|
+
|
21
|
+
### Enhancements
|
22
|
+
- Can add more arguments in `install_app`
|
23
|
+
- e.g. Add `timeoutMs` for XCUITest driver as `@driver.install_app("/path/to/test.ipa", timeoutMs: 20000)`
|
24
|
+
|
25
|
+
### Bug fixes
|
26
|
+
- (internal) Allow to access to `bridge` attribute in `driver` instance for appium_flutter_finder
|
27
|
+
|
28
|
+
## [5.0.2] - 2021-12-01
|
29
|
+
|
30
|
+
### Bug fixes
|
31
|
+
- (internal) Fix firstMatch format in a new session creation
|
32
|
+
|
33
|
+
## [5.0.1] - 2021-11-23
|
34
|
+
|
35
|
+
### Enhancements
|
36
|
+
- Relaxed version restriction of selenium-webdriver
|
37
|
+
|
13
38
|
## [5.0.0] - 2021-11-05
|
14
39
|
|
15
40
|
### Enhancements
|
data/README.md
CHANGED
@@ -15,7 +15,7 @@ This library wraps [selenium-webdriver](https://github.com/SeleniumHQ/selenium/w
|
|
15
15
|
|
16
16
|
# Migration from v4 to v5
|
17
17
|
|
18
|
-
Please read `[5.0.0]` section in CHANGELOG.md
|
18
|
+
Please read [`[5.0.0]`](CHANGELOG.md#500---2021-11-05) section in [CHANGELOG](CHANGELOG.md)
|
19
19
|
|
20
20
|
# Related library
|
21
21
|
- https://github.com/appium/ruby_lib
|
data/appium_lib_core.gemspec
CHANGED
@@ -22,7 +22,7 @@ Gem::Specification.new do |spec|
|
|
22
22
|
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
23
23
|
spec.require_paths = ['lib']
|
24
24
|
|
25
|
-
spec.add_runtime_dependency 'selenium-webdriver', '~> 4.0
|
25
|
+
spec.add_runtime_dependency 'selenium-webdriver', '~> 4.0'
|
26
26
|
spec.add_runtime_dependency 'faye-websocket', '~> 0.11.0'
|
27
27
|
|
28
28
|
spec.add_development_dependency 'rake', '~> 13.0'
|
@@ -30,7 +30,7 @@ Gem::Specification.new do |spec|
|
|
30
30
|
spec.add_development_dependency 'minitest', '~> 5.0'
|
31
31
|
spec.add_development_dependency 'minitest-reporters', '~> 1.1'
|
32
32
|
spec.add_development_dependency 'webmock', '~> 3.14.0'
|
33
|
-
spec.add_development_dependency 'rubocop', '1.
|
33
|
+
spec.add_development_dependency 'rubocop', '1.24.0'
|
34
34
|
spec.add_development_dependency 'appium_thor', '~> 1.0'
|
35
35
|
spec.add_development_dependency 'parallel_tests'
|
36
36
|
spec.add_development_dependency 'simplecov'
|
@@ -77,8 +77,8 @@ module Appium
|
|
77
77
|
def create_session(capabilities)
|
78
78
|
@available_commands = ::Appium::Core::Commands::COMMANDS.dup
|
79
79
|
|
80
|
-
|
81
|
-
response = execute(:new_session, {}, { capabilities: { alwaysMatch:
|
80
|
+
always_match = add_appium_prefix(capabilities)
|
81
|
+
response = execute(:new_session, {}, { capabilities: { alwaysMatch: always_match, firstMatch: [{}] } })
|
82
82
|
|
83
83
|
@session_id = response['sessionId']
|
84
84
|
raise ::Selenium::WebDriver::Error::WebDriverError, 'no sessionId in returned payload' unless @session_id
|
@@ -159,8 +159,7 @@ module Appium
|
|
159
159
|
# - https://seleniumhq.github.io/selenium/docs/api/rb/Selenium/WebDriver/PointerActions.html
|
160
160
|
# - https://seleniumhq.github.io/selenium/docs/api/rb/Selenium/WebDriver/KeyActions.html
|
161
161
|
#
|
162
|
-
#
|
163
|
-
# the server side. So we don't consider the case.
|
162
|
+
# The pointer type is 'touch' by default in the Appium Ruby client. (The selenium one is 'mouse')
|
164
163
|
#
|
165
164
|
# @example
|
166
165
|
#
|
@@ -168,9 +167,14 @@ module Appium
|
|
168
167
|
# @driver.action.click(element).perform # The 'click' is a part of 'PointerActions'
|
169
168
|
#
|
170
169
|
def action(async = false)
|
171
|
-
|
172
|
-
|
173
|
-
|
170
|
+
action_builder = ::Selenium::WebDriver::ActionBuilder.new(
|
171
|
+
self,
|
172
|
+
::Selenium::WebDriver::Interactions.pointer(:touch, name: 'touch'),
|
173
|
+
::Selenium::WebDriver::Interactions.key('keyboard'),
|
174
|
+
async
|
175
|
+
)
|
176
|
+
# Used for default duration of each touch actions.
|
177
|
+
# Override from 250 milliseconds to 50 milliseconds in PointerActions included by ::Selenium::WebDriver::ActionBuilder
|
174
178
|
action_builder.default_move_duration = 0.05
|
175
179
|
action_builder
|
176
180
|
end
|
@@ -41,12 +41,12 @@ module Appium
|
|
41
41
|
|
42
42
|
include ::Appium::Core::Waitable
|
43
43
|
|
44
|
-
private
|
45
|
-
|
46
44
|
# Private API.
|
47
45
|
# Do not use this for general use. Used by flutter driver to get bridge for creating a new element
|
48
46
|
attr_reader :bridge
|
49
47
|
|
48
|
+
private
|
49
|
+
|
50
50
|
def initialize(bridge: nil, listener: nil, **opts)
|
51
51
|
# For ::Appium::Core::Waitable
|
52
52
|
@wait_timeout = opts.delete(:wait_timeout)
|
@@ -609,7 +609,9 @@ module Appium
|
|
609
609
|
@bridge.background_app(duration)
|
610
610
|
end
|
611
611
|
|
612
|
-
# Install the given app onto the device
|
612
|
+
# Install the given app onto the device.
|
613
|
+
# Each options can be snake-case or camel-case. Snake-cases will be converted to camel-case
|
614
|
+
# as options value.
|
613
615
|
#
|
614
616
|
# @param [String] path The absolute local path or remote http URL to an .ipa or .apk file,
|
615
617
|
# or a .zip containing one of these.
|
@@ -623,26 +625,26 @@ module Appium
|
|
623
625
|
# @param [Boolean] grant_permissions Only for Android. whether to automatically grant application permissions
|
624
626
|
# on Android 6+ after the installation completes. +false+ by default
|
625
627
|
#
|
628
|
+
# Other parameters such as https://github.com/appium/appium-xcuitest-driver#mobile-installapp also can be set.
|
629
|
+
# Then, arguments in snake case will be camel case as its request parameters.
|
630
|
+
#
|
626
631
|
# @example
|
627
632
|
#
|
628
633
|
# @driver.install_app("/path/to/test.apk")
|
629
634
|
# @driver.install_app("/path/to/test.apk", replace: true, timeout: 20000, allow_test_packages: true,
|
630
635
|
# use_sdcard: false, grant_permissions: false)
|
636
|
+
# @driver.install_app("/path/to/test.ipa", timeoutMs: 20000)
|
631
637
|
#
|
632
|
-
def install_app(path,
|
633
|
-
|
634
|
-
|
635
|
-
allow_test_packages: nil,
|
636
|
-
use_sdcard: nil,
|
637
|
-
grant_permissions: nil)
|
638
|
-
@bridge.install_app(path,
|
639
|
-
replace: replace,
|
640
|
-
timeout: timeout,
|
641
|
-
allow_test_packages: allow_test_packages,
|
642
|
-
use_sdcard: use_sdcard,
|
643
|
-
grant_permissions: grant_permissions)
|
638
|
+
def install_app(path, **options)
|
639
|
+
options = options.transform_keys { |key| key.to_s.gsub(/_./) { |v| v[1].upcase } } unless options.nil?
|
640
|
+
@bridge.install_app(path, options)
|
644
641
|
end
|
645
642
|
|
643
|
+
# def capitalize(s)
|
644
|
+
# chars =
|
645
|
+
# chars[1:].map(&:capitalize).join
|
646
|
+
# end
|
647
|
+
|
646
648
|
# @param [Strong] app_id BundleId for iOS or package name for Android
|
647
649
|
# @param [Boolean] keep_data Only for Android. Whether to keep application data and caches after it is uninstalled.
|
648
650
|
# +false+ by default
|
@@ -39,21 +39,9 @@ module Appium
|
|
39
39
|
raise NotImplementedError
|
40
40
|
end
|
41
41
|
|
42
|
-
def install_app(path,
|
43
|
-
replace: nil,
|
44
|
-
timeout: nil,
|
45
|
-
allow_test_packages: nil,
|
46
|
-
use_sdcard: nil,
|
47
|
-
grant_permissions: nil)
|
42
|
+
def install_app(path, options = {})
|
48
43
|
args = { appPath: path }
|
49
|
-
|
50
|
-
args[:options] = {} if options?(replace, timeout, allow_test_packages, use_sdcard, grant_permissions)
|
51
|
-
|
52
|
-
args[:options][:replace] = replace unless replace.nil?
|
53
|
-
args[:options][:timeout] = timeout unless timeout.nil?
|
54
|
-
args[:options][:allowTestPackages] = allow_test_packages unless allow_test_packages.nil?
|
55
|
-
args[:options][:useSdcard] = use_sdcard unless use_sdcard.nil?
|
56
|
-
args[:options][:grantPermissions] = grant_permissions unless grant_permissions.nil?
|
44
|
+
args[:options] = options unless options.empty?
|
57
45
|
|
58
46
|
execute :install_app, {}, args
|
59
47
|
end
|
@@ -14,7 +14,7 @@
|
|
14
14
|
|
15
15
|
module Appium
|
16
16
|
module Core
|
17
|
-
VERSION = '5.
|
18
|
-
DATE = '2021-
|
17
|
+
VERSION = '5.1.0' unless defined? ::Appium::Core::VERSION
|
18
|
+
DATE = '2021-12-25' unless defined? ::Appium::Core::DATE
|
19
19
|
end
|
20
20
|
end
|
data/release_notes.md
CHANGED
@@ -1,3 +1,35 @@
|
|
1
|
+
#### v5.1.0 2021-12-25
|
2
|
+
|
3
|
+
- [b8b9f08](https://github.com/appium/ruby_lib_core/commit/b8b9f0858846279bbd993baa3aa4a8fdfc737b53) Release 5.1.0
|
4
|
+
- [5979999](https://github.com/appium/ruby_lib_core/commit/59799994e91e126d57ce2cfd5b1446c48b381638) ci: add ruby 3.1 (#365)
|
5
|
+
- [6df37c7](https://github.com/appium/ruby_lib_core/commit/6df37c7928b125295e657f007e6c6c135090ac82) chore: tune w3c actions (#364)
|
6
|
+
- [1fdb794](https://github.com/appium/ruby_lib_core/commit/1fdb794153d74e54ca730d78eb38a59f1e3b9c72) chore(deps-dev): update rubocop requirement from = 1.23.0 to = 1.24.0 (#363)
|
7
|
+
|
8
|
+
|
9
|
+
#### v5.0.3 2021-12-13
|
10
|
+
|
11
|
+
- [7cee1b3](https://github.com/appium/ruby_lib_core/commit/7cee1b31647c453a546c450c35c37649462eed05) Release 5.0.3
|
12
|
+
- [21bd5a5](https://github.com/appium/ruby_lib_core/commit/21bd5a5186dc25a9523ad8e7ec6275edbc79988e) fix: make bridge attribute non-private for flutter finder (#362)
|
13
|
+
- [78e432e](https://github.com/appium/ruby_lib_core/commit/78e432e92571adfd80fe3ad4405010825e766fc5) chore: add changelog
|
14
|
+
- [0b3c45c](https://github.com/appium/ruby_lib_core/commit/0b3c45cd6a059fd493bfcbd55ebe437291cbcdab) feat: do not restrict options in install_app (#361)
|
15
|
+
|
16
|
+
|
17
|
+
#### v5.0.2 2021-12-01
|
18
|
+
|
19
|
+
- [3cc0fb1](https://github.com/appium/ruby_lib_core/commit/3cc0fb129a0ec74367c716941adefae75fe6a6d6) Release 5.0.2
|
20
|
+
- [a87c63a](https://github.com/appium/ruby_lib_core/commit/a87c63a5e00ca826eb89cee3b4874c4bbb787980) chore: tweak naming
|
21
|
+
- [36e50b2](https://github.com/appium/ruby_lib_core/commit/36e50b28c04a5afda8d25f6b855d35fda5ff6b2b) fix: sends [{}] (#360)
|
22
|
+
|
23
|
+
|
24
|
+
#### v5.0.1 2021-11-23
|
25
|
+
|
26
|
+
- [f17ba52](https://github.com/appium/ruby_lib_core/commit/f17ba524608a6e715923331bb9bfff73e0709bcb) Release 5.0.1
|
27
|
+
- [ee9cbc4](https://github.com/appium/ruby_lib_core/commit/ee9cbc42e0d3289bb4ab9b403d45867472241e97) feat: relax selenium webdriver version (#357)
|
28
|
+
- [4c2948b](https://github.com/appium/ruby_lib_core/commit/4c2948b113106e01c8009555434b4d0fe0ae99f3) chore(deps-dev): update rubocop requirement from = 1.22.3 to = 1.23.0 (#354)
|
29
|
+
- [abe2316](https://github.com/appium/ruby_lib_core/commit/abe2316b5a01a27bc657daeb41524afca4187c18) ci: add codeql-analysis (#355)
|
30
|
+
- [1c87fc9](https://github.com/appium/ruby_lib_core/commit/1c87fc9b2e1ac7bd869ec61a0dc045b12d5ed887) docs: add link to changelog in migration guide
|
31
|
+
|
32
|
+
|
1
33
|
#### v5.0.0 2021-11-05
|
2
34
|
|
3
35
|
- [e2d1e2d](https://github.com/appium/ruby_lib_core/commit/e2d1e2da59b10f84b3c8ecafba7be6ab27223b73) Release 5.0.0
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: appium_lib_core
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 5.
|
4
|
+
version: 5.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: 2021-
|
11
|
+
date: 2021-12-26 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: selenium-webdriver
|
@@ -16,14 +16,14 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: 4.0
|
19
|
+
version: '4.0'
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: 4.0
|
26
|
+
version: '4.0'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: faye-websocket
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
@@ -114,14 +114,14 @@ dependencies:
|
|
114
114
|
requirements:
|
115
115
|
- - '='
|
116
116
|
- !ruby/object:Gem::Version
|
117
|
-
version: 1.
|
117
|
+
version: 1.24.0
|
118
118
|
type: :development
|
119
119
|
prerelease: false
|
120
120
|
version_requirements: !ruby/object:Gem::Requirement
|
121
121
|
requirements:
|
122
122
|
- - '='
|
123
123
|
- !ruby/object:Gem::Version
|
124
|
-
version: 1.
|
124
|
+
version: 1.24.0
|
125
125
|
- !ruby/object:Gem::Dependency
|
126
126
|
name: appium_thor
|
127
127
|
requirement: !ruby/object:Gem::Requirement
|
@@ -175,6 +175,7 @@ files:
|
|
175
175
|
- ".github/contributing.md"
|
176
176
|
- ".github/dependabot.yml"
|
177
177
|
- ".github/issue_template.md"
|
178
|
+
- ".github/workflows/codeql-analysis.yml"
|
178
179
|
- ".github/workflows/unittest.yml"
|
179
180
|
- ".gitignore"
|
180
181
|
- ".rubocop.yml"
|