briar 0.0.7 → 0.0.8
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 +8 -8
- data/Rakefile +6 -11
- data/bin/briar +58 -0
- data/bin/briar_helpers.rb +28 -2
- data/briar.gemspec +3 -2
- data/features/step_definitions/alerts_and_sheets/action_sheet_steps.rb +10 -4
- data/features/step_definitions/alerts_and_sheets/alert_view_steps.rb +3 -10
- data/features/step_definitions/bars/navbar_steps.rb +1 -9
- data/features/step_definitions/bars/tabbar_steps.rb +2 -4
- data/features/step_definitions/bars/toolbar_steps.rb +2 -11
- data/features/step_definitions/control/button_steps.rb +3 -8
- data/features/step_definitions/control/segmented_control_steps.rb +20 -58
- data/features/step_definitions/email_steps.rb +10 -7
- data/features/step_definitions/keyboard_steps.rb +7 -2
- data/features/step_definitions/picker/date_picker_steps.rb +21 -177
- data/features/step_definitions/table_steps.rb +35 -71
- data/features/step_definitions/text_field_steps.rb +1 -5
- data/features/step_definitions/text_view_steps.rb +2 -2
- data/install-calabash-framework.sh.example +10 -0
- data/lib/briar.rb +31 -5
- data/lib/briar/alerts_and_sheets/action_sheet.rb +99 -0
- data/lib/briar/alerts_and_sheets/alert_view.rb +25 -4
- data/lib/briar/bars/navbar.rb +30 -19
- data/lib/briar/bars/tabbar.rb +7 -4
- data/lib/briar/bars/toolbar.rb +14 -1
- data/lib/briar/briar_core.rb +46 -15
- data/lib/briar/control/button.rb +35 -1
- data/lib/briar/control/segmented_control.rb +69 -8
- data/lib/briar/control/slider.rb +2 -2
- data/lib/briar/cucumber.rb +3 -1
- data/lib/briar/email.rb +19 -13
- data/lib/briar/keyboard.rb +50 -10
- data/lib/briar/label.rb +20 -0
- data/lib/briar/picker/date_picker.rb +88 -584
- data/lib/briar/picker/date_picker_core.rb +293 -0
- data/lib/briar/picker/date_picker_manipulation.rb +255 -0
- data/lib/briar/picker/picker.rb +10 -0
- data/lib/briar/table.rb +261 -93
- data/lib/briar/version.rb +1 -1
- data/spec/spec_helper.rb +0 -2
- metadata +14 -13
- data/lib/briar/gestalt.rb +0 -87
- data/spec/briar/gestalt_spec.rb +0 -66
@@ -10,7 +10,7 @@ end
|
|
10
10
|
Then /^I use the keyboard to enter "([^"]*)"$/ do |text|
|
11
11
|
wait_for_animation
|
12
12
|
should_see_keyboard
|
13
|
-
@text_entered_by_keyboard =
|
13
|
+
@text_entered_by_keyboard = briar_keyboard_enter_text text
|
14
14
|
end
|
15
15
|
|
16
16
|
When /^I touch the done button the keyboard disappears$/ do
|
@@ -30,5 +30,10 @@ Then(/^I turn off spell checking and capitalization$/) do
|
|
30
30
|
end
|
31
31
|
|
32
32
|
Then /^I am done text editing$/ do
|
33
|
-
|
33
|
+
idx = index_of_navbar_button 'done text editing'
|
34
|
+
if idx
|
35
|
+
touch_navbar_item 'done text editing'
|
36
|
+
else
|
37
|
+
touch_button 'done text editing'
|
38
|
+
end
|
34
39
|
end
|
@@ -1,63 +1,24 @@
|
|
1
|
-
#include Briar::Picker::Date
|
2
|
-
|
3
|
-
# steps
|
4
1
|
|
5
2
|
Then /^I change the time on the picker to "([^"]*)"$/ do |target_time|
|
6
|
-
|
7
|
-
if picker_has_calabash_additions
|
8
|
-
date_str_to_send = date_str_to_send_to_picker_from_time_str target_time
|
9
|
-
set_picker_date_with_date_time_str (date_str_to_send)
|
10
|
-
else
|
11
|
-
screenshot_and_raise 'this version of briar requires a category on UIDatePicker. Sorry!'
|
12
|
-
end
|
13
|
-
|
14
|
-
|
15
|
-
@date_picker_time_12h = picker_is_in_12h_locale ? picker_time_12h_str : picker_time_for_other_locale
|
16
|
-
@date_picker_time_24h = picker_is_in_24h_locale ? picker_time_24h_str : picker_time_for_other_locale
|
17
|
-
|
18
|
-
# this test catches problems (it is how i caught the scroll down/scroll up
|
19
|
-
# described in the comment block above)
|
20
|
-
unless time_strings_are_equivalent(@date_picker_time_12h, @date_picker_time_24h)
|
21
|
-
screenshot_and_raise "ERROR: changing the picker resulted in two different times: 12H => '#{@date_picker_time_12h}' 24H => '#{@date_picker_time_24h}'"
|
22
|
-
end
|
23
|
-
|
24
|
-
if picker_is_in_date_and_time_mode
|
25
|
-
@date_picker_date_time_12h = picker_is_in_12h_locale ? picker_date_and_time_str_12h : picker_date_and_time_str_for_other_locale
|
26
|
-
@date_picker_date_time_24h = picker_is_in_24h_locale ? picker_date_and_time_str_24h : picker_date_and_time_str_for_other_locale
|
27
|
-
# this test catches problems (it is how i caught the scroll down/scroll up
|
28
|
-
# described in the comment block above)
|
29
|
-
unless date_time_strings_are_equivalent(@date_picker_date_time_12h, @date_picker_date_time_24h)
|
30
|
-
screenshot_and_raise "ERROR: changing the picker resulted in two different dates: 12H => '#{@date_picker_date_time_12h}' 24H => '#{@date_picker_date_time_24h}'"
|
31
|
-
end
|
32
|
-
end
|
33
|
-
|
34
|
-
unless target_time.eql? @date_picker_time_12h or target_time.eql? @date_picker_time_24h
|
35
|
-
screenshot_and_raise "tried to change the time to '#{target_time}' but found '#{@date_picker_time_12h}' or '#{@date_picker_time_24h}'"
|
36
|
-
end
|
3
|
+
change_time_on_picker_with_time_str target_time
|
37
4
|
end
|
38
5
|
|
39
6
|
Then /^I change the date on the picker to "([^"]*)"$/ do |target_date|
|
40
|
-
|
41
|
-
date_str_to_send = date_str_to_send_to_picker_from_date_str target_date
|
42
|
-
set_picker_date_with_date_time_str (date_str_to_send)
|
43
|
-
else
|
44
|
-
screenshot_and_raise 'this version of briar requires a category on UIDatePicker. Sorry!'
|
45
|
-
end
|
7
|
+
change_date_on_picker_with_date_str target_date
|
46
8
|
end
|
47
9
|
|
48
|
-
|
49
10
|
Then /^I change the picker date to "([^"]*)" and the time to "([^"]*)"$/ do |target_date, target_time|
|
50
|
-
|
51
|
-
|
11
|
+
change_time_on_picker_with_time_str target_date
|
12
|
+
change_date_on_picker_with_date_str target_time
|
52
13
|
end
|
53
14
|
|
54
15
|
Then /^I change the picker to (\d+) days? ago$/ do |days_ago|
|
55
16
|
today = Date.today
|
56
17
|
#noinspection RubyUnusedLocalVariable
|
57
18
|
days_ago = today -= days_ago.to_i
|
58
|
-
fmt = picker_is_in_24h_locale ?
|
19
|
+
fmt = picker_is_in_24h_locale ? BRIAR_PICKER_24H_BRIEF_DATE_FMT : BRIAR_PICKER_12H_BRIEF_DATE_FMT
|
59
20
|
target_date = days_ago.strftime(fmt).squeeze(' ').strip
|
60
|
-
|
21
|
+
change_date_on_picker_with_date_str target_date
|
61
22
|
end
|
62
23
|
|
63
24
|
|
@@ -65,166 +26,49 @@ Then /^I change the picker to (\d+) days? ago at "([^"]*)"$/ do |days_ago, targe
|
|
65
26
|
today = Date.today
|
66
27
|
#noinspection RubyUnusedLocalVariable
|
67
28
|
days_ago = today -= days_ago.to_i
|
68
|
-
fmt = picker_is_in_24h_locale ?
|
29
|
+
fmt = picker_is_in_24h_locale ? BRIAR_PICKER_24H_BRIEF_DATE_FMT : BRIAR_PICKER_12H_BRIEF_DATE_FMT
|
69
30
|
target_date = days_ago.strftime(fmt).squeeze(' ').strip
|
70
|
-
|
31
|
+
change_date_on_picker_with_date_str target_date
|
32
|
+
change_time_on_picker_with_time_str target_time
|
71
33
|
end
|
72
34
|
|
73
|
-
# requires that the picker is visible
|
74
|
-
Then /^the text in the "([^"]*)" label should match picker date and time$/ do |label_id|
|
75
|
-
text = query("view marked:'#{label_id}'", :text).first
|
76
|
-
screenshot_and_raise "could not find label with id '#{label_id}'"
|
77
|
-
date_time_24h = picker_is_in_24h_locale ? picker_date_and_time_str_24h : picker_date_and_time_str_for_other_locale
|
78
|
-
date_time_12h = picker_is_in_12h_locale ? picker_date_and_time_str_12h : picker_date_and_time_str_for_other_locale
|
79
|
-
unless (text.eql? date_time_12h) or (text.eql? date_time_24h)
|
80
|
-
screenshot_and_raise "expected '#{text}' to match '#{date_time_12h}' or '#{date_time_24h}'"
|
81
|
-
end
|
82
|
-
end
|
83
35
|
|
36
|
+
#noinspection RubyUnusedLocalVariable
|
84
37
|
Then /^I change the picker date time to "([^"]*)"$/ do |target_time|
|
85
38
|
pending 'deprecated 0.0.6 - not replaced with anything'
|
86
|
-
date_str = picker_date_str
|
87
|
-
macro %Q|I change the picker date to "#{date_str}" and the time to "#{target_time}"|
|
88
39
|
end
|
89
40
|
|
41
|
+
|
90
42
|
Then /^I should see that the date picker is in time mode$/ do
|
91
|
-
|
92
|
-
|
93
|
-
screenshot_and_raise 'expected to a date picker'
|
94
|
-
end
|
95
|
-
unless res == UIDatePickerModeTime
|
96
|
-
screenshot_and_raise "expected to see picker with time mode but found mode '#{res}'"
|
43
|
+
unless picker_is_in_time_mode
|
44
|
+
screenshot_and_raise 'expected to see picker with time mode'
|
97
45
|
end
|
98
46
|
end
|
99
47
|
|
100
48
|
# requires picker is visible
|
101
49
|
Then /^I should see that the time on the picker is now$/ do
|
102
|
-
|
103
|
-
at_interval_12h = time_hash[:h12]
|
104
|
-
at_interval_24h = time_hash[:h24]
|
105
|
-
picker_time = picker_time_str
|
106
|
-
unless picker_time.eql? at_interval_12h or picker_time.eql? at_interval_24h
|
107
|
-
screenshot_and_raise "expected to picker time to be '#{at_interval_12h}' or '#{at_interval_24h}' but found '#{picker_time}'"
|
108
|
-
end
|
50
|
+
should_see_time_on_picker_is_now
|
109
51
|
end
|
110
52
|
|
111
53
|
# requires a time or date change. picker does not need to be visible
|
112
54
|
Then /^I should see that the "([^"]*)" row has the time I just entered in the "([^"]*)" label$/ do |row_id, label_id|
|
113
|
-
|
114
|
-
screenshot_and_raise "could not find '#{label_id}' in the '#{row_id}' row" if arr.empty?
|
115
|
-
actual_text = arr.first
|
116
|
-
unless (actual_text.eql? @date_picker_time_12h) or (actual_text.eql? @date_picker_time_24h)
|
117
|
-
screenshot_and_raise "expected to see '#{@date_picker_time_12h}' or '#{@date_picker_time_24h}' in '#{label_id}' but found '#{actual_text}'"
|
118
|
-
end
|
55
|
+
should_see_row_has_time_i_just_entered row_id, label_id
|
119
56
|
end
|
120
57
|
|
121
58
|
# does not require a time or date change. picker needs to be visible
|
122
59
|
Then /^I should see that the "([^"]*)" row has the same time as the picker in the "([^"]*)" label$/ do |row_id, label_id|
|
123
|
-
|
124
|
-
screenshot_and_raise "could not find '#{label_id}' in the '#{row_id}'" if arr.empty?
|
125
|
-
time_str_12h = picker_is_in_12h_locale ? picker_time_12h_str : picker_time_for_other_locale
|
126
|
-
time_str_24h = picker_is_in_24h_locale ? picker_time_24h_str : picker_time_for_other_locale
|
127
|
-
actual_text = arr.first
|
128
|
-
unless (actual_text.eql? time_str_12h) or (actual_text.eql? time_str_24h)
|
129
|
-
screenshot_and_raise "expected to see '#{time_str_12h}' or '#{time_str_24h}' in '#{label_id}' but found '#{actual_text}'"
|
130
|
-
end
|
131
|
-
end
|
132
|
-
|
133
|
-
# requires a time or date change. picker does not need to be visible
|
134
|
-
Then /^I should see that the "([^"]*)" row has the date and time I just entered in the "([^"]*)" label$/ do |row_id, label_id|
|
135
|
-
arr = query("tableViewCell marked:'#{row_id}' isHidden:0 descendant label marked:'#{label_id}'", :text)
|
136
|
-
screenshot_and_raise "could not find '#{label_id}' in the '#{row_id}' row" if arr.empty?
|
137
|
-
actual_text = arr.first
|
138
|
-
unless (actual_text.eql? @date_picker_date_time_12h) or (actual_text.eql? @date_picker_date_time_24h)
|
139
|
-
screenshot_and_raise "expected to see '#{@date_picker_date_time_12h}' or '#{@date_picker_date_time_24h}' in '#{label_id}' but found '#{actual_text}'"
|
140
|
-
end
|
60
|
+
should_see_row_has_label_with_time_on_picker row_id, label_id
|
141
61
|
end
|
142
62
|
|
143
63
|
Then /^I change the minute interval on the picker to (1|5|10|30) minutes?$/ do |target_interval|
|
144
|
-
|
145
|
-
screenshot_and_raise 'did not find a date picker - could not set the minute interval' if res.empty?
|
146
|
-
sleep(PICKER_STEP_PAUSE * 5)
|
147
|
-
@picker_minute_interval = target_interval.to_i
|
64
|
+
change_minute_interval_on_picker target_interval.to_i
|
148
65
|
end
|
149
66
|
|
150
|
-
Then /^I change the time on the picker to (\d+) minutes? from now$/ do |
|
151
|
-
|
152
|
-
time_str = future.strftime(PICKER_12H_TIME_FMT).squeeze(' ').strip
|
153
|
-
macro %Q|I change the time on the picker to "#{time_str}"|
|
154
|
-
sleep(PICKER_STEP_PAUSE)
|
67
|
+
Then /^I change the time on the picker to (\d+) minutes? from now$/ do |target_minutes|
|
68
|
+
change_time_on_picker_to_minutes_from_now (target_minutes)
|
155
69
|
end
|
156
70
|
|
157
|
-
Then /^I change the time on the picker to (\d+) minutes? before now$/ do |
|
158
|
-
|
159
|
-
time_str = past.strftime(PICKER_12H_TIME_FMT).squeeze(' ').strip
|
160
|
-
macro %Q|I change the time on the picker to "#{time_str}"|
|
161
|
-
sleep(PICKER_STEP_PAUSE)
|
71
|
+
Then /^I change the time on the picker to (\d+) minutes? before now$/ do |target_minutes|
|
72
|
+
change_time_on_picker_to_minutes_before_now (target_minutes)
|
162
73
|
end
|
163
74
|
|
164
|
-
# DEAD SEA
|
165
|
-
|
166
|
-
# old non_category date picking
|
167
|
-
#tokens = target_time.split(/[: ]/)
|
168
|
-
#screenshot_and_raise "could not parse '#{target_time}' into a valid time" if tokens.count > 3 or tokens.count < 1
|
169
|
-
#time_in_24h_locale = tokens.count == 2
|
170
|
-
#hour_token = tokens[0].to_i
|
171
|
-
#period_token = tokens[2]
|
172
|
-
#if time_in_24h_locale
|
173
|
-
# screenshot_and_raise "'#{hour_token}' is not on (0, 23)" unless (0..23).member?(hour_token)
|
174
|
-
# period_token = hour_token > 11 ? PICKER_PM : PICKER_AM
|
175
|
-
#else
|
176
|
-
# screenshot_and_raise "'#{hour_token}' is not on (1, 12)" unless (0..12).member?(hour_token)
|
177
|
-
# am_pm_token = tokens[2]
|
178
|
-
# screenshot_and_raise "'#{am_pm_token}' is not a recognized period (AM or PM)" unless (am_pm_token.eql? PICKER_AM or am_pm_token.eql? PICKER_PM)
|
179
|
-
# hour_token = 0 if hour_token == 12 and am_pm_token.eql? PICKER_AM
|
180
|
-
# hour_token = hour_token + 12 if hour_token < 12 and am_pm_token.eql? PICKER_PM
|
181
|
-
#end
|
182
|
-
#
|
183
|
-
#minute_token = tokens[1].to_i
|
184
|
-
#screenshot_and_raise "'#{minute_token}'is not on (0, 59)" unless (0..59).member?(minute_token)
|
185
|
-
#
|
186
|
-
## rollback the date by 1 to avoid maxi date problems
|
187
|
-
## decided this was not a good idea because sometimes the rollback step below
|
188
|
-
## would not fire
|
189
|
-
## picker_scroll_down_on_column 0 if picker_is_in_date_and_time_mode
|
190
|
-
#
|
191
|
-
#picker_scroll_to_hour hour_token
|
192
|
-
#picker_scroll_to_minute minute_token
|
193
|
-
#
|
194
|
-
#picker_scroll_to_period period_token if picker_is_in_12h_locale
|
195
|
-
#
|
196
|
-
## rollback the change we made above
|
197
|
-
## decided this was not a good idea
|
198
|
-
## sometimes this does not fire so you can end up with inconsistent dates
|
199
|
-
## see the test below
|
200
|
-
## picker_scroll_up_on_column 0 if picker_is_in_date_and_time_mode
|
201
|
-
|
202
|
-
|
203
|
-
##
|
204
|
-
|
205
|
-
#unless picker_weekday_month_day_is(target_date)
|
206
|
-
# # figure out which way to turn the picker
|
207
|
-
# # target = Date.parse(target_date)
|
208
|
-
# dir = (Date.parse(target_date) < Date.today) ? 'down' : 'up'
|
209
|
-
# limit = 60
|
210
|
-
# count = 0
|
211
|
-
# begin
|
212
|
-
# dir.eql?('down') ? picker_scroll_down_on_column(0) : picker_scroll_up_on_column(0)
|
213
|
-
# sleep(PICKER_STEP_PAUSE)
|
214
|
-
# count = count + 1
|
215
|
-
# end while ((not picker_weekday_month_day_is(target_date)) and count < limit)
|
216
|
-
#end
|
217
|
-
#unless picker_weekday_month_day_is(target_date)
|
218
|
-
# screenshot_and_raise "scrolled '#{limit}' and could not change date to #{target_date}"
|
219
|
-
#end
|
220
|
-
#
|
221
|
-
#@date_picker_date_time_12h = picker_is_in_12h_locale ? picker_date_and_time_str_12h : picker_date_and_time_str_for_other_locale
|
222
|
-
#@date_picker_date_time_24h = picker_is_in_24h_locale ? picker_date_and_time_str_24h : picker_date_and_time_str_for_other_locale
|
223
|
-
#if picker_is_in_date_and_time_mode
|
224
|
-
# @date_picker_time_12h = picker_is_in_12h_locale ? picker_time_12h_str : picker_time_for_other_locale
|
225
|
-
# @date_picker_time_24h = picker_is_in_24h_locale ? picker_time_24h_str : picker_time_for_other_locale
|
226
|
-
# unless time_strings_are_equivalent(@date_picker_time_12h, @date_picker_time_24h)
|
227
|
-
# screenshot_and_raise "ERROR: changing the picker resulted in two different times: 12H => '#{@date_picker_time_12h}' 24H => '#{@date_picker_time_24h}'"
|
228
|
-
# end
|
229
|
-
#end
|
230
|
-
#end
|
@@ -1,40 +1,39 @@
|
|
1
|
-
#include Briar::Table
|
2
|
-
#include Briar::Core
|
3
|
-
|
4
1
|
Then /^I should see (?:the|an?) "([^"]*)" row$/ do |name|
|
5
2
|
should_see_row name
|
6
3
|
end
|
7
4
|
|
5
|
+
|
6
|
+
Then(/^I scroll to the "([^"]*)" row$/) do |row_id|
|
7
|
+
briar_scroll_to_row row_id
|
8
|
+
end
|
9
|
+
|
8
10
|
#noinspection RubyUnusedLocalVariable
|
9
|
-
Then /^I scroll (left|right|up|down) until I see the "([^\"]*)" row limit (\d+)$/ do |dir,
|
10
|
-
pending "deprecated 0.0.6 - use 'Then I scroll
|
11
|
+
Then /^I scroll (left|right|up|down) until I see the "([^\"]*)" row limit (\d+)$/ do |dir, row_id, limit|
|
12
|
+
pending "deprecated 0.0.6 - use 'Then I scroll to the \"#{row_id}\" row'"
|
11
13
|
end
|
12
14
|
|
13
15
|
|
16
|
+
#noinspection RubyUnusedLocalVariable
|
14
17
|
Then /^I scroll (left|right|up|down) until I see (?:the|an?) "([^\"]*)" row$/ do |dir, row_id|
|
15
|
-
|
18
|
+
pending "deprecated 0.0.8 - use 'Then I scroll to the \"#{row_id}\" row'"
|
16
19
|
end
|
17
20
|
|
18
21
|
Then /^I touch (?:the) "([^"]*)" row and wait for (?:the) "([^"]*)" view to appear$/ do |row_id, view_id|
|
19
|
-
|
20
|
-
wait_for_animation
|
22
|
+
wait_for_row row_id
|
21
23
|
touch_row_and_wait_to_see row_id, view_id
|
22
24
|
end
|
23
25
|
|
24
26
|
Then /^I touch the "([^"]*)" row on the "([^"]*)" table and wait for the "([^"]*)" view to appear$/ do |row_id, table_id, view_id|
|
25
|
-
|
27
|
+
wait_for_row row_id
|
26
28
|
touch_row_and_wait_to_see row_id, view_id, table_id
|
27
29
|
end
|
28
30
|
|
29
|
-
|
30
31
|
Then /^I touch (?:the) "([^"]*)" row$/ do |row_name|
|
31
32
|
touch_row row_name
|
32
33
|
end
|
33
34
|
|
34
|
-
|
35
|
-
|
36
|
-
touch("tableView child view marked:'#{header_name}'")
|
37
|
-
wait_for_animation
|
35
|
+
Then /^I touch the "([^"]*)" section header$/ do |header_id|
|
36
|
+
touch_section_header header_id
|
38
37
|
end
|
39
38
|
|
40
39
|
Then /^I should see the "([^"]*)" table in edit mode$/ do |table_id|
|
@@ -46,45 +45,34 @@ end
|
|
46
45
|
|
47
46
|
Then /^the (first|second) row should be "([^"]*)"$/ do |idx, row_id|
|
48
47
|
(idx.eql? 'first') ? index = 0 : index = 1
|
49
|
-
|
50
|
-
unless res.eql? row_id
|
51
|
-
screenshot_and_raise "i expected the #{idx} row would be #{row_id}, but found #{res}"
|
52
|
-
end
|
48
|
+
should_see_row_at_index row_id, index
|
53
49
|
end
|
54
50
|
|
51
|
+
Then(/^the (\d+)(?:st|nd|rd|th)? row should be "([^"]*)"$/) do |row_index, row_id|
|
52
|
+
idx = row_index.to_i - 1
|
53
|
+
should_see_row_at_index row_id, idx
|
54
|
+
end
|
55
55
|
|
56
56
|
Then /^I swipe (left|right) on the "([^"]*)" row$/ do |dir, row_name|
|
57
57
|
swipe_on_row dir, row_name
|
58
58
|
end
|
59
59
|
|
60
|
-
|
61
|
-
|
62
|
-
swipe_on_row 'left', row_name
|
63
|
-
should_see_delete_confirmation_in_row row_name
|
64
|
-
touch_delete_confirmation row_name
|
65
|
-
should_not_see_row row_name
|
60
|
+
Then /^I should be able to swipe to delete the "([^"]*)" row$/ do |row_id|
|
61
|
+
swipe_to_delete_row row_id
|
66
62
|
end
|
67
63
|
|
68
|
-
Then /^I touch the delete button on the "([^"]*)" row$/ do |
|
69
|
-
|
70
|
-
touch("tableViewCell marked:'#{row_name}' child tableViewCellEditControl")
|
71
|
-
step_pause
|
72
|
-
should_see_delete_confirmation_in_row row_name
|
64
|
+
Then /^I touch the delete button on the "([^"]*)" row$/ do |row_id|
|
65
|
+
touch_edit_mode_delete_button row_id
|
73
66
|
end
|
74
67
|
|
75
|
-
Then /^I use the edit mode delete button to delete the "([^"]*)" row$/ do |
|
76
|
-
|
77
|
-
touch_delete_confirmation row_name
|
78
|
-
should_not_see_row row_name
|
68
|
+
Then /^I use the edit mode delete button to delete the "([^"]*)" row$/ do |row_id|
|
69
|
+
delete_row_with_edit_mode_delete_button row_id
|
79
70
|
end
|
80
71
|
|
81
|
-
Then /^I should see "([^"]*)" in row (\d+)$/ do |
|
72
|
+
Then /^I should see "([^"]*)" in row (\d+)$/ do |row_id, row_index|
|
82
73
|
# on ios 6 this is returning nil
|
83
|
-
#res = query("tableViewCell index:#{row}",
|
84
|
-
|
85
|
-
unless access_ids.index(cell_name) == row.to_i
|
86
|
-
screenshot_and_raise "expected to see '#{cell_name}' in row #{row} but found '#{access_ids[row.to_i]}'"
|
87
|
-
end
|
74
|
+
#res = query("tableViewCell index:#{row}", AI).first
|
75
|
+
should_see_row_at_index row_id, row_index
|
88
76
|
end
|
89
77
|
|
90
78
|
Then /^I should see the rows in this order "([^"]*)"$/ do |row_ids|
|
@@ -92,7 +80,7 @@ Then /^I should see the rows in this order "([^"]*)"$/ do |row_ids|
|
|
92
80
|
counter = 0
|
93
81
|
tokens.each do |token|
|
94
82
|
token.strip!
|
95
|
-
|
83
|
+
should_see_row_at_index token, counter
|
96
84
|
counter = counter + 1
|
97
85
|
end
|
98
86
|
end
|
@@ -125,7 +113,7 @@ end
|
|
125
113
|
|
126
114
|
Then /^I should see a "([^"]*)" button in the "([^"]*)" row$/ do |button_id, row_id|
|
127
115
|
should_see_row row_id
|
128
|
-
arr = query("tableViewCell marked:'#{row_id}' child tableViewCellContentView child button marked:'#{button_id}'",
|
116
|
+
arr = query("tableViewCell marked:'#{row_id}' descendant child tableViewCellContentView child button marked:'#{button_id}'", AI)
|
129
117
|
(arr.length == 1)
|
130
118
|
end
|
131
119
|
|
@@ -135,30 +123,15 @@ Then /^I touch the "([^"]*)" button in the "([^"]*)" row$/ do |button_id, row_id
|
|
135
123
|
end
|
136
124
|
|
137
125
|
Then /^I should see a switch for "([^"]*)" in the "([^"]*)" row that is in the "([^"]*)" position$/ do |switch_id, row_id, on_off|
|
138
|
-
|
139
|
-
query_str = "tableViewCell marked:'#{row_id}' child tableViewCellContentView child switch marked:'#{switch_id}'"
|
140
|
-
res = query(query_str, :isOn).first
|
141
|
-
unless res
|
142
|
-
screenshot_and_raise "expected to find a switch marked '#{switch_id}' in row '#{row_id}'"
|
143
|
-
end
|
144
|
-
expected = (on_off.eql? 'on') ? 1 : 0
|
145
|
-
unless res.to_i == expected
|
146
|
-
screenshot_and_raise "expected to find a switch marked '#{switch_id}' in row '#{row_id}' that is '#{on_off}' but found it was '#{res ? 'on' : 'off'}'"
|
147
|
-
end
|
126
|
+
should_see_switch_in_row_with_state switch_id, row_id, (on_off.eql? 'on') ? 1 : 0
|
148
127
|
end
|
149
128
|
|
150
129
|
Then /^I should see a detail disclosure chevron in the "([^"]*)" row$/ do |row_id|
|
151
|
-
|
152
|
-
# gray disclosure chevron is accessory type 1
|
153
|
-
res = query("tableViewCell marked:'#{row_id}'", :accessoryType).first
|
154
|
-
unless res == 1
|
155
|
-
screenshot_and_raise "expected to see disclosure chevron in row '#{row_id}' but found '#{res}'"
|
156
|
-
end
|
130
|
+
should_see_disclosure_chevron_in_row row_id
|
157
131
|
end
|
158
132
|
|
159
133
|
Then /^I touch the "([^"]*)" switch in the "([^"]*)" row$/ do |switch_id, row_id|
|
160
|
-
|
161
|
-
touch("tableViewCell marked:'#{row_id}' child tableViewCellContentView child switch marked:'#{switch_id}'")
|
134
|
+
touch_switch_in_row switch_id, row_id
|
162
135
|
end
|
163
136
|
|
164
137
|
Then /^I should see "([^"]*)" in the "([^"]*)" section (footer|header)$/ do |text, section_footer_id, head_or_foot|
|
@@ -169,23 +142,14 @@ Then /^I should see "([^"]*)" in the "([^"]*)" section (footer|header)$/ do |tex
|
|
169
142
|
end
|
170
143
|
|
171
144
|
Then /^I should see a text field with text "([^"]*)" in the "([^"]*)" row$/ do |text, row_id|
|
172
|
-
|
173
|
-
query_str = "tableViewCell marked:'#{row_id}' child tableViewCellContentView child textField"
|
174
|
-
res = query(query_str)
|
175
|
-
screenshot_and_raise "expected to see text field in '#{row_id}' row" if res.empty?
|
176
|
-
actual = query(query_str, :text).first
|
177
|
-
screenshot_and_raise "expected to find text field with '#{text}' in row '#{row_id}' but found '#{actual}'" if !text.eql? actual
|
145
|
+
should_see_text_field_in_row_with_text row_id, text
|
178
146
|
end
|
179
147
|
|
180
148
|
When /^I touch the "([^"]*)" text field in the "([^"]*)" row the keyboard appears$/ do |text_field_id, row_id|
|
181
|
-
|
182
|
-
query_str = "tableViewCell marked:'#{row_id}' child tableViewCellContentView child textField marked:'#{text_field_id}'"
|
183
|
-
touch(query_str)
|
184
|
-
wait_for_animation
|
185
|
-
should_see_keyboard
|
149
|
+
touch_text_field_in_row_and_wait_for_keyboard text_field_id, row_id
|
186
150
|
end
|
187
151
|
|
188
|
-
|
189
152
|
Then /^I should see that the "([^"]*)" row has image "([^"]*)"$/ do |row_id, image_id|
|
190
153
|
should_see_row_with_image row_id, image_id
|
191
154
|
end
|
155
|
+
|