appium_lib_core 5.0.2 → 5.1.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 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