appium_lib_core 5.0.2 → 5.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: e643028012001727a3587bf56c533a58f3156cb54a33ce6ae76344032b6eba2b
4
- data.tar.gz: e267c16743d9ae2054c82aaf2af36743eadcf11405cda1bc65d0988e2a0b019d
3
+ metadata.gz: 7498caac67adf73e6d5a8f7127fe6441eadb7cfa705496e72c616d3c389337c7
4
+ data.tar.gz: 851dca60890fa41293cae401d308e43f34d3fe94f49fbbe951407a00dea2a329
5
5
  SHA512:
6
- metadata.gz: 2e433f4df5d820edd9a8625b0e53e3d16eb498310e3d7891ae4f5002bae518488a4595398a294b3f2a7a7a81d84dce0ded6ede87289d5a47f6a5a6f9a4ca0656
7
- data.tar.gz: 07ccc1ce6007394bb72328cfd0f2f7ed292f0456177baef9dc9aec999ba511565dcd9635f10c5ce7e43383a115801d5d3c728a52a08c20a254558d4752ddc863
6
+ metadata.gz: 8a4e1dc7ee2b28b0ccfba5e0255d30370232313d4ae51d36b61fca2d0431cf7617b03696529207c8c8de666fba504491d73d2a6ef28c3f6c5cb5cc1612ae5c9d
7
+ data.tar.gz: '09528fb3002fd25934c5f1bd0d539e2b13798701b18803de0bda4410ab8fb7116b1458ef619d0d43050548a2deb57ef86848bc3a9a46ac954551fd93e8bc176f'
data/CHANGELOG.md CHANGED
@@ -10,6 +10,27 @@ Read `release_notes.md` for commit level details.
10
10
 
11
11
  ### Deprecations
12
12
 
13
+ ## [5.1.1] - 2022-04-18
14
+
15
+ ### Enhancements
16
+
17
+ - Remove unneccessry files from gem package to reduce the size.
18
+
19
+ ## [5.1.0] - 2021-12-25
20
+
21
+ ### Enhancements
22
+ - Make default pointerType `touch` for the pointer in W3C actions instead of `mouse` for Appium
23
+ - This change should not affect W3C actions
24
+
25
+ ## [5.0.3] - 2021-12-13
26
+
27
+ ### Enhancements
28
+ - Can add more arguments in `install_app`
29
+ - e.g. Add `timeoutMs` for XCUITest driver as `@driver.install_app("/path/to/test.ipa", timeoutMs: 20000)`
30
+
31
+ ### Bug fixes
32
+ - (internal) Allow to access to `bridge` attribute in `driver` instance for appium_flutter_finder
33
+
13
34
  ## [5.0.2] - 2021-12-01
14
35
 
15
36
  ### Bug fixes
data/README.md CHANGED
@@ -43,7 +43,7 @@ $ appium --relaxed-security # To run all tests in local
43
43
  ```bash
44
44
  $ bundle install
45
45
  $ rake test:func:android # Andorid, uiautomator2
46
- $ AUTOMATION_NAME_DROID=espresso rake test:func:android # Andorid, uiautomator2
46
+ $ APPIUM_DRIVER=espresso rake test:func:android # Andorid, uiautomator2
47
47
  $ rake test:func:ios # iOS
48
48
  ```
49
49
 
@@ -16,7 +16,7 @@ Gem::Specification.new do |spec|
16
16
  spec.homepage = 'https://github.com/appium/ruby_lib_core/'
17
17
  spec.license = 'Apache-2.0'
18
18
  spec.files = `git ls-files -z`.split("\x0").reject do |f|
19
- f.match(%r{^(doc|test|spec|features)/})
19
+ f.match(%r{(^(doc|docs|test|spec|features|ci-jobs|.github|script)/|release_notes.md|.gitignore|azure-pipelines.yml|.rubocop.yml)})
20
20
  end
21
21
  spec.bindir = 'exe'
22
22
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
@@ -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.23.0'
33
+ spec.add_development_dependency 'rubocop', '1.27.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'
@@ -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
- # 'mouse' action is by default in the Ruby client. Appium server force the +mouse+ action to +touch+ once in
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
- # Used for default duration of each touch actions
172
- # Override from 250 milliseconds to 50 milliseconds
173
- action_builder = super
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
@@ -185,12 +189,6 @@ module Appium
185
189
  ::Selenium::WebDriver::Remote::Capabilities.json_create execute(:get_capabilities)
186
190
  end
187
191
 
188
- # Port from MJSONWP
189
- def send_keys_to_active_element(key)
190
- text = ::Selenium::WebDriver::Keys.encode(key).join
191
- execute :send_keys_to_active_element, {}, { value: text.chars }
192
- end
193
-
194
192
  # For Appium
195
193
  # override
196
194
  def page_source
@@ -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
- replace: nil,
634
- timeout: nil,
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
@@ -171,8 +171,6 @@ module Appium
171
171
  ime_deactivate: [:post, 'session/:session_id/ime/deactivate'],
172
172
  ime_activate_engine: [:post, 'session/:session_id/ime/activate'],
173
173
 
174
- send_keys_to_active_element: [:post, 'session/:session_id/keys'],
175
-
176
174
  ### Logs
177
175
  get_available_log_types: [:get, 'session/:session_id/log/types'],
178
176
  get_log: [:post, 'session/:session_id/log'],
@@ -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.0.2' unless defined? ::Appium::Core::VERSION
18
- DATE = '2021-12-01' unless defined? ::Appium::Core::DATE
17
+ VERSION = '5.1.1' unless defined? ::Appium::Core::VERSION
18
+ DATE = '2022-04-18' unless defined? ::Appium::Core::DATE
19
19
  end
20
20
  end
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.0.2
4
+ version: 5.1.1
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-12-02 00:00:00.000000000 Z
11
+ date: 2022-04-19 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: selenium-webdriver
@@ -114,14 +114,14 @@ dependencies:
114
114
  requirements:
115
115
  - - '='
116
116
  - !ruby/object:Gem::Version
117
- version: 1.23.0
117
+ version: 1.27.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.23.0
124
+ version: 1.27.0
125
125
  - !ruby/object:Gem::Dependency
126
126
  name: appium_thor
127
127
  requirement: !ruby/object:Gem::Requirement
@@ -171,14 +171,6 @@ executables: []
171
171
  extensions: []
172
172
  extra_rdoc_files: []
173
173
  files:
174
- - ".github/ISSUE_TEMPLATE/issue-report.md"
175
- - ".github/contributing.md"
176
- - ".github/dependabot.yml"
177
- - ".github/issue_template.md"
178
- - ".github/workflows/codeql-analysis.yml"
179
- - ".github/workflows/unittest.yml"
180
- - ".gitignore"
181
- - ".rubocop.yml"
182
174
  - CHANGELOG.md
183
175
  - Gemfile
184
176
  - LICENSE.txt
@@ -186,16 +178,8 @@ files:
186
178
  - Rakefile
187
179
  - Thorfile
188
180
  - appium_lib_core.gemspec
189
- - azure-pipelines.yml
190
181
  - bin/console
191
182
  - bin/setup
192
- - ci-jobs/functional/android_setup.yml
193
- - ci-jobs/functional/ios_setup.yml
194
- - ci-jobs/functional/publish_test_result.yml
195
- - ci-jobs/functional/run_appium.yml
196
- - ci-jobs/functional/start-emulator.sh
197
- - ci-jobs/functional_test.yml
198
- - docs/mobile_command.md
199
183
  - lib/appium_lib_core.rb
200
184
  - lib/appium_lib_core/android.rb
201
185
  - lib/appium_lib_core/android/device.rb
@@ -278,8 +262,6 @@ files:
278
262
  - lib/appium_lib_core/windows/bridge.rb
279
263
  - lib/appium_lib_core/windows/device.rb
280
264
  - lib/appium_lib_core/windows/device/screen.rb
281
- - release_notes.md
282
- - script/commands.rb
283
265
  homepage: https://github.com/appium/ruby_lib_core/
284
266
  licenses:
285
267
  - Apache-2.0
@@ -299,7 +281,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
299
281
  - !ruby/object:Gem::Version
300
282
  version: '0'
301
283
  requirements: []
302
- rubygems_version: 3.2.15
284
+ rubygems_version: 3.3.3
303
285
  signing_key:
304
286
  specification_version: 4
305
287
  summary: Minimal Ruby library for Appium.
@@ -1,29 +0,0 @@
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
@@ -1,26 +0,0 @@
1
- # Contributing
2
-
3
- For features or bug fixes, please submit a pull request. Ideally there would be a test as well. The remainder of this doc details how to run the tests.
4
-
5
- ## Tests
6
- ### Unit Tests
7
- - `rake test:unit` run on Travis automatically
8
-
9
- ### Functional Tests
10
- - iOS
11
- - `rake test:func:ios`
12
- - Android
13
- - `rake test:func:android`
14
-
15
- ## Merge
16
- - Squash and merge when we merge PRs to the master
17
-
18
- ## Publishing on rubygems
19
-
20
- 0. Ensure you have `~/.gem/credentials` If not run [the following command](http://guides.rubygems.org/make-your-own-gem/) (replace username with your rubygems user)
21
- > $ curl -u username https://rubygems.org/api/v1/api_key.yaml >
22
- ~/.gem/credentials; chmod 0600 ~/.gem/credentials
23
-
24
- 1. Bump the version number `thor bump`
25
- 2. Generate release note, build and publish gem with `thor release`
26
- 3. Update `changelog.md`
@@ -1,8 +0,0 @@
1
- version: 2
2
- updates:
3
- - package-ecosystem: bundler
4
- directory: "/"
5
- schedule:
6
- interval: daily
7
- time: "11:00"
8
- open-pull-requests-limit: 10
@@ -1,20 +0,0 @@
1
- ## This is a
2
- * [ ] Bug report
3
- * [ ] Question
4
- * [ ] Feature Request
5
-
6
- ## Summary
7
-
8
- ## Environment
9
- * `ruby_lib_core` version:
10
- * Mobile platform/version/device under test:
11
-
12
- ## Actual behaviour and steps to reproduce
13
-
14
- ## Expected behaviour
15
-
16
- ## Link to Appium/Ruby logs
17
-
18
- Create a [GIST](https://gist.github.com) which is a paste of your _full_ Appium logs, and link them here.
19
-
20
- ## Any additional comments
@@ -1,70 +0,0 @@
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
@@ -1,67 +0,0 @@
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.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 rake test:unit
33
- AUTOMATION_NAME_DROID=espresso bundle exec rake test:unit:android
34
- AUTOMATION_NAME_DROID=appium AUTOMATION_NAME_IOS=appium bundle exec rake test:unit
35
-
36
- test-win:
37
- strategy:
38
- fail-fast: false
39
- matrix:
40
- ruby: [2.6, 2.7, 3.0]
41
-
42
- runs-on: windows-latest
43
-
44
- env:
45
- UNIT_TEST: true
46
-
47
- steps:
48
- - uses: actions/checkout@v2
49
- - name: Set up Ruby
50
- uses: ruby/setup-ruby@v1
51
- with:
52
- ruby-version: ${{ matrix.ruby }}
53
- - name: Install dependencies
54
- run: |
55
- gem install ffi
56
- bundle install
57
- gem uninstall --force eventmachine && gem install eventmachine --platform ruby
58
- - name: Run tests
59
- run: |
60
- rake test:unit
61
-
62
- setx AUTOMATION_NAME_DROID espresso
63
- rake test:unit:android
64
-
65
- setx AUTOMATION_NAME_DROID appium
66
- setx AUTOMATION_NAME_IOS appium
67
- rake test:unit
data/.gitignore DELETED
@@ -1,18 +0,0 @@
1
- /.bundle/
2
- /.yardoc
3
- /Gemfile.lock
4
- /_yardoc/
5
- /coverage/
6
- /doc/
7
- /docs/
8
- /pkg/
9
- /spec/reports/
10
- /tmp/
11
-
12
- # for Mac
13
- .DS_Store
14
-
15
- # for IDE
16
- .idea
17
-
18
- .coverage