appium_lib_core 3.5.0 → 3.6.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.rubocop.yml +2 -0
- data/CHANGELOG.md +10 -0
- data/Rakefile +7 -0
- data/appium_lib_core.gemspec +3 -3
- data/ci-jobs/functional_test.yml +2 -2
- data/lib/appium_lib_core/driver.rb +8 -7
- data/lib/appium_lib_core/version.rb +2 -2
- data/lib/appium_lib_core/windows.rb +16 -0
- data/lib/appium_lib_core/windows/bridge.rb +25 -0
- data/lib/appium_lib_core/windows/device.rb +98 -0
- data/lib/appium_lib_core/windows/device/screen.rb +48 -0
- data/release_notes.md +11 -0
- metadata +12 -8
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f19bd603ecc28d38a5ea210d846167130279bd12e0e59b8355af66877921f212
|
4
|
+
data.tar.gz: 509fa209cc410bcf9160e70905ad3b4ea439fda7f280128e210b20b1dca9b9b6
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d955248f477098d7127d61a9319195bf7a5ac361780bce4f475621d160f067789de1ca5280b4330285623e893f04542cc51c767fd12655579322ed6354b0dfa3
|
7
|
+
data.tar.gz: a7c26d5b16b2bf9b8166aee1b87185b27a0b8d889307c10674239f70da64ce96ce99140c75032a16a8d631e7076884ecbce522e549c098c93aa3aa0c72e57b3c
|
data/.rubocop.yml
CHANGED
data/CHANGELOG.md
CHANGED
@@ -10,6 +10,16 @@ Read `release_notes.md` for commit level details.
|
|
10
10
|
|
11
11
|
### Deprecations
|
12
12
|
|
13
|
+
## [3.6.0] - 2020-03-15
|
14
|
+
|
15
|
+
### Enhancements
|
16
|
+
- Add screen record feature for Windows driver (https://github.com/appium/appium-windows-driver/pull/66)
|
17
|
+
- `#start_recording_screen`, `#stop_recording_screen`
|
18
|
+
|
19
|
+
### Bug fixes
|
20
|
+
|
21
|
+
### Deprecations
|
22
|
+
|
13
23
|
## [3.5.0] - 2020-01-11
|
14
24
|
|
15
25
|
### Enhancements
|
data/Rakefile
CHANGED
@@ -56,6 +56,13 @@ namespace :test do
|
|
56
56
|
t.libs << 'lib'
|
57
57
|
t.test_files = FileList['test/unit/common/**/*_test.rb']
|
58
58
|
end
|
59
|
+
|
60
|
+
desc('Run all Windows related unit tests in test directory')
|
61
|
+
Rake::TestTask.new(:windows) do |t|
|
62
|
+
t.libs << 'test'
|
63
|
+
t.libs << 'lib'
|
64
|
+
t.test_files = FileList['test/unit/windows/**/*_test.rb']
|
65
|
+
end
|
59
66
|
end
|
60
67
|
end
|
61
68
|
|
data/appium_lib_core.gemspec
CHANGED
@@ -26,12 +26,12 @@ Gem::Specification.new do |spec|
|
|
26
26
|
spec.add_runtime_dependency 'faye-websocket', '~> 0.10.0'
|
27
27
|
|
28
28
|
spec.add_development_dependency 'bundler', '>= 1.14'
|
29
|
-
spec.add_development_dependency 'rake', '~>
|
29
|
+
spec.add_development_dependency 'rake', '~> 13.0'
|
30
30
|
spec.add_development_dependency 'yard', '~> 0.9.11'
|
31
31
|
spec.add_development_dependency 'minitest', '~> 5.0'
|
32
32
|
spec.add_development_dependency 'minitest-reporters', '~> 1.1'
|
33
|
-
spec.add_development_dependency 'webmock', '~> 3.
|
34
|
-
spec.add_development_dependency 'rubocop', '0.
|
33
|
+
spec.add_development_dependency 'webmock', '~> 3.8.0'
|
34
|
+
spec.add_development_dependency 'rubocop', '0.68.1'
|
35
35
|
spec.add_development_dependency 'appium_thor', '~> 1.0'
|
36
36
|
spec.add_development_dependency 'pry'
|
37
37
|
spec.add_development_dependency 'pry-byebug'
|
data/ci-jobs/functional_test.yml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
# jobs for functional test
|
2
2
|
parameters:
|
3
|
-
vmImage: 'macOS-10.
|
4
|
-
vmImageForIOS: 'macOS-10.
|
3
|
+
vmImage: 'macOS-10.15'
|
4
|
+
vmImageForIOS: 'macOS-10.15' # Not sure the reason, but macOS 10.14 instance raises no info.plist error
|
5
5
|
xcodeForIOS: 11.3
|
6
6
|
xcodeForTVOS: 11.3
|
7
7
|
androidSDK: 29
|
@@ -27,6 +27,8 @@ module Appium
|
|
27
27
|
autoload :Xcuitest, 'appium_lib_core/ios_xcuitest'
|
28
28
|
end
|
29
29
|
|
30
|
+
autoload :Windows, 'appium_lib_core/windows'
|
31
|
+
|
30
32
|
# This options affects only client side as <code>:appium_lib</code> key.<br>
|
31
33
|
# Read {::Appium::Core::Driver} about each attribute
|
32
34
|
class Options
|
@@ -475,25 +477,24 @@ module Appium
|
|
475
477
|
when :android
|
476
478
|
case automation_name
|
477
479
|
when :espresso
|
478
|
-
::Appium::Core::Android::Espresso::Bridge.for
|
480
|
+
::Appium::Core::Android::Espresso::Bridge.for self
|
479
481
|
when :uiautomator2
|
480
|
-
::Appium::Core::Android::Uiautomator2::Bridge.for
|
482
|
+
::Appium::Core::Android::Uiautomator2::Bridge.for self
|
481
483
|
else # default and UiAutomator
|
482
|
-
::Appium::Core::Android::Uiautomator1::Bridge.for
|
484
|
+
::Appium::Core::Android::Uiautomator1::Bridge.for self
|
483
485
|
end
|
484
486
|
when :ios, :tvos
|
485
487
|
case automation_name
|
486
488
|
when :xcuitest
|
487
|
-
::Appium::Core::Ios::Xcuitest::Bridge.for
|
489
|
+
::Appium::Core::Ios::Xcuitest::Bridge.for self
|
488
490
|
else # default and UIAutomation
|
489
|
-
::Appium::Core::Ios::Uiautomation::Bridge.for
|
491
|
+
::Appium::Core::Ios::Uiautomation::Bridge.for self
|
490
492
|
end
|
491
493
|
when :mac
|
492
494
|
# no Mac specific extentions
|
493
495
|
::Appium::Logger.debug('mac')
|
494
496
|
when :windows
|
495
|
-
|
496
|
-
::Appium::Logger.debug('windows')
|
497
|
+
::Appium::Core::Windows::Bridge.for self
|
497
498
|
when :tizen
|
498
499
|
# https://github.com/Samsung/appium-tizen-driver
|
499
500
|
::Appium::Logger.debug('tizen')
|
@@ -14,7 +14,7 @@
|
|
14
14
|
|
15
15
|
module Appium
|
16
16
|
module Core
|
17
|
-
VERSION = '3.
|
18
|
-
DATE = '2020-
|
17
|
+
VERSION = '3.6.0' unless defined? ::Appium::Core::VERSION
|
18
|
+
DATE = '2020-03-15' unless defined? ::Appium::Core::DATE
|
19
19
|
end
|
20
20
|
end
|
@@ -0,0 +1,16 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
4
|
+
# you may not use this file except in compliance with the License.
|
5
|
+
# You may obtain a copy of the License at
|
6
|
+
#
|
7
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
8
|
+
#
|
9
|
+
# Unless required by applicable law or agreed to in writing, software
|
10
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
11
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
12
|
+
# See the License for the specific language governing permissions and
|
13
|
+
# limitations under the License.
|
14
|
+
|
15
|
+
require_relative 'windows/device'
|
16
|
+
require_relative 'windows/bridge'
|
@@ -0,0 +1,25 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
4
|
+
# you may not use this file except in compliance with the License.
|
5
|
+
# You may obtain a copy of the License at
|
6
|
+
#
|
7
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
8
|
+
#
|
9
|
+
# Unless required by applicable law or agreed to in writing, software
|
10
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
11
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
12
|
+
# See the License for the specific language governing permissions and
|
13
|
+
# limitations under the License.
|
14
|
+
|
15
|
+
module Appium
|
16
|
+
module Core
|
17
|
+
module Windows
|
18
|
+
module Bridge
|
19
|
+
def self.for(target)
|
20
|
+
target.extend Appium::Core::Windows::Device
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
@@ -0,0 +1,98 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
4
|
+
# you may not use this file except in compliance with the License.
|
5
|
+
# You may obtain a copy of the License at
|
6
|
+
#
|
7
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
8
|
+
#
|
9
|
+
# Unless required by applicable law or agreed to in writing, software
|
10
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
11
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
12
|
+
# See the License for the specific language governing permissions and
|
13
|
+
# limitations under the License.
|
14
|
+
|
15
|
+
require_relative 'device/screen'
|
16
|
+
|
17
|
+
module Appium
|
18
|
+
module Core
|
19
|
+
module Windows
|
20
|
+
module Device
|
21
|
+
extend Forwardable
|
22
|
+
|
23
|
+
# rubocop:disable Metrics/LineLength
|
24
|
+
|
25
|
+
# @since Appium 1.18.0
|
26
|
+
# @!method start_recording_screen(remote_path: nil, user: nil, pass: nil, method: 'PUT', force_restart: nil, time_limit: nil, fps: nil, preset: nil, video_filter: nil, capture_clicks: nil, capture_cursor: nil, audio_input: nil)
|
27
|
+
#
|
28
|
+
# Record the display in background while the automated test is running.
|
29
|
+
# This method requires FFMPEG (https://www.ffmpeg.org/download.html) to be installed and present in PATH.
|
30
|
+
# The resulting video uses H264 codec and is ready to be played by media players built-in into web browsers.
|
31
|
+
#
|
32
|
+
# @param [String] remote_path The path to the remote location, where the resulting video should be uploaded.
|
33
|
+
# The following protocols are supported: http/https, ftp.
|
34
|
+
# Null or empty string value (the default setting) means the content of resulting
|
35
|
+
# file should be encoded as Base64 and passed as the endpount response value.
|
36
|
+
# An exception will be thrown if the generated media file is too big to
|
37
|
+
# fit into the available process memory.
|
38
|
+
# This option only has an effect if there is screen recording process in progreess
|
39
|
+
# and +forceRestart+ parameter is not set to +true+.
|
40
|
+
# @param [String] user The name of the user for the remote authentication.
|
41
|
+
# @param [String] pass The password for the remote authentication.
|
42
|
+
# @param [String] method The http multipart upload method name. The 'PUT' one is used by default.
|
43
|
+
# @param [Boolean] force_restart Whether to try to catch and upload/return the currently running screen recording
|
44
|
+
# (+false+, the default setting on server) or ignore the result of it
|
45
|
+
# and start a new recording immediately (+true+).
|
46
|
+
# @param [String] time_limit Recording time. 180 seconds is by default.
|
47
|
+
# @param [Number|String] fps The count of frames per second in the resulting video.
|
48
|
+
# Increasing fps value also increases the size of the resulting
|
49
|
+
# video file and the CPU usage. Defaults to 15.
|
50
|
+
# @param [String] preset A preset is a collection of options that will provide a certain encoding speed to compression ratio.
|
51
|
+
# A slower preset will provide better compression (compression is quality per filesize).
|
52
|
+
# This means that, for example, if you target a certain file size or constant bit rate, you will
|
53
|
+
# achieve better quality with a slower preset. Read https://trac.ffmpeg.org/wiki/Encode/H.264
|
54
|
+
# for more details.
|
55
|
+
# One of the supported encoding presets. Possible values are:
|
56
|
+
# - ultrafast
|
57
|
+
# - superfast
|
58
|
+
# - veryfast (default)
|
59
|
+
# - faster
|
60
|
+
# - fast
|
61
|
+
# - medium
|
62
|
+
# - slow
|
63
|
+
# - slower
|
64
|
+
# - veryslow
|
65
|
+
# @param [String] video_filter The video filter spec to apply for ffmpeg.
|
66
|
+
# See https://trac.ffmpeg.org/wiki/FilteringGuide for more details on the possible values.
|
67
|
+
# Example: Set it to +scale=ifnot(gte(iw\,1024)\,iw\,1024):-2+ in order to limit the video width
|
68
|
+
# to 1024px. The height will be adjusted automatically to match the actual screen aspect ratio.
|
69
|
+
# @param [Bool] capture_cursor Whether to capture the mouse cursor while recording the screen.
|
70
|
+
# Disabled by default.
|
71
|
+
# @param [Bool] capture_clicks Whether to capture the click gestures while recording the screen.
|
72
|
+
# Disabled by default.
|
73
|
+
# @param [String] audio_input If provided then the given audio input will be used to record the computer audio
|
74
|
+
# along with the desktop video. The list of available devices could be retrieved using
|
75
|
+
# +ffmpeg -list_devices true -f dshow -i dummy+ command.
|
76
|
+
#
|
77
|
+
# @example
|
78
|
+
#
|
79
|
+
# @driver.start_recording_screen
|
80
|
+
# @driver.start_recording_screen video_filter: 'scale=ifnot(gte(iw\,1024)\,iw\,1024):-2'
|
81
|
+
# @driver.start_recording_screen capture_cursor: true, capture_clicks: true, time_limit: '260'
|
82
|
+
#
|
83
|
+
|
84
|
+
# rubocop:enable Metrics/LineLength
|
85
|
+
|
86
|
+
####
|
87
|
+
## class << self
|
88
|
+
####
|
89
|
+
|
90
|
+
class << self
|
91
|
+
def extended(_mod)
|
92
|
+
Screen.add_methods
|
93
|
+
end
|
94
|
+
end # class << self
|
95
|
+
end # module Device
|
96
|
+
end # module Windows
|
97
|
+
end # module Core
|
98
|
+
end # module Appium
|
@@ -0,0 +1,48 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
4
|
+
# you may not use this file except in compliance with the License.
|
5
|
+
# You may obtain a copy of the License at
|
6
|
+
#
|
7
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
8
|
+
#
|
9
|
+
# Unless required by applicable law or agreed to in writing, software
|
10
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
11
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
12
|
+
# See the License for the specific language governing permissions and
|
13
|
+
# limitations under the License.
|
14
|
+
|
15
|
+
module Appium
|
16
|
+
module Core
|
17
|
+
module Windows
|
18
|
+
module Device
|
19
|
+
module Screen
|
20
|
+
def self.add_methods
|
21
|
+
::Appium::Core::Device.add_endpoint_method(:start_recording_screen) do
|
22
|
+
# rubocop:disable Metrics/ParameterLists
|
23
|
+
def start_recording_screen(remote_path: nil, user: nil, pass: nil, method: 'PUT',
|
24
|
+
force_restart: nil, time_limit: nil,
|
25
|
+
fps: nil, preset: nil, video_filter: nil,
|
26
|
+
capture_clicks: nil, capture_cursor: nil, audio_input: nil)
|
27
|
+
option = ::Appium::Core::Base::Device::ScreenRecord.new(
|
28
|
+
remote_path: remote_path, user: user, pass: pass, method: method, force_restart: force_restart
|
29
|
+
).upload_option
|
30
|
+
|
31
|
+
option[:timeLimit] = time_limit unless time_limit.nil?
|
32
|
+
option[:fps] = fps unless fps.nil?
|
33
|
+
option[:preset] = preset unless preset.nil?
|
34
|
+
option[:videoFilter] = video_filter unless video_filter.nil?
|
35
|
+
option[:captureClicks] = capture_clicks unless capture_clicks.nil?
|
36
|
+
option[:captureCursor] = capture_cursor unless capture_cursor.nil?
|
37
|
+
option[:audioInput] = audio_input unless audio_input.nil?
|
38
|
+
|
39
|
+
execute(:start_recording_screen, {}, { options: option })
|
40
|
+
end
|
41
|
+
# rubocop:enable Metrics/ParameterLists
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end # module Screen
|
45
|
+
end # module Device
|
46
|
+
end # module Windows
|
47
|
+
end # module Core
|
48
|
+
end # module Appium
|
data/release_notes.md
CHANGED
@@ -1,3 +1,14 @@
|
|
1
|
+
#### v3.6.0 2020-03-15
|
2
|
+
|
3
|
+
- [260d45e](https://github.com/appium/ruby_lib_core/commit/260d45e28a36e99e3dedbe8d41e2703c4d3fbdc8) Release 3.6.0
|
4
|
+
- [e67abd5](https://github.com/appium/ruby_lib_core/commit/e67abd53d188f0a77adb15882dd2151b1c0132e8) feat: add Windows screen record (#255)
|
5
|
+
- [164fd72](https://github.com/appium/ruby_lib_core/commit/164fd7205944a06055427000b7371311f9dc20a3) ci: Bump ci macOS version (#254)
|
6
|
+
- [7200f25](https://github.com/appium/ruby_lib_core/commit/7200f255bc5eb74a8fe8b3667db1c004a55092cf) update rubocop yml
|
7
|
+
- [2fe8c0a](https://github.com/appium/ruby_lib_core/commit/2fe8c0ae01fa3fd2653cd83415f512931adac655) Update webmock requirement from ~> 3.4.0 to ~> 3.8.0 (#253)
|
8
|
+
- [32dc172](https://github.com/appium/ruby_lib_core/commit/32dc17289f5c130b7f949bfca415e10fa4fe87d7) Update rubocop requirement from = 0.61.0 to = 0.68.1 (#251)
|
9
|
+
- [7b4402e](https://github.com/appium/ruby_lib_core/commit/7b4402e3c59d3cfee600c6375494eecb2c7c6ddf) Update rake requirement from ~> 12.0 to ~> 13.0 (#252)
|
10
|
+
|
11
|
+
|
1
12
|
#### v3.5.0 2020-01-11
|
2
13
|
|
3
14
|
- [79174fd](https://github.com/appium/ruby_lib_core/commit/79174fd6821398eacc32a897c1161140087b11e6) Release 3.5.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: 3.
|
4
|
+
version: 3.6.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Kazuaki MATSUO
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-
|
11
|
+
date: 2020-03-15 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: selenium-webdriver
|
@@ -64,14 +64,14 @@ dependencies:
|
|
64
64
|
requirements:
|
65
65
|
- - "~>"
|
66
66
|
- !ruby/object:Gem::Version
|
67
|
-
version: '
|
67
|
+
version: '13.0'
|
68
68
|
type: :development
|
69
69
|
prerelease: false
|
70
70
|
version_requirements: !ruby/object:Gem::Requirement
|
71
71
|
requirements:
|
72
72
|
- - "~>"
|
73
73
|
- !ruby/object:Gem::Version
|
74
|
-
version: '
|
74
|
+
version: '13.0'
|
75
75
|
- !ruby/object:Gem::Dependency
|
76
76
|
name: yard
|
77
77
|
requirement: !ruby/object:Gem::Requirement
|
@@ -120,28 +120,28 @@ dependencies:
|
|
120
120
|
requirements:
|
121
121
|
- - "~>"
|
122
122
|
- !ruby/object:Gem::Version
|
123
|
-
version: 3.
|
123
|
+
version: 3.8.0
|
124
124
|
type: :development
|
125
125
|
prerelease: false
|
126
126
|
version_requirements: !ruby/object:Gem::Requirement
|
127
127
|
requirements:
|
128
128
|
- - "~>"
|
129
129
|
- !ruby/object:Gem::Version
|
130
|
-
version: 3.
|
130
|
+
version: 3.8.0
|
131
131
|
- !ruby/object:Gem::Dependency
|
132
132
|
name: rubocop
|
133
133
|
requirement: !ruby/object:Gem::Requirement
|
134
134
|
requirements:
|
135
135
|
- - '='
|
136
136
|
- !ruby/object:Gem::Version
|
137
|
-
version: 0.
|
137
|
+
version: 0.68.1
|
138
138
|
type: :development
|
139
139
|
prerelease: false
|
140
140
|
version_requirements: !ruby/object:Gem::Requirement
|
141
141
|
requirements:
|
142
142
|
- - '='
|
143
143
|
- !ruby/object:Gem::Version
|
144
|
-
version: 0.
|
144
|
+
version: 0.68.1
|
145
145
|
- !ruby/object:Gem::Dependency
|
146
146
|
name: appium_thor
|
147
147
|
requirement: !ruby/object:Gem::Requirement
|
@@ -314,6 +314,10 @@ files:
|
|
314
314
|
- lib/appium_lib_core/ios_xcuitest.rb
|
315
315
|
- lib/appium_lib_core/patch.rb
|
316
316
|
- lib/appium_lib_core/version.rb
|
317
|
+
- lib/appium_lib_core/windows.rb
|
318
|
+
- lib/appium_lib_core/windows/bridge.rb
|
319
|
+
- lib/appium_lib_core/windows/device.rb
|
320
|
+
- lib/appium_lib_core/windows/device/screen.rb
|
317
321
|
- release_notes.md
|
318
322
|
- script/commands.rb
|
319
323
|
homepage: https://github.com/appium/ruby_lib_core/
|