appium_lib_core 5.0.0 → 6.3.0

Sign up to get free protection for your applications and to get access to all the features.
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"