appium_lib_core 1.3.7 → 1.3.8

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 1fe97b2fae19a2cc555f36251b4d5145e569822a
4
- data.tar.gz: f82a79867dc8f6c80c33377e70c74001726c3cbd
3
+ metadata.gz: ac826aa2f98ead54a80272abc7fb36447e3a327b
4
+ data.tar.gz: a818a3ac3ffd0ed8c398da5c28c5cf65d9efa298
5
5
  SHA512:
6
- metadata.gz: 4b38fb749db17091c7aadb89545bee2fe25bca6bd4f7e619ae69575c43a501071618ecafda0977473ffd2703ddd56f675172962203e42ba34b265a85b899dc8b
7
- data.tar.gz: 052f69ee754a7167880b79c90544491036f7a75901a93d2f71bb69e8ea1875eeadacf92fc0a3f52630bd4a0013f223c9e20becd2cb2dd7a64b522618ae6cc604
6
+ metadata.gz: ab9ce470ee4053c5a22369b943ded09ac5f4b5671ae114736317730ca1a042eab6b87b1df77a8e53efb5328dba8101400a21b34872d3d1140624ad28f46208f1
7
+ data.tar.gz: abd00234f100e065759513a4b9ac1133f610bb09920e13b2826ee83b3940077d1a9db7a5a64135ea85e8a3c75cd7591bbf1678f5887a737a0633f770cf3022e1
data/CHANGELOG.md CHANGED
@@ -1,7 +1,6 @@
1
1
  # Changelog
2
2
  All notable changes to this project will be documented in this file.
3
3
 
4
-
5
4
  ## [Unreleased]
6
5
  ### Enhancements
7
6
 
@@ -9,6 +8,14 @@ All notable changes to this project will be documented in this file.
9
8
 
10
9
  ### Deprecations
11
10
 
11
+ ## [1.3.8] - 2018-04-12
12
+ ### Enhancements
13
+ - Make no-argument commands friendly for IDE
14
+
15
+ ### Bug fixes
16
+
17
+ ### Deprecations
18
+
12
19
  ## [1.3.7] - 2018-04-02
13
20
  ### Enhancements
14
21
  - Only for `ruby_lib_core` internal process
@@ -8,6 +8,106 @@ module Appium
8
8
 
9
9
  # rubocop:disable Metrics/LineLength
10
10
 
11
+ # @!method open_notifications
12
+ # Open Android notifications
13
+ #
14
+ # @example
15
+ #
16
+ # @driver.open_notifications
17
+ #
18
+
19
+ # @!method current_activity
20
+ # Get current activity name
21
+ # @return [String] An activity name
22
+ #
23
+ # @example
24
+ #
25
+ # @driver.current_activity # '.ApiDemos'
26
+ #
27
+
28
+ # @!method current_package
29
+ # Get current package name
30
+ # @return [String] A package name
31
+ #
32
+ # @example
33
+ #
34
+ # @driver.current_package # 'com.example.android.apis'
35
+ #
36
+
37
+ # @!method get_system_bars
38
+ # Get system bar's information
39
+ # @return [String]
40
+ #
41
+ # @example
42
+ #
43
+ # @driver.get_system_bars
44
+ #
45
+
46
+ # @!method get_display_density
47
+ # Get connected device's density.
48
+ # @return [Integer] The size of density
49
+ #
50
+ # @example
51
+ #
52
+ # @driver.get_display_density # 320
53
+ #
54
+
55
+ # @!method is_keyboard_shown
56
+ # Get whether keyboard is displayed or not.
57
+ # @return [Boolean] Return true if keyboard is shown. Return false if keyboard is hidden.
58
+ #
59
+ # @example
60
+ # @driver.is_keyboard_shown # false
61
+ #
62
+
63
+ # @!method get_network_connection
64
+ # Get the device network connection current status
65
+ # See set_network_connection method for return value
66
+ #
67
+ # @example
68
+ #
69
+ # @driver.network_connection_type #=> 6
70
+ # @driver.get_network_connection #=> 6
71
+ #
72
+
73
+ # @!method toggle_wifi
74
+ # Switch the state of the wifi service only for Android
75
+ #
76
+ # @return [String]
77
+ #
78
+ # @example
79
+ #
80
+ # @driver.toggle_wifi
81
+ #
82
+
83
+ # @!method toggle_data
84
+ # Switch the state of data service only for Android, and the device should be rooted
85
+ #
86
+ # @return [String]
87
+ #
88
+ # @example
89
+ #
90
+ # @driver.toggle_data
91
+ #
92
+
93
+ # @!method toggle_location_services
94
+ # Switch the state of the location service
95
+ #
96
+ # @return [String]
97
+ #
98
+ # @example
99
+ #
100
+ # @driver.toggle_location_services
101
+ #
102
+
103
+ # @!method toggle_airplane_mode
104
+ # Toggle flight mode on or off
105
+ #
106
+ # @example
107
+ #
108
+ # @driver.toggle_airplane_mode
109
+ #
110
+
11
111
  # @!method hide_keyboard(close_key = nil, strategy = nil)
12
112
  # Hide the onscreen keyboard
13
113
  # @param [String] close_key The name of the key which closes the keyboard.
@@ -149,7 +249,79 @@ module Appium
149
249
  def extended(_mod)
150
250
  Appium::Core::Device.extend_webdriver_with_forwardable
151
251
 
152
- # Android
252
+ Appium::Core::Device.add_endpoint_method(:open_notifications) do
253
+ def open_notifications
254
+ execute :open_notifications
255
+ end
256
+ end
257
+
258
+ Appium::Core::Device.add_endpoint_method(:toggle_airplane_mode) do
259
+ def toggle_airplane_mode
260
+ execute :toggle_airplane_mode
261
+ end
262
+ alias_method :toggle_flight_mode, :toggle_airplane_mode
263
+ end
264
+
265
+ Appium::Core::Device.add_endpoint_method(:current_activity) do
266
+ def current_activity
267
+ execute :current_activity
268
+ end
269
+ end
270
+
271
+ Appium::Core::Device.add_endpoint_method(:current_package) do
272
+ def current_package
273
+ execute :current_package
274
+ end
275
+ end
276
+
277
+ Appium::Core::Device.add_endpoint_method(:get_system_bars) do
278
+ def get_system_bars
279
+ execute :get_system_bars
280
+ end
281
+ end
282
+
283
+ Appium::Core::Device.add_endpoint_method(:get_display_density) do
284
+ def get_display_density
285
+ execute :get_display_density
286
+ end
287
+ end
288
+
289
+ Appium::Core::Device.add_endpoint_method(:is_keyboard_shown) do
290
+ def is_keyboard_shown # rubocop:disable Naming/PredicateName for compatibility
291
+ execute :is_keyboard_shown
292
+ end
293
+ end
294
+
295
+ Appium::Core::Device.add_endpoint_method(:get_network_connection) do
296
+ def get_network_connection
297
+ execute :get_network_connection
298
+ end
299
+ end
300
+
301
+ Appium::Core::Device.add_endpoint_method(:get_performance_data_types) do
302
+ def get_performance_data_types
303
+ execute :get_performance_data_types
304
+ end
305
+ end
306
+
307
+ Appium::Core::Device.add_endpoint_method(:toggle_wifi) do
308
+ def toggle_wifi
309
+ execute :toggle_wifi
310
+ end
311
+ end
312
+
313
+ Appium::Core::Device.add_endpoint_method(:toggle_data) do
314
+ def toggle_data
315
+ execute :toggle_data
316
+ end
317
+ end
318
+
319
+ Appium::Core::Device.add_endpoint_method(:toggle_location_services) do
320
+ def toggle_location_services
321
+ execute :toggle_location_services
322
+ end
323
+ end
324
+
153
325
  Appium::Core::Device.add_endpoint_method(:start_activity) do
154
326
  def start_activity(opts)
155
327
  raise 'opts must be a hash' unless opts.is_a? Hash
@@ -191,6 +363,11 @@ module Appium
191
363
 
192
364
  Appium::Core::Device.add_endpoint_method(:set_network_connection) do
193
365
  def set_network_connection(mode)
366
+ # TODO. Update set_network_connection as well
367
+ # connection_type = {airplane_mode: 1, wifi: 2, data: 4, all: 6, none: 0}
368
+ # raise ArgumentError, 'Invalid connection type' unless type_to_values.keys.include? mode
369
+ # type = connection_type[mode]
370
+ # execute :set_network_connection, {}, type: type
194
371
  execute :set_network_connection, {}, type: mode
195
372
  end
196
373
  end
@@ -95,7 +95,8 @@ module Appium
95
95
  @bridge.get_timeouts
96
96
  end
97
97
 
98
- # Retrieve the capabilities of the specified session
98
+ # Retrieve the capabilities of the specified session.
99
+ # It's almost same as `@driver.capabilities` but you can get more details.
99
100
  #
100
101
  # @return [Selenium::WebDriver::Remote::Capabilities]
101
102
  #
@@ -4,55 +4,41 @@ module Appium
4
4
  module Core
5
5
  # ref: https://github.com/appium/appium-base-driver/blob/master/lib/mjsonwp/routes.js
6
6
  module Commands
7
- COMMAND_NO_ARG = {
8
- # Common
9
- shake: [:post, 'session/:session_id/appium/device/shake'.freeze],
10
- launch_app: [:post, 'session/:session_id/appium/app/launch'.freeze],
11
- close_app: [:post, 'session/:session_id/appium/app/close'.freeze],
12
- reset: [:post, 'session/:session_id/appium/app/reset'.freeze],
13
- device_locked?: [:post, 'session/:session_id/appium/device/is_locked'.freeze],
14
- unlock: [:post, 'session/:session_id/appium/device/unlock'.freeze],
15
- device_time: [:get, 'session/:session_id/appium/device/system_time'.freeze],
16
- current_context: [:get, 'session/:session_id/context'.freeze],
17
-
18
- # Android
19
- open_notifications: [:post, 'session/:session_id/appium/device/open_notifications'.freeze],
20
- toggle_airplane_mode: [:post, 'session/:session_id/appium/device/toggle_airplane_mode'.freeze],
21
- current_activity: [:get, 'session/:session_id/appium/device/current_activity'.freeze],
22
- current_package: [:get, 'session/:session_id/appium/device/current_package'.freeze],
23
- get_system_bars: [:get, 'session/:session_id/appium/device/system_bars'.freeze],
24
- get_display_density: [:get, 'session/:session_id/appium/device/display_density'.freeze],
25
- is_keyboard_shown: [:get, 'session/:session_id/appium/device/is_keyboard_shown'.freeze],
26
- get_network_connection: [:get, 'session/:session_id/network_connection'.freeze], # defined also in OSS
27
- get_performance_data_types: [:post, 'session/:session_id/appium/performanceData/types'.freeze],
28
- toggle_wifi: [:post, 'session/:session_id/appium/device/toggle_wifi'.freeze],
29
- toggle_data: [:post, 'session/:session_id/appium/device/toggle_data'.freeze],
30
- toggle_location_services: [:post, 'session/:session_id/appium/device/toggle_location_services'.freeze]
31
-
32
- # iOS
33
- }.freeze
34
-
35
7
  # Some commands differ for each driver.
36
8
  COMMAND = {
37
9
  # common
38
10
  available_contexts: [:get, 'session/:session_id/contexts'.freeze],
39
11
  set_context: [:post, 'session/:session_id/context'.freeze],
12
+ current_context: [:get, 'session/:session_id/context'.freeze],
13
+
14
+ touch_actions: [:post, 'session/:session_id/touch/perform'.freeze],
15
+ multi_touch: [:post, 'session/:session_id/touch/multi/perform'.freeze],
16
+
17
+ set_immediate_value: [:post, 'session/:session_id/appium/element/:id/value'.freeze],
18
+ replace_value: [:post, 'session/:session_id/appium/element/:id/replace_value'.freeze],
19
+
20
+ launch_app: [:post, 'session/:session_id/appium/app/launch'.freeze],
21
+ close_app: [:post, 'session/:session_id/appium/app/close'.freeze],
22
+ reset: [:post, 'session/:session_id/appium/app/reset'.freeze],
23
+ background_app: [:post, 'session/:session_id/appium/app/background'.freeze],
40
24
  app_strings: [:post, 'session/:session_id/appium/app/strings'.freeze],
25
+
26
+ device_locked?: [:post, 'session/:session_id/appium/device/is_locked'.freeze],
27
+ unlock: [:post, 'session/:session_id/appium/device/unlock'.freeze],
41
28
  lock: [:post, 'session/:session_id/appium/device/lock'.freeze],
29
+ device_time: [:get, 'session/:session_id/appium/device/system_time'.freeze],
42
30
  install_app: [:post, 'session/:session_id/appium/device/install_app'.freeze],
43
31
  remove_app: [:post, 'session/:session_id/appium/device/remove_app'.freeze],
44
32
  app_installed?: [:post, 'session/:session_id/appium/device/app_installed'.freeze],
45
33
  activate_app: [:post, 'session/:session_id/appium/device/activate_app'.freeze],
46
34
  terminate_app: [:post, 'session/:session_id/appium/device/terminate_app'.freeze],
47
35
  app_state: [:post, 'session/:session_id/appium/device/app_state'.freeze],
48
- background_app: [:post, 'session/:session_id/appium/app/background'.freeze],
36
+ shake: [:post, 'session/:session_id/appium/device/shake'.freeze],
49
37
  hide_keyboard: [:post, 'session/:session_id/appium/device/hide_keyboard'.freeze],
50
38
  press_keycode: [:post, 'session/:session_id/appium/device/press_keycode'.freeze],
51
39
  long_press_keycode: [:post, 'session/:session_id/appium/device/long_press_keycode'.freeze],
52
40
  # keyevent is only for Selendroid
53
41
  keyevent: [:post, 'session/:session_id/appium/device/keyevent'.freeze],
54
- set_immediate_value: [:post, 'session/:session_id/appium/element/:id/value'.freeze],
55
- replace_value: [:post, 'session/:session_id/appium/element/:id/replace_value'.freeze],
56
42
  push_file: [:post, 'session/:session_id/appium/device/push_file'.freeze],
57
43
  pull_file: [:post, 'session/:session_id/appium/device/pull_file'.freeze],
58
44
  pull_folder: [:post, 'session/:session_id/appium/device/pull_folder'.freeze],
@@ -60,17 +46,27 @@ module Appium
60
46
  set_clipboard: [:post, 'session/:session_id/appium/device/set_clipboard'.freeze],
61
47
  get_settings: [:get, 'session/:session_id/appium/settings'.freeze],
62
48
  update_settings: [:post, 'session/:session_id/appium/settings'.freeze],
63
- touch_actions: [:post, 'session/:session_id/touch/perform'.freeze],
64
- multi_touch: [:post, 'session/:session_id/touch/multi/perform'.freeze],
65
49
  stop_recording_screen: [:post, 'session/:session_id/appium/stop_recording_screen'.freeze],
66
50
  start_recording_screen: [:post, 'session/:session_id/appium/start_recording_screen'.freeze]
67
51
  }.freeze
68
52
 
69
53
  COMMAND_ANDROID = {
54
+ open_notifications: [:post, 'session/:session_id/appium/device/open_notifications'.freeze],
55
+ toggle_airplane_mode: [:post, 'session/:session_id/appium/device/toggle_airplane_mode'.freeze],
70
56
  start_activity: [:post, 'session/:session_id/appium/device/start_activity'.freeze],
57
+ current_activity: [:get, 'session/:session_id/appium/device/current_activity'.freeze],
58
+ current_package: [:get, 'session/:session_id/appium/device/current_package'.freeze],
59
+ get_system_bars: [:get, 'session/:session_id/appium/device/system_bars'.freeze],
60
+ get_display_density: [:get, 'session/:session_id/appium/device/display_density'.freeze],
61
+ is_keyboard_shown: [:get, 'session/:session_id/appium/device/is_keyboard_shown'.freeze],
62
+ toggle_wifi: [:post, 'session/:session_id/appium/device/toggle_wifi'.freeze],
63
+ toggle_data: [:post, 'session/:session_id/appium/device/toggle_data'.freeze],
64
+ toggle_location_services: [:post, 'session/:session_id/appium/device/toggle_location_services'.freeze],
71
65
  end_coverage: [:post, 'session/:session_id/appium/app/end_test_coverage'.freeze],
72
- set_network_connection: [:post, 'session/:session_id/network_connection'.freeze], # defined also in OSS
66
+ get_performance_data_types: [:post, 'session/:session_id/appium/performanceData/types'.freeze],
73
67
  get_performance_data: [:post, 'session/:session_id/appium/getPerformanceData'.freeze],
68
+ get_network_connection: [:get, 'session/:session_id/network_connection'.freeze], # defined also in OSS
69
+ set_network_connection: [:post, 'session/:session_id/network_connection'.freeze], # defined also in OSS
74
70
 
75
71
  # only emulator
76
72
  send_sms: [:post, 'session/:session_id/appium/device/send_sms'.freeze],
@@ -87,8 +83,7 @@ module Appium
87
83
  toggle_touch_id_enrollment: [:post, 'session/:session_id/appium/simulator/toggle_touch_id_enrollment'.freeze]
88
84
  }.freeze
89
85
 
90
- COMMANDS = {}.merge(COMMAND).merge(COMMAND_ANDROID).merge(COMMAND_IOS)
91
- .merge(COMMAND_NO_ARG).freeze
86
+ COMMANDS = {}.merge(COMMAND).merge(COMMAND_ANDROID).merge(COMMAND_IOS).freeze
92
87
 
93
88
  COMMANDS_EXTEND_MJSONWP = COMMANDS.merge(::Appium::Core::Base::Commands::OSS).merge(
94
89
  {
@@ -11,50 +11,6 @@ module Appium
11
11
  ## No argument
12
12
  ####
13
13
 
14
- # @!method current_activity
15
- # Get current activity name
16
- # @return [String] An activity name
17
- #
18
- # @example
19
- #
20
- # @driver.current_activity # '.ApiDemos'
21
- #
22
-
23
- # @!method current_package
24
- # Get current package name
25
- # @return [String] A package name
26
- #
27
- # @example
28
- #
29
- # @driver.current_package # 'com.example.android.apis'
30
- #
31
-
32
- # @!method get_system_bars
33
- # Get system bar's information
34
- # @return [String]
35
- #
36
- # @example
37
- #
38
- # @driver.get_system_bars
39
- #
40
-
41
- # @!method get_display_density
42
- # Get connected device's density.
43
- # @return [Integer] The size of density
44
- #
45
- # @example
46
- #
47
- # @driver.get_display_density # 320
48
- #
49
-
50
- # @!method is_keyboard_shown
51
- # Get whether keyboard is displayed or not.
52
- # @return [Boolean] Return true if keyboard is shown. Return false if keyboard is hidden.
53
- #
54
- # @example
55
- # @driver.is_keyboard_shown # false
56
- #
57
-
58
14
  # @!method launch_app
59
15
  # Start the simulator and application configured with desired capabilities
60
16
  #
@@ -87,14 +43,6 @@ module Appium
87
43
  # @driver.shake
88
44
  #
89
45
 
90
- # @!method toggle_flight_mode
91
- # Toggle flight mode on or off
92
- #
93
- # @example
94
- #
95
- # @driver.toggle_flight_mode
96
- #
97
-
98
46
  # @!method unlock
99
47
  # Unlock the device
100
48
  #
@@ -111,24 +59,6 @@ module Appium
111
59
  # @driver.device_locked?
112
60
  #
113
61
 
114
- # @!method get_network_connection
115
- # Get the device network connection current status
116
- # See set_network_connection method for return value
117
- #
118
- # @example
119
- #
120
- # @driver.network_connection_type #=> 6
121
- # @driver.get_network_connection #=> 6
122
- #
123
-
124
- # @!method open_notifications
125
- # Open Android notifications
126
- #
127
- # @example
128
- #
129
- # @driver.open_notifications
130
- #
131
-
132
62
  # @!method device_time
133
63
  # Get the time on the device
134
64
  #
@@ -139,36 +69,6 @@ module Appium
139
69
  # @driver.device_time
140
70
  #
141
71
 
142
- # @!method toggle_location_services
143
- # Switch the state of the location service
144
- #
145
- # @return [String]
146
- #
147
- # @example
148
- #
149
- # @driver.toggle_location_services
150
- #
151
-
152
- # @!method toggle_wifi
153
- # Switch the state of the wifi service only for Android
154
- #
155
- # @return [String]
156
- #
157
- # @example
158
- #
159
- # @driver.toggle_wifi
160
- #
161
-
162
- # @!method toggle_data
163
- # Switch the state of data service only for Android, and the device should be rooted
164
- #
165
- # @return [String]
166
- #
167
- # @example
168
- #
169
- # @driver.toggle_data
170
- #
171
-
172
72
  ####
173
73
  ## With arguments
174
74
  ####
@@ -531,40 +431,15 @@ module Appium
531
431
  def extended(_mod)
532
432
  extend_webdriver_with_forwardable
533
433
 
534
- ::Appium::Core::Commands::COMMAND_NO_ARG.each_key do |method|
535
- add_endpoint_method method
536
- end
537
-
538
- add_endpoint_method(:available_contexts) do
539
- def available_contexts
540
- # return empty array instead of nil on failure
541
- execute(:available_contexts, {}) || []
434
+ add_endpoint_method(:shake) do
435
+ def shake
436
+ execute :shake
542
437
  end
543
438
  end
544
439
 
545
- add_endpoint_method(:app_strings) do
546
- def app_strings(language = nil)
547
- opts = language ? { language: language } : {}
548
- execute :app_strings, {}, opts
549
- end
550
- end
551
-
552
- add_endpoint_method(:lock) do
553
- def lock(duration = nil)
554
- opts = duration ? { seconds: duration } : {}
555
- execute :lock, {}, opts
556
- end
557
- end
558
-
559
- add_endpoint_method(:background_app) do
560
- def background_app(duration = 0)
561
- execute :background_app, {}, seconds: duration
562
- end
563
- end
564
-
565
- add_endpoint_method(:set_context) do
566
- def set_context(context = null)
567
- execute :set_context, {}, name: context
440
+ add_endpoint_method(:device_time) do
441
+ def device_time
442
+ execute :device_time
568
443
  end
569
444
  end
570
445
 
@@ -585,7 +460,7 @@ module Appium
585
460
 
586
461
  extension = File.extname(png_path).downcase
587
462
  if extension != '.png'
588
- WebDriver.logger.warn 'name used for saved screenshot does not match file type. '\
463
+ ::Appium::Logger.warn 'name used for saved screenshot does not match file type. '\
589
464
  'It should end with .png extension'
590
465
  end
591
466
  File.open(png_path, 'wb') { |f| f << result.unpack('m')[0] }
@@ -606,27 +481,6 @@ module Appium
606
481
  end
607
482
  end
608
483
 
609
- add_endpoint_method(:push_file) do
610
- def push_file(path, filedata)
611
- encoded_data = Base64.encode64 filedata
612
- execute :push_file, {}, path: path, data: encoded_data
613
- end
614
- end
615
-
616
- add_endpoint_method(:pull_file) do
617
- def pull_file(path)
618
- data = execute :pull_file, {}, path: path
619
- Base64.decode64 data
620
- end
621
- end
622
-
623
- add_endpoint_method(:pull_folder) do
624
- def pull_folder(path)
625
- data = execute :pull_folder, {}, path: path
626
- Base64.decode64 data
627
- end
628
- end
629
-
630
484
  add_endpoint_method(:get_settings) do
631
485
  def get_settings
632
486
  execute :get_settings, {}
@@ -643,7 +497,7 @@ module Appium
643
497
  def save_viewport_screenshot(png_path)
644
498
  extension = File.extname(png_path).downcase
645
499
  if extension != '.png'
646
- WebDriver.logger.warn 'name used for saved screenshot does not match file type. '\
500
+ ::Appium::Logger.warn 'name used for saved screenshot does not match file type. '\
647
501
  'It should end with .png extension'
648
502
  end
649
503
  viewport_screenshot_encode64 = execute_script('mobile: viewportScreenshot')
@@ -657,6 +511,8 @@ module Appium
657
511
  add_handling_context
658
512
  add_screen_recording
659
513
  add_app_management
514
+ add_device_lock
515
+ add_file_management
660
516
  end
661
517
 
662
518
  # def extended
@@ -698,8 +554,89 @@ module Appium
698
554
  end
699
555
  end
700
556
 
557
+ def add_device_lock
558
+ add_endpoint_method(:lock) do
559
+ def lock(duration = nil)
560
+ opts = duration ? { seconds: duration } : {}
561
+ execute :lock, {}, opts
562
+ end
563
+ end
564
+
565
+ add_endpoint_method(:device_locked?) do
566
+ def device_locked?
567
+ execute :device_locked?
568
+ end
569
+ end
570
+
571
+ add_endpoint_method(:unlock) do
572
+ def unlock
573
+ execute :unlock
574
+ end
575
+ end
576
+ end
577
+
578
+ def add_file_management
579
+ add_endpoint_method(:push_file) do
580
+ def push_file(path, filedata)
581
+ encoded_data = Base64.encode64 filedata
582
+ execute :push_file, {}, path: path, data: encoded_data
583
+ end
584
+ end
585
+
586
+ add_endpoint_method(:pull_file) do
587
+ def pull_file(path)
588
+ data = execute :pull_file, {}, path: path
589
+ Base64.decode64 data
590
+ end
591
+ end
592
+
593
+ add_endpoint_method(:pull_folder) do
594
+ def pull_folder(path)
595
+ data = execute :pull_folder, {}, path: path
596
+ Base64.decode64 data
597
+ end
598
+ end
599
+ end
600
+
701
601
  # rubocop:disable Metrics/ParameterLists,Metrics/PerceivedComplexity,Metrics/CyclomaticComplexity
702
602
  def add_app_management
603
+ add_endpoint_method(:launch_app) do
604
+ def launch_app
605
+ execute :launch_app
606
+ end
607
+ end
608
+
609
+ add_endpoint_method(:close_app) do
610
+ def close_app
611
+ execute :close_app
612
+ end
613
+ end
614
+
615
+ add_endpoint_method(:close_app) do
616
+ def close_app
617
+ execute :close_app
618
+ end
619
+ end
620
+
621
+ add_endpoint_method(:reset) do
622
+ def reset
623
+ execute :reset
624
+ end
625
+ end
626
+
627
+ add_endpoint_method(:app_strings) do
628
+ def app_strings(language = nil)
629
+ opts = language ? { language: language } : {}
630
+ execute :app_strings, {}, opts
631
+ end
632
+ end
633
+
634
+ add_endpoint_method(:background_app) do
635
+ def background_app(duration = 0)
636
+ execute :background_app, {}, seconds: duration
637
+ end
638
+ end
639
+
703
640
  add_endpoint_method(:install_app) do
704
641
  def install_app(path,
705
642
  replace: nil,
@@ -774,17 +711,17 @@ module Appium
774
711
 
775
712
  case response
776
713
  when 0
777
- Appium::Core::Device::AppState::NOT_INSTALLED
714
+ ::Appium::Core::Device::AppState::NOT_INSTALLED
778
715
  when 1
779
- Appium::Core::Device::AppState::NOT_RUNNING
716
+ ::Appium::Core::Device::AppState::NOT_RUNNING
780
717
  when 2
781
- Appium::Core::Device::AppState::RUNNING_IN_BACKGROUND_SUSPENDED
718
+ ::Appium::Core::Device::AppState::RUNNING_IN_BACKGROUND_SUSPENDED
782
719
  when 3
783
- Appium::Core::Device::AppState::RUNNING_IN_BACKGROUND
720
+ ::Appium::Core::Device::AppState::RUNNING_IN_BACKGROUND
784
721
  when 4
785
- Appium::Core::Device::AppState::RUNNING_IN_FOREGROUND
722
+ ::Appium::Core::Device::AppState::RUNNING_IN_FOREGROUND
786
723
  else
787
- Appium::Logger.debug("Unexpected status in app_state: #{response}")
724
+ ::Appium::Logger.debug("Unexpected status in app_state: #{response}")
788
725
  response
789
726
  end
790
727
  end
@@ -890,6 +827,25 @@ module Appium
890
827
  set_context nil
891
828
  end
892
829
  end
830
+
831
+ add_endpoint_method(:current_context) do
832
+ def current_context
833
+ execute :current_context
834
+ end
835
+ end
836
+
837
+ add_endpoint_method(:available_contexts) do
838
+ def available_contexts
839
+ # return empty array instead of nil on failure
840
+ execute(:available_contexts, {}) || []
841
+ end
842
+ end
843
+
844
+ add_endpoint_method(:set_context) do
845
+ def set_context(context = null)
846
+ execute :set_context, {}, name: context
847
+ end
848
+ end
893
849
  end
894
850
 
895
851
  def add_screen_recording
@@ -1,6 +1,6 @@
1
1
  module Appium
2
2
  module Core
3
- VERSION = '1.3.7'.freeze unless defined? ::Appium::Core::VERSION
4
- DATE = '2018-04-02'.freeze unless defined? ::Appium::Core::DATE
3
+ VERSION = '1.3.8'.freeze unless defined? ::Appium::Core::VERSION
4
+ DATE = '2018-04-12'.freeze unless defined? ::Appium::Core::DATE
5
5
  end
6
6
  end
data/release_notes.md CHANGED
@@ -1,3 +1,10 @@
1
+ #### v1.3.8 2018-04-13
2
+
3
+ - [f5e1c39](https://github.com/appium/ruby_lib_core/commit/f5e1c39ed07c191c89a491c407d0fc368459367c) Release 1.3.8
4
+ - [53c61d4](https://github.com/appium/ruby_lib_core/commit/53c61d46b25e25ba488bb3e065ddec5ee2e6f83c) get ride of auto method generation to enhance ide support (#72)
5
+ - [f175c44](https://github.com/appium/ruby_lib_core/commit/f175c4494d2f5edf56402116c016044bfb1603d0) append a comment
6
+
7
+
1
8
  #### v1.3.7 2018-04-02
2
9
 
3
10
  - [e658b98](https://github.com/appium/ruby_lib_core/commit/e658b98c82275b431370cf9d3f8db313f5609bed) Release 1.3.7
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: 1.3.7
4
+ version: 1.3.8
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-04-02 00:00:00.000000000 Z
11
+ date: 2018-04-12 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: selenium-webdriver