appium_lib_core 2.1.0 → 2.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
  SHA1:
3
- metadata.gz: 839d870bf455e8e1f835888ab0c780ed8a5acac7
4
- data.tar.gz: b5efadecea9570d191885893167d7a7c0cf4442e
3
+ metadata.gz: a02e68202c9a9657245c1fbcd79a7542159e387a
4
+ data.tar.gz: 30bbcd68a1f774ebce2622625991b019c904a1b9
5
5
  SHA512:
6
- metadata.gz: 56815ca165aebf552d3172b11cc669be750bf57ca391a33d78f2b4ca8676e1be73b025981b0c2a6c530a9be27d43d8294f988f49ed1ed592ecf7630537105a7d
7
- data.tar.gz: 8ce5dcdcbed3f802bac42274335d0b85d632df8efb9f2abad1dab7a779110c458e8e8ff3fcbacfa1581cd822a685d58c29fc2725ec111b224aa3e3256b019964
6
+ metadata.gz: ec058b2ed3e35946d41835e336859b0fa4d28db2eb08286cc85f5f0b0703928f41b2ddb8f6c417385125f6cd5973dd53d4d6c38e708afa1932621ad296051af9
7
+ data.tar.gz: 07aa605217f51dfaf94bc189cd953c2db7a1c41f67ad8cc239ee0b43b4e7c48adbfd38d0ffcd256f23e8fec9bca5ffc68e92537b8d0ff5ba514e4e41705ea10f
@@ -9,6 +9,25 @@ Read `release_notes.md` for commit level details.
9
9
 
10
10
  ### Deprecations
11
11
 
12
+ ## [2.1.1] - 2018-11-23
13
+ ### Enhancements
14
+ - `desired_capabilities:` is available in addition to `caps:` as a capability
15
+ ```ruby
16
+ # case 1
17
+ opts = { caps: { }, appium_lib: { } }
18
+ @driver = Appium::Core.for(opts).start_driver
19
+
20
+ # case 2
21
+ opts = { desired_capabilities: { }, appium_lib: { } }
22
+ @driver = Appium::Core.for(opts).start_driver
23
+ ```
24
+ - Update `start_recording_screen` for iOS, Appium 1.10.0
25
+ - Add `:video_scale` and update `:video_type`
26
+
27
+ ### Bug fixes
28
+
29
+ ### Deprecations
30
+
12
31
  ## [2.1.0] - 2018-11-14
13
32
  ### Enhancements
14
33
  - Support below style _1_, has _url_ parameter, in addition to style _2_
@@ -19,7 +38,7 @@ Read `release_notes.md` for commit level details.
19
38
  # 2
20
39
  Appium::Core.for caps: {...}, appium_lib: {...}
21
40
  ```
22
- - Add `videoFps` param for screen recording in iOS(XCUITest) to sync with Appium 1.9.2
41
+ - Add `:video_fps` param for screen recording in iOS(XCUITest) to sync with Appium 1.10.0
23
42
 
24
43
  ### Bug fixes
25
44
 
data/README.md CHANGED
@@ -5,6 +5,11 @@
5
5
 
6
6
  [![Build Status](https://travis-ci.org/appium/ruby_lib_core.svg?branch=master)](https://travis-ci.org/appium/ruby_lib_core)
7
7
 
8
+
9
+ This library is a Ruby client for Appium. The gem is available via [appium_lib_core](https://rubygems.org/gems/appium_lib_core).
10
+
11
+ This library wraps [selenium-webdriver](https://github.com/SeleniumHQ/selenium/wiki/Ruby-Bindings) and adapts WebDriver APIs for Appium. [ruby_lib](https://github.com/appium/ruby_lib) calls all of Appium/Selenium related APIs via this core library. It works instance based driver.
12
+
8
13
  # Documentation
9
14
 
10
15
  - http://www.rubydoc.info/github/appium/ruby_lib_core
@@ -67,7 +72,7 @@ require 'rubygems'
67
72
  require 'appium_lib_core'
68
73
 
69
74
  opts = {
70
- caps: {
75
+ desired_capabilities: { # or { caps: {....} }
71
76
  platformName: :ios,
72
77
  platformVersion: '11.0',
73
78
  deviceName: 'iPhone Simulator',
data/Rakefile CHANGED
@@ -66,12 +66,11 @@ namespace :android do
66
66
  `adb uninstall io.appium.espressoserver.test`
67
67
  end
68
68
 
69
-
70
69
  desc('Generate and launch android emulators')
71
70
  task :gen_device do |_t, _args|
72
- SWARMER_VERSION = '0.2.4'
73
- CPU_ARCHITECTURE = 'x86'
74
- IMAGE = 'google_apis'
71
+ SWARMER_VERSION = '0.2.4'.freeze
72
+ CPU_ARCHITECTURE = 'x86'.freeze
73
+ IMAGE = 'google_apis'.freeze
75
74
  ANDROID_API = 27
76
75
  system %W(
77
76
  curl
@@ -89,13 +88,13 @@ namespace :android do
89
88
  ).join(' ')
90
89
  end
91
90
 
92
- system %W(java -jar /tmp/swarmer.jar start).concat(cmds).flatten.join(' ')
91
+ system %w(java -jar /tmp/swarmer.jar start).concat(cmds).flatten.join(' ')
93
92
  end
94
93
  end
95
94
 
96
95
  desc('Generate yardoc')
97
96
  YARD::Rake::YardocTask.new do |t|
98
- t.files = %w(lib/**/*.rb)
97
+ t.files = %w(lib/**/*.rb)
99
98
  end
100
99
 
101
100
  desc('Execute RuboCop static code analysis')
@@ -105,7 +104,7 @@ RuboCop::RakeTask.new(:rubocop) do |t|
105
104
  t.fail_on_error = true
106
105
  end
107
106
 
108
- desc("print commands which Ruby client has not implemented them yet.")
107
+ desc('print commands which Ruby client has not implemented them yet')
109
108
  namespace :commands do
110
109
  require './script/commands'
111
110
 
@@ -7,7 +7,7 @@ module Appium
7
7
  module Device
8
8
  extend Forwardable
9
9
 
10
- # @since 1.6.0
10
+ # @since Appium 1.6.0
11
11
  # @!method battery_info
12
12
  #
13
13
  # Get battery information.
@@ -583,6 +583,12 @@ module Appium
583
583
  #
584
584
  # @example
585
585
  #
586
+ # # iOS
587
+ # @driver.start_recording_screen video_type: 'libx264'
588
+ # @driver.stop_and_save_recording_screen 'example.mp4' # Video type `libx264` can be play as `.mp4` video
589
+ #
590
+ # # Android
591
+ # @driver.start_recording_screen
586
592
  # @driver.stop_and_save_recording_screen 'example.mp4'
587
593
  #
588
594
  def stop_and_save_recording_screen(file_path)
@@ -807,8 +813,6 @@ module Appium
807
813
  @bridge.session_capabilities
808
814
  end
809
815
 
810
- DEFAULT_MATCH_THRESHOLD = 0.5
811
-
812
816
  # Image Comparison
813
817
  def match_images_features(first_image:,
814
818
  second_image:,
@@ -78,7 +78,7 @@ module Appium
78
78
  end
79
79
  end
80
80
 
81
- # @since 1.3.4
81
+ # @since Appium 1.3.4
82
82
  # @!method save_viewport_screenshot
83
83
  # Save screenshot except for status bar while `@driver.save_screenshot` save entire screen.
84
84
  #
@@ -7,12 +7,12 @@ module Appium
7
7
  {
8
8
  # ::Appium::Core::Base::Commands::OSS has the following commands and Appium also use them.
9
9
  # Delegated to ::Appium::Core::Base::Commands::OSS commands
10
- status: [:get, 'status'.freeze],
11
- is_element_displayed: [:get, 'session/:session_id/element/:id/displayed'.freeze],
10
+ status: [:get, 'status'.freeze], # https://w3c.github.io/webdriver/#dfn-status
11
+ is_element_displayed: [:get, 'session/:session_id/element/:id/displayed'.freeze], # hint: https://w3c.github.io/webdriver/#element-displayedness
12
12
 
13
- get_timeouts: [:get, 'session/:session_id/timeouts'.freeze],
13
+ get_timeouts: [:get, 'session/:session_id/timeouts'.freeze], # https://w3c.github.io/webdriver/#get-timeouts
14
14
 
15
- ## Add OSS commands to W3C commands. We can remove them if we would like to remove them from W3C module.
15
+ # Add OSS commands to W3C commands. We can remove them if we would like to remove them from W3C module.
16
16
  ### Session capability
17
17
  get_capabilities: [:get, 'session/:session_id'.freeze],
18
18
 
@@ -84,8 +84,10 @@ module Appium
84
84
  #
85
85
  # # format 1
86
86
  # @core = Appium::Core.for caps: {...}, appium_lib: {...}
87
- # # format 2
88
- # @core = Appium::Core.for url: "http://127.0.0.1:8080/wd/hub", caps: {...}, appium_lib: {...}
87
+ # # format 2. `desired_capabilities:` is also available instead of `caps:`. Either is fine.
88
+ # @core = Appium::Core.for url: "http://127.0.0.1:8080/wd/hub", desired_capabilities: {...}, appium_lib: {...}
89
+ # # format 3. `appium_lib: {...}` can be blank
90
+ # @core = Appium::Core.for url: "http://127.0.0.1:8080/wd/hub", desired_capabilities: {...}
89
91
  #
90
92
  #
91
93
  # require 'rubygems'
@@ -113,8 +115,9 @@ module Appium
113
115
  # @core.start_driver # Connect to `http://127.0.0.1:8080/wd/hub` because of `port: 8080`
114
116
  #
115
117
  # # Start iOS driver with .zip file over HTTP
118
+ # # `desired_capabilities:` is also available instead of `caps:`. Either is fine.
116
119
  # opts = {
117
- # caps: {
120
+ # desired_capabilities: {
118
121
  # platformName: :ios,
119
122
  # platformVersion: '11.0',
120
123
  # deviceName: 'iPhone Simulator',
@@ -136,7 +139,7 @@ module Appium
136
139
  # # Start iOS driver as another format. `url` is available like below
137
140
  # opts = {
138
141
  # url: "http://custom-host:8080/wd/hub.com",
139
- # caps: {
142
+ # desired_capabilities: {
140
143
  # platformName: :ios,
141
144
  # platformVersion: '11.0',
142
145
  # deviceName: 'iPhone Simulator',
@@ -392,7 +395,8 @@ module Appium
392
395
  def validate_keys(opts)
393
396
  flatten_ops = flatten_hash_keys(opts)
394
397
 
395
- raise Error::NoCapabilityError unless opts.member?(:caps)
398
+ raise Error::NoCapabilityError unless opts.member?(:caps) || opts.member?(:desired_capabilities)
399
+
396
400
  if !opts.member?(:appium_lib) && flatten_ops.member?(:appium_lib)
397
401
  raise Error::CapabilityStructureError, 'Please check the value of appium_lib in the capability'
398
402
  end
@@ -412,7 +416,7 @@ module Appium
412
416
 
413
417
  # @private
414
418
  def get_caps(opts)
415
- Core::Base::Capabilities.create_capabilities(opts[:caps] || {})
419
+ Core::Base::Capabilities.create_capabilities(opts[:caps] || opts[:desired_capabilities] || {})
416
420
  end
417
421
 
418
422
  # @private
@@ -36,7 +36,13 @@ module Appium
36
36
  # @driver.background_app(-1) #=> the app never come back. https://github.com/appium/appium/issues/7741
37
37
  #
38
38
 
39
- # @!method start_recording_screen(remote_path: nil, user: nil, pass: nil, method: nil, force_restart: nil, video_type: 'mp4', time_limit: '180', video_quality: 'medium')
39
+ # @since Appium 1.9.1
40
+ # @!method start_recording_screen(remote_path: nil, user: nil, pass: nil, method: nil, force_restart: nil, video_type: 'mjpeg', time_limit: '180', video_quality: 'medium', video_scale: '320:240')
41
+ #
42
+ # Record the display of devices running iOS Simulator since Xcode 9 or real devices since iOS 11
43
+ # (ffmpeg utility is required: 'brew install ffmpeg').
44
+ # We would recommend to play the video by VLC or Mplayer if you can not play the video with other video players.
45
+ #
40
46
  # @param [String] remote_path: The path to the remote location, where the resulting video should be uploaded.
41
47
  # The following protocols are supported: http/https, ftp.
42
48
  # Null or empty string value (the default setting) means the content of resulting
@@ -51,25 +57,28 @@ module Appium
51
57
  # @param [Boolean] force_restart: Whether to try to catch and upload/return the currently running screen recording
52
58
  # (`false`, the default setting on server) or ignore the result of it
53
59
  # and start a new recording immediately (`true`).
54
- # @param [String] video_type: The format of the screen capture to be recorded.
55
- # Available formats: "h264", "mp4" or "fmp4". Default is "mp4".
56
- # Only works for Simulator.
60
+ # @param [String] video_type: The video codec type used for encoding of the be recorded screen capture.
61
+ # Execute `ffmpeg -codecs` in the terminal to see the list of supported video codecs.
62
+ # 'mjpeg' by default.
57
63
  # @param [String] time_limit: Recording time. 180 seconds is by default.
58
64
  # @param [String] video_quality: The video encoding quality (low, medium, high, photo - defaults to medium).
59
- # Only works for real devices.
60
65
  # @param [String] video_fps: The Frames Per Second rate of the recorded video. Change this value if the resulting video
61
- # is too slow or too fast. Defaults to 10.
66
+ # is too slow or too fast. Defaults to 10. This can decrease the resulting file size.
67
+ # @param [String] video_scale: The scaling value to apply. Read https://trac.ffmpeg.org/wiki/Scaling for possible values.
68
+ # No scale is applied by default.
62
69
  #
63
70
  # @example
64
71
  #
65
72
  # @driver.start_recording_screen
66
- # @driver.start_recording_screen video_type: 'h264', time_limit: '260'
73
+ # @driver.start_recording_screen video_type: 'mjpeg', time_limit: '260'
74
+ # @driver.start_recording_screen video_type: 'libx264', time_limit: '260' # Can get `.mp4` video
67
75
  #
68
76
 
69
- # @since 1.3.4
77
+ # @since Appium 1.3.4
70
78
  # @!method start_performance_record(timeout: 300000, profile_name: 'Activity Monitor')
71
79
  #
72
- # This is a blocking application.
80
+ # This is a blocking application. Read https://help.apple.com/instruments/mac/current/ to understand the profiler.
81
+ #
73
82
  # @param [Integer|String] timeout: The maximum count of milliseconds to record the profiling information.
74
83
  # @param [String] profile_name: The name of existing performance profile to apply.
75
84
  # Execute `instruments -s` to show the list of available profiles.
@@ -89,7 +98,7 @@ module Appium
89
98
  # @driver.start_performance_record(timeout: 300000, profile_name: 'Activity Monitor')
90
99
  #
91
100
 
92
- # @since 1.3.4
101
+ # @since Appium 1.3.4
93
102
  # @!method get_performance_record(save_file_path: './performance', profile_name: 'Activity Monitor', remote_path: nil, user: nil, pass: nil, method: 'PUT')
94
103
  #
95
104
  # This is a blocking application.
@@ -116,7 +125,7 @@ module Appium
116
125
  # @driver.get_performance_record
117
126
  # @driver.get_performance_record(save_file_path: './performance', profile_name: 'Activity Monitor')
118
127
 
119
- # @since 1.6.0
128
+ # @since Appium 1.6.0
120
129
  # @!method battery_info
121
130
  #
122
131
  # Get battery information.
@@ -8,7 +8,8 @@ module Appium
8
8
  ::Appium::Core::Device.add_endpoint_method(:start_recording_screen) do
9
9
  # rubocop:disable Metrics/ParameterLists
10
10
  def start_recording_screen(remote_path: nil, user: nil, pass: nil, method: nil, force_restart: nil,
11
- video_type: 'mp4', time_limit: '180', video_quality: 'medium', video_fps: nil)
11
+ video_type: 'mjpeg', time_limit: '180', video_quality: 'medium',
12
+ video_fps: nil, video_scale: nil)
12
13
  option = ::Appium::Core::Base::Device::ScreenRecord.new(
13
14
  remote_path: remote_path, user: user, pass: pass, method: method, force_restart: force_restart
14
15
  ).upload_option
@@ -16,7 +17,9 @@ module Appium
16
17
  option[:videoType] = video_type
17
18
  option[:timeLimit] = time_limit
18
19
  option[:videoQuality] = video_quality
20
+
19
21
  option[:videoFps] = video_fps unless video_fps.nil?
22
+ option[:videoScale] = video_scale unless video_scale.nil?
20
23
 
21
24
  execute(:start_recording_screen, {}, { options: option })
22
25
  end
@@ -1,6 +1,6 @@
1
1
  module Appium
2
2
  module Core
3
- VERSION = '2.1.0'.freeze unless defined? ::Appium::Core::VERSION
4
- DATE = '2018-11-14'.freeze unless defined? ::Appium::Core::DATE
3
+ VERSION = '2.1.1'.freeze unless defined? ::Appium::Core::VERSION
4
+ DATE = '2018-11-23'.freeze unless defined? ::Appium::Core::DATE
5
5
  end
6
6
  end
@@ -1,3 +1,21 @@
1
+ #### v2.1.1 2018-11-23
2
+
3
+ - [56e3904](https://github.com/appium/ruby_lib_core/commit/56e39043a9cd65205dd75632863d5911fac80d96) Release 2.1.1
4
+ - [64bea89](https://github.com/appium/ruby_lib_core/commit/64bea89301606d984de1a6d0b926ebe3c4f81e99) update screenshot test for ios (#166)
5
+ - [4790685](https://github.com/appium/ruby_lib_core/commit/4790685b6ee8b3a34539da5ed2612b3171ecb2cf) append https://help.apple.com/instruments/mac/current/#
6
+ - [0600769](https://github.com/appium/ruby_lib_core/commit/0600769e945349c9bb598a3a4af4381c53313699) update test_start_performance_record_and_stop
7
+ - [69080b1](https://github.com/appium/ruby_lib_core/commit/69080b16e1c02a729b8edf56efabf4dde9e76e23) Add screenshot quality tests (#165)
8
+ - [e1d6b11](https://github.com/appium/ruby_lib_core/commit/e1d6b11da52b2472240307b063f171c23b98c78c) Add tests for mjpeg and recording screen (#164)
9
+ - [8042627](https://github.com/appium/ruby_lib_core/commit/804262784ba9e444a6c28952d99d5c9dfdf6e9a1) tweak rubocop in Rakefile
10
+ - [eff797d](https://github.com/appium/ruby_lib_core/commit/eff797df68b318b3895d2ee5249540070f3365ba) make desired_capabilities name available in the capability (#163)
11
+ - [de80883](https://github.com/appium/ruby_lib_core/commit/de808835203efc9e52a9efbc3121a10a1cb4c3d5) remove unused const
12
+ - [2a398c5](https://github.com/appium/ruby_lib_core/commit/2a398c54d680851f8b2dc3b6bea8fe3a1e052fdb) remove pry
13
+ - [d07be96](https://github.com/appium/ruby_lib_core/commit/d07be96e1c25a6262703d778a4246c989fd03de6) add a --chromedriver_version in _web
14
+ - [fd46ae8](https://github.com/appium/ruby_lib_core/commit/fd46ae870efd21467ff2c6228fc2012d71b2e307) add a description for this
15
+ - [6e4dbe7](https://github.com/appium/ruby_lib_core/commit/6e4dbe72adb1b788daa639853fa1b8cbfb304a91) add one note for start_recording_screen
16
+ - [6b74a67](https://github.com/appium/ruby_lib_core/commit/6b74a67b9cbadadaf8e721866f5a4a539ea20b31) remove unneeded line in doc
17
+
18
+
1
19
  #### v2.1.0 2018-11-14
2
20
 
3
21
  - [6dafbd6](https://github.com/appium/ruby_lib_core/commit/6dafbd6cbc270f94a5e8b2ea5a779b644fdc3cdf) Release 2.1.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: 2.1.0
4
+ version: 2.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: 2018-11-14 00:00:00.000000000 Z
11
+ date: 2018-11-22 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: selenium-webdriver