appium_lib_core 1.7.2 → 1.8.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.
- checksums.yaml +4 -4
- data/.rubocop.yml +2 -0
- data/CHANGELOG.md +11 -0
- data/lib/appium_lib_core/android/device/clipboard.rb +4 -4
- data/lib/appium_lib_core/android/device/screen.rb +1 -1
- data/lib/appium_lib_core/android/uiautomator2/device/battery.rb +2 -2
- data/lib/appium_lib_core/common/base.rb +17 -0
- data/lib/appium_lib_core/common/base/bridge.rb +1 -0
- data/lib/appium_lib_core/common/base/bridge/mjsonwp.rb +15 -0
- data/lib/appium_lib_core/common/base/bridge/w3c.rb +19 -0
- data/lib/appium_lib_core/common/base/driver.rb +599 -1
- data/lib/appium_lib_core/common/base/screenshot.rb +18 -0
- data/lib/appium_lib_core/common/device/app_management.rb +87 -0
- data/lib/appium_lib_core/common/device/app_state.rb +30 -0
- data/lib/appium_lib_core/common/device/battery_status.rb +25 -0
- data/lib/appium_lib_core/common/device/clipboard_content_type.rb +11 -0
- data/lib/appium_lib_core/common/device/context.rb +38 -0
- data/lib/appium_lib_core/common/device/device.rb +19 -0
- data/lib/appium_lib_core/common/device/device_lock.rb +22 -0
- data/lib/appium_lib_core/common/device/file_management.rb +26 -0
- data/lib/appium_lib_core/common/device/image_comparison.rb +168 -0
- data/lib/appium_lib_core/common/device/ime_actions.rb +29 -0
- data/lib/appium_lib_core/common/device/keyboard.rb +22 -0
- data/lib/appium_lib_core/common/device/keyevent.rb +38 -0
- data/lib/appium_lib_core/common/device/screen_record.rb +54 -0
- data/lib/appium_lib_core/common/device/setting.rb +17 -0
- data/lib/appium_lib_core/common/device/touch_actions.rb +21 -0
- data/lib/appium_lib_core/common/device/value.rb +19 -0
- data/lib/appium_lib_core/device.rb +24 -547
- data/lib/appium_lib_core/driver.rb +14 -9
- data/lib/appium_lib_core/element/image.rb +1 -1
- data/lib/appium_lib_core/ios/device/clipboard.rb +4 -4
- data/lib/appium_lib_core/ios/xcuitest/device/battery.rb +2 -2
- data/lib/appium_lib_core/ios/xcuitest/device/performance.rb +1 -3
- data/lib/appium_lib_core/ios/xcuitest/device/screen.rb +1 -1
- data/lib/appium_lib_core/ios_xcuitest.rb +0 -2
- data/lib/appium_lib_core/version.rb +2 -2
- data/release_notes.md +10 -0
- metadata +18 -17
- data/lib/appium_lib_core/device/app_management.rb +0 -113
- data/lib/appium_lib_core/device/app_state.rb +0 -32
- data/lib/appium_lib_core/device/battery_status.rb +0 -23
- data/lib/appium_lib_core/device/clipboard_content_type.rb +0 -9
- data/lib/appium_lib_core/device/context.rb +0 -48
- data/lib/appium_lib_core/device/device_lock.rb +0 -28
- data/lib/appium_lib_core/device/file_management.rb +0 -32
- data/lib/appium_lib_core/device/image_comparison.rb +0 -178
- data/lib/appium_lib_core/device/ime_actions.rb +0 -43
- data/lib/appium_lib_core/device/keyboard.rb +0 -26
- data/lib/appium_lib_core/device/keyevent.rb +0 -44
- data/lib/appium_lib_core/device/screen_record.rb +0 -56
- data/lib/appium_lib_core/device/setting.rb +0 -21
- data/lib/appium_lib_core/device/touch_actions.rb +0 -22
- data/lib/appium_lib_core/device/value.rb +0 -23
@@ -1,28 +0,0 @@
|
|
1
|
-
module Appium
|
2
|
-
module Core
|
3
|
-
module Device
|
4
|
-
module DeviceLock
|
5
|
-
def self.add_methods
|
6
|
-
::Appium::Core::Device.add_endpoint_method(:lock) do
|
7
|
-
def lock(duration = nil)
|
8
|
-
opts = duration ? { seconds: duration } : {}
|
9
|
-
execute :lock, {}, opts
|
10
|
-
end
|
11
|
-
end
|
12
|
-
|
13
|
-
::Appium::Core::Device.add_endpoint_method(:device_locked?) do
|
14
|
-
def device_locked?
|
15
|
-
execute :device_locked?
|
16
|
-
end
|
17
|
-
end
|
18
|
-
|
19
|
-
::Appium::Core::Device.add_endpoint_method(:unlock) do
|
20
|
-
def unlock
|
21
|
-
execute :unlock
|
22
|
-
end
|
23
|
-
end
|
24
|
-
end
|
25
|
-
end # module DeviceLock
|
26
|
-
end # module Device
|
27
|
-
end # module Core
|
28
|
-
end # module Appium
|
@@ -1,32 +0,0 @@
|
|
1
|
-
require 'base64'
|
2
|
-
|
3
|
-
module Appium
|
4
|
-
module Core
|
5
|
-
module Device
|
6
|
-
module FileManagement
|
7
|
-
def self.add_methods
|
8
|
-
::Appium::Core::Device.add_endpoint_method(:push_file) do
|
9
|
-
def push_file(path, filedata)
|
10
|
-
encoded_data = Base64.encode64 filedata
|
11
|
-
execute :push_file, {}, path: path, data: encoded_data
|
12
|
-
end
|
13
|
-
end
|
14
|
-
|
15
|
-
::Appium::Core::Device.add_endpoint_method(:pull_file) do
|
16
|
-
def pull_file(path)
|
17
|
-
data = execute :pull_file, {}, path: path
|
18
|
-
Base64.decode64 data
|
19
|
-
end
|
20
|
-
end
|
21
|
-
|
22
|
-
::Appium::Core::Device.add_endpoint_method(:pull_folder) do
|
23
|
-
def pull_folder(path)
|
24
|
-
data = execute :pull_folder, {}, path: path
|
25
|
-
Base64.decode64 data
|
26
|
-
end
|
27
|
-
end
|
28
|
-
end
|
29
|
-
end # module FileManagement
|
30
|
-
end # module Device
|
31
|
-
end # module Core
|
32
|
-
end # module Appium
|
@@ -1,178 +0,0 @@
|
|
1
|
-
require 'base64'
|
2
|
-
|
3
|
-
module Appium
|
4
|
-
module Core
|
5
|
-
module Device
|
6
|
-
module ImageComparison
|
7
|
-
MODE = [:matchFeatures, :getSimilarity, :matchTemplate].freeze
|
8
|
-
|
9
|
-
MATCH_FEATURES = {
|
10
|
-
detector_name: %w(AKAZE AGAST BRISK FAST GFTT KAZE MSER SIFT ORB),
|
11
|
-
match_func: %w(FlannBased BruteForce BruteForceL1 BruteForceHamming BruteForceHammingLut BruteForceSL2),
|
12
|
-
goodMatchesFactor: nil, # Integer
|
13
|
-
visualize: [true, false]
|
14
|
-
}.freeze
|
15
|
-
|
16
|
-
MATCH_TEMPLATE = {
|
17
|
-
visualize: [true, false]
|
18
|
-
}.freeze
|
19
|
-
|
20
|
-
GET_SIMILARITY = {
|
21
|
-
visualize: [true, false]
|
22
|
-
}.freeze
|
23
|
-
|
24
|
-
# @!method match_images_features(first_image:, second_image:, detector_name: 'ORB',
|
25
|
-
# match_func: 'BruteForce', good_matches_factor: 100, visualize: false)
|
26
|
-
# Performs images matching by features with default options. Read https://docs.opencv.org/3.0-beta/doc/py_tutorials/py_feature2d/py_matcher/py_matcher.html
|
27
|
-
# for more details on this topic.
|
28
|
-
#
|
29
|
-
# @param [String] first_image An image data. All image formats, that OpenCV library itself accepts, are supported.
|
30
|
-
# @param [String] second_image An image data. All image formats, that OpenCV library itself accepts, are supported.
|
31
|
-
# @param [String] detector_name Sets the detector name for features matching
|
32
|
-
# algorithm. Some of these detectors (FAST, AGAST, GFTT, FAST, SIFT and MSER) are
|
33
|
-
# not available in the default OpenCV installation and have to be enabled manually
|
34
|
-
# before library compilation. The default detector name is 'ORB'.
|
35
|
-
# @param [String] match_func The name of the matching function. The default one is 'BruteForce'.
|
36
|
-
# @param [String] good_matches_factor The maximum count of "good" matches (e. g. with minimal distances).
|
37
|
-
# The default one is nil.
|
38
|
-
# @param [Bool] visualise Makes the endpoint to return an image, which contains the visualized result of
|
39
|
-
# the corresponding picture matching operation. This option is disabled by default.
|
40
|
-
#
|
41
|
-
# @example
|
42
|
-
# @driver.match_images_features first_image: "image data 1", second_image: "image data 2"
|
43
|
-
#
|
44
|
-
# visual = @@driver.match_images_features first_image: image1, second_image: image2, visualize: true
|
45
|
-
# File.write 'match_images_visual.png', Base64.decode64(visual['visualization']) # if the image is PNG
|
46
|
-
#
|
47
|
-
|
48
|
-
# @!method find_image_occurrence(full_image:, partial_image:, visualize: false, threshold: nil)
|
49
|
-
# Performs images matching by template to find possible occurrence of the partial image
|
50
|
-
# in the full image with default options. Read https://docs.opencv.org/2.4/doc/tutorials/imgproc/histograms/template_matching/template_matching.html
|
51
|
-
# for more details on this topic.
|
52
|
-
#
|
53
|
-
# @param [String] full_image: A full image data.
|
54
|
-
# @param [String] partial_image: A partial image data. All image formats, that OpenCV library itself accepts,
|
55
|
-
# are supported.
|
56
|
-
# @param [Bool] visualise: Makes the endpoint to return an image, which contains the visualized result of
|
57
|
-
# the corresponding picture matching operation. This option is disabled by default.
|
58
|
-
# @param [Float] threshold: [0.5] At what normalized threshold to reject
|
59
|
-
#
|
60
|
-
# @example
|
61
|
-
# @driver.find_image_occurrence full_image: "image data 1", partial_image: "image data 2"
|
62
|
-
#
|
63
|
-
# visual = @@driver.find_image_occurrence full_image: image1, partial_image: image2, visualize: true
|
64
|
-
# File.write 'find_result_visual.png', Base64.decode64(visual['visualization']) # if the image is PNG
|
65
|
-
#
|
66
|
-
|
67
|
-
# @!method get_images_similarity(first_image:, second_image:, detector_name: 'ORB', visualize: false)
|
68
|
-
# Performs images matching to calculate the similarity score between them
|
69
|
-
# with default options. The flow there is similar to the one used in `find_image_occurrence`
|
70
|
-
# but it is mandatory that both images are of equal size.
|
71
|
-
#
|
72
|
-
# @param [String] first_image: An image data. All image formats, that OpenCV library itself accepts, are supported.
|
73
|
-
# @param [String] second_image: An image data. All image formats, that OpenCV library itself accepts, are supported.
|
74
|
-
# @param [Bool] visualise: Makes the endpoint to return an image, which contains the visualized result of
|
75
|
-
# the corresponding picture matching operation. This option is disabled by default.
|
76
|
-
#
|
77
|
-
# @example
|
78
|
-
# @driver.get_images_similarity first_image: "image data 1", second_image: "image data 2"
|
79
|
-
#
|
80
|
-
# visual = @@driver.get_images_similarity first_image: image1, second_image: image2, visualize: true
|
81
|
-
# File.write 'images_similarity_visual.png', Base64.decode64(visual['visualization']) # if the image is PNG
|
82
|
-
#
|
83
|
-
|
84
|
-
# @!method compare_images(mode:, first_image:, second_image:, options:)
|
85
|
-
#
|
86
|
-
# Performs images comparison using OpenCV framework features.
|
87
|
-
# It is expected that both OpenCV framework and opencv4nodejs
|
88
|
-
# module are installed on the machine where Appium server is running.
|
89
|
-
#
|
90
|
-
# @param [Symbol] mode: One of possible comparison modes: `:matchFeatures`, `:getSimilarity`, `:matchTemplate`.
|
91
|
-
# `:matchFeatures is by default.
|
92
|
-
# @param [String] first_image: An image data. All image formats, that OpenCV library itself accepts, are supported.
|
93
|
-
# @param [String] second_image: An image data. All image formats, that OpenCV library itself accepts, are supported.
|
94
|
-
# @param [Hash] options: The content of this dictionary depends on the actual `mode` value.
|
95
|
-
# See the documentation on `appium-support` module for more details.
|
96
|
-
# @returns [Hash] The content of the resulting dictionary depends on the actual `mode` and `options` values.
|
97
|
-
# See the documentation on `appium-support` module for more details.
|
98
|
-
#
|
99
|
-
|
100
|
-
####
|
101
|
-
## class << self
|
102
|
-
####
|
103
|
-
|
104
|
-
def self.add_methods
|
105
|
-
::Appium::Core::Device.add_endpoint_method(:match_images_features) do
|
106
|
-
def match_images_features(first_image:, # rubocop:disable Metrics/ParameterLists
|
107
|
-
second_image:,
|
108
|
-
detector_name: 'ORB',
|
109
|
-
match_func: 'BruteForce',
|
110
|
-
good_matches_factor: nil,
|
111
|
-
visualize: false)
|
112
|
-
unless ::Appium::Core::Device::ImageComparison::MATCH_FEATURES[:detector_name].member?(detector_name.to_s)
|
113
|
-
raise "detector_name should be #{::Appium::Core::Device::ImageComparison::MATCH_FEATURES[:detector_name]}"
|
114
|
-
end
|
115
|
-
unless ::Appium::Core::Device::ImageComparison::MATCH_FEATURES[:match_func].member?(match_func.to_s)
|
116
|
-
raise "match_func should be #{::Appium::Core::Device::ImageComparison::MATCH_FEATURES[:match_func]}"
|
117
|
-
end
|
118
|
-
unless ::Appium::Core::Device::ImageComparison::MATCH_FEATURES[:visualize].member?(visualize)
|
119
|
-
raise "visualize should be #{::Appium::Core::Device::ImageComparison::MATCH_FEATURES[:visualize]}"
|
120
|
-
end
|
121
|
-
|
122
|
-
options = {}
|
123
|
-
options[:detectorName] = detector_name.to_s.upcase
|
124
|
-
options[:matchFunc] = match_func.to_s
|
125
|
-
options[:goodMatchesFactor] = good_matches_factor.to_i unless good_matches_factor.nil?
|
126
|
-
options[:visualize] = visualize
|
127
|
-
|
128
|
-
compare_images(mode: :matchFeatures, first_image: first_image, second_image: second_image, options: options)
|
129
|
-
end
|
130
|
-
end
|
131
|
-
|
132
|
-
::Appium::Core::Device.add_endpoint_method(:find_image_occurrence) do
|
133
|
-
def find_image_occurrence(full_image:, partial_image:, visualize: false, threshold: nil)
|
134
|
-
unless ::Appium::Core::Device::ImageComparison::MATCH_TEMPLATE[:visualize].member?(visualize)
|
135
|
-
raise "visualize should be #{::Appium::Core::Device::ImageComparison::MATCH_TEMPLATE[:visualize]}"
|
136
|
-
end
|
137
|
-
|
138
|
-
options = {}
|
139
|
-
options[:visualize] = visualize
|
140
|
-
options[:threshold] = threshold unless threshold.nil?
|
141
|
-
|
142
|
-
compare_images(mode: :matchTemplate, first_image: full_image, second_image: partial_image, options: options)
|
143
|
-
end
|
144
|
-
end
|
145
|
-
|
146
|
-
::Appium::Core::Device.add_endpoint_method(:get_images_similarity) do
|
147
|
-
def get_images_similarity(first_image:, second_image:, visualize: false)
|
148
|
-
unless ::Appium::Core::Device::ImageComparison::GET_SIMILARITY[:visualize].member?(visualize)
|
149
|
-
raise "visualize should be #{::Appium::Core::Device::ImageComparison::GET_SIMILARITY[:visualize]}"
|
150
|
-
end
|
151
|
-
|
152
|
-
options = {}
|
153
|
-
options[:visualize] = visualize
|
154
|
-
|
155
|
-
compare_images(mode: :getSimilarity, first_image: first_image, second_image: second_image, options: options)
|
156
|
-
end
|
157
|
-
end
|
158
|
-
|
159
|
-
::Appium::Core::Device.add_endpoint_method(:compare_images) do
|
160
|
-
def compare_images(mode: :matchFeatures, first_image:, second_image:, options: nil)
|
161
|
-
unless ::Appium::Core::Device::ImageComparison::MODE.member?(mode)
|
162
|
-
raise "content_type should be #{::Appium::Core::Device::ImageComparison::MODE}"
|
163
|
-
end
|
164
|
-
|
165
|
-
params = {}
|
166
|
-
params[:mode] = mode
|
167
|
-
params[:firstImage] = Base64.encode64 first_image
|
168
|
-
params[:secondImage] = Base64.encode64 second_image
|
169
|
-
params[:options] = options if options
|
170
|
-
|
171
|
-
execute(:compare_images, {}, params)
|
172
|
-
end
|
173
|
-
end
|
174
|
-
end # self
|
175
|
-
end # module ImageComparison
|
176
|
-
end # module Device
|
177
|
-
end # module Core
|
178
|
-
end # module Appium
|
@@ -1,43 +0,0 @@
|
|
1
|
-
module Appium
|
2
|
-
module Core
|
3
|
-
module Device
|
4
|
-
module ImeActions
|
5
|
-
def self.add_methods
|
6
|
-
::Appium::Core::Device.add_endpoint_method(:ime_activate) do
|
7
|
-
def ime_activate(ime_name)
|
8
|
-
# from Selenium::WebDriver::Remote::OSS
|
9
|
-
execute :ime_activate_engine, {}, engine: ime_name
|
10
|
-
end
|
11
|
-
end
|
12
|
-
|
13
|
-
::Appium::Core::Device.add_endpoint_method(:ime_available_engines) do
|
14
|
-
def ime_available_engines
|
15
|
-
execute :ime_get_available_engines
|
16
|
-
end
|
17
|
-
end
|
18
|
-
|
19
|
-
::Appium::Core::Device.add_endpoint_method(:ime_active_engine) do
|
20
|
-
# from Selenium::WebDriver::Remote::OSS
|
21
|
-
def ime_active_engine
|
22
|
-
execute :ime_get_active_engine
|
23
|
-
end
|
24
|
-
end
|
25
|
-
|
26
|
-
::Appium::Core::Device.add_endpoint_method(:ime_activated) do
|
27
|
-
# from Selenium::WebDriver::Remote::OSS
|
28
|
-
def ime_activated
|
29
|
-
execute :ime_is_activated
|
30
|
-
end
|
31
|
-
end
|
32
|
-
|
33
|
-
::Appium::Core::Device.add_endpoint_method(:ime_deactivate) do
|
34
|
-
# from Selenium::WebDriver::Remote::OSS
|
35
|
-
def ime_deactivate
|
36
|
-
execute :ime_deactivate, {}
|
37
|
-
end
|
38
|
-
end
|
39
|
-
end
|
40
|
-
end # module ImeActions
|
41
|
-
end # module Device
|
42
|
-
end # module Core
|
43
|
-
end # module Appium
|
@@ -1,26 +0,0 @@
|
|
1
|
-
module Appium
|
2
|
-
module Core
|
3
|
-
module Device
|
4
|
-
module Keyboard
|
5
|
-
def self.add_methods
|
6
|
-
::Appium::Core::Device.add_endpoint_method(:hide_keyboard) do
|
7
|
-
def hide_keyboard(close_key = nil, strategy = nil)
|
8
|
-
option = {}
|
9
|
-
|
10
|
-
option[:key] = close_key || 'Done' # default to Done key.
|
11
|
-
option[:strategy] = strategy || :pressKey # default to pressKey
|
12
|
-
|
13
|
-
execute :hide_keyboard, {}, option
|
14
|
-
end
|
15
|
-
end
|
16
|
-
|
17
|
-
::Appium::Core::Device.add_endpoint_method(:is_keyboard_shown) do
|
18
|
-
def is_keyboard_shown # rubocop:disable Naming/PredicateName for compatibility
|
19
|
-
execute :is_keyboard_shown
|
20
|
-
end
|
21
|
-
end
|
22
|
-
end
|
23
|
-
end # module Keyboard
|
24
|
-
end # module Device
|
25
|
-
end # module Core
|
26
|
-
end # module Appium
|
@@ -1,44 +0,0 @@
|
|
1
|
-
module Appium
|
2
|
-
module Core
|
3
|
-
module Device
|
4
|
-
module KeyEvent
|
5
|
-
def self.add_methods
|
6
|
-
# Only for Selendroid
|
7
|
-
::Appium::Core::Device.add_endpoint_method(:keyevent) do
|
8
|
-
def keyevent(key, metastate = nil)
|
9
|
-
args = { keycode: key }
|
10
|
-
args[:metastate] = metastate if metastate
|
11
|
-
execute :keyevent, {}, args
|
12
|
-
end
|
13
|
-
end
|
14
|
-
|
15
|
-
::Appium::Core::Device.add_endpoint_method(:press_keycode) do
|
16
|
-
def press_keycode(key, metastate: [], flags: [])
|
17
|
-
raise ArgumentError, 'flags should be Array' unless flags.is_a? Array
|
18
|
-
raise ArgumentError, 'metastates should be Array' unless metastate.is_a? Array
|
19
|
-
|
20
|
-
args = { keycode: key }
|
21
|
-
args[:metastate] = metastate.reduce(0) { |acc, meta| acc | meta } unless metastate.empty?
|
22
|
-
args[:flags] = flags.reduce(0) { |acc, flag| acc | flag } unless flags.empty?
|
23
|
-
|
24
|
-
execute :press_keycode, {}, args
|
25
|
-
end
|
26
|
-
end
|
27
|
-
|
28
|
-
::Appium::Core::Device.add_endpoint_method(:long_press_keycode) do
|
29
|
-
def long_press_keycode(key, metastate: [], flags: [])
|
30
|
-
raise ArgumentError, 'flags should be Array' unless flags.is_a? Array
|
31
|
-
raise ArgumentError, 'metastates should be Array' unless metastate.is_a? Array
|
32
|
-
|
33
|
-
args = { keycode: key }
|
34
|
-
args[:metastate] = metastate.reduce(0) { |acc, meta| acc | meta } unless metastate.empty?
|
35
|
-
args[:flags] = flags.reduce(0) { |acc, flag| acc | flag } unless flags.empty?
|
36
|
-
|
37
|
-
execute :long_press_keycode, {}, args
|
38
|
-
end
|
39
|
-
end
|
40
|
-
end
|
41
|
-
end # module KeyEvent
|
42
|
-
end # module Device
|
43
|
-
end # module Core
|
44
|
-
end # module Appium
|
@@ -1,56 +0,0 @@
|
|
1
|
-
module Appium
|
2
|
-
module Core
|
3
|
-
module Device
|
4
|
-
class ScreenRecord
|
5
|
-
#
|
6
|
-
# @api private
|
7
|
-
#
|
8
|
-
|
9
|
-
attr_reader :upload_option
|
10
|
-
|
11
|
-
METHOD = %w(POST PUT).freeze
|
12
|
-
|
13
|
-
def self.add_methods
|
14
|
-
::Appium::Core::Device.add_endpoint_method(:stop_recording_screen) do
|
15
|
-
def stop_recording_screen(remote_path: nil, user: nil, pass: nil, method: 'PUT')
|
16
|
-
option = ::Appium::Core::Device::ScreenRecord.new(
|
17
|
-
remote_path: remote_path, user: user, pass: pass, method: method
|
18
|
-
).upload_option
|
19
|
-
|
20
|
-
params = option.empty? ? {} : { options: option }
|
21
|
-
|
22
|
-
execute(:stop_recording_screen, {}, params)
|
23
|
-
end
|
24
|
-
end
|
25
|
-
|
26
|
-
::Appium::Core::Device.add_endpoint_method(:stop_and_save_recording_screen) do
|
27
|
-
def stop_and_save_recording_screen(file_path)
|
28
|
-
base64data = execute(:stop_recording_screen, {}, {})
|
29
|
-
File.open(file_path, 'wb') { |f| f << Base64.decode64(base64data) }
|
30
|
-
end
|
31
|
-
end
|
32
|
-
end
|
33
|
-
|
34
|
-
def initialize(remote_path: nil, user: nil, pass: nil, method: 'PUT', force_restart: nil)
|
35
|
-
@upload_option = if remote_path.nil?
|
36
|
-
{}
|
37
|
-
else
|
38
|
-
raise 'method should be POST or PUT' unless METHOD.member?(method.to_s.upcase)
|
39
|
-
|
40
|
-
option = {}
|
41
|
-
option[:remotePath] = remote_path
|
42
|
-
option[:user] = user unless user.nil?
|
43
|
-
option[:pass] = pass unless pass.nil?
|
44
|
-
option[:method] = method
|
45
|
-
option
|
46
|
-
end
|
47
|
-
|
48
|
-
return if force_restart.nil?
|
49
|
-
|
50
|
-
raise 'force_restart should be true or false' unless [true, false].member?(force_restart)
|
51
|
-
@upload_option[:forceRestart] = force_restart
|
52
|
-
end
|
53
|
-
end
|
54
|
-
end
|
55
|
-
end
|
56
|
-
end
|
@@ -1,21 +0,0 @@
|
|
1
|
-
module Appium
|
2
|
-
module Core
|
3
|
-
module Device
|
4
|
-
module Setting
|
5
|
-
def self.add_methods
|
6
|
-
::Appium::Core::Device.add_endpoint_method(:get_settings) do
|
7
|
-
def get_settings
|
8
|
-
execute :get_settings, {}
|
9
|
-
end
|
10
|
-
end
|
11
|
-
|
12
|
-
::Appium::Core::Device.add_endpoint_method(:update_settings) do
|
13
|
-
def update_settings(settings)
|
14
|
-
execute :update_settings, {}, settings: settings
|
15
|
-
end
|
16
|
-
end
|
17
|
-
end
|
18
|
-
end # module Setting
|
19
|
-
end # module Device
|
20
|
-
end # module Core
|
21
|
-
end # module Appium
|
@@ -1,22 +0,0 @@
|
|
1
|
-
module Appium
|
2
|
-
module Core
|
3
|
-
module Device
|
4
|
-
module TouchActions
|
5
|
-
def self.add_methods
|
6
|
-
::Appium::Core::Device.add_endpoint_method(:touch_actions) do
|
7
|
-
def touch_actions(actions)
|
8
|
-
actions = { actions: [actions].flatten }
|
9
|
-
execute :touch_actions, {}, actions
|
10
|
-
end
|
11
|
-
end
|
12
|
-
|
13
|
-
::Appium::Core::Device.add_endpoint_method(:multi_touch) do
|
14
|
-
def multi_touch(actions)
|
15
|
-
execute :multi_touch, {}, actions: actions
|
16
|
-
end
|
17
|
-
end
|
18
|
-
end
|
19
|
-
end # module TouchActions
|
20
|
-
end # module Device
|
21
|
-
end # module Core
|
22
|
-
end # module Appium
|