briar 0.1.0 → 0.1.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +8 -8
- data/briar.gemspec +0 -5
- data/features/step_definitions/alerts_and_sheets/action_sheet_steps.rb +2 -2
- data/features/step_definitions/bars/tabbar_steps.rb +1 -1
- data/features/step_definitions/control/segmented_control_steps.rb +28 -21
- data/features/step_definitions/email_steps.rb +19 -18
- data/features/step_definitions/keyboard_steps.rb +6 -4
- data/features/step_definitions/table_steps.rb +1 -1
- data/lib/briar.rb +14 -3
- data/lib/briar/alerts_and_sheets/action_sheet.rb +4 -4
- data/lib/briar/alerts_and_sheets/alert_view.rb +4 -4
- data/lib/briar/bars/navbar.rb +14 -18
- data/lib/briar/bars/tabbar.rb +2 -6
- data/lib/briar/briar_core.rb +10 -10
- data/lib/briar/control/button.rb +4 -4
- data/lib/briar/control/segmented_control.rb +26 -39
- data/lib/briar/email.rb +17 -10
- data/lib/briar/keyboard.rb +54 -65
- data/lib/briar/label.rb +2 -2
- data/lib/briar/picker/date_picker.rb +1 -1
- data/lib/briar/picker/date_picker_manipulation.rb +3 -3
- data/lib/briar/table.rb +4 -17
- data/lib/briar/text_view.rb +4 -4
- data/lib/briar/version.rb +1 -1
- metadata +4 -18
checksums.yaml
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
---
|
2
2
|
!binary "U0hBMQ==":
|
3
3
|
metadata.gz: !binary |-
|
4
|
-
|
4
|
+
NzIwYTIwOTk1NzRkOGIwYjljZTZiZWM4YTY4YTg3ZjNiNmUxZjNmMA==
|
5
5
|
data.tar.gz: !binary |-
|
6
|
-
|
6
|
+
YzBjM2M5M2RmMDlmZWQwNDFiYWJhZTk1MWJkNjk5NDU3NjY5ZmE5Zg==
|
7
7
|
SHA512:
|
8
8
|
metadata.gz: !binary |-
|
9
|
-
|
10
|
-
|
11
|
-
|
9
|
+
OTFmOWY1M2JkODY1YmRhMjEzYjBkMWU5N2ZiNzFkNDE3OWM1OGE4NTljM2Zj
|
10
|
+
MDQwNzNhYjJiNzMzMDg2YmIxYTE1OGVmMGMwODc3Y2NkZWJkY2UwZjE3ZGM4
|
11
|
+
MzQxMGJmZjMyYTUwZjEwNTgzNjYzZDRlMDg1YWJlZDI4YWUzNzE=
|
12
12
|
data.tar.gz: !binary |-
|
13
|
-
|
14
|
-
|
15
|
-
|
13
|
+
MTBhYjhmYTAyZTQxM2IxMmUwNmUzOTVlMzQ2ZmJjYmY0NjhlMzk4NmNhNjBl
|
14
|
+
NjM4M2RlNzc0ZTRhNTgyM2Y4YTIwZGFjODBmYTM1MWFjMzQ0YzNlNjMzOGIw
|
15
|
+
MjllNjgxMjExZTM3NDc2ZDEwYTk3ZWZhNDJhN2Y4NTBhOGRkYTY=
|
data/briar.gemspec
CHANGED
@@ -15,13 +15,8 @@ Gem::Specification.new do |gem|
|
|
15
15
|
gem.license = 'MIT'
|
16
16
|
|
17
17
|
gem.add_runtime_dependency 'calabash-cucumber'
|
18
|
-
#gem.add_runtime_dependency 'calabash-cucumber', '0.9.159'
|
19
18
|
gem.add_runtime_dependency 'rake'
|
20
19
|
gem.add_runtime_dependency 'syntax'
|
21
|
-
gem.add_runtime_dependency 'rspec'
|
22
|
-
|
23
|
-
# rubymine is not picking up development dependencies in the gemspec
|
24
|
-
#gem.add_development_dependency 'rspec'
|
25
20
|
|
26
21
|
gem.files = `git ls-files`.split($/)
|
27
22
|
gem.executables = 'briar'
|
@@ -2,8 +2,8 @@ Then /^I touch the "([^"]*)" button on the action sheet$/ do |button_title|
|
|
2
2
|
timeout = 1.0
|
3
3
|
msg = "waited for '#{timeout}' seconds but did not see sheet with button '#{button_title}'"
|
4
4
|
options = {:timeout => timeout,
|
5
|
-
:retry_frequency =>
|
6
|
-
:post_timeout =>
|
5
|
+
:retry_frequency => BRIAR_RETRY_FREQ,
|
6
|
+
:post_timeout => BRIAR_POST_TIMEOUT,
|
7
7
|
:timeout_message => msg}
|
8
8
|
wait_for(options) do
|
9
9
|
not query('actionSheet').empty?
|
@@ -27,7 +27,7 @@ When /^I touch the "([^"]*)" tab I should see the "([^"]*)" view$/ do |tab_label
|
|
27
27
|
end
|
28
28
|
|
29
29
|
Then /^I should see "([^"]*)" tabs$/ do |list_of_tabs|
|
30
|
-
tabs = list_of_tabs
|
30
|
+
tabs = tokenize_list(list_of_tabs)
|
31
31
|
index = 0
|
32
32
|
tabs.each do |tab|
|
33
33
|
should_see_tab_at_index tab.strip! || tab, index
|
@@ -3,45 +3,52 @@ Then /^I should see segmented control "([^"]*)" with titles "([^"]*)"$/ do |cont
|
|
3
3
|
should_see_control_with_segment_titles control_id, titles
|
4
4
|
end
|
5
5
|
|
6
|
-
Then /^I touch
|
6
|
+
Then /^I touch the "([^"]*)" segment in segmented control "([^"]*)"$/ do |segment_id, control_id|
|
7
7
|
touch_segment segment_id, control_id
|
8
8
|
end
|
9
9
|
|
10
|
-
|
11
10
|
Then /^I should see segment "([^"]*)" in segmented control "([^"]*)" (is|is not) selected$/ do |segment_id, control_id, selectedness|
|
12
11
|
should_see_segment_with_selected_state control_id, segment_id, selectedness.eql?('is') ? 1 : 0
|
13
12
|
end
|
14
13
|
|
14
|
+
|
15
|
+
### deprecated - will remove in future versions ####
|
16
|
+
|
15
17
|
Then /^I should see the segment I touched (is|is not) selected and the "([^"]*)" should be set correctly$/ do |selectedness, label_id|
|
16
|
-
|
17
|
-
|
18
|
-
#
|
19
|
-
|
20
|
-
|
21
|
-
|
18
|
+
pending('deprecated 0.1.1 - no replacement')
|
19
|
+
#@associated_label = label_id
|
20
|
+
#should_see_segment_with_selected_state @control_id, @segment_id, selectedness.eql?('is') ? 1 : 0
|
21
|
+
## unexpected!
|
22
|
+
## this is a label outside the control that is set by touching the segment
|
23
|
+
## not so good because it conflates segment_id and the title of the segment
|
24
|
+
#should_see_label_with_text label_id, @segment_id
|
22
25
|
end
|
23
26
|
|
24
27
|
Then /^I touch the segment again$/ do
|
25
|
-
|
28
|
+
pending('deprecated 0.1.1 - no replacement')
|
29
|
+
#touch_segment @segment_id, @control_id
|
26
30
|
end
|
27
31
|
|
28
32
|
Then /^I should see the segment is not selected and the detail label is cleared$/ do
|
29
|
-
|
30
|
-
|
31
|
-
macro %Q|I should see
|
33
|
+
pending('deprecated 0.1.1 - no replacement')
|
34
|
+
## ugh - that @associated_label variable needs to be set
|
35
|
+
#macro %Q|I should see segment "#{@segment_id}" in segmented control "#{@control_id}" is not selected|
|
36
|
+
#macro %Q|I should see label "#{@associated_label}" with text ""|
|
32
37
|
end
|
33
38
|
|
34
39
|
Then /^I should see the segment I touched (is|is not) selected and the "([^"]*)" in the "([^"]*)" row should be set correctly$/ do |selectedness, label_id, row_id|
|
35
|
-
|
36
|
-
@associated_label
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
+
pending('deprecated 0.1.1 - no replacement')
|
41
|
+
## ugh - that @associated_label variable needs to be set
|
42
|
+
#@associated_label = label_id
|
43
|
+
#@associated_row = row_id
|
44
|
+
#macro %Q|I should see segment "#{@segment_id}" in segmented control "#{@control_id}" #{selectedness} selected|
|
45
|
+
#should_see_row_with_label_with_text @associated_row, @associated_label, "#{@segment_id}"
|
40
46
|
end
|
41
47
|
|
42
48
|
Then /^I should see the segment is not selected and the label in the row is cleared$/ do
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
49
|
+
pending('deprecated 0.1.1 - no replacement')
|
50
|
+
## ugh - difficult to extract to a function because we need the
|
51
|
+
## @associated_row and @associated_label to be set
|
52
|
+
#macro %Q|I should see segment "#{@segment_id}" in segmented control "#{@control_id}" is not selected|
|
53
|
+
#should_see_row_with_label_with_text @associated_row, @associated_label, ""
|
47
54
|
end
|
@@ -8,7 +8,7 @@ Then /^I should see email view with body that contains "([^"]*)"$/ do |text|
|
|
8
8
|
if not device.ios5?
|
9
9
|
warn_about_no_ios5_email_view
|
10
10
|
else
|
11
|
-
|
11
|
+
2.times { step_pause }
|
12
12
|
unless email_body_contains? text
|
13
13
|
screenshot_and_raise "expected to see email body containing '#{text} but found '#{email_body}'"
|
14
14
|
end
|
@@ -16,20 +16,18 @@ Then /^I should see email view with body that contains "([^"]*)"$/ do |text|
|
|
16
16
|
end
|
17
17
|
|
18
18
|
Then /^I touch the "([^"]*)" row and wait to see the email view$/ do |row_id|
|
19
|
+
if email_not_testable?
|
20
|
+
warn_about_no_ios5_email_view
|
21
|
+
return
|
22
|
+
end
|
23
|
+
|
19
24
|
if device_can_send_email
|
20
|
-
# cannot do the usual - touch_row_and_wait_to_see because sometimes
|
21
|
-
# we will not see because in iOS 6, email compose views cannot be queried
|
22
|
-
# by calabash
|
23
25
|
should_see_row row_id
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
warn_about_no_ios5_email_view
|
28
|
-
else
|
29
|
-
should_see_mail_view
|
30
|
-
end
|
26
|
+
briar_scroll_to_row_and_touch row_id
|
27
|
+
2.times { step_pause }
|
28
|
+
should_see_mail_view
|
31
29
|
else
|
32
|
-
pending 'device is not configured for email so a system alert is probably generated
|
30
|
+
pending 'device is not configured for email so a system alert is probably generated'
|
33
31
|
end
|
34
32
|
end
|
35
33
|
|
@@ -63,7 +61,7 @@ Then /^I should see email view with text like "([^"]*)" in the subject$/ do |tex
|
|
63
61
|
warn_about_no_ios5_email_view
|
64
62
|
else
|
65
63
|
should_see_mail_view
|
66
|
-
|
64
|
+
2.times { step_pause }
|
67
65
|
unless email_subject_has_text_like? text
|
68
66
|
screenshot_and_raise "expected to see '#{text}' in the email subject but found '#{email_subject}'"
|
69
67
|
end
|
@@ -71,11 +69,7 @@ Then /^I should see email view with text like "([^"]*)" in the subject$/ do |tex
|
|
71
69
|
end
|
72
70
|
|
73
71
|
When /^I cancel email editing I should see the "([^"]*)" view$/ do |view_id|
|
74
|
-
|
75
|
-
delete_draft_and_wait_for view_id
|
76
|
-
else
|
77
|
-
warn_about_no_ios5_email_view
|
78
|
-
end
|
72
|
+
delete_draft_and_wait_for view_id
|
79
73
|
end
|
80
74
|
|
81
75
|
Given(/^we are testing on the simulator or a device configured to send emails$/) do
|
@@ -88,3 +82,10 @@ Given(/^we are testing on the simulator or a device configured to send emails$/)
|
|
88
82
|
pending 'device is not configured to send email - we cannot proceed with email view testing'
|
89
83
|
end
|
90
84
|
end
|
85
|
+
|
86
|
+
Given(/^I can test an email view$/) do
|
87
|
+
if (not device.ios5?) and (not uia_available?)
|
88
|
+
warn_about_no_ios5_email_view
|
89
|
+
pending('cannot test email views yet')
|
90
|
+
end
|
91
|
+
end
|
@@ -18,15 +18,17 @@ When /^I touch the done button the keyboard disappears$/ do
|
|
18
18
|
should_not_see_keyboard
|
19
19
|
end
|
20
20
|
|
21
|
+
|
21
22
|
Then /^I touch the delete key$/ do
|
22
23
|
keyboard_enter_char 'Delete'
|
23
24
|
end
|
24
25
|
|
25
26
|
Then(/^I turn off spell checking and capitalization$/) do
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
27
|
+
pending('deprecated 0.1.1 - not working')
|
28
|
+
#should_see_keyboard
|
29
|
+
#turn_autocapitalization_off
|
30
|
+
#turn_autocorrect_off
|
31
|
+
#turn_spell_correct_off
|
30
32
|
end
|
31
33
|
|
32
34
|
Then /^I am done text editing$/ do
|
@@ -77,7 +77,7 @@ Then /^I should see "([^"]*)" in row (\d+)$/ do |row_id, row_index|
|
|
77
77
|
end
|
78
78
|
|
79
79
|
Then /^I should see the rows in this order "([^"]*)"$/ do |row_ids|
|
80
|
-
tokens = row_ids
|
80
|
+
tokens = tokenize_list(row_ids)
|
81
81
|
counter = 0
|
82
82
|
tokens.each do |token|
|
83
83
|
token.strip!
|
data/lib/briar.rb
CHANGED
@@ -1,11 +1,19 @@
|
|
1
1
|
#$:.unshift File.dirname(__FILE__)
|
2
2
|
|
3
3
|
DEVICE_ENDPOINT = (ENV['DEVICE_ENDPOINT'] || 'http://localhost:37265')
|
4
|
+
|
5
|
+
# deprecate these #
|
4
6
|
TOUCH_TRANSITION_TIMEOUT = 30.0
|
5
7
|
TOUCH_TRANSITION_RETRY_FREQ = 0.5
|
8
|
+
##################
|
9
|
+
|
6
10
|
BRIAR_STEP_PAUSE = (ENV['STEP_PAUSE'] || 0.5).to_f
|
7
11
|
BRIAR_WAIT_TIMEOUT = (ENV['WAIT_TIMEOUT'] || 2.0).to_f
|
12
|
+
BRIAR_RETRY_FREQ = (ENV['RETRY_FREQ'] || 0.1).to_f
|
13
|
+
BRIAR_POST_TIMEOUT = (ENV['POST_TIMEOUT'] || 0.2).to_f
|
14
|
+
|
8
15
|
ANIMATION_PAUSE = (ENV['ANIMATION_PAUSE'] || 0.6).to_f
|
16
|
+
|
9
17
|
#noinspection RubyConstantNamingConvention
|
10
18
|
AI = :accessibilityIdentifier
|
11
19
|
#noinspection RubyConstantNamingConvention
|
@@ -64,9 +72,12 @@ def device ()
|
|
64
72
|
end
|
65
73
|
|
66
74
|
def uia_available?
|
67
|
-
|
68
|
-
|
69
|
-
|
75
|
+
# proxy for testing if run_loop exists
|
76
|
+
if default_device.nil?
|
77
|
+
false
|
78
|
+
else
|
79
|
+
true
|
80
|
+
end
|
70
81
|
end
|
71
82
|
|
72
83
|
#noinspection RubyDefParenthesesInspection
|
@@ -36,8 +36,8 @@ module Briar
|
|
36
36
|
def wait_for_sheet (sheet_id, timeout=BRIAR_WAIT_TIMEOUT)
|
37
37
|
msg = "waited for '#{timeout}' seconds but did not see '#{sheet_id}'"
|
38
38
|
wait_for(:timeout => timeout,
|
39
|
-
:retry_frequency =>
|
40
|
-
:post_timeout =>
|
39
|
+
:retry_frequency => BRIAR_RETRY_FREQ,
|
40
|
+
:post_timeout => BRIAR_POST_TIMEOUT,
|
41
41
|
:timeout_message => msg ) do
|
42
42
|
sheet_exists? sheet_id
|
43
43
|
end
|
@@ -46,8 +46,8 @@ module Briar
|
|
46
46
|
def wait_for_sheet_to_disappear(sheet_id, timeout=BRIAR_WAIT_TIMEOUT)
|
47
47
|
msg = "waited for '#{timeout}' seconds for '#{sheet_id}' to disappear but it is still visible"
|
48
48
|
options = {:timeout => timeout,
|
49
|
-
:retry_frequency =>
|
50
|
-
:post_timeout =>
|
49
|
+
:retry_frequency => BRIAR_RETRY_FREQ,
|
50
|
+
:post_timeout => BRIAR_POST_TIMEOUT,
|
51
51
|
:timeout_message => msg}
|
52
52
|
wait_for(options) do
|
53
53
|
not sheet_exists? sheet_id
|
@@ -49,8 +49,8 @@ module Briar
|
|
49
49
|
qstr = 'alertView child label'
|
50
50
|
msg = "waited for '#{timeout}' for alert with title '#{title}'"
|
51
51
|
wait_for(:timeout => timeout,
|
52
|
-
:retry_frequency =>
|
53
|
-
:post_timeout =>
|
52
|
+
:retry_frequency => BRIAR_RETRY_FREQ,
|
53
|
+
:post_timeout => BRIAR_POST_TIMEOUT,
|
54
54
|
:timeout_message => msg) do
|
55
55
|
query(qstr, :text).include?(title)
|
56
56
|
end
|
@@ -68,8 +68,8 @@ module Briar
|
|
68
68
|
qstr = 'alertView child label'
|
69
69
|
msg = "waited for '#{timeout}' for alert with message '#{message}'"
|
70
70
|
wait_for(:timeout => timeout,
|
71
|
-
:retry_frequency =>
|
72
|
-
:post_timeout =>
|
71
|
+
:retry_frequency => BRIAR_RETRY_FREQ,
|
72
|
+
:post_timeout => BRIAR_POST_TIMEOUT,
|
73
73
|
:timeout_message => msg) do
|
74
74
|
query(qstr, :text).include?(title)
|
75
75
|
end
|
data/lib/briar/bars/navbar.rb
CHANGED
@@ -26,8 +26,8 @@ module Briar
|
|
26
26
|
timeout = BRIAR_WAIT_TIMEOUT * 2.0
|
27
27
|
msg = "waited for '#{timeout}' seconds but did not see navbar back button"
|
28
28
|
wait_for(:timeout => timeout,
|
29
|
-
:retry_frequency =>
|
30
|
-
:post_timeout =>
|
29
|
+
:retry_frequency => BRIAR_RETRY_FREQ,
|
30
|
+
:post_timeout => BRIAR_POST_TIMEOUT,
|
31
31
|
:timeout_message => msg) do
|
32
32
|
navbar_has_back_button?
|
33
33
|
end
|
@@ -52,8 +52,8 @@ module Briar
|
|
52
52
|
timeout = BRIAR_WAIT_TIMEOUT
|
53
53
|
msg = "waited for '#{timeout}' seconds but did not see '#{name}' in navigation bar"
|
54
54
|
wait_for(:timeout => timeout,
|
55
|
-
:retry_frequency =>
|
56
|
-
:post_timeout =>
|
55
|
+
:retry_frequency => BRIAR_RETRY_FREQ,
|
56
|
+
:post_timeout => BRIAR_POST_TIMEOUT,
|
57
57
|
:timeout_message => msg) do
|
58
58
|
element_exists qstr
|
59
59
|
end
|
@@ -73,8 +73,8 @@ module Briar
|
|
73
73
|
timeout = 1.0
|
74
74
|
msg = "waited for '#{timeout}' seconds but i still see '#{name}' in navigation bar"
|
75
75
|
wait_for(:timeout => timeout,
|
76
|
-
:retry_frequency =>
|
77
|
-
:post_timeout =>
|
76
|
+
:retry_frequency => BRIAR_RETRY_FREQ,
|
77
|
+
:post_timeout => BRIAR_POST_TIMEOUT,
|
78
78
|
:timeout_message => msg) do
|
79
79
|
element_does_not_exist qstr
|
80
80
|
end
|
@@ -97,7 +97,8 @@ module Briar
|
|
97
97
|
def go_back_after_waiting
|
98
98
|
sleep(0.2)
|
99
99
|
wait_for(:timeout => 1.0,
|
100
|
-
:retry_frequency =>
|
100
|
+
:retry_frequency => BRIAR_RETRY_FREQ,
|
101
|
+
:post_timeout => BRIAR_POST_TIMEOUT) do
|
101
102
|
not query('navigationItemButtonView first').empty?
|
102
103
|
end
|
103
104
|
touch('navigationItemButtonView first')
|
@@ -106,8 +107,8 @@ module Briar
|
|
106
107
|
|
107
108
|
def go_back_and_wait_for_view (view)
|
108
109
|
sleep(0.2)
|
109
|
-
wait_for(:timeout =>
|
110
|
-
:retry_frequency =>
|
110
|
+
wait_for(:timeout => BRIAR_WAIT_TIMEOUT,
|
111
|
+
:retry_frequency => BRIAR_RETRY_FREQ) do
|
111
112
|
not query('navigationItemButtonView first').empty?
|
112
113
|
end
|
113
114
|
|
@@ -119,8 +120,8 @@ module Briar
|
|
119
120
|
end
|
120
121
|
|
121
122
|
def touch_navbar_item(item_name, wait_for_view_id=nil)
|
122
|
-
wait_for(:timeout =>
|
123
|
-
:retry_frequency =>
|
123
|
+
wait_for(:timeout => BRIAR_WAIT_TIMEOUT,
|
124
|
+
:retry_frequency => BRIAR_RETRY_FREQ) do
|
124
125
|
(index_of_navbar_button(item_name) != nil) || button_exists?(item_name)
|
125
126
|
end
|
126
127
|
sleep(0.2)
|
@@ -154,17 +155,12 @@ module Briar
|
|
154
155
|
def should_see_navbar_with_title(title, timeout=BRIAR_WAIT_TIMEOUT)
|
155
156
|
msg = "waited for '#{timeout}' seconds but i did not see #{title} in navbar"
|
156
157
|
wait_for(:timeout => timeout,
|
157
|
-
:retry_frequency =>
|
158
|
-
:post_timeout =>
|
158
|
+
:retry_frequency => BRIAR_RETRY_FREQ,
|
159
|
+
:post_timeout => BRIAR_POST_TIMEOUT,
|
159
160
|
:timeout_message => msg) do
|
160
161
|
navbar_has_title? title
|
161
162
|
end
|
162
163
|
end
|
163
|
-
|
164
|
-
|
165
|
-
def navbar_should_have_title(title)
|
166
|
-
pending "deprecated 0.0.6 - use should_see_navbar_with_title '#{title}'"
|
167
|
-
end
|
168
164
|
end
|
169
165
|
end
|
170
166
|
|
data/lib/briar/bars/tabbar.rb
CHANGED
@@ -25,8 +25,8 @@ module Briar
|
|
25
25
|
|
26
26
|
def touch_tabbar_item(name, wait_for_view_id=nil)
|
27
27
|
sleep(0.2)
|
28
|
-
wait_for(:timeout =>
|
29
|
-
:retry_frequency =>
|
28
|
+
wait_for(:timeout => BRIAR_WAIT_TIMEOUT,
|
29
|
+
:retry_frequency => BRIAR_RETRY_FREQ) do
|
30
30
|
index_of_tabbar_item(name) != nil
|
31
31
|
end
|
32
32
|
should_see_tabbar
|
@@ -49,10 +49,6 @@ module Briar
|
|
49
49
|
screenshot_and_raise "should have seen tab named '#{name}' at index '#{index}' but found these: '#{tabs}'"
|
50
50
|
end
|
51
51
|
end
|
52
|
-
|
53
|
-
def tabbar_item_is_at_index(name, index)
|
54
|
-
pending "deprecated 0.0.6 - use should_see_tab_at_index '#{name}', '#{index}'"
|
55
|
-
end
|
56
52
|
end
|
57
53
|
end
|
58
54
|
|
data/lib/briar/briar_core.rb
CHANGED
@@ -94,8 +94,8 @@ module Briar
|
|
94
94
|
def wait_for_view (view_id, timeout=BRIAR_WAIT_TIMEOUT)
|
95
95
|
msg = "waited for '#{timeout}' seconds but did not see '#{view_id}'"
|
96
96
|
wait_for(:timeout => timeout,
|
97
|
-
:retry_frequency =>
|
98
|
-
:post_timeout =>
|
97
|
+
:retry_frequency => BRIAR_RETRY_FREQ,
|
98
|
+
:post_timeout => BRIAR_POST_TIMEOUT,
|
99
99
|
:timeout_message => msg) do
|
100
100
|
view_exists? view_id
|
101
101
|
end
|
@@ -104,8 +104,8 @@ module Briar
|
|
104
104
|
def wait_for_query(qstr, timeout=BRIAR_WAIT_TIMEOUT)
|
105
105
|
msg = "waited for '#{timeout}' seconds but did not see\n '#{qstr}'"
|
106
106
|
wait_for(:timeout => timeout,
|
107
|
-
:retry_frequency =>
|
108
|
-
:post_timeout =>
|
107
|
+
:retry_frequency => BRIAR_RETRY_FREQ,
|
108
|
+
:post_timeout => BRIAR_POST_TIMEOUT,
|
109
109
|
:timeout_message => msg) do
|
110
110
|
!query(qstr).empty?
|
111
111
|
end
|
@@ -114,8 +114,8 @@ module Briar
|
|
114
114
|
def wait_for_custom_view (view_class, view_id, timeout=BRIAR_WAIT_TIMEOUT)
|
115
115
|
msg = "waited for '#{timeout}' seconds but did not see '#{view_id}'"
|
116
116
|
wait_for(:timeout => timeout,
|
117
|
-
:retry_frequency =>
|
118
|
-
:post_timeout =>
|
117
|
+
:retry_frequency => BRIAR_RETRY_FREQ,
|
118
|
+
:post_timeout => BRIAR_POST_TIMEOUT,
|
119
119
|
:timeout_message => msg) do
|
120
120
|
!query("view:'#{view_class}' marked:'#{view_id}'").empty?
|
121
121
|
end
|
@@ -137,8 +137,8 @@ module Briar
|
|
137
137
|
def wait_for_views(views, timeout=BRIAR_WAIT_TIMEOUT)
|
138
138
|
msg = "waited for '#{timeout}' seconds but did not see '#{views}'"
|
139
139
|
options = {:timeout => timeout,
|
140
|
-
:retry_frequency =>
|
141
|
-
:post_timeout =>
|
140
|
+
:retry_frequency => BRIAR_RETRY_FREQ,
|
141
|
+
:post_timeout => BRIAR_POST_TIMEOUT,
|
142
142
|
:timeout_message => msg}
|
143
143
|
wait_for(options) do
|
144
144
|
views.all? { |view_id| view_exists?(view_id) }
|
@@ -148,8 +148,8 @@ module Briar
|
|
148
148
|
def wait_for_view_to_disappear(view_id, timeout=BRIAR_WAIT_TIMEOUT)
|
149
149
|
msg = "waited for '#{timeout}' seconds for '#{view_id}' to disappear but it is still visible"
|
150
150
|
options = {:timeout => timeout,
|
151
|
-
:retry_frequency =>
|
152
|
-
:post_timeout =>
|
151
|
+
:retry_frequency => BRIAR_RETRY_FREQ,
|
152
|
+
:post_timeout => BRIAR_POST_TIMEOUT,
|
153
153
|
:timeout_message => msg}
|
154
154
|
wait_for(options) do
|
155
155
|
not view_exists? view_id
|
data/lib/briar/control/button.rb
CHANGED
@@ -54,8 +54,8 @@ module Briar
|
|
54
54
|
def wait_for_button (button_id, timeout=BRIAR_WAIT_TIMEOUT)
|
55
55
|
msg = "waited for '#{timeout}' seconds but did not see button '#{button_id}'"
|
56
56
|
wait_for(:timeout => timeout,
|
57
|
-
:retry_frequency =>
|
58
|
-
:post_timeout =>
|
57
|
+
:retry_frequency => BRIAR_RETRY_FREQ,
|
58
|
+
:post_timeout => BRIAR_POST_TIMEOUT,
|
59
59
|
:timeout_message => msg ) do
|
60
60
|
button_exists? button_id
|
61
61
|
end
|
@@ -64,8 +64,8 @@ module Briar
|
|
64
64
|
def wait_for_button_with_title (button_id, title, timeout=BRIAR_WAIT_TIMEOUT)
|
65
65
|
msg = "waited for '#{timeout}' seconds but did not see button '#{button_id}' with title '#{title}'"
|
66
66
|
wait_for(:timeout => timeout,
|
67
|
-
:retry_frequency =>
|
68
|
-
:post_timeout =>
|
67
|
+
:retry_frequency => BRIAR_RETRY_FREQ,
|
68
|
+
:post_timeout => BRIAR_POST_TIMEOUT,
|
69
69
|
:timeout_message => msg ) do
|
70
70
|
button_exists? button_id
|
71
71
|
end
|
@@ -16,66 +16,53 @@ module Briar
|
|
16
16
|
end
|
17
17
|
|
18
18
|
def index_of_segment_with_name_in_control_with_id(segment_id, control_id)
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
19
|
+
qstr = "segmentedControl marked:'#{control_id}'"
|
20
|
+
num_segs = query(qstr, :numberOfSegments).first.to_i
|
21
|
+
idx = 0
|
22
|
+
while idx < num_segs
|
23
|
+
title = query(qstr, {titleForSegmentAtIndex:idx}).first
|
24
|
+
return idx if title.eql?(segment_id)
|
25
|
+
idx = idx + 1
|
25
26
|
end
|
27
|
+
return nil
|
26
28
|
end
|
27
29
|
|
28
30
|
def should_see_segment_with_selected_state (control_id, segment_id, selected_state)
|
29
31
|
@segment_id = segment_id
|
30
32
|
@control_id = control_id
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
end
|
40
|
-
else
|
41
|
-
screenshot_and_raise "could not find #{segment_id} in #{control_id}"
|
42
|
-
end
|
43
|
-
else
|
44
|
-
screenshot_and_raise "could not find control named #{control_id}"
|
33
|
+
res = query("segmentedControl marked:'#{control_id}' child segment marked:'#{segment_id}'",
|
34
|
+
:isSelected)
|
35
|
+
if res.empty?
|
36
|
+
screenshot_and_raise "expected to see segmented control '#{control_id}' with segment '#{segment_id}'"
|
37
|
+
end
|
38
|
+
|
39
|
+
unless res.first.to_i == selected_state
|
40
|
+
screenshot_and_raise "expected to see segment '#{segment_id}' in '#{control_id}' with selection state '#{selected_state}' but found '#{res.to_i}'"
|
45
41
|
end
|
46
42
|
end
|
47
43
|
|
48
44
|
def touch_segment(segment_id, control_id)
|
49
45
|
@segment_id = segment_id
|
50
46
|
@control_id = control_id
|
51
|
-
|
52
|
-
|
53
|
-
touch("segmentedControl index:#{idx} child segment child segmentLabel marked:'#{segment_id}'")
|
54
|
-
step_pause
|
55
|
-
else
|
56
|
-
screenshot_and_raise "could not find segmented control with name #{control_id}"
|
57
|
-
end
|
47
|
+
touch("segmentedControl marked:'#{control_id}' child segment marked:'#{segment_id}'")
|
48
|
+
step_pause
|
58
49
|
end
|
59
50
|
|
60
51
|
def should_see_control_with_segment_titles (control_id, segment_titles)
|
61
52
|
@control_id = control_id
|
62
53
|
should_see_view control_id
|
63
|
-
tokens = segment_titles
|
54
|
+
tokens = tokenize_list(segment_titles)
|
64
55
|
tokens.each do |token|
|
65
56
|
token.strip!
|
66
57
|
end
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
screenshot_and_raise "when inspecting #{control_id} i expected title: #{expected} but found: #{actual} at index #{counter}"
|
74
|
-
end
|
75
|
-
counter = counter + 1
|
58
|
+
counter = 0
|
59
|
+
tokens.each do |expected|
|
60
|
+
idx = index_of_segment_with_name_in_control_with_id expected, control_id
|
61
|
+
unless idx == counter
|
62
|
+
actual = query("segmentedControl marked:'#{control_id}'", {titleForSegmentAtIndex:counter}).first
|
63
|
+
screenshot_and_raise "expected to see segment '#{expected}' at index '#{counter}' but found '#{actual}'"
|
76
64
|
end
|
77
|
-
|
78
|
-
screenshot_and_raise "could not find segmented control with name #{control_id}"
|
65
|
+
counter = counter + 1
|
79
66
|
end
|
80
67
|
end
|
81
68
|
end
|
data/lib/briar/email.rb
CHANGED
@@ -61,7 +61,7 @@ module Briar
|
|
61
61
|
end
|
62
62
|
|
63
63
|
def email_to_contains? (address)
|
64
|
-
addrs = email_to
|
64
|
+
addrs = tokenize_list(email_to)
|
65
65
|
addrs.include? address
|
66
66
|
end
|
67
67
|
|
@@ -81,25 +81,32 @@ module Briar
|
|
81
81
|
end
|
82
82
|
|
83
83
|
def is_ios6_mail_view
|
84
|
-
warn 'WARN:
|
84
|
+
warn 'WARN: deprecated 0.0.9'
|
85
85
|
end
|
86
86
|
|
87
|
-
def should_see_mail_view (timeout
|
87
|
+
def should_see_mail_view (opts = {:timeout => BRIAR_WAIT_TIMEOUT,
|
88
|
+
:email_view_mark => 'compose email'})
|
89
|
+
|
90
|
+
{:timeout => BRIAR_WAIT_TIMEOUT, :email_view_mark => 'compose email'}.merge!(opts)
|
91
|
+
|
92
|
+
|
88
93
|
if email_not_testable?
|
89
94
|
warn_about_no_ios5_email_view
|
90
95
|
return
|
91
96
|
end
|
92
97
|
|
98
|
+
timeout = opts[:timeout]
|
93
99
|
msg = "waited for '#{timeout}' seconds but did not see email compose view"
|
94
100
|
dev = device()
|
101
|
+
email_view_mark = opts[:email_view_mark]
|
95
102
|
wait_for(:timeout => timeout,
|
96
|
-
:retry_frequency =>
|
97
|
-
:post_timeout =>
|
103
|
+
:retry_frequency => BRIAR_RETRY_FREQ,
|
104
|
+
:post_timeout => BRIAR_POST_TIMEOUT,
|
98
105
|
:timeout_message => msg) do
|
99
106
|
if dev.ios5?
|
100
107
|
is_ios5_mail_view
|
101
108
|
else
|
102
|
-
view_exists?
|
109
|
+
view_exists? email_view_mark
|
103
110
|
end
|
104
111
|
end
|
105
112
|
end
|
@@ -144,8 +151,8 @@ module Briar
|
|
144
151
|
timeout = BRIAR_WAIT_TIMEOUT * 2
|
145
152
|
msg = "waited for '#{timeout}' seconds but did not see cancel button"
|
146
153
|
wait_for(:timeout => timeout,
|
147
|
-
:retry_frequency =>
|
148
|
-
:post_timeout =>
|
154
|
+
:retry_frequency => BRIAR_RETRY_FREQ,
|
155
|
+
:post_timeout => BRIAR_POST_TIMEOUT,
|
149
156
|
:timeout_message => msg) do
|
150
157
|
uia_element_exists?(:view, marked: 'Cancel')
|
151
158
|
end
|
@@ -153,8 +160,8 @@ module Briar
|
|
153
160
|
uia_tap_mark('Cancel')
|
154
161
|
msg = "waited for '#{timeout}' seconds but did not see dismiss email action sheet"
|
155
162
|
wait_for(:timeout => timeout,
|
156
|
-
:retry_frequency =>
|
157
|
-
:post_timeout =>
|
163
|
+
:retry_frequency => BRIAR_RETRY_FREQ,
|
164
|
+
:post_timeout => BRIAR_POST_TIMEOUT,
|
158
165
|
:timeout_message => msg) do
|
159
166
|
uia_element_exists?(:view, marked: 'Delete Draft')
|
160
167
|
end
|
data/lib/briar/keyboard.rb
CHANGED
@@ -3,8 +3,6 @@ module Briar
|
|
3
3
|
# dismiss the keyboard on iPad
|
4
4
|
# send_uia_command command:"uia.keyboard().buttons()['Hide keyboard'].tap()"
|
5
5
|
|
6
|
-
# these are not ready for prime time
|
7
|
-
# the methods for setting auto correct, spell check, etc. are not ready
|
8
6
|
UITextAutocapitalizationTypeNone = 0
|
9
7
|
UITextAutocapitalizationTypeWords = 1
|
10
8
|
UITextAutocapitalizationTypeSentences = 2
|
@@ -14,6 +12,7 @@ module Briar
|
|
14
12
|
UITextAutocorrectionTypeNo = 1
|
15
13
|
|
16
14
|
|
15
|
+
# might be 0 and 1?
|
17
16
|
UITextSpellCheckingTypeNo = 1
|
18
17
|
UITextSpellCheckingTypeYes = 2
|
19
18
|
|
@@ -22,8 +21,8 @@ module Briar
|
|
22
21
|
def should_see_keyboard (timeout=BRIAR_WAIT_TIMEOUT)
|
23
22
|
msg = "waited for '#{timeout}' seconds but did not see keyboard"
|
24
23
|
wait_for(:timeout => timeout,
|
25
|
-
:retry_frequency =>
|
26
|
-
:post_timeout =>
|
24
|
+
:retry_frequency => BRIAR_RETRY_FREQ,
|
25
|
+
:post_timeout => BRIAR_POST_TIMEOUT,
|
27
26
|
:timeout_message => msg) do
|
28
27
|
element_exists('keyboardAutomatic')
|
29
28
|
end
|
@@ -32,8 +31,8 @@ module Briar
|
|
32
31
|
def should_not_see_keyboard (timeout=BRIAR_WAIT_TIMEOUT)
|
33
32
|
msg = "waited for '#{timeout}' seconds but keyboard did not disappear"
|
34
33
|
wait_for(:timeout => timeout,
|
35
|
-
:retry_frequency =>
|
36
|
-
:post_timeout =>
|
34
|
+
:retry_frequency => BRIAR_RETRY_FREQ,
|
35
|
+
:post_timeout => BRIAR_POST_TIMEOUT,
|
37
36
|
:timeout_message => msg) do
|
38
37
|
element_does_not_exist 'keyboardAutomatic'
|
39
38
|
end
|
@@ -68,78 +67,68 @@ module Briar
|
|
68
67
|
end
|
69
68
|
end
|
70
69
|
|
70
|
+
|
71
|
+
def briar_clear_text(view_id, timeout=5)
|
72
|
+
warn("deprecated 0.1.1 - will remove 'timeout' argument in a future release")
|
73
|
+
clear_text("view marked:'#{view_id}'")
|
74
|
+
|
75
|
+
# i really wanted this to work, but there are too many issues with the
|
76
|
+
# touch not bringing up the the Select menu bar - for example sometimes
|
77
|
+
# it brings up the typo correction bar.
|
78
|
+
#wait_for_view view_id
|
79
|
+
#step_pause
|
80
|
+
#touch("view marked:'#{view_id}'")
|
81
|
+
#wait_for_button 'Select All', timeout
|
82
|
+
#step_pause
|
83
|
+
#touch_button_and_wait_for_view 'Select All', 'Cut', timeout
|
84
|
+
#step_pause
|
85
|
+
#touch_button 'Cut'
|
86
|
+
#step_pause
|
87
|
+
end
|
88
|
+
|
89
|
+
### deprecated ###
|
90
|
+
|
71
91
|
def set_autocapitalization (type)
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
92
|
+
pending('deprecated 0.1.1 - does not work')
|
93
|
+
#if !query('textView index:0').empty?
|
94
|
+
# query('textView index:0', [{setAutocapitalizationType: type}])
|
95
|
+
#elsif !query('textField index:0').empty?
|
96
|
+
# query('textField index:0', [{setAutocapitalizationType: type}])
|
97
|
+
#else
|
98
|
+
# screenshot_and_raise 'could not find a text view or text field'
|
99
|
+
#end
|
79
100
|
end
|
80
101
|
|
81
102
|
def turn_autocapitalization_off
|
82
|
-
|
103
|
+
pending('deprecated 0.1.1 - does not work')
|
104
|
+
#set_autocapitalization UITextAutocapitalizationTypeNone
|
83
105
|
end
|
84
106
|
|
85
107
|
def set_autocorrect (type)
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
108
|
+
pending('deprecated 0.1.1 - does not work')
|
109
|
+
#if !query('textView index:0').empty?
|
110
|
+
# query('textView index:0', [{setAutocorrectionType: type}])
|
111
|
+
#elsif !query('textField index:0').empty?
|
112
|
+
# query('textField index:0', [{setAutocorrectionType: type}])
|
113
|
+
#else
|
114
|
+
# screenshot_and_raise 'could not find a text view or text field'
|
115
|
+
#end
|
93
116
|
end
|
94
117
|
|
95
118
|
def turn_autocorrect_off
|
96
|
-
|
119
|
+
pending('deprecated 0.1.1 - does not work')
|
120
|
+
# set_autocorrect UITextAutocorrectionTypeNo
|
97
121
|
end
|
98
122
|
|
99
123
|
def turn_spell_correct_off
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
def briar_clear_text(view_id, timeout=5)
|
110
|
-
wait_for_view view_id
|
111
|
-
step_pause
|
112
|
-
touch("view marked:'#{view_id}'")
|
113
|
-
wait_for_button 'Select All', timeout
|
114
|
-
step_pause
|
115
|
-
touch_button_and_wait_for_view 'Select All', 'Cut', timeout
|
116
|
-
step_pause
|
117
|
-
touch_button 'Cut'
|
118
|
-
step_pause
|
124
|
+
pending('deprecated 0.1.1 - does not work')
|
125
|
+
#if !query('textView index:0').empty?
|
126
|
+
# query('textView index:0', [{setSpellCheckingType: UITextSpellCheckingTypeNo}])
|
127
|
+
#elsif !query('textField index:0').empty?
|
128
|
+
# query('textField index:0', [{setSpellCheckingType: UITextSpellCheckingTypeNo}])
|
129
|
+
#else
|
130
|
+
# screenshot_and_raise 'could not find a text view or text field'
|
131
|
+
#end
|
119
132
|
end
|
120
|
-
|
121
|
-
#def is_capitalize_none (cap_type)
|
122
|
-
# cap_type == UITextAutocapitalizationTypeNone
|
123
|
-
#end
|
124
|
-
#
|
125
|
-
#def is_capitalize_words (cap_type)
|
126
|
-
# cap_type == UITextAutocapitalizationTypeWords
|
127
|
-
#end
|
128
|
-
#
|
129
|
-
#def is_capitalize_sentences (cap_type)
|
130
|
-
# cap_type == UITextAutocapitalizationTypeSentences
|
131
|
-
#end
|
132
|
-
#
|
133
|
-
#def is_capitalize_all (cap_type)
|
134
|
-
# cap_type == UITextAutocapitalizationTypeAllCharacters
|
135
|
-
#end
|
136
|
-
#
|
137
|
-
#def is_autocorrect_on (state)
|
138
|
-
# state == UITextAutocorrectionTypeYes
|
139
|
-
#end
|
140
|
-
#
|
141
|
-
#def is_autocorrect_off (state)
|
142
|
-
# state == UITextAutocorrectionTypeNo
|
143
|
-
#end
|
144
133
|
end
|
145
134
|
end
|
data/lib/briar/label.rb
CHANGED
@@ -32,8 +32,8 @@ module Briar
|
|
32
32
|
def wait_for_label (label_id, timeout=BRIAR_WAIT_TIMEOUT)
|
33
33
|
msg = "waited for '#{timeout}' seconds but did not see label '#{label_id}'"
|
34
34
|
wait_for(:timeout => timeout,
|
35
|
-
:retry_frequency =>
|
36
|
-
:post_timeout =>
|
35
|
+
:retry_frequency => BRIAR_RETRY_FREQ,
|
36
|
+
:post_timeout => BRIAR_POST_TIMEOUT,
|
37
37
|
:timeout_message => msg ) do
|
38
38
|
label_exists? label_id
|
39
39
|
end
|
@@ -141,7 +141,7 @@ module Briar
|
|
141
141
|
if convert
|
142
142
|
past = Time.now.gmtime + Time.now.gmtoff - (target_minutes.to_i * 60)
|
143
143
|
else
|
144
|
-
past = Time.
|
144
|
+
past = Time.now - (60 * target_minutes.to_i)
|
145
145
|
end
|
146
146
|
|
147
147
|
opts = {:picker_id => picker_id,
|
@@ -90,7 +90,7 @@ module Briar
|
|
90
90
|
|
91
91
|
def target_date_for_change_time_on_picker_with_time(target_time, convert, picker_id=nil)
|
92
92
|
current_time = ruby_time_from_picker picker_id
|
93
|
-
tz_offset = convert ? 0 : (
|
93
|
+
tz_offset = (convert) ? 0 : Rational((target_time.utc_offset/3600.0)/24.0)
|
94
94
|
DateTime.new(current_time.year, current_time.mon, current_time.day,
|
95
95
|
target_time.hour, target_time.min,
|
96
96
|
0, tz_offset)
|
@@ -117,8 +117,8 @@ module Briar
|
|
117
117
|
def ensure_can_change_picker_to_date(target_dt, picker_id=nil)
|
118
118
|
max_date = maximum_date_time_from_picker picker_id
|
119
119
|
if max_date and target_dt > max_date
|
120
|
-
|
121
|
-
|
120
|
+
puts "\ntarget: '#{target_dt}'"
|
121
|
+
puts " max: '#{max_date}'"
|
122
122
|
screenshot_and_raise "cannot change time to '#{target_dt}' because the picker has a maximum date of '#{max_date}'"
|
123
123
|
end
|
124
124
|
|
data/lib/briar/table.rb
CHANGED
@@ -86,8 +86,8 @@ module Briar
|
|
86
86
|
timeout = options[:timeout] || BRIAR_WAIT_TIMEOUT
|
87
87
|
msg = "waited for '#{timeout}' seconds but did not see row '#{query_str}' with query '#{query_str}'"
|
88
88
|
wait_for(:timeout => timeout,
|
89
|
-
:retry_frequency =>
|
90
|
-
:post_timeout =>
|
89
|
+
:retry_frequency => BRIAR_RETRY_FREQ,
|
90
|
+
:post_timeout => BRIAR_POST_TIMEOUT,
|
91
91
|
:timeout_message => msg) do
|
92
92
|
row_visible? row_id, table_id
|
93
93
|
end
|
@@ -169,19 +169,6 @@ module Briar
|
|
169
169
|
end
|
170
170
|
end
|
171
171
|
|
172
|
-
def scroll_until_i_see_row (dir, row_id, table_id=nil)
|
173
|
-
warn "deprecated 0.0.8 - use 'scroll_to_row #{row_id}' with optional table view mark"
|
174
|
-
wait_poll({:until_exists => query_str_for_row(row_id, table_id),
|
175
|
-
:timeout => 2}) do
|
176
|
-
scroll('tableView', dir)
|
177
|
-
end
|
178
|
-
|
179
|
-
unless row_visible?(row_id)
|
180
|
-
screenshot_and_raise "i scrolled '#{dir}' but did not see '#{row_id}'"
|
181
|
-
end
|
182
|
-
end
|
183
|
-
|
184
|
-
|
185
172
|
def touch_row_offset_hash (row_id, table_id = nil)
|
186
173
|
offset = 0
|
187
174
|
query = query_str_for_row row_id, table_id
|
@@ -262,8 +249,8 @@ module Briar
|
|
262
249
|
timeout = 5
|
263
250
|
msg = "waited for '#{timeout}' seconds but did not see 'Delete' confirmation in row '#{row_id}'"
|
264
251
|
wait_for(:timeout => timeout,
|
265
|
-
:retry_frequency =>
|
266
|
-
:post_timeout =>
|
252
|
+
:retry_frequency => BRIAR_RETRY_FREQ,
|
253
|
+
:post_timeout => BRIAR_POST_TIMEOUT,
|
267
254
|
:timeout_message => msg) do
|
268
255
|
element_exists query_str
|
269
256
|
end
|
data/lib/briar/text_view.rb
CHANGED
@@ -9,8 +9,8 @@ module Briar
|
|
9
9
|
def wait_for_text_view(view_id, timeout=BRIAR_WAIT_TIMEOUT)
|
10
10
|
msg = "waited for '#{timeout}' seconds but did not see '#{view_id}'"
|
11
11
|
wait_for(:timeout => timeout,
|
12
|
-
:retry_frequency =>
|
13
|
-
:post_timeout =>
|
12
|
+
:retry_frequency => BRIAR_RETRY_FREQ,
|
13
|
+
:post_timeout => BRIAR_POST_TIMEOUT,
|
14
14
|
:timeout_message => msg) do
|
15
15
|
text_view_exists? view_id
|
16
16
|
end
|
@@ -19,8 +19,8 @@ module Briar
|
|
19
19
|
def wait_for_text_view_to_disappear(view_id, timeout=BRIAR_WAIT_TIMEOUT)
|
20
20
|
msg = "waited for '#{timeout}' seconds for '#{view_id}' to disappear but it is still visible"
|
21
21
|
options = {:timeout => timeout,
|
22
|
-
:retry_frequency =>
|
23
|
-
:post_timeout =>
|
22
|
+
:retry_frequency => BRIAR_RETRY_FREQ,
|
23
|
+
:post_timeout => BRIAR_POST_TIMEOUT,
|
24
24
|
:timeout_message => msg}
|
25
25
|
wait_for(options) do
|
26
26
|
not text_view_exists? view_id
|
data/lib/briar/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: briar
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Joshua Moody
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2013-10-
|
11
|
+
date: 2013-10-25 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: calabash-cucumber
|
@@ -52,20 +52,6 @@ dependencies:
|
|
52
52
|
- - ! '>='
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: '0'
|
55
|
-
- !ruby/object:Gem::Dependency
|
56
|
-
name: rspec
|
57
|
-
requirement: !ruby/object:Gem::Requirement
|
58
|
-
requirements:
|
59
|
-
- - ! '>='
|
60
|
-
- !ruby/object:Gem::Version
|
61
|
-
version: '0'
|
62
|
-
type: :runtime
|
63
|
-
prerelease: false
|
64
|
-
version_requirements: !ruby/object:Gem::Requirement
|
65
|
-
requirements:
|
66
|
-
- - ! '>='
|
67
|
-
- !ruby/object:Gem::Version
|
68
|
-
version: '0'
|
69
55
|
description: extends calabash-ios steps
|
70
56
|
email:
|
71
57
|
- joshuajmoody@gmail.com
|
@@ -155,10 +141,10 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
155
141
|
version: '0'
|
156
142
|
requirements: []
|
157
143
|
rubyforge_project:
|
158
|
-
rubygems_version: 2.1.
|
144
|
+
rubygems_version: 2.1.10
|
159
145
|
signing_key:
|
160
146
|
specification_version: 4
|
161
|
-
summary: briar-0.1.
|
147
|
+
summary: briar-0.1.1
|
162
148
|
test_files:
|
163
149
|
- features/step_definitions/alerts_and_sheets/action_sheet_steps.rb
|
164
150
|
- features/step_definitions/alerts_and_sheets/alert_view_steps.rb
|