calabash-cucumber 0.18.2 → 0.19.0.pre1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/bin/calabash-ios +0 -16
- data/bin/calabash-ios-build.rb +0 -86
- data/bin/calabash-ios-helpers.rb +0 -65
- data/bin/calabash-ios-setup.rb +5 -119
- data/bin/calabash-ios-sim.rb +0 -37
- data/bin/frank-calabash +0 -1
- data/doc/calabash-ios-help.txt +0 -8
- data/dylibs/libCalabashDyn.dylib +0 -0
- data/dylibs/libCalabashDynSim.dylib +0 -0
- data/features-skeleton/support/01_launch.rb +3 -4
- data/features/step_definitions/calabash_steps.rb +1 -7
- data/lib/calabash-cucumber.rb +1 -2
- data/lib/calabash-cucumber/actions/instruments_actions.rb +2 -3
- data/lib/calabash-cucumber/core.rb +97 -101
- data/lib/calabash-cucumber/device.rb +5 -118
- data/lib/calabash-cucumber/environment.rb +109 -5
- data/lib/calabash-cucumber/environment_helpers.rb +4 -66
- data/lib/calabash-cucumber/http/http.rb +114 -0
- data/lib/calabash-cucumber/http_helpers.rb +3 -1
- data/lib/calabash-cucumber/ipad_1x_2x.rb +5 -7
- data/lib/calabash-cucumber/keyboard_helpers.rb +0 -44
- data/lib/calabash-cucumber/launcher.rb +425 -808
- data/lib/calabash-cucumber/logging.rb +2 -74
- data/lib/calabash-cucumber/operations.rb +0 -2
- data/lib/calabash-cucumber/rotation_helpers.rb +2 -82
- data/lib/calabash-cucumber/status_bar_helpers.rb +2 -8
- data/lib/calabash-cucumber/store/preferences.rb +2 -1
- data/lib/calabash-cucumber/uia.rb +4 -9
- data/lib/calabash-cucumber/version.rb +2 -2
- data/lib/calabash-cucumber/wait_helpers.rb +0 -2
- data/staticlib/calabash.framework.zip +0 -0
- data/staticlib/libFrankCalabash.a +0 -0
- metadata +13 -143
- data/lib/calabash-cucumber/actions/playback_actions.rb +0 -109
- data/lib/calabash-cucumber/deprecated.rb +0 -34
- data/lib/calabash-cucumber/launch/simulator_helper.rb +0 -62
- data/lib/calabash-cucumber/launch/simulator_launcher.rb +0 -617
- data/lib/calabash-cucumber/playback_helpers.rb +0 -225
- data/lib/calabash-cucumber/resources/cell_swipe_ios4_ipad.base64 +0 -51
- data/lib/calabash-cucumber/resources/cell_swipe_ios4_iphone.base64 +0 -51
- data/lib/calabash-cucumber/resources/cell_swipe_ios5_ipad.base64 +0 -74
- data/lib/calabash-cucumber/resources/cell_swipe_ios5_iphone.base64 +0 -74
- data/lib/calabash-cucumber/resources/double_tap_ios5_ipad.base64 +0 -15
- data/lib/calabash-cucumber/resources/double_tap_ios5_iphone.base64 +0 -15
- data/lib/calabash-cucumber/resources/double_tap_ios6_ipad.base64 +0 -22
- data/lib/calabash-cucumber/resources/double_tap_ios6_iphone.base64 +0 -22
- data/lib/calabash-cucumber/resources/pan_ios5_ipad.base64 +0 -199
- data/lib/calabash-cucumber/resources/pan_ios5_iphone.base64 +0 -199
- data/lib/calabash-cucumber/resources/pan_ios6_ipad.base64 +0 -206
- data/lib/calabash-cucumber/resources/pan_ios6_iphone.base64 +0 -206
- data/lib/calabash-cucumber/resources/pinch_in_ios4_ipad.base64 +0 -104
- data/lib/calabash-cucumber/resources/pinch_in_ios4_iphone.base64 +0 -104
- data/lib/calabash-cucumber/resources/pinch_in_ios5_ipad.base64 +0 -144
- data/lib/calabash-cucumber/resources/pinch_in_ios5_iphone.base64 +0 -144
- data/lib/calabash-cucumber/resources/pinch_in_ios6_ipad.base64 +0 -70
- data/lib/calabash-cucumber/resources/pinch_in_ios6_iphone.base64 +0 -70
- data/lib/calabash-cucumber/resources/pinch_out_ios5_ipad.base64 +0 -207
- data/lib/calabash-cucumber/resources/pinch_out_ios5_iphone.base64 +0 -207
- data/lib/calabash-cucumber/resources/pinch_out_ios6_ipad.base64 +0 -96
- data/lib/calabash-cucumber/resources/pinch_out_ios6_iphone.base64 +0 -96
- data/lib/calabash-cucumber/resources/rotate_left_home_down_ios4_ipad.base64 +0 -2
- data/lib/calabash-cucumber/resources/rotate_left_home_down_ios4_iphone.base64 +0 -2
- data/lib/calabash-cucumber/resources/rotate_left_home_down_ios5_ipad.base64 +0 -2
- data/lib/calabash-cucumber/resources/rotate_left_home_down_ios5_iphone.base64 +0 -2
- data/lib/calabash-cucumber/resources/rotate_left_home_left_ios4_ipad.base64 +0 -2
- data/lib/calabash-cucumber/resources/rotate_left_home_left_ios4_iphone.base64 +0 -2
- data/lib/calabash-cucumber/resources/rotate_left_home_left_ios5_ipad.base64 +0 -2
- data/lib/calabash-cucumber/resources/rotate_left_home_left_ios5_iphone.base64 +0 -2
- data/lib/calabash-cucumber/resources/rotate_left_home_right_ios4_ipad.base64 +0 -2
- data/lib/calabash-cucumber/resources/rotate_left_home_right_ios4_iphone.base64 +0 -2
- data/lib/calabash-cucumber/resources/rotate_left_home_right_ios5_ipad.base64 +0 -2
- data/lib/calabash-cucumber/resources/rotate_left_home_right_ios5_iphone.base64 +0 -2
- data/lib/calabash-cucumber/resources/rotate_left_home_up_ios4_ipad.base64 +0 -2
- data/lib/calabash-cucumber/resources/rotate_left_home_up_ios4_iphone.base64 +0 -2
- data/lib/calabash-cucumber/resources/rotate_left_home_up_ios5_ipad.base64 +0 -2
- data/lib/calabash-cucumber/resources/rotate_left_home_up_ios5_iphone.base64 +0 -2
- data/lib/calabash-cucumber/resources/rotate_right_home_down_ios4_ipad.base64 +0 -2
- data/lib/calabash-cucumber/resources/rotate_right_home_down_ios4_iphone.base64 +0 -2
- data/lib/calabash-cucumber/resources/rotate_right_home_down_ios5_ipad.base64 +0 -2
- data/lib/calabash-cucumber/resources/rotate_right_home_down_ios5_iphone.base64 +0 -2
- data/lib/calabash-cucumber/resources/rotate_right_home_left_ios4_ipad.base64 +0 -2
- data/lib/calabash-cucumber/resources/rotate_right_home_left_ios4_iphone.base64 +0 -2
- data/lib/calabash-cucumber/resources/rotate_right_home_left_ios5_ipad.base64 +0 -2
- data/lib/calabash-cucumber/resources/rotate_right_home_left_ios5_iphone.base64 +0 -2
- data/lib/calabash-cucumber/resources/rotate_right_home_right_ios4_ipad.base64 +0 -2
- data/lib/calabash-cucumber/resources/rotate_right_home_right_ios4_iphone.base64 +0 -2
- data/lib/calabash-cucumber/resources/rotate_right_home_right_ios5_ipad.base64 +0 -2
- data/lib/calabash-cucumber/resources/rotate_right_home_right_ios5_iphone.base64 +0 -2
- data/lib/calabash-cucumber/resources/rotate_right_home_up_ios4_ipad.base64 +0 -2
- data/lib/calabash-cucumber/resources/rotate_right_home_up_ios4_iphone.base64 +0 -2
- data/lib/calabash-cucumber/resources/rotate_right_home_up_ios5_ipad.base64 +0 -2
- data/lib/calabash-cucumber/resources/rotate_right_home_up_ios5_iphone.base64 +0 -2
- data/lib/calabash-cucumber/resources/swipe_down_ios5_ipad.base64 +0 -18
- data/lib/calabash-cucumber/resources/swipe_down_ios5_iphone.base64 +0 -31
- data/lib/calabash-cucumber/resources/swipe_down_ios6_ipad.base64 +0 -25
- data/lib/calabash-cucumber/resources/swipe_down_ios6_iphone.base64 +0 -25
- data/lib/calabash-cucumber/resources/swipe_left_hard_ios4_ipad.base64 +0 -15
- data/lib/calabash-cucumber/resources/swipe_left_hard_ios4_iphone.base64 +0 -15
- data/lib/calabash-cucumber/resources/swipe_left_ios4_ipad.base64 +0 -18
- data/lib/calabash-cucumber/resources/swipe_left_ios4_iphone.base64 +0 -18
- data/lib/calabash-cucumber/resources/swipe_left_ios5_ipad.base64 +0 -17
- data/lib/calabash-cucumber/resources/swipe_left_ios5_iphone.base64 +0 -34
- data/lib/calabash-cucumber/resources/swipe_left_ios6_ipad.base64 +0 -28
- data/lib/calabash-cucumber/resources/swipe_left_ios6_iphone.base64 +0 -28
- data/lib/calabash-cucumber/resources/swipe_right_hard_ios4_ipad.base64 +0 -17
- data/lib/calabash-cucumber/resources/swipe_right_hard_ios4_iphone.base64 +0 -17
- data/lib/calabash-cucumber/resources/swipe_right_ios4_ipad.base64 +0 -13
- data/lib/calabash-cucumber/resources/swipe_right_ios4_iphone.base64 +0 -13
- data/lib/calabash-cucumber/resources/swipe_right_ios5_ipad.base64 +0 -17
- data/lib/calabash-cucumber/resources/swipe_right_ios5_iphone.base64 +0 -17
- data/lib/calabash-cucumber/resources/swipe_right_ios6_ipad.base64 +0 -25
- data/lib/calabash-cucumber/resources/swipe_right_ios6_iphone.base64 +0 -25
- data/lib/calabash-cucumber/resources/swipe_up_ios5_ipad.base64 +0 -34
- data/lib/calabash-cucumber/resources/swipe_up_ios5_iphone.base64 +0 -28
- data/lib/calabash-cucumber/resources/swipe_up_ios6_ipad.base64 +0 -25
- data/lib/calabash-cucumber/resources/swipe_up_ios6_iphone.base64 +0 -25
- data/lib/calabash-cucumber/resources/touch_done_ios4_ipad.base64 +0 -7
- data/lib/calabash-cucumber/resources/touch_done_ios4_iphone.base64 +0 -9
- data/lib/calabash-cucumber/resources/touch_done_ios5_ipad.base64 +0 -7
- data/lib/calabash-cucumber/resources/touch_done_ios5_iphone.base64 +0 -9
- data/lib/calabash-cucumber/resources/touch_hold_ios5_ipad.base64 +0 -9
- data/lib/calabash-cucumber/resources/touch_hold_ios5_iphone.base64 +0 -9
- data/lib/calabash-cucumber/resources/touch_hold_ios6_ipad.base64 +0 -9
- data/lib/calabash-cucumber/resources/touch_hold_ios6_iphone.base64 +0 -9
- data/lib/calabash-cucumber/resources/touch_ios4_ipad.base64 +0 -9
- data/lib/calabash-cucumber/resources/touch_ios4_iphone.base64 +0 -9
- data/lib/calabash-cucumber/resources/touch_ios5_ipad.base64 +0 -9
- data/lib/calabash-cucumber/resources/touch_ios5_iphone.base64 +0 -9
- data/lib/calabash-cucumber/resources/touch_ios7_ipad.base64 +0 -9
- data/lib/calabash-cucumber/resources/touch_ios7_iphone.base64 +0 -9
- data/lib/calabash-cucumber/resources/wheel_down_ios4_ipad.base64 +0 -159
- data/lib/calabash-cucumber/resources/wheel_down_ios4_iphone.base64 +0 -159
- data/lib/calabash-cucumber/resources/wheel_down_ios5_ipad.base64 +0 -156
- data/lib/calabash-cucumber/resources/wheel_down_ios5_iphone.base64 +0 -156
- data/lib/calabash-cucumber/resources/wheel_up_ios4_ipad.base64 +0 -166
- data/lib/calabash-cucumber/resources/wheel_up_ios4_iphone.base64 +0 -166
- data/lib/calabash-cucumber/resources/wheel_up_ios5_ipad.base64 +0 -156
- data/lib/calabash-cucumber/resources/wheel_up_ios5_iphone.base64 +0 -156
- data/lib/calabash-cucumber/utils/logging.rb +0 -111
- data/lib/calabash-cucumber/utils/plist_buddy.rb +0 -45
- data/lib/calabash-cucumber/utils/simulator_accessibility.rb +0 -334
- data/lib/calabash-cucumber/utils/xctools.rb +0 -101
- data/scripts/.irbrc +0 -64
- data/scripts/launch.rb +0 -48
@@ -2,13 +2,117 @@ module Calabash
|
|
2
2
|
module Cucumber
|
3
3
|
module Environment
|
4
4
|
|
5
|
-
|
6
|
-
value = ENV["DEVICE_TARGET"]
|
5
|
+
require "run_loop"
|
7
6
|
|
8
|
-
|
9
|
-
|
10
|
-
|
7
|
+
# @!visibility private
|
8
|
+
DEFAULTS = {
|
9
|
+
# The endpoint of the app under test
|
10
|
+
:aut_endpoint => "http://127.0.0.1:37265/",
|
11
|
+
:http_connection_retries => 10,
|
12
|
+
:http_connection_timeout => 60
|
13
|
+
}
|
14
|
+
|
15
|
+
# @!visibility private
|
16
|
+
def self.xtc?
|
17
|
+
RunLoop::Environment.xtc?
|
18
|
+
end
|
19
|
+
|
20
|
+
# @!visibility private
|
21
|
+
def self.xcode
|
22
|
+
return nil if self.xtc?
|
23
|
+
@@xcode ||= RunLoop::Xcode.new
|
24
|
+
end
|
25
|
+
|
26
|
+
# @!visibility private
|
27
|
+
def self.simctl
|
28
|
+
return nil if self.xtc?
|
29
|
+
@@simctl ||= RunLoop::SimControl.new
|
30
|
+
end
|
31
|
+
|
32
|
+
# @!visibility private
|
33
|
+
def self.instruments
|
34
|
+
return nil if self.xtc?
|
35
|
+
@@instruments ||= RunLoop::Instruments.new
|
36
|
+
end
|
37
|
+
|
38
|
+
# @!visibility private
|
39
|
+
def self.device_endpoint
|
40
|
+
value = RunLoop::Environment.device_endpoint
|
41
|
+
if value
|
11
42
|
value
|
43
|
+
else
|
44
|
+
DEFAULTS[:aut_endpoint]
|
45
|
+
end
|
46
|
+
end
|
47
|
+
|
48
|
+
# @!visibility private
|
49
|
+
def self.http_connection_retries
|
50
|
+
value = ENV["MAX_CONNECT_RETRIES"]
|
51
|
+
if value && value != ""
|
52
|
+
value.to_i
|
53
|
+
else
|
54
|
+
DEFAULTS[:http_connection_retries]
|
55
|
+
end
|
56
|
+
end
|
57
|
+
|
58
|
+
# @!visibility private
|
59
|
+
def self.http_connection_timeout
|
60
|
+
value = ENV["CONNECTION_TIMEOUT"]
|
61
|
+
if value && value != ""
|
62
|
+
value.to_i
|
63
|
+
else
|
64
|
+
DEFAULTS[:http_connection_timeout]
|
65
|
+
end
|
66
|
+
end
|
67
|
+
|
68
|
+
# @!visibility private
|
69
|
+
def self.reset_between_scenarios?
|
70
|
+
ENV["RESET_BETWEEN_SCENARIOS"] == "1"
|
71
|
+
end
|
72
|
+
|
73
|
+
# @!visibility private
|
74
|
+
def self.quit_app_after_scenario?
|
75
|
+
value = ENV["QUIT_APP_AFTER_SCENARIO"]
|
76
|
+
|
77
|
+
if value == "0"
|
78
|
+
false
|
79
|
+
elsif value == "1"
|
80
|
+
true
|
81
|
+
else
|
82
|
+
!self.no_stop?
|
83
|
+
end
|
84
|
+
end
|
85
|
+
|
86
|
+
private
|
87
|
+
|
88
|
+
# @visibility private
|
89
|
+
# @deprecated 0.19.0 - replaced with QUIT_APP_AFTER_SCENARIO
|
90
|
+
#
|
91
|
+
# Silently deprecated. Deprecate in 0.20.0.
|
92
|
+
def self.no_stop?
|
93
|
+
value = ENV["NO_STOP"]
|
94
|
+
if value
|
95
|
+
return_value = value == "1"
|
96
|
+
|
97
|
+
=begin
|
98
|
+
if return_value
|
99
|
+
replacement = "$ QUIT_APP_AFTER_SCENARIO=0"
|
100
|
+
else
|
101
|
+
replacement = "$ QUIT_APP_AFTER_SCENARIO=1"
|
102
|
+
end
|
103
|
+
RunLoop.deprecated("0.19.0",
|
104
|
+
%Q{The 'NO_STOP' env variable has been been replaced with: QUIT_APP_AFTER_SCENARIO
|
105
|
+
|
106
|
+
Please replace NO_STOP with QUIT_APP_AFTER_SCENARIO.
|
107
|
+
|
108
|
+
#{replacement}
|
109
|
+
|
110
|
+
The default behavior is to quit the app after each scenario.
|
111
|
+
})
|
112
|
+
=end
|
113
|
+
return_value
|
114
|
+
else
|
115
|
+
false
|
12
116
|
end
|
13
117
|
end
|
14
118
|
end
|
@@ -1,6 +1,5 @@
|
|
1
1
|
require 'calabash-cucumber/device'
|
2
2
|
require 'calabash-cucumber/launcher'
|
3
|
-
require 'calabash-cucumber/utils/logging'
|
4
3
|
|
5
4
|
module Calabash
|
6
5
|
module Cucumber
|
@@ -13,8 +12,6 @@ module Calabash
|
|
13
12
|
# be set.
|
14
13
|
module EnvironmentHelpers
|
15
14
|
|
16
|
-
include Calabash::Cucumber::Logging
|
17
|
-
|
18
15
|
# Are the uia* methods available?
|
19
16
|
#
|
20
17
|
# @note
|
@@ -133,10 +130,6 @@ module Calabash
|
|
133
130
|
|
134
131
|
# The iOS version on the device under test.
|
135
132
|
#
|
136
|
-
# @note
|
137
|
-
# **WARNING:** The `OS` env variable has been deprecated and should
|
138
|
-
# never be set.
|
139
|
-
#
|
140
133
|
# @raise [RuntimeError] If the server cannot be reached.
|
141
134
|
# @return [RunLoop::Version] The version of the iOS running on the device.
|
142
135
|
def ios_version
|
@@ -160,55 +153,30 @@ module Calabash
|
|
160
153
|
|
161
154
|
# Is the device under test running iOS 5?
|
162
155
|
#
|
163
|
-
# @note
|
164
|
-
# **WARNING:** The `OS` env variable has been deprecated and should
|
165
|
-
# never be set.
|
166
|
-
#
|
167
|
-
# @note
|
168
|
-
# **WARNING:* Setting the `OS` env variable will override the value returned
|
169
|
-
# by querying the device.
|
170
156
|
# @raise [RuntimeError] if the server cannot be reached
|
171
157
|
# @return [Boolean] true if device under test is running iOS 5
|
172
158
|
def ios5?
|
173
|
-
|
159
|
+
_default_device_or_create.ios5?
|
174
160
|
end
|
175
161
|
|
176
162
|
# Is the device under test running iOS 6?
|
177
163
|
#
|
178
|
-
# @note
|
179
|
-
# **WARNING:** The `OS` env variable has been deprecated and should
|
180
|
-
# never be set.
|
181
|
-
#
|
182
|
-
# @note
|
183
|
-
# **WARNING:* Setting the `OS` env variable will override the value returned
|
184
|
-
# by querying the device.
|
185
164
|
# @raise [RuntimeError] if the server cannot be reached
|
186
165
|
# @return [Boolean] true if device under test is running iOS 6
|
187
166
|
def ios6?
|
188
|
-
|
167
|
+
_default_device_or_create.ios6?
|
189
168
|
end
|
190
169
|
|
191
170
|
# Is the device under test running iOS 7?
|
192
171
|
#
|
193
|
-
# @note
|
194
|
-
# **WARNING:** The `OS` env variable has been deprecated and should
|
195
|
-
# never be set.
|
196
|
-
#
|
197
|
-
# @note
|
198
|
-
# **WARNING:* Setting the `OS` env variable will override the value returned
|
199
|
-
# by querying the device.
|
200
172
|
# @raise [RuntimeError] if the server cannot be reached
|
201
173
|
# @return [Boolean] true if device under test is running iOS 7
|
202
174
|
def ios7?
|
203
|
-
|
175
|
+
_default_device_or_create.ios7?
|
204
176
|
end
|
205
177
|
|
206
178
|
# Is the device under test running iOS 8?
|
207
179
|
#
|
208
|
-
# @note
|
209
|
-
# **WARNING:** The `OS` env variable has been deprecated and should
|
210
|
-
# never be set.
|
211
|
-
#
|
212
180
|
# @raise [RuntimeError] if the server cannot be reached
|
213
181
|
# @return [Boolean] true if device under test is running iOS 8
|
214
182
|
def ios8?
|
@@ -217,10 +185,6 @@ module Calabash
|
|
217
185
|
|
218
186
|
# Is the device under test running iOS 9?
|
219
187
|
#
|
220
|
-
# @note
|
221
|
-
# **WARNING:** The `OS` env variable has been deprecated and should
|
222
|
-
# never be set.
|
223
|
-
#
|
224
188
|
# @raise [RuntimeError] if the server cannot be reached
|
225
189
|
# @return [Boolean] true if device under test is running iOS 9
|
226
190
|
def ios9?
|
@@ -237,13 +201,6 @@ module Calabash
|
|
237
201
|
_default_device_or_create.iphone_app_emulated_on_ipad?
|
238
202
|
end
|
239
203
|
|
240
|
-
# @deprecated 0.9.168 replaced with `iphone_4in?`
|
241
|
-
# @see #iphone_4in?
|
242
|
-
def iphone_5?
|
243
|
-
_deprecated('0.9.168', "use 'iphone_4in?' instead", :warn)
|
244
|
-
iphone_4in?
|
245
|
-
end
|
246
|
-
|
247
204
|
private
|
248
205
|
# @!visibility private
|
249
206
|
# Returns the device that is currently being tested against.
|
@@ -256,29 +213,10 @@ module Calabash
|
|
256
213
|
def _default_device_or_create
|
257
214
|
device = default_device
|
258
215
|
if device.nil?
|
259
|
-
device = Calabash::Cucumber::Device.new(nil, server_version
|
216
|
+
device = Calabash::Cucumber::Device.new(nil, server_version)
|
260
217
|
end
|
261
218
|
device
|
262
219
|
end
|
263
|
-
|
264
|
-
# Returns the value of the environmental variable OS.
|
265
|
-
#
|
266
|
-
# @note
|
267
|
-
# The `OS` env has been deprecated for some time. It should never be set.
|
268
|
-
def _OS_ENV
|
269
|
-
ENV['OS']
|
270
|
-
end
|
271
|
-
|
272
|
-
# @!visibility private
|
273
|
-
CANONICAL_IOS_VERSIONS = {:ios5 => 'ios5',
|
274
|
-
:ios6 => 'ios6',
|
275
|
-
:ios7 => 'ios7'}
|
276
|
-
|
277
|
-
|
278
|
-
# Returns the canonical value iOS versions as strings.
|
279
|
-
def _canonical_os_version(key)
|
280
|
-
CANONICAL_IOS_VERSIONS[key]
|
281
|
-
end
|
282
220
|
end
|
283
221
|
end
|
284
222
|
end
|
@@ -0,0 +1,114 @@
|
|
1
|
+
module Calabash
|
2
|
+
module Cucumber
|
3
|
+
|
4
|
+
# Raised when a connection to the embedded server cannot be made.
|
5
|
+
class ServerNotRespondingError < RuntimeError; end
|
6
|
+
|
7
|
+
# @!visibility private
|
8
|
+
class HTTP
|
9
|
+
|
10
|
+
require "json"
|
11
|
+
require "calabash-cucumber/environment"
|
12
|
+
require "run_loop"
|
13
|
+
|
14
|
+
# @!visibility private
|
15
|
+
def self.ping_app
|
16
|
+
endpoint = Calabash::Cucumber::Environment.device_endpoint
|
17
|
+
url = URI.parse(endpoint)
|
18
|
+
|
19
|
+
http = Net::HTTP.new(url.host, url.port)
|
20
|
+
response = http.start do |sess|
|
21
|
+
sess.request(Net::HTTP::Get.new("version"))
|
22
|
+
end
|
23
|
+
|
24
|
+
body = nil
|
25
|
+
success = response.is_a?(Net::HTTPSuccess)
|
26
|
+
if success
|
27
|
+
json = response.body
|
28
|
+
begin
|
29
|
+
body = JSON.parse(json)
|
30
|
+
rescue TypeError, JSON::ParserError => _
|
31
|
+
success = false
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
35
|
+
http.finish if http and http.started?
|
36
|
+
|
37
|
+
return success, body
|
38
|
+
end
|
39
|
+
|
40
|
+
# @!visibility private
|
41
|
+
def self.ensure_connectivity(options={})
|
42
|
+
|
43
|
+
default_options = {
|
44
|
+
:http_connection_retry => Calabash::Cucumber::Environment.http_connection_retries,
|
45
|
+
:http_connection_timeout => Calabash::Cucumber::Environment.http_connection_timeout
|
46
|
+
}
|
47
|
+
|
48
|
+
merged_options = default_options.merge(options)
|
49
|
+
|
50
|
+
max_retry_count = merged_options[:http_connection_retry]
|
51
|
+
timeout = merged_options[:http_connection_timeout]
|
52
|
+
|
53
|
+
start_time = Time.now
|
54
|
+
last_error = nil
|
55
|
+
|
56
|
+
max_retry_count.times do |try|
|
57
|
+
RunLoop.log_debug("Trying to connect to Calabash Server: #{try + 1} of #{max_retry_count}")
|
58
|
+
|
59
|
+
# Subtract the aggregate time we've spent thus far to make sure we're
|
60
|
+
# not exceeding the request timeout across retries.
|
61
|
+
time_diff = start_time + timeout - Time.now
|
62
|
+
|
63
|
+
if time_diff <= 0
|
64
|
+
break
|
65
|
+
end
|
66
|
+
|
67
|
+
begin
|
68
|
+
success, body = self.ping_app
|
69
|
+
return success, body if success
|
70
|
+
rescue => e
|
71
|
+
last_error = e
|
72
|
+
ensure
|
73
|
+
sleep(1)
|
74
|
+
end
|
75
|
+
end
|
76
|
+
|
77
|
+
self.raise_on_no_connectivity(last_error)
|
78
|
+
end
|
79
|
+
|
80
|
+
private
|
81
|
+
|
82
|
+
def self.raise_on_no_connectivity(last_error)
|
83
|
+
if Calabash::Cucumber::Environment.xtc?
|
84
|
+
raise Calabash::Cucumber::ServerNotRespondingError,
|
85
|
+
%Q[Could not connect to the Calabash Server.
|
86
|
+
|
87
|
+
#{last_error}
|
88
|
+
|
89
|
+
Please contact: testcloud-support@xamarin.com
|
90
|
+
]
|
91
|
+
else
|
92
|
+
endpoint = Calabash::Cucumber::Environment.device_endpoint
|
93
|
+
raise Calabash::Cucumber::ServerNotRespondingError,
|
94
|
+
%Q[Could not connect to the Calabash Server @ #{endpoint}.
|
95
|
+
|
96
|
+
See these two guides for help.
|
97
|
+
|
98
|
+
* https://github.com/calabash/calabash-ios/wiki/Testing-on-Physical-Devices
|
99
|
+
* https://github.com/calabash/calabash-ios/wiki/Testing-on-iOS-Simulators
|
100
|
+
|
101
|
+
1. Make sure your application is linked with Calabash.
|
102
|
+
2. Make sure there is not a firewall blocking traffic on #{endpoint}.
|
103
|
+
3. Make sure #{endpoint} is correct.
|
104
|
+
|
105
|
+
If your app is crashing at launch, find a crash report to determine the cause.
|
106
|
+
|
107
|
+
]
|
108
|
+
end
|
109
|
+
|
110
|
+
end
|
111
|
+
end
|
112
|
+
end
|
113
|
+
end
|
114
|
+
|
@@ -6,6 +6,8 @@ module Calabash
|
|
6
6
|
# @!visibility private
|
7
7
|
module HTTPHelpers
|
8
8
|
|
9
|
+
require "calabash-cucumber/environment"
|
10
|
+
|
9
11
|
# @!visibility private
|
10
12
|
CAL_HTTP_RETRY_COUNT=3
|
11
13
|
|
@@ -33,7 +35,7 @@ module Calabash
|
|
33
35
|
|
34
36
|
# @!visibility private
|
35
37
|
def url_for(verb)
|
36
|
-
url = URI.parse(
|
38
|
+
url = URI.parse(Calabash::Cucumber::Environment.device_endpoint)
|
37
39
|
path = url.path
|
38
40
|
if path.end_with? "/"
|
39
41
|
path = "#{path}#{verb}"
|
@@ -206,13 +206,11 @@ module Calabash
|
|
206
206
|
#
|
207
207
|
# @example Here is an example of how to use this function in your `Before` launch hooks.
|
208
208
|
# Before do |scenario|
|
209
|
-
#
|
210
|
-
#
|
211
|
-
#
|
212
|
-
#
|
213
|
-
#
|
214
|
-
# ensure_ipad_emulation_1x
|
215
|
-
# end
|
209
|
+
# launcher = Calabash::Cucumber::Launcher.new
|
210
|
+
# launcher.relaunch
|
211
|
+
# # ensure emulated apps are at 1x
|
212
|
+
# ensure_ipad_emulation_1x
|
213
|
+
#
|
216
214
|
# # do other stuff to prepare the test environment
|
217
215
|
# end
|
218
216
|
#
|
@@ -1,13 +1,10 @@
|
|
1
1
|
require 'calabash-cucumber/core'
|
2
2
|
require 'calabash-cucumber/tests_helpers'
|
3
|
-
require 'calabash-cucumber/playback_helpers'
|
4
3
|
require 'calabash-cucumber/environment_helpers'
|
5
|
-
require 'calabash-cucumber/utils/logging'
|
6
4
|
|
7
5
|
module Calabash
|
8
6
|
module Cucumber
|
9
7
|
|
10
|
-
|
11
8
|
# Raised when there is a problem involving a keyboard mode. There are
|
12
9
|
# three keyboard modes: docked, split, and undocked.
|
13
10
|
#
|
@@ -52,7 +49,6 @@ module Calabash
|
|
52
49
|
module KeyboardHelpers
|
53
50
|
|
54
51
|
include Calabash::Cucumber::TestsHelpers
|
55
|
-
include Calabash::Cucumber::Logging
|
56
52
|
|
57
53
|
# @!visibility private
|
58
54
|
KEYPLANE_NAMES = {
|
@@ -168,13 +164,6 @@ module Calabash
|
|
168
164
|
end
|
169
165
|
end
|
170
166
|
|
171
|
-
# @deprecated 0.9.163 replaced with `wait_for_keyboard`
|
172
|
-
# @see #wait_for_keyboard
|
173
|
-
def await_keyboard
|
174
|
-
_deprecated('0.9.163', "use 'wait_for_keyboard' instead", :warn)
|
175
|
-
wait_for_keyboard
|
176
|
-
end
|
177
|
-
|
178
167
|
# @!visibility private
|
179
168
|
# returns an array of possible ipad keyboard modes
|
180
169
|
def _ipad_keyboard_modes
|
@@ -291,12 +280,6 @@ module Calabash
|
|
291
280
|
# @option opts [Float] :wait_after_char ('POST_ENTER_KEYBOARD' or 0.05)
|
292
281
|
# how long to wait after a character is typed.
|
293
282
|
def keyboard_enter_char(chr, opts={})
|
294
|
-
unless opts.is_a?(Hash)
|
295
|
-
msg = "you should no longer pass a boolean as the second arg; pass {:should_screenshot => '#{opts}'} hash instead"
|
296
|
-
_deprecated('0.9.163', msg, :warn)
|
297
|
-
opts = {:should_screenshot => opts}
|
298
|
-
end
|
299
|
-
|
300
283
|
default_opts = {:should_screenshot => true,
|
301
284
|
# introduce a small wait to avoid skipping characters
|
302
285
|
# keep this as short as possible
|
@@ -450,33 +433,6 @@ module Calabash
|
|
450
433
|
keyboard_enter_char 'Return'
|
451
434
|
end
|
452
435
|
|
453
|
-
# @deprecated 0.10.0 replaced with `tap_keyboard_action_key`
|
454
|
-
# @see #tap_keyboard_action_key
|
455
|
-
#
|
456
|
-
# Touches the keyboard action key.
|
457
|
-
#
|
458
|
-
# The action key depends on the keyboard. Some examples include:
|
459
|
-
#
|
460
|
-
# * Return
|
461
|
-
# * Next
|
462
|
-
# * Go
|
463
|
-
# * Join
|
464
|
-
# * Search
|
465
|
-
#
|
466
|
-
# @note
|
467
|
-
# Not all keyboards have an action key. For example, numeric keyboards
|
468
|
-
# do not have an action key.
|
469
|
-
#
|
470
|
-
# @raise [RuntimeError] if the text cannot be typed.
|
471
|
-
def done
|
472
|
-
_deprecated("0.10.0",
|
473
|
-
%Q{Use tap_keyboard_action_key
|
474
|
-
|
475
|
-
The `done` method will be removed in 0.19.0
|
476
|
-
}, :warn)
|
477
|
-
tap_keyboard_action_key
|
478
|
-
end
|
479
|
-
|
480
436
|
# @!visibility private
|
481
437
|
# Returns the current keyplane.
|
482
438
|
def _current_keyplane
|