calabash-cucumber 0.9.151 → 0.9.152
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Rakefile +3 -5
- data/bin/calabash-ios-build.rb +5 -0
- data/calabash-cucumber.gemspec +1 -1
- data/features/step_definitions/calabash_steps.rb +24 -8
- data/lib/calabash-cucumber/core.rb +254 -141
- data/lib/calabash-cucumber/device.rb +6 -2
- data/lib/calabash-cucumber/ios7_operations.rb +76 -0
- data/lib/calabash-cucumber/keyboard_helpers.rb +48 -15
- data/lib/calabash-cucumber/launcher.rb +51 -7
- data/lib/calabash-cucumber/operations.rb +10 -4
- data/lib/calabash-cucumber/resources/pan_ios5_ipad.base64 +199 -0
- data/lib/calabash-cucumber/resources/pan_ios5_iphone.base64 +199 -0
- data/lib/calabash-cucumber/resources/pan_ios6_ipad.base64 +206 -0
- data/lib/calabash-cucumber/resources/pan_ios6_iphone.base64 +206 -0
- data/lib/calabash-cucumber/resources/swipe_left_ios5_iphone.base64 +79 -17
- data/lib/calabash-cucumber/uia.rb +31 -2
- data/lib/calabash-cucumber/version.rb +1 -1
- metadata +9 -4
@@ -10,7 +10,7 @@ module Calabash
|
|
10
10
|
|
11
11
|
GESTALT_IPHONE = 'iPhone'
|
12
12
|
GESTALT_IPAD = 'iPad'
|
13
|
-
GESTALT_IPHONE5 = '
|
13
|
+
GESTALT_IPHONE5 = '4-inch'
|
14
14
|
GESTALT_SIM_SYS = 'x86_64'
|
15
15
|
GESTALT_IPOD = 'iPod'
|
16
16
|
|
@@ -55,7 +55,7 @@ module Calabash
|
|
55
55
|
|
56
56
|
def iphone_5?
|
57
57
|
if simulator?
|
58
|
-
simulator_details.
|
58
|
+
!simulator_details.scan(GESTALT_IPHONE5).empty?
|
59
59
|
else
|
60
60
|
system.split(/[\D]/).delete_if { |x| x.eql?('') }.first.eql?('5')
|
61
61
|
end
|
@@ -72,6 +72,10 @@ module Calabash
|
|
72
72
|
version_hash(ios_version)[:major_version]
|
73
73
|
end
|
74
74
|
|
75
|
+
def ios7?
|
76
|
+
ios_major_version.eql?('7')
|
77
|
+
end
|
78
|
+
|
75
79
|
def ios6?
|
76
80
|
ios_major_version.eql?('6')
|
77
81
|
end
|
@@ -0,0 +1,76 @@
|
|
1
|
+
require 'calabash-cucumber/launcher'
|
2
|
+
require 'calabash-cucumber/uia'
|
3
|
+
|
4
|
+
|
5
|
+
module Calabash
|
6
|
+
module Cucumber
|
7
|
+
module IOS7Operations
|
8
|
+
include Calabash::Cucumber::UIA
|
9
|
+
|
10
|
+
def ios7?
|
11
|
+
launcher = @calabash_launcher || Calabash::Cucumber::Launcher.launcher_if_used
|
12
|
+
ENV['OS']=='ios7' || (launcher && launcher.device.ios7?)
|
13
|
+
end
|
14
|
+
|
15
|
+
def touch_ios7(options)
|
16
|
+
ui_query = options[:query]
|
17
|
+
offset = options[:offset]
|
18
|
+
if ui_query.nil?
|
19
|
+
uia_tap_offset(offset)
|
20
|
+
else
|
21
|
+
el_to_touch = find_or_raise(ui_query)
|
22
|
+
touch(el_to_touch, options)
|
23
|
+
[el_to_touch]
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
def swipe_ios7(options)
|
28
|
+
ui_query = options[:query]
|
29
|
+
offset = options[:offset]
|
30
|
+
if ui_query.nil?
|
31
|
+
uia_swipe_offset(offset, options)
|
32
|
+
else
|
33
|
+
el_to_swipe = find_or_raise(ui_query)
|
34
|
+
offset = point_from(el_to_swipe, options)
|
35
|
+
uia_swipe_offset(offset, options)
|
36
|
+
[el_to_swipe]
|
37
|
+
end
|
38
|
+
end
|
39
|
+
|
40
|
+
def pinch_ios7(in_or_out, options)
|
41
|
+
ui_query = options[:query]
|
42
|
+
offset = options[:offset]
|
43
|
+
duration = options[:duration] || 0.5
|
44
|
+
if ui_query.nil?
|
45
|
+
uia_pinch_offset(in_or_out, offset, {:duration => options[:duration]})
|
46
|
+
else
|
47
|
+
el_to_pinch = find_or_raise(ui_query)
|
48
|
+
offset = point_from(el_to_pinch, options)
|
49
|
+
uia_pinch_offset(in_or_out, offset, duration)
|
50
|
+
[el_to_pinch]
|
51
|
+
end
|
52
|
+
end
|
53
|
+
|
54
|
+
def pan_ios7(from, to, options={})
|
55
|
+
from_result = find_or_raise from
|
56
|
+
to_result = find_or_raise to
|
57
|
+
uia_pan_offset(point_from(from_result, options), point_from(to_result, options), options)
|
58
|
+
[to_result]
|
59
|
+
end
|
60
|
+
|
61
|
+
def rotate_ios7(dir)
|
62
|
+
throw NotImplementedError
|
63
|
+
end
|
64
|
+
|
65
|
+
def find_or_raise(ui_query)
|
66
|
+
results = query(ui_query)
|
67
|
+
if results.empty?
|
68
|
+
screenshot_and_raise "Unable to find element matching query #{ui_query}"
|
69
|
+
else
|
70
|
+
results.first
|
71
|
+
end
|
72
|
+
end
|
73
|
+
|
74
|
+
end
|
75
|
+
end
|
76
|
+
end
|
@@ -14,6 +14,15 @@ module Calabash
|
|
14
14
|
:numbers_and_punctuation_alternate => "numbers-and-punctuation-alternate"
|
15
15
|
}
|
16
16
|
|
17
|
+
|
18
|
+
IOS7_SUPPORTED_CHARS = {
|
19
|
+
'Dictation' => nil,
|
20
|
+
'Shift' => nil,
|
21
|
+
'Delete' => '\b',
|
22
|
+
'International' => nil,
|
23
|
+
'More' => nil,
|
24
|
+
'Return' => '\n'
|
25
|
+
}
|
17
26
|
#Possible values
|
18
27
|
# 'Dictation'
|
19
28
|
# 'Shift'
|
@@ -23,17 +32,31 @@ module Calabash
|
|
23
32
|
# 'Return'
|
24
33
|
def keyboard_enter_char(chr, should_screenshot=true)
|
25
34
|
#map(nil, :keyboard, load_playback_data("touch_done"), chr)
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
if res['outcome'] != 'SUCCESS'
|
30
|
-
msg = "Keyboard enter failed failed because: #{res['reason']}\n#{res['details']}"
|
31
|
-
if should_screenshot
|
32
|
-
screenshot_and_raise msg
|
35
|
+
if ios7?
|
36
|
+
if chr.length == 1
|
37
|
+
uia_type_string chr
|
33
38
|
else
|
34
|
-
|
39
|
+
code = IOS7_SUPPORTED_CHARS[chr]
|
40
|
+
if code
|
41
|
+
uia_type_string code
|
42
|
+
else
|
43
|
+
raise "Char #{chr} is not yet supported in iOS7"
|
44
|
+
end
|
45
|
+
end
|
46
|
+
else
|
47
|
+
res = http({:method => :post, :path => 'keyboard'},
|
48
|
+
{:key => chr, :events => load_playback_data("touch_done")})
|
49
|
+
res = JSON.parse(res)
|
50
|
+
if res['outcome'] != 'SUCCESS'
|
51
|
+
msg = "Keyboard enter failed failed because: #{res['reason']}\n#{res['details']}"
|
52
|
+
if should_screenshot
|
53
|
+
screenshot_and_raise msg
|
54
|
+
else
|
55
|
+
raise msg
|
56
|
+
end
|
35
57
|
end
|
36
58
|
end
|
59
|
+
|
37
60
|
if ENV['POST_ENTER_KEYBOARD']
|
38
61
|
w = ENV['POST_ENTER_KEYBOARD'].to_f
|
39
62
|
if w > 0
|
@@ -44,7 +67,12 @@ module Calabash
|
|
44
67
|
end
|
45
68
|
|
46
69
|
def done
|
47
|
-
|
70
|
+
if ios7?
|
71
|
+
uia_type_string '\n'
|
72
|
+
else
|
73
|
+
keyboard_enter_char "Return"
|
74
|
+
end
|
75
|
+
|
48
76
|
end
|
49
77
|
|
50
78
|
|
@@ -94,14 +122,19 @@ module Calabash
|
|
94
122
|
|
95
123
|
def keyboard_enter_text(text)
|
96
124
|
fail("No visible keyboard") if element_does_not_exist("view:'UIKBKeyplaneView'")
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
125
|
+
if ios7?
|
126
|
+
uia_type_string(text)
|
127
|
+
else
|
128
|
+
text.each_char do |ch|
|
129
|
+
begin
|
130
|
+
keyboard_enter_char(ch, false)
|
131
|
+
rescue
|
132
|
+
search_keyplanes_and_enter_char(ch)
|
133
|
+
end
|
103
134
|
end
|
104
135
|
end
|
136
|
+
|
137
|
+
|
105
138
|
end
|
106
139
|
|
107
140
|
|
@@ -9,8 +9,28 @@ class Calabash::Cucumber::Launcher
|
|
9
9
|
attr_accessor :device_target
|
10
10
|
attr_accessor :device
|
11
11
|
|
12
|
+
class StartError < RuntimeError
|
13
|
+
attr_accessor :error
|
14
|
+
def initialize(err)
|
15
|
+
self.error= err
|
16
|
+
end
|
17
|
+
|
18
|
+
def to_s
|
19
|
+
"#{super.to_s}: #{error}"
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
def self.launcher(device_target=:simulator)
|
24
|
+
@@launcher ||= Launcher.new(device_target)
|
25
|
+
end
|
26
|
+
|
27
|
+
def self.launcher_if_used
|
28
|
+
@@launcher
|
29
|
+
end
|
30
|
+
|
12
31
|
def initialize(device_target=:simulator)
|
13
32
|
self.device_target = device_target
|
33
|
+
@@launcher = self
|
14
34
|
end
|
15
35
|
|
16
36
|
class CalabashLauncherTimeoutErr < Timeout::Error
|
@@ -32,6 +52,18 @@ class Calabash::Cucumber::Launcher
|
|
32
52
|
ENV['DEVICE_TARGET'] == 'simulator'
|
33
53
|
end
|
34
54
|
|
55
|
+
def sdk_version
|
56
|
+
ENV['SDK_VERSION']
|
57
|
+
end
|
58
|
+
|
59
|
+
def reset_between_scenarios?
|
60
|
+
ENV['RESET_BETWEEN_SCENARIOS']=="1"
|
61
|
+
end
|
62
|
+
|
63
|
+
def device_env
|
64
|
+
ENV['DEVICE'] || 'iphone'
|
65
|
+
end
|
66
|
+
|
35
67
|
def active?
|
36
68
|
(simulator_target? || device_target?) && (not run_loop.nil?)
|
37
69
|
end
|
@@ -73,28 +105,40 @@ class Calabash::Cucumber::Launcher
|
|
73
105
|
default_args[:udid] = target
|
74
106
|
end
|
75
107
|
default_args
|
76
|
-
self.run_loop =
|
108
|
+
self.run_loop = new_run_loop(default_args.merge(args))
|
77
109
|
else
|
78
110
|
|
79
|
-
sdk =
|
111
|
+
sdk = sdk_version || SimLauncher::SdkDetector.new().latest_sdk_version
|
80
112
|
path = Calabash::Cucumber::SimulatorHelper.app_bundle_or_raise(app_path)
|
81
|
-
if
|
113
|
+
if reset_between_scenarios?
|
82
114
|
reset_app_jail(sdk, path)
|
83
115
|
end
|
84
116
|
|
85
117
|
if simulator_target?
|
86
|
-
|
87
|
-
|
88
|
-
self.run_loop = RunLoop.run(default_args.merge(args))
|
118
|
+
default_args = {:app => path, :device => device_env.to_sym}
|
119
|
+
self.run_loop = new_run_loop(default_args.merge(args))
|
89
120
|
else
|
90
121
|
## sim launcher
|
91
|
-
Calabash::Cucumber::SimulatorHelper.relaunch(path, sdk,
|
122
|
+
Calabash::Cucumber::SimulatorHelper.relaunch(path, sdk, device_env, args)
|
92
123
|
end
|
93
124
|
|
94
125
|
end
|
95
126
|
ensure_connectivity
|
96
127
|
end
|
97
128
|
|
129
|
+
def new_run_loop(args)
|
130
|
+
last_err = nil
|
131
|
+
3.times do
|
132
|
+
begin
|
133
|
+
return RunLoop.run(args)
|
134
|
+
rescue RunLoop::TimeoutError => e
|
135
|
+
if ENV['CALABASH_FULL_CONSOLE_OUTPUT'] == '1'
|
136
|
+
puts "retrying run loop..."
|
137
|
+
end
|
138
|
+
end
|
139
|
+
end
|
140
|
+
raise StartError.new(last_err)
|
141
|
+
end
|
98
142
|
|
99
143
|
def ensure_connectivity
|
100
144
|
begin
|
@@ -38,7 +38,7 @@ module Calabash
|
|
38
38
|
end
|
39
39
|
|
40
40
|
def home_direction
|
41
|
-
|
41
|
+
device_orientation().to_sym
|
42
42
|
end
|
43
43
|
|
44
44
|
def assert_home_direction(expected)
|
@@ -74,14 +74,20 @@ module Calabash
|
|
74
74
|
|
75
75
|
def set_text(uiquery, txt)
|
76
76
|
unless ENV['CALABASH_NO_DEPRECATION'] == '1'
|
77
|
-
|
78
|
-
|
77
|
+
warn "WARNING: set_text will be deprecated.\n * to enter text using the native keyboard use 'keyboard_enter_text'\n * to clear a text field or text view use 'clear_text'"
|
78
|
+
warn 'https://github.com/calabash/calabash-ios/wiki/03.5-Calabash-iOS-Ruby-API'
|
79
79
|
end
|
80
80
|
text_fields_modified = map(uiquery, :setText, txt)
|
81
81
|
screenshot_and_raise "could not find text field #{uiquery}" if text_fields_modified.empty?
|
82
82
|
text_fields_modified
|
83
83
|
end
|
84
84
|
|
85
|
+
def clear_text(uiquery)
|
86
|
+
views_modified = map(uiquery, :setText, '')
|
87
|
+
screenshot_and_raise "could not find text field #{uiquery}" if views_modified.empty?
|
88
|
+
views_modified
|
89
|
+
end
|
90
|
+
|
85
91
|
|
86
92
|
def set_user_pref(key, val)
|
87
93
|
res = http({:method => :post, :path => 'userprefs'},
|
@@ -105,7 +111,7 @@ module Calabash
|
|
105
111
|
res['results'].first
|
106
112
|
end
|
107
113
|
|
108
|
-
|
114
|
+
# ha! i recognize this code - jjm
|
109
115
|
#not officially supported yet
|
110
116
|
#def change_slider_value_to(q, value)
|
111
117
|
# target = value.to_f
|
@@ -0,0 +1,199 @@
|
|
1
|
+
YnBsaXN0MDCvEDcAAQASABwAJQAuADcAQABJAFIAWwBkAG0AdgB/AIgAkQCaAKMA
|
2
|
+
rAC1AL4AxwDQANkA4gDrAPQA/QEGAQ8BGAEhASoBMwE8AUUBTgFXAWABaQFyAXsB
|
3
|
+
hAGNAZYBnwGoAbEBugHDAcwB1QHeAecB8NUAAgADAAQABQAGAAcACAAJAA4AEVRU
|
4
|
+
aW1lVERhdGFeV2luZG93TG9jYXRpb25YTG9jYXRpb25UVHlwZRMAAAkNWGTduU8Q
|
5
|
+
QAEAAAABAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAICAgAAAIA/AACA
|
6
|
+
PwCAlUMAAAFDAAB3QAAAAADSAAoACwAMAA1RWFFZI0BysAAAAAAAI0BgIAAAAAAA
|
7
|
+
0gAKAAsADwAQI0BysAAAAAAAI0BgIAAAAAAAEQu51QACABMABAAFAAYAFAAVABYA
|
8
|
+
GQARVERhdGETAAAJDWtP7RNPEEACAAAAAQABAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
9
|
+
AAAAAAAAAQACAgIAAACAPwAAgD8AAJVDAAABQwAAAADpfHiW0gAKAAsAFwAYI0By
|
10
|
+
oAAAAAAAI0BgIAAAAAAA0gAKAAsAGgAbI0ByoAAAAAAAI0BgIAAAAAAA1QACABMA
|
11
|
+
BAAFAAYAHQAeAB8AIgAREwAACQ1sTWGbTxBAAgAAAAEAAQAAAAAAAAAAAAAAAAAA
|
12
|
+
AAAAAAAAAAAAAAAAAAEAAgICAAAAgD8AAIA/AICUQwAAAUMAAAAAcCh8ttIACgAL
|
13
|
+
ACAAISNAcpAAAAAAACNAYCAAAAAAANIACgALACMAJCNAcpAAAAAAACNAYCAAAAAA
|
14
|
+
ANUAAgATAAQABQAGACYAJwAoACsAERMAAAkNbUnNLU8QQAIAAAABAAEAAAAAAAAA
|
15
|
+
AAAAAAAAAAAAAAAAAAAAAAAAAAABAAICAgAAAIA/AACAPwAAk0MAAANDAAAAAFqA
|
16
|
+
ttXSAAoACwApACojQHJgAAAAAAAjQGBgAAAAAADSAAoACwAsAC0jQHJgAAAAAAAj
|
17
|
+
QGBgAAAAAADVAAIAEwAEAAUABgAvADAAMQA0ABETAAAJDW5NWDNPEEACAAAAAQAB
|
18
|
+
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
|
171
|
+
wAAAAAAAI0BwgAAAAAAA1QACABMABAAFAAYB6AHpAeoB7QAREwAACQ2iGZwBTxBA
|
172
|
+
AgAAAAEAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAEAAgICAAAAgD8AAIA/
|
173
|
+
AACWQwCAhEMAAAAAdOs1PdIACgALAesB7CNAcsAAAAAAACNAcJAAAAAAANIACgAL
|
174
|
+
Ae4B7yNAcsAAAAAAACNAcJAAAAAAANUAAgATAAQABQAGAfEB8gHzAfYAERMAAAkN
|
175
|
+
sNien08QQAYAAAABAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgABAAICAQAA
|
176
|
+
AIA/AACAPwAAlkMAgIRDAAAAAML4adzSAAoACwH0AfUjQHLAAAAAAAAjQHCQAAAA
|
177
|
+
AADSAAoACwH3AfgjQHLAAAAAAAAjQHCQAAAAAAAACAB5AI4AkwCYAKcAsAC1AL4B
|
178
|
+
AQEKAQwBDgEXASABKQEyATsBPgFTAVgBYQGkAa0BtgG/AcgB0QHaAe8B+AI7AkQC
|
179
|
+
TQJWAl8CaAJxAoYCjwLSAtsC5ALtAvYC/wMIAx0DJgNpA3IDewOEA40DlgOfA7QD
|
180
|
+
vQQABAkEEgQbBCQELQQ2BEsEVASXBKAEqQSyBLsExATNBOIE6wUuBTcFQAVJBVIF
|
181
|
+
WwVkBXkFggXFBc4F1wXgBekF8gX7BhAGGQZcBmUGbgZ3BoAGiQaSBqcGsAbzBvwH
|
182
|
+
BQcOBxcHIAcpBz4HRweKB5MHnAelB64HtwfAB9UH3gghCCoIMwg8CEUITghXCGwI
|
183
|
+
dQi4CMEIygjTCNwI5QjuCQMJDAlPCVgJYQlqCXMJfAmFCZoJownmCe8J+AoBCgoK
|
184
|
+
EwocCjEKOgp9CoYKjwqYCqEKqgqzCsgK0QsUCx0LJgsvCzgLQQtKC18LaAurC7QL
|
185
|
+
vQvGC88L2AvhC/YL/wxCDEsMVAxdDGYMbwx4DI0MlgzZDOIM6wz0DP0NBg0PDSQN
|
186
|
+
LQ1wDXkNgg2LDZQNnQ2mDbsNxA4HDhAOGQ4iDisONA49DlIOWw6eDqcOsA65DsIO
|
187
|
+
yw7UDukO8g81Dz4PRw9QD1kPYg9rD4APiQ/MD9UP3g/nD/AP+RACEBcQIBBjEGwQ
|
188
|
+
dRB+EIcQkBCZEK4QtxD6EQMRDBEVER4RJxEwEUURThGREZoRoxGsEbURvhHHEdwR
|
189
|
+
5RIoEjESOhJDEkwSVRJeEnMSfBK/EsgS0RLaEuMS7BL1EwoTExNWE18TaBNxE3oT
|
190
|
+
gxOME6ETqhPtE/YT/xQIFBEUGhQjFDgUQRSEFI0UlhSfFKgUsRS6FM8U2BUbFSQV
|
191
|
+
LRU2FT8VSBVRFWYVbxWyFbsVxBXNFdYV3xXoFf0WBhZJFlIWWxZkFm0WdhZ/FpQW
|
192
|
+
nRbgFukW8hb7FwQXDRcWFysXNBd3F4AXiReSF5sXpBetF8IXyxgOGBcYIBgpGDIY
|
193
|
+
OxhEGFkYYhilGK4YtxjAGMkY0hjbGPAY+Rk8GUUZThlXGWAZaRlyGYcZkBnTGdwZ
|
194
|
+
5RnuGfcaABoJGh4aJxpqGnMafBqFGo4alxqgGrUavhsBGwobExscGyUbLhs3G0wb
|
195
|
+
VRuYG6EbqhuzG7wbxRvOG+Mb7BwvHDgcQRxKHFMcXBxlHHocgxzGHM8c2BzhHOoc
|
196
|
+
8xz8HREdGh1dHWYdbx14HYEdih2THagdsR30Hf0eBh4PHhgeIR4qHj8eSB6LHpQe
|
197
|
+
nR6mHq8euB7BHtYe3x8iHysfNB89H0YfTx9YH20fdh+5H8Ifyx/UH90f5h/vIAQg
|
198
|
+
DSBQIFkgYiBrIHQgfSCGIJsgpCDnIPAg+SECIQshFAAAAAAAAAICAAAAAAAAAfkA
|
199
|
+
AAAAAAAAAAAAAAAAACEd
|