appium_lib_core 4.0.0 → 4.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 (34) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/unittest.yml +1 -1
  3. data/.rubocop.yml +18 -4
  4. data/CHANGELOG.md +29 -272
  5. data/appium_lib_core.gemspec +1 -1
  6. data/ci-jobs/functional/run_appium.yml +1 -1
  7. data/lib/appium_lib_core.rb +5 -5
  8. data/lib/appium_lib_core/android/device.rb +5 -5
  9. data/lib/appium_lib_core/common/base.rb +1 -0
  10. data/lib/appium_lib_core/common/base/bridge/w3c.rb +1 -0
  11. data/lib/appium_lib_core/common/base/driver.rb +24 -11
  12. data/lib/appium_lib_core/common/base/http_default.rb +2 -3
  13. data/lib/appium_lib_core/common/base/rotable.rb +54 -0
  14. data/lib/appium_lib_core/common/base/screenshot.rb +1 -1
  15. data/lib/appium_lib_core/common/base/search_context.rb +4 -4
  16. data/lib/appium_lib_core/common/command/common.rb +0 -2
  17. data/lib/appium_lib_core/common/command/mjsonwp.rb +0 -2
  18. data/lib/appium_lib_core/common/command/w3c.rb +0 -2
  19. data/lib/appium_lib_core/common/device/app_management.rb +1 -1
  20. data/lib/appium_lib_core/common/device/image_comparison.rb +3 -3
  21. data/lib/appium_lib_core/common/device/orientation.rb +31 -0
  22. data/lib/appium_lib_core/common/wait.rb +2 -2
  23. data/lib/appium_lib_core/driver.rb +5 -3
  24. data/lib/appium_lib_core/ios/xcuitest/device.rb +2 -2
  25. data/lib/appium_lib_core/mac2.rb +17 -0
  26. data/lib/appium_lib_core/mac2/bridge.rb +25 -0
  27. data/lib/appium_lib_core/mac2/device.rb +92 -0
  28. data/lib/appium_lib_core/mac2/device/screen.rb +48 -0
  29. data/lib/appium_lib_core/patch.rb +53 -0
  30. data/lib/appium_lib_core/version.rb +2 -2
  31. data/lib/appium_lib_core/windows/device.rb +2 -2
  32. data/release_notes.md +40 -0
  33. data/script/commands.rb +3 -3
  34. metadata +10 -4
@@ -27,6 +27,8 @@ module Appium
27
27
  autoload :Xcuitest, 'appium_lib_core/ios_xcuitest'
28
28
  end
29
29
 
30
+ autoload :Mac2, 'appium_lib_core/mac2'
31
+
30
32
  autoload :Windows, 'appium_lib_core/windows'
31
33
 
32
34
  # This options affects only client side as <code>:appium_lib</code> key.<br>
@@ -45,7 +47,7 @@ module Appium
45
47
  @export_session = appium_lib_opts.fetch :export_session, false
46
48
  @export_session_path = appium_lib_opts.fetch :export_session_path, default_tmp_appium_lib_session
47
49
 
48
- @direct_connect = appium_lib_opts.fetch :direct_connect, false
50
+ @direct_connect = appium_lib_opts.fetch :direct_connect, true
49
51
 
50
52
  @port = appium_lib_opts.fetch :port, Driver::DEFAULT_APPIUM_PORT
51
53
 
@@ -175,7 +177,7 @@ module Appium
175
177
  # - <code>directConnectPort</code>
176
178
  # - <code>directConnectPath</code>
177
179
  #
178
- # Ignore them if this parameter is <code>false</code>. Defaults to false.
180
+ # Ignore them if this parameter is <code>false</code>. Defaults to true.
179
181
  #
180
182
  # @return [Bool]
181
183
  attr_reader :direct_connect
@@ -526,7 +528,7 @@ module Appium
526
528
  when :gecko
527
529
  ::Appium::Logger.debug('Gecko Driver for macOS')
528
530
  when :mac2
529
- ::Appium::Logger.debug('macOS XCUITest')
531
+ ::Appium::Core::Mac2::Bridge.for self
530
532
  else
531
533
  # no Mac specific extentions
532
534
  ::Appium::Logger.debug('macOS Native')
@@ -23,7 +23,7 @@ module Appium
23
23
  module Device
24
24
  extend Forwardable
25
25
 
26
- # rubocop:disable Metrics/LineLength
26
+ # rubocop:disable Layout/LineLength
27
27
 
28
28
  # @!method hide_keyboard(close_key = nil, strategy = nil)
29
29
  # Hide the onscreen keyboard
@@ -171,7 +171,7 @@ module Appium
171
171
  # @driver.battery_info #=> { state: :full, level: 0.7 }
172
172
  #
173
173
 
174
- # rubocop:enable Metrics/LineLength
174
+ # rubocop:enable Layout/LineLength
175
175
 
176
176
  ####
177
177
  ## class << self
@@ -0,0 +1,17 @@
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
+ # loaded in common/driver.rb
16
+ require_relative 'mac2/device'
17
+ require_relative 'mac2/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 Mac2
18
+ module Bridge
19
+ def self.for(target)
20
+ target.extend Appium::Core::Mac2::Device
21
+ end
22
+ end
23
+ end
24
+ end
25
+ end
@@ -0,0 +1,92 @@
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 Mac2
20
+ module Device
21
+ extend Forwardable
22
+
23
+ # rubocop:disable Layout/LineLength
24
+
25
+ # @since Appium 1.20.0
26
+ # @!method start_recording_screen(remote_path: nil, user: nil, pass: nil, method: 'PUT', file_field_name: nil, form_fields: nil, headers: nil, force_restart: nil, fps: nil, preset: nil, video_filter: nil, enable_capture_clicks: nil, enable_cursor_capture: nil, device_id: nil)
27
+ #
28
+ # Record the display of devices running iOS Simulator since Xcode 9 or real devices since iOS 11
29
+ # (ffmpeg utility is required: 'brew install ffmpeg').
30
+ # We would recommend to play the video by VLC or Mplayer if you can not play the video with other video players.
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 [String] file_field_name The name of the form field containing the binary payload in multipart/form-data
44
+ # requests since Appium 1.18.0. Defaults to 'file'.
45
+ # @param [Array<Hash, Array<String>>] form_fields The form fields mapping in multipart/form-data requests since Appium 1.18.0.
46
+ # If any entry has the same key in this mapping, then it is going to be ignored.
47
+ # @param [Hash] headers The additional headers in multipart/form-data requests since Appium 1.18.0.
48
+ # @param [Boolean] force_restart Whether to try to catch and upload/return the currently running screen recording
49
+ # (+false+, the default setting on server) or ignore the result of it
50
+ # and start a new recording immediately (+true+).
51
+ # @param [integer] fps The count of frames per second in the resulting video.
52
+ # Increasing fps value also increases the size of the resulting video file and the CPU usage.
53
+ # The default value is 15.
54
+ # @param [String] preset A preset is a collection of options that will provide a certain encoding speed to compression ratio.
55
+ # A slower preset will provide better compression (compression is quality per filesize).
56
+ # This means that, for example, if you target a certain file size or constant bit rate, you will
57
+ # achieve better quality with a slower preset. Read https://trac.ffmpeg.org/wiki/Encode/H.264
58
+ # for more details.
59
+ # @param [Boolean] enable_cursor_capture Whether to capture the click gestures while recording the screen. Disabled by default.
60
+ # @param [Boolean] enable_capture_clicks Recording time. 180 seconds is by default.
61
+ # @param [String] video_filter The video filter spec to apply for ffmpeg.
62
+ # See https://trac.ffmpeg.org/wiki/FilteringGuide for more details on the possible values.
63
+ # Example: Set it to +scale=ifnot(gte(iw\,1024)\,iw\,1024):-2+ in order to limit the video width
64
+ # to 1024px. The height will be adjusted automatically to match the actual screen aspect ratio.
65
+ # @param [integer] device_id Screen device index to use for the recording.
66
+ # The list of available devices could be retrieved using
67
+ # +ffmpeg -f avfoundation -list_devices true -i ""+ command.
68
+ # This option is mandatory and must be always provided.
69
+ # @param [String] time_limit The maximum recording time. The default value is 600 seconds (10 minutes).
70
+ # The minimum time resolution unit is one second.
71
+ #
72
+ # @example
73
+ #
74
+ # @driver.start_recording_screen
75
+ # @driver.start_recording_screen fps: 30, enable_cursor_capture: true
76
+ #
77
+
78
+ # rubocop:enable Layout/LineLength
79
+
80
+ ####
81
+ ## class << self
82
+ ####
83
+
84
+ class << self
85
+ def extended(_mod)
86
+ Screen.add_methods
87
+ end
88
+ end # class << self
89
+ end # module Device
90
+ end # module Mac2
91
+ end # module Core
92
+ 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 Mac2
18
+ module Device
19
+ module Screen
20
+ def self.add_methods
21
+ ::Appium::Core::Device.add_endpoint_method(:start_recording_screen) do
22
+ def start_recording_screen(remote_path: nil, user: nil, pass: nil, method: 'PUT',
23
+ file_field_name: nil, form_fields: nil, headers: nil, force_restart: nil,
24
+ fps: nil, preset: nil, video_filter: nil, time_limit: nil,
25
+ enable_capture_clicks: nil, enable_cursor_capture: nil, device_id: nil)
26
+ option = ::Appium::Core::Base::Device::ScreenRecord.new(
27
+ remote_path: remote_path, user: user, pass: pass, method: method,
28
+ file_field_name: file_field_name, form_fields: form_fields, headers: headers,
29
+ force_restart: force_restart
30
+ ).upload_option
31
+
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] = enable_capture_clicks unless enable_capture_clicks.nil?
36
+ option[:captureCursor] = enable_cursor_capture unless enable_cursor_capture.nil?
37
+ option[:deviceId] = device_id unless device_id.nil?
38
+ option[:timeLimit] = time_limit unless time_limit.nil?
39
+
40
+ execute(:start_recording_screen, {}, { options: option })
41
+ end
42
+ end
43
+ end
44
+ end # module Screen
45
+ end # module Device
46
+ end # module Mac2
47
+ end # module Core
48
+ end # module Appium
@@ -21,6 +21,9 @@ module Appium
21
21
  # To extend Appium related SearchContext into ::Selenium::WebDriver::Element
22
22
  include ::Appium::Core::Base::SearchContext
23
23
 
24
+ # TODO: Probably can remove own TakesScreenshot since Selenium 4
25
+ include ::Appium::Core::Base::TakesScreenshot
26
+
24
27
  # Returns the value of attributes like below. Read each platform to know more details.
25
28
  #
26
29
  # uiautomator2: https://github.com/appium/appium-uiautomator2-server/blob/203cc7e57ce477f3cff5d95b135d1b3450a6033a/app/src/main/java/io/appium/uiautomator2/utils/Attribute.java#L19
@@ -99,6 +102,56 @@ module Appium
99
102
  w = driver.window_size
100
103
  ::Selenium::WebDriver::Point.new "#{center_x} / #{w.width.to_f}", "#{center_y} / #{w.height.to_f}"
101
104
  end
105
+
106
+ # Return an element screenshot as base64
107
+ #
108
+ # @return String Base 64 encoded string
109
+ #
110
+ # @example
111
+ #
112
+ # element.screenshot #=> "iVBORw0KGgoAAAANSUhEUgAABDgAAAB+CAIAAABOPDa6AAAAAX"
113
+ #
114
+ def screenshot
115
+ bridge.take_element_screenshot(self)
116
+ end
117
+
118
+ # Return an element screenshot in the given format
119
+ #
120
+ # @param [:base64, :png] format
121
+ # @return String screenshot
122
+ #
123
+ # @example
124
+ #
125
+ # element.screenshot_as :base64 #=> "iVBORw0KGgoAAAANSUhEUgAABDgAAAB+CAIAAABOPDa6AAAAAX"
126
+ #
127
+ def screenshot_as(format)
128
+ case format
129
+ when :base64
130
+ bridge.take_element_screenshot(self)
131
+ when :png
132
+ bridge.take_element_screenshot(self).unpack('m')[0]
133
+ else
134
+ raise Core::Error::UnsupportedOperationError, "unsupported format: #{format.inspect}"
135
+ end
136
+ end
137
+
138
+ # Save an element screenshot to the given path
139
+ #
140
+ # @param [String] png_path A path to save the screenshot
141
+ # @return [File] Path to the element screenshot.
142
+ #
143
+ # @example
144
+ #
145
+ # element.save_screenshot("fine_name.png")
146
+ #
147
+ def save_screenshot(png_path)
148
+ extension = File.extname(png_path).downcase
149
+ if extension != '.png'
150
+ ::Appium::Logger.warn 'name used for saved screenshot does not match file type. '\
151
+ 'It should end with .png extension'
152
+ end
153
+ File.open(png_path, 'wb') { |f| f << screenshot_as(:png) }
154
+ end
102
155
  end
103
156
  end # module Core
104
157
  end # module Appium
@@ -14,7 +14,7 @@
14
14
 
15
15
  module Appium
16
16
  module Core
17
- VERSION = '4.0.0' unless defined? ::Appium::Core::VERSION
18
- DATE = '2020-12-19' unless defined? ::Appium::Core::DATE
17
+ VERSION = '4.3.0' unless defined? ::Appium::Core::VERSION
18
+ DATE = '2021-02-05' unless defined? ::Appium::Core::DATE
19
19
  end
20
20
  end
@@ -20,7 +20,7 @@ module Appium
20
20
  module Device
21
21
  extend Forwardable
22
22
 
23
- # rubocop:disable Metrics/LineLength
23
+ # rubocop:disable Layout/LineLength
24
24
 
25
25
  # @since Appium 1.18.0
26
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)
@@ -69,7 +69,7 @@ module Appium
69
69
  # @driver.start_recording_screen capture_cursor: true, capture_clicks: true, time_limit: '260'
70
70
  #
71
71
 
72
- # rubocop:enable Metrics/LineLength
72
+ # rubocop:enable Layout/LineLength
73
73
 
74
74
  ####
75
75
  ## class << self
data/release_notes.md CHANGED
@@ -1,3 +1,43 @@
1
+ #### v4.3.0 2021-02-05
2
+
3
+ - [6e85426](https://github.com/appium/ruby_lib_core/commit/6e85426c1ff8f3e4b90d3da5305d493500539467) Release 4.3.0
4
+ - [405b3d8](https://github.com/appium/ruby_lib_core/commit/405b3d8e627323376dbf74a4423d0ebce5ca0cad) feat: Add mac2 module and screen recording option (#308)
5
+ - [876d254](https://github.com/appium/ruby_lib_core/commit/876d25494c76c31ad5c26900d6e30e30ecd8d20c) chore: teak types in yardoc (#307)
6
+ - [7548ea9](https://github.com/appium/ruby_lib_core/commit/7548ea9cb7e031a3689a63e75d32da82d317488a) test: add wait
7
+ - [9d6fef4](https://github.com/appium/ruby_lib_core/commit/9d6fef469fad8bccf61ee6565f2e30095f4e2a6a) feat: makes direct_connect true by default (#303)
8
+ - [761067e](https://github.com/appium/ruby_lib_core/commit/761067e5c42cfb3e4c1e5c5a377dbeb3c903eb7b) test: add location test (#302)
9
+ - [bd33397](https://github.com/appium/ruby_lib_core/commit/bd3339791552d2eb5181ca4475c9ebc90644a456) chore(deps-dev): update rubocop requirement from = 1.8.0 to = 1.8.1 (#301)
10
+
11
+
12
+ #### v4.2.1 2021-01-10
13
+
14
+ - [23e944e](https://github.com/appium/ruby_lib_core/commit/23e944ed72c6ea861532f5acc1381af4441705e6) Release 4.2.1
15
+ - [1a416b1](https://github.com/appium/ruby_lib_core/commit/1a416b136beb2b9115d3eb6637b22817f0e55601) chore: move rotable for w3c (#300)
16
+ - [95821c6](https://github.com/appium/ruby_lib_core/commit/95821c6f1a4ebc785e2dc3e6e16c1705521237e8) ci: bump android app (#299)
17
+ - [4e1770e](https://github.com/appium/ruby_lib_core/commit/4e1770e3b9d6995b1d5430b9033097609edca1c8) chore(deps-dev): update rubocop requirement from = 1.7.0 to = 1.8.0 (#298)
18
+ - [b230512](https://github.com/appium/ruby_lib_core/commit/b230512c52875ea70545d3d2262c306640f87f7d) chore: fix rubocop
19
+
20
+
21
+ #### v4.2.0 2021-01-02
22
+
23
+ - [e55b2b6](https://github.com/appium/ruby_lib_core/commit/e55b2b6f7fe293091be0d3835075e66c74f3b9dd) Release 4.2.0
24
+ - [b0cd235](https://github.com/appium/ruby_lib_core/commit/b0cd235a7fb6e5a8957871650bf86962cf0e0368) feat: append screenshot in element module as well (#297)
25
+
26
+
27
+ #### v4.1.1 2020-12-25
28
+
29
+ - [3a4cf56](https://github.com/appium/ruby_lib_core/commit/3a4cf56c73a64fb10ca0b7fecc5800719838095c) Release 4.1.1
30
+ - [6b2d7dd](https://github.com/appium/ruby_lib_core/commit/6b2d7ddf027b5a9f49cbe9a7f5622eb345e2c076) fix: keyword argument in Ruby 3
31
+
32
+
33
+ #### v4.1.0 2020-12-25
34
+
35
+ - [89110a9](https://github.com/appium/ruby_lib_core/commit/89110a995b869471a134f8c45ebe8dfbaabfba63) Release 4.1.0
36
+ - [c833315](https://github.com/appium/ruby_lib_core/commit/c83331560738c0a656509516fc5f610855d5dfed) chore(deps-dev): update rubocop requirement from = 1.6.1 to = 1.7.0 (#294)
37
+ - [83d57aa](https://github.com/appium/ruby_lib_core/commit/83d57aa3ad7fd100c081ecc21ab0d5c5d40bf95f) feat: support Ruby 3 (#295)
38
+ - [e13c58f](https://github.com/appium/ruby_lib_core/commit/e13c58fe4355dcb2631f0a42248d991165f428f7) feat: bump rubocop (#293)
39
+
40
+
1
41
  #### v4.0.0 2020-12-19
2
42
 
3
43
  - [66e2306](https://github.com/appium/ruby_lib_core/commit/66e23069722d5ccd9ca10f5a1bdf2733cb249a2c) Release 4.0.0
data/script/commands.rb CHANGED
@@ -17,9 +17,9 @@ require './lib/appium_lib_core'
17
17
 
18
18
  module Script
19
19
  class CommandsChecker
20
- attr_reader :spec_commands
21
- attr_reader :implemented_mjsonwp_commands, :implemented_w3c_commands, :implemented_core_commands
22
- attr_reader :webdriver_oss_commands, :webdriver_w3c_commands
20
+ attr_reader :spec_commands,
21
+ :implemented_mjsonwp_commands, :implemented_w3c_commands, :implemented_core_commands,
22
+ :webdriver_oss_commands, :webdriver_w3c_commands
23
23
 
24
24
  # Set commands implemented in this core library.
25
25
  #
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: 4.0.0
4
+ version: 4.3.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-12-19 00:00:00.000000000 Z
11
+ date: 2021-02-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: selenium-webdriver
@@ -134,14 +134,14 @@ dependencies:
134
134
  requirements:
135
135
  - - '='
136
136
  - !ruby/object:Gem::Version
137
- version: 0.68.1
137
+ version: 1.8.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.68.1
144
+ version: 1.8.1
145
145
  - !ruby/object:Gem::Dependency
146
146
  name: appium_thor
147
147
  requirement: !ruby/object:Gem::Requirement
@@ -268,6 +268,7 @@ files:
268
268
  - lib/appium_lib_core/common/base/driver.rb
269
269
  - lib/appium_lib_core/common/base/http_default.rb
270
270
  - lib/appium_lib_core/common/base/platform.rb
271
+ - lib/appium_lib_core/common/base/rotable.rb
271
272
  - lib/appium_lib_core/common/base/screenshot.rb
272
273
  - lib/appium_lib_core/common/base/search_context.rb
273
274
  - lib/appium_lib_core/common/command.rb
@@ -287,6 +288,7 @@ files:
287
288
  - lib/appium_lib_core/common/device/ime_actions.rb
288
289
  - lib/appium_lib_core/common/device/keyboard.rb
289
290
  - lib/appium_lib_core/common/device/keyevent.rb
291
+ - lib/appium_lib_core/common/device/orientation.rb
290
292
  - lib/appium_lib_core/common/device/screen_record.rb
291
293
  - lib/appium_lib_core/common/device/setting.rb
292
294
  - lib/appium_lib_core/common/device/touch_actions.rb
@@ -313,6 +315,10 @@ files:
313
315
  - lib/appium_lib_core/ios/xcuitest/device/performance.rb
314
316
  - lib/appium_lib_core/ios/xcuitest/device/screen.rb
315
317
  - lib/appium_lib_core/ios_xcuitest.rb
318
+ - lib/appium_lib_core/mac2.rb
319
+ - lib/appium_lib_core/mac2/bridge.rb
320
+ - lib/appium_lib_core/mac2/device.rb
321
+ - lib/appium_lib_core/mac2/device/screen.rb
316
322
  - lib/appium_lib_core/patch.rb
317
323
  - lib/appium_lib_core/version.rb
318
324
  - lib/appium_lib_core/windows.rb