appium_lib_core 5.0.0 → 6.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (42) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +140 -0
  3. data/README.md +55 -10
  4. data/appium_lib_core.gemspec +5 -5
  5. data/lib/appium_lib_core/common/base/bridge.rb +54 -40
  6. data/lib/appium_lib_core/common/base/capabilities.rb +8 -16
  7. data/lib/appium_lib_core/common/base/driver.rb +68 -40
  8. data/lib/appium_lib_core/common/base/has_location.rb +10 -10
  9. data/lib/appium_lib_core/common/base/http_default.rb +1 -1
  10. data/lib/appium_lib_core/common/base/rotable.rb +11 -3
  11. data/lib/appium_lib_core/common/base/search_context.rb +1 -2
  12. data/lib/appium_lib_core/common/command.rb +4 -2
  13. data/lib/appium_lib_core/common/device/app_management.rb +8 -14
  14. data/lib/appium_lib_core/common/device/value.rb +1 -3
  15. data/lib/appium_lib_core/common/error.rb +0 -4
  16. data/lib/appium_lib_core/driver.rb +170 -62
  17. data/lib/appium_lib_core/support/event_firing_bridge.rb +57 -0
  18. data/lib/appium_lib_core/version.rb +2 -2
  19. data/lib/appium_lib_core/{ios/uiautomation/bridge.rb → windows/device/app_management.rb} +20 -12
  20. data/lib/appium_lib_core/windows/device.rb +2 -0
  21. data/lib/appium_lib_core.rb +19 -5
  22. metadata +21 -34
  23. data/.github/ISSUE_TEMPLATE/issue-report.md +0 -29
  24. data/.github/contributing.md +0 -26
  25. data/.github/dependabot.yml +0 -8
  26. data/.github/issue_template.md +0 -20
  27. data/.github/workflows/unittest.yml +0 -67
  28. data/.gitignore +0 -18
  29. data/.rubocop.yml +0 -146
  30. data/azure-pipelines.yml +0 -15
  31. data/ci-jobs/functional/android_setup.yml +0 -3
  32. data/ci-jobs/functional/ios_setup.yml +0 -7
  33. data/ci-jobs/functional/publish_test_result.yml +0 -18
  34. data/ci-jobs/functional/run_appium.yml +0 -25
  35. data/ci-jobs/functional/start-emulator.sh +0 -26
  36. data/ci-jobs/functional_test.yml +0 -298
  37. data/docs/mobile_command.md +0 -34
  38. data/lib/appium_lib_core/ios/uiautomation/device.rb +0 -44
  39. data/lib/appium_lib_core/ios/uiautomation/patch.rb +0 -34
  40. data/lib/appium_lib_core/ios.rb +0 -20
  41. data/release_notes.md +0 -932
  42. data/script/commands.rb +0 -166
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.0
4
+ version: 6.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Kazuaki MATSUO
8
- autorequire:
8
+ autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2021-11-05 00:00:00.000000000 Z
11
+ date: 2023-03-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: selenium-webdriver
@@ -16,14 +16,20 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: 4.0.0
19
+ version: '4.2'
20
+ - - "<"
21
+ - !ruby/object:Gem::Version
22
+ version: '4.9'
20
23
  type: :runtime
21
24
  prerelease: false
22
25
  version_requirements: !ruby/object:Gem::Requirement
23
26
  requirements:
24
27
  - - "~>"
25
28
  - !ruby/object:Gem::Version
26
- version: 4.0.0
29
+ version: '4.2'
30
+ - - "<"
31
+ - !ruby/object:Gem::Version
32
+ version: '4.9'
27
33
  - !ruby/object:Gem::Dependency
28
34
  name: faye-websocket
29
35
  requirement: !ruby/object:Gem::Requirement
@@ -100,28 +106,28 @@ dependencies:
100
106
  requirements:
101
107
  - - "~>"
102
108
  - !ruby/object:Gem::Version
103
- version: 3.14.0
109
+ version: 3.18.1
104
110
  type: :development
105
111
  prerelease: false
106
112
  version_requirements: !ruby/object:Gem::Requirement
107
113
  requirements:
108
114
  - - "~>"
109
115
  - !ruby/object:Gem::Version
110
- version: 3.14.0
116
+ version: 3.18.1
111
117
  - !ruby/object:Gem::Dependency
112
118
  name: rubocop
113
119
  requirement: !ruby/object:Gem::Requirement
114
120
  requirements:
115
121
  - - '='
116
122
  - !ruby/object:Gem::Version
117
- version: 1.22.3
123
+ version: 1.47.0
118
124
  type: :development
119
125
  prerelease: false
120
126
  version_requirements: !ruby/object:Gem::Requirement
121
127
  requirements:
122
128
  - - '='
123
129
  - !ruby/object:Gem::Version
124
- version: 1.22.3
130
+ version: 1.47.0
125
131
  - !ruby/object:Gem::Dependency
126
132
  name: appium_thor
127
133
  requirement: !ruby/object:Gem::Requirement
@@ -171,13 +177,6 @@ executables: []
171
177
  extensions: []
172
178
  extra_rdoc_files: []
173
179
  files:
174
- - ".github/ISSUE_TEMPLATE/issue-report.md"
175
- - ".github/contributing.md"
176
- - ".github/dependabot.yml"
177
- - ".github/issue_template.md"
178
- - ".github/workflows/unittest.yml"
179
- - ".gitignore"
180
- - ".rubocop.yml"
181
180
  - CHANGELOG.md
182
181
  - Gemfile
183
182
  - LICENSE.txt
@@ -185,16 +184,8 @@ files:
185
184
  - Rakefile
186
185
  - Thorfile
187
186
  - appium_lib_core.gemspec
188
- - azure-pipelines.yml
189
187
  - bin/console
190
188
  - bin/setup
191
- - ci-jobs/functional/android_setup.yml
192
- - ci-jobs/functional/ios_setup.yml
193
- - ci-jobs/functional/publish_test_result.yml
194
- - ci-jobs/functional/run_appium.yml
195
- - ci-jobs/functional/start-emulator.sh
196
- - ci-jobs/functional_test.yml
197
- - docs/mobile_command.md
198
189
  - lib/appium_lib_core.rb
199
190
  - lib/appium_lib_core/android.rb
200
191
  - lib/appium_lib_core/android/device.rb
@@ -256,12 +247,8 @@ files:
256
247
  - lib/appium_lib_core/device.rb
257
248
  - lib/appium_lib_core/driver.rb
258
249
  - lib/appium_lib_core/element.rb
259
- - lib/appium_lib_core/ios.rb
260
250
  - lib/appium_lib_core/ios/device.rb
261
251
  - lib/appium_lib_core/ios/device/clipboard.rb
262
- - lib/appium_lib_core/ios/uiautomation/bridge.rb
263
- - lib/appium_lib_core/ios/uiautomation/device.rb
264
- - lib/appium_lib_core/ios/uiautomation/patch.rb
265
252
  - lib/appium_lib_core/ios/xcuitest/bridge.rb
266
253
  - lib/appium_lib_core/ios/xcuitest/device.rb
267
254
  - lib/appium_lib_core/ios/xcuitest/device/battery.rb
@@ -272,18 +259,18 @@ files:
272
259
  - lib/appium_lib_core/mac2/bridge.rb
273
260
  - lib/appium_lib_core/mac2/device.rb
274
261
  - lib/appium_lib_core/mac2/device/screen.rb
262
+ - lib/appium_lib_core/support/event_firing_bridge.rb
275
263
  - lib/appium_lib_core/version.rb
276
264
  - lib/appium_lib_core/windows.rb
277
265
  - lib/appium_lib_core/windows/bridge.rb
278
266
  - lib/appium_lib_core/windows/device.rb
267
+ - lib/appium_lib_core/windows/device/app_management.rb
279
268
  - lib/appium_lib_core/windows/device/screen.rb
280
- - release_notes.md
281
- - script/commands.rb
282
269
  homepage: https://github.com/appium/ruby_lib_core/
283
270
  licenses:
284
271
  - Apache-2.0
285
272
  metadata: {}
286
- post_install_message:
273
+ post_install_message:
287
274
  rdoc_options: []
288
275
  require_paths:
289
276
  - lib
@@ -291,15 +278,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
291
278
  requirements:
292
279
  - - ">="
293
280
  - !ruby/object:Gem::Version
294
- version: '2.6'
281
+ version: '2.7'
295
282
  required_rubygems_version: !ruby/object:Gem::Requirement
296
283
  requirements:
297
284
  - - ">="
298
285
  - !ruby/object:Gem::Version
299
286
  version: '0'
300
287
  requirements: []
301
- rubygems_version: 3.2.15
302
- signing_key:
288
+ rubygems_version: 3.2.14
289
+ signing_key:
303
290
  specification_version: 4
304
291
  summary: Minimal Ruby library for Appium.
305
292
  test_files: []
@@ -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,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
data/.rubocop.yml DELETED
@@ -1,146 +0,0 @@
1
- AllCops:
2
- TargetRubyVersion: 2.6
3
- Layout/LineLength:
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
13
- Metrics/MethodLength:
14
- Enabled: false
15
- Metrics/ModuleLength:
16
- Enabled: false
17
- Metrics/ClassLength:
18
- Enabled: false
19
- Metrics/AbcSize:
20
- Enabled: false
21
- Metrics/CyclomaticComplexity:
22
- Max: 14
23
- Metrics/PerceivedComplexity:
24
- Max: 14
25
- Metrics/ParameterLists:
26
- Enabled: false
27
- Lint/NestedMethodDefinition:
28
- Enabled: false
29
- Style/ZeroLengthPredicate:
30
- Enabled: false
31
- Style/Documentation:
32
- Enabled: false
33
- Style/CommentedKeyword:
34
- Enabled: false
35
- Style/PercentLiteralDelimiters:
36
- Enabled: false
37
- Style/SymbolArray:
38
- Enabled: false
39
- Style/UnpackFirst:
40
- Enabled: false
41
- Naming/AccessorMethodName:
42
- Enabled: false
43
- Naming/MemoizedInstanceVariableName:
44
- Enabled: true
45
- Exclude:
46
- - test/**/*
47
- Naming/RescuedExceptionsVariableName:
48
- Enabled: false
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:
58
- Enabled: false
59
- Gemspec/DateAssignment:
60
- Enabled: true
61
- Layout/LineEndStringConcatenationIndentation:
62
- Enabled: true
63
- Layout/SpaceBeforeBrackets:
64
- Enabled: true
65
- Lint/AmbiguousAssignment:
66
- Enabled: true
67
- Lint/AmbiguousOperatorPrecedence:
68
- Enabled: false
69
- Lint/AmbiguousRange:
70
- Enabled: true
71
- Lint/DeprecatedConstants:
72
- Enabled: true
73
- Lint/DuplicateBranch:
74
- Enabled: true
75
- Lint/DuplicateRegexpCharacterClassElement:
76
- Enabled: true
77
- Lint/EmptyBlock:
78
- Enabled: true
79
- Lint/EmptyClass:
80
- Enabled: true
81
- Lint/EmptyInPattern:
82
- Enabled: true
83
- Lint/IncompatibleIoSelectWithFiberScheduler:
84
- Enabled: true
85
- Lint/LambdaWithoutLiteralBlock:
86
- Enabled: true
87
- Lint/NoReturnInBeginEndBlocks:
88
- Enabled: true
89
- Lint/NumberedParameterAssignment:
90
- Enabled: true
91
- Lint/OrAssignmentToConstant:
92
- Enabled: true
93
- Lint/RedundantDirGlobSort:
94
- Enabled: true
95
- Lint/RequireRelativeSelfPath:
96
- Enabled: true
97
- Lint/SymbolConversion:
98
- Enabled: true
99
- Lint/ToEnumArguments:
100
- Enabled: true
101
- Lint/TripleQuotes:
102
- Enabled: true
103
- Lint/UnexpectedBlockArity:
104
- Enabled: true
105
- Lint/UnmodifiedReduceAccumulator:
106
- Enabled: true
107
- Security/IoMethods:
108
- Enabled: true
109
- Style/ArgumentsForwarding:
110
- Enabled: true
111
- Style/CollectionCompact:
112
- Enabled: true
113
- Style/DocumentDynamicEvalDefinition:
114
- Enabled: true
115
- Style/EndlessMethod:
116
- Enabled: true
117
- Style/HashConversion:
118
- Enabled: true
119
- Style/HashExcept:
120
- Enabled: true
121
- Style/IfWithBooleanLiteralBranches:
122
- Enabled: true
123
- Style/InPatternThen:
124
- Enabled: true
125
- Style/MultilineInPatternThen:
126
- Enabled: true
127
- Style/NegatedIfElseCondition:
128
- Enabled: true
129
- Style/NilLambda:
130
- Enabled: true
131
- Style/NumberedParameters:
132
- Enabled: true
133
- Style/NumberedParametersLimit:
134
- Enabled: true
135
- Style/QuotedSymbols:
136
- Enabled: true
137
- Style/RedundantArgument:
138
- Enabled: true
139
- Style/RedundantSelfAssignmentBranch:
140
- Enabled: true
141
- Style/SelectByRegexp:
142
- Enabled: true
143
- Style/StringChars:
144
- Enabled: true
145
- Style/SwapValues:
146
- Enabled: true
data/azure-pipelines.yml DELETED
@@ -1,15 +0,0 @@
1
- # Ruby
2
- # Package your Ruby project.
3
- # Add steps that install rails, analyze code, save build artifacts, deploy, and more:
4
- # https://docs.microsoft.com/azure/devops/pipelines/languages/ruby
5
- jobs:
6
- - template: ./ci-jobs/functional_test.yml
7
-
8
- # Runs tests nightly to make sure they works against appium@beta
9
- schedules:
10
- - cron: "0 0 * * *"
11
- displayName: Daily Nightly build (UTC)
12
- branches:
13
- include:
14
- - master
15
- always: true
@@ -1,3 +0,0 @@
1
- steps:
2
- - script: bash ci-jobs/functional/start-emulator.sh
3
- displayName: Create and run Emulator
@@ -1,7 +0,0 @@
1
- steps:
2
- - script: sudo xcode-select -s /Applications/Xcode_${{ parameters.xcodeVersion }}.app/Contents/Developer
3
- displayName: Xcode Select ${{ parameters.xcodeVersion }}
4
- - script: xcrun simctl list
5
- displayName: List Installed Simulators
6
- - script: defaults write com.apple.iphonesimulator PasteboardAutomaticSync -bool false
7
- displayName: Disable pasteboard automatic sync
@@ -1,18 +0,0 @@
1
- steps:
2
- - task: PublishTestResults@2
3
- condition: always()
4
- inputs:
5
- testResultsFiles: 'test/reports/TEST-AppiumLibCoreTest*.xml'
6
- testRunTitle: '$(Agent.JobName)'
7
- - task: ArchiveFiles@2
8
- condition: always()
9
- inputs:
10
- rootFolderOrFile: 'test/report'
11
- archiveType: 'zip'
12
- archiveFile: '$(Build.ArtifactStagingDirectory)/$(Build.BuildId).zip'
13
- replaceExistingArchive: true
14
- - task: PublishBuildArtifacts@1
15
- condition: always()
16
- inputs:
17
- pathtoPublish: '$(Build.ArtifactStagingDirectory)'
18
- artifactName: '$(Agent.JobName)'
@@ -1,25 +0,0 @@
1
- steps:
2
- - task: NodeTool@0
3
- inputs:
4
- versionSpec: 12.x
5
- displayName: Install Node 12.x
6
- - script: npm install -g appium@${APPIUM_VERSION}
7
- displayName: Install appium beta
8
- - script: npm install -g mjpeg-consumer
9
- displayName: Install MJPEG Consumer
10
- - script: npm list --depth 2 -g || echo 'ok'
11
- displayName: Installed node dependencies
12
- - task: UseRubyVersion@0
13
- inputs:
14
- versionSpec: '3.0'
15
- - script: |
16
- mkdir -p test/report
17
- nohup appium --relaxed-security --log-timestamp --log-no-colors > test/report/appium.out 2>&1 &
18
- displayName: Run Appium in background
19
- env:
20
- JAVA_HOME: $(JAVA_HOME_11_X64)
21
- PATH: $(JAVA_HOME_11_X64)/bin:$(PATH)
22
- - script: |
23
- gem install bundler;
24
- bundle install --retry=3 --jobs=4 --path vendor/bundle;
25
- displayName: Install Gems
@@ -1,26 +0,0 @@
1
- #!/usr/bin/env bash
2
-
3
- # This script was copy-pasted from https://docs.microsoft.com/en-us/azure/devops/pipelines/languages/android?view=azure-devops#test-on-the-android-emulator
4
- # with some changes
5
-
6
- # Install AVD files
7
- declare -r emulator="system-images;android-${ANDROID_SDK_VERSION};google_apis;x86"
8
- echo "y" | ${ANDROID_HOME}/tools/bin/sdkmanager --install "$emulator"
9
-
10
- # Show a list of emulators
11
- ${ANDROID_HOME}/tools/bin/avdmanager list
12
-
13
- # Create emulator
14
- echo "no" | ${ANDROID_HOME}/tools/bin/avdmanager create avd -d "Nexus 5X" -n testemulator -k "${emulator}" --force
15
-
16
- echo ${ANDROID_HOME}/emulator/emulator -list-avds
17
-
18
- echo "Starting emulator"
19
-
20
- # Start emulator in background
21
- nohup ${ANDROID_HOME}/emulator/emulator -avd testemulator -accel auto -no-boot-anim -gpu auto -no-snapshot > /dev/null 2>&1 &
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
-
24
- ${ANDROID_HOME}/platform-tools/adb devices
25
-
26
- echo "Emulator started"