briar 0.0.6 → 0.0.7
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +8 -8
- data/README.md +18 -1
- data/Rakefile +13 -7
- data/briar.gemspec +4 -1
- data/features/step_definitions/alerts_and_sheets/action_sheet_steps.rb +0 -2
- data/features/step_definitions/alerts_and_sheets/alert_view_steps.rb +0 -3
- data/features/step_definitions/email_steps.rb +29 -28
- data/lib/briar/alerts_and_sheets/alert_view.rb +4 -2
- data/lib/briar/bars/navbar.rb +16 -1
- data/lib/briar/bars/tabbar.rb +9 -4
- data/lib/briar/briar_core.rb +24 -0
- data/lib/briar/email.rb +41 -9
- data/lib/briar/gestalt.rb +22 -15
- data/lib/briar/picker/date_picker.rb +0 -1
- data/lib/briar/table.rb +1 -6
- data/lib/briar/version.rb +1 -1
- data/spec/briar/gestalt_spec.rb +9 -5
- metadata +17 -3
checksums.yaml
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
---
|
2
2
|
!binary "U0hBMQ==":
|
3
3
|
metadata.gz: !binary |-
|
4
|
-
|
4
|
+
MjI4ZTI0ZWZlZWJkMTdlYmIwYjY5ZmVlY2IwYjJkZmU1M2I1YjgzOA==
|
5
5
|
data.tar.gz: !binary |-
|
6
|
-
|
6
|
+
NWU2YTZhOGM4YmFjNjg5ZDdjOGNhOGQ3NDY2MjQxNGIyNjRkMjhmZQ==
|
7
7
|
!binary "U0hBNTEy":
|
8
8
|
metadata.gz: !binary |-
|
9
|
-
|
10
|
-
|
11
|
-
|
9
|
+
MDhhZjU2OGZhNzFhMWU3MDMzNWIyNjgxYjMwNTNlZTE2ZjU5NzExYjQ3Mzc5
|
10
|
+
YTk5ZjQyZDhjNGE3YmYzNzI0Nzc1ZDY3ODg4MDRjYjNkM2I0OTNmMGRkMzMw
|
11
|
+
M2UzZGM3ZTY0YWEzNDllYTU2NTg0N2UzNmQwODY2NjU4YjBjZjA=
|
12
12
|
data.tar.gz: !binary |-
|
13
|
-
|
14
|
-
|
15
|
-
|
13
|
+
ZmY3OTgzMjlhYzRmNDU1MzdkZGU2MDY1OThiOGI0NmU4YTJkZGRiZTRmMjIz
|
14
|
+
ZWIxMjQ3MDRhN2NiMjRhODg0MmM2YTBjYmQ2YjU3MGEyOWQ2ZTA5MjExM2U3
|
15
|
+
ZGRjYWRjNTRhZjU0ZWFhMmQyNmJkNzcxZDQyYWY2MDVjNjhlNmI=
|
data/README.md
CHANGED
@@ -3,11 +3,24 @@
|
|
3
3
|
extends calabash-ios steps to provide steps for controlling complex ui
|
4
4
|
elements like tables and pickers.
|
5
5
|
|
6
|
+
briar is not trying to provide steps that will work for every project
|
7
|
+
- it is neccessary that every project develop its own venacular.
|
8
|
+
instead, briar provides a library [lib] of ruby methods to build
|
9
|
+
application-specific steps from. the steps in the features directory
|
10
|
+
are meant to be examples of what briar can offer.
|
11
|
+
|
6
12
|
https://github.com/calabash/calabash-ios.git
|
7
13
|
|
8
14
|
to see briar in action, have a look at
|
9
15
|
https://github.com/jmoody/briar-ios-example
|
10
16
|
|
17
|
+
### motivation
|
18
|
+
|
19
|
+
DRY: i have several ios projects that use calabash-cucumber and i
|
20
|
+
found i was rewriting lots of steps and supporting code.
|
21
|
+
|
22
|
+
## version numbers
|
23
|
+
|
11
24
|
i will try my best to follow http://semver.org/ when naming the
|
12
25
|
versions.
|
13
26
|
|
@@ -18,7 +31,11 @@ versions.
|
|
18
31
|
|
19
32
|
## Installation
|
20
33
|
|
21
|
-
|
34
|
+
getting closer to stability
|
35
|
+
|
36
|
+
* there are still major problems with date picking
|
37
|
+
* still problems running tests on lesspainful - can upload to LP but
|
38
|
+
still cannot get all tests to run
|
22
39
|
|
23
40
|
## Usage
|
24
41
|
|
data/Rakefile
CHANGED
@@ -1,12 +1,18 @@
|
|
1
|
-
require
|
2
|
-
require
|
1
|
+
require 'bundler/gem_tasks'
|
2
|
+
require './lib/briar/version.rb'
|
3
3
|
task :show_simulator do
|
4
4
|
sh "/usr/bin/osascript -e 'tell application \"iPhone Simulator\" to activate'"
|
5
5
|
sh "/usr/bin/osascript -e 'tell application \"RubyMine\" to activate'"
|
6
6
|
end
|
7
7
|
|
8
|
-
task :gem do
|
9
|
-
sh
|
10
|
-
sh
|
11
|
-
sh "gem install briar-#{Briar::VERSION}.gem"
|
12
|
-
end
|
8
|
+
#task :gem do
|
9
|
+
# sh 'rm -f *.gem'
|
10
|
+
# sh 'gem build briar.gemspec --verbose'
|
11
|
+
# sh "gem install briar-#{Briar::VERSION}.gem"
|
12
|
+
#end
|
13
|
+
#
|
14
|
+
#task :push do
|
15
|
+
# sh 'gem update'
|
16
|
+
# sh 'gem build briar.gemspec'
|
17
|
+
# sh "gem push briar-#{Briar::VERSION}.gem"
|
18
|
+
#end
|
data/briar.gemspec
CHANGED
@@ -14,11 +14,14 @@ Gem::Specification.new do |gem|
|
|
14
14
|
gem.homepage = 'https://github.com/jmoody/briar'
|
15
15
|
gem.license = 'MIT'
|
16
16
|
|
17
|
-
gem.add_runtime_dependency 'calabash-cucumber'
|
17
|
+
gem.add_runtime_dependency 'calabash-cucumber'
|
18
18
|
gem.add_runtime_dependency 'rake', '10.0.3'
|
19
19
|
gem.add_runtime_dependency 'bundler'
|
20
20
|
gem.add_runtime_dependency 'lesspainful'
|
21
|
+
gem.add_runtime_dependency 'syntax'
|
21
22
|
gem.add_runtime_dependency 'rspec'
|
23
|
+
|
24
|
+
|
22
25
|
# rubymine is not picking up development dependencies in the gemspec
|
23
26
|
#gem.add_development_dependency 'rspec'
|
24
27
|
|
@@ -1,5 +1,3 @@
|
|
1
|
-
#include Briar::Alerts_and_Sheets
|
2
|
-
|
3
1
|
Then /^I should see alert with "([^"]*)" button$/ do |button_id|
|
4
2
|
should_see_alert_button button_id
|
5
3
|
end
|
@@ -10,7 +8,6 @@ Then /^I should see alert with title "([^"]*)"$/ do |title|
|
|
10
8
|
end
|
11
9
|
end
|
12
10
|
|
13
|
-
|
14
11
|
Then /^I should see alert with message "([^"]*)"$/ do |message|
|
15
12
|
unless query('alertView child label', :text).include?(message)
|
16
13
|
screenshot_and_raise "i do not see an alert view with message '#{message}'"
|
@@ -6,6 +6,7 @@ end
|
|
6
6
|
|
7
7
|
Then /^I should see email view with body that contains "([^"]*)"$/ do |text|
|
8
8
|
if gestalt.is_ios6?
|
9
|
+
warn_about_ios6_email_view
|
9
10
|
puts 'WARN: iOS6 detected - cannot test for email views on iOS simulator or devices'
|
10
11
|
else
|
11
12
|
wait_for_animation
|
@@ -16,19 +17,26 @@ Then /^I should see email view with body that contains "([^"]*)"$/ do |text|
|
|
16
17
|
end
|
17
18
|
|
18
19
|
Then /^I touch the "([^"]*)" row and wait to see the email view$/ do |row_id|
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
20
|
+
if device_can_send_email
|
21
|
+
# cannot do the usual - touch_row_and_wait_to_see because sometimes
|
22
|
+
# we will not see because in iOS 6, email compose views cannot be queried
|
23
|
+
# by calabash
|
24
|
+
should_see_row row_id
|
25
|
+
touch("tableViewCell marked:'#{row_id}'")
|
26
|
+
wait_for_animation
|
27
|
+
if gestalt.is_ios6?
|
28
|
+
warn_about_ios6_email_view
|
29
|
+
else
|
30
|
+
should_see_mail_view
|
31
|
+
end
|
24
32
|
else
|
25
|
-
|
33
|
+
pending 'device is not configured for email so a system alert is probably generated, which we cannot touch'
|
26
34
|
end
|
27
35
|
end
|
28
36
|
|
29
37
|
Then /^I should see email view with "([^"]*)" in the subject$/ do |text|
|
30
38
|
if gestalt.is_ios6?
|
31
|
-
|
39
|
+
warn_about_ios6_email_view
|
32
40
|
else
|
33
41
|
wait_for_animation
|
34
42
|
should_see_mail_view
|
@@ -40,16 +48,9 @@ end
|
|
40
48
|
|
41
49
|
Then /^I should see email view with recipients? "([^"]*)"$/ do |comma_sep_addrs|
|
42
50
|
if gestalt.is_ios6?
|
43
|
-
|
51
|
+
warn_about_ios6_email_view
|
44
52
|
else
|
45
|
-
|
46
|
-
wait_for_animation
|
47
|
-
addrs = comma_sep_addrs.split(/, ?/)
|
48
|
-
addrs.each do |expected|
|
49
|
-
unless email_to_contains? expected.strip
|
50
|
-
screenshot_and_raise "expected to see '#{expected}' in the email 'to' field but found '#{email_to}'"
|
51
|
-
end
|
52
|
-
end
|
53
|
+
should_see_recipients comma_sep_addrs
|
53
54
|
end
|
54
55
|
end
|
55
56
|
|
@@ -60,7 +61,7 @@ end
|
|
60
61
|
|
61
62
|
Then /^I should see email view with text like "([^"]*)" in the subject$/ do |text|
|
62
63
|
if gestalt.is_ios6?
|
63
|
-
|
64
|
+
warn_about_ios6_email_view
|
64
65
|
else
|
65
66
|
should_see_mail_view
|
66
67
|
wait_for_animation
|
@@ -71,16 +72,16 @@ Then /^I should see email view with text like "([^"]*)" in the subject$/ do |tex
|
|
71
72
|
end
|
72
73
|
|
73
74
|
When /^I cancel email editing I should see the "([^"]*)" view$/ do |view_id|
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
75
|
+
delete_draft_and_wait_for view_id
|
76
|
+
end
|
77
|
+
|
78
|
+
Given(/^we are testing on the simulator or a device configured to send emails$/) do
|
79
|
+
# motivation: the simulator can always present the compose mail dialog, but
|
80
|
+
# devices with no email accounts active/configured will display
|
81
|
+
# a system-level alert when MFMailComposeViewController alloc] init]
|
82
|
+
# is called.
|
83
|
+
# todo: figure out how to deal with system-level no-email-configured alert
|
84
|
+
unless device_can_send_email
|
85
|
+
pending 'device is not configured to send email - we cannot proceed with email view testing'
|
85
86
|
end
|
86
87
|
end
|
@@ -1,5 +1,3 @@
|
|
1
|
-
require 'calabash-cucumber'
|
2
|
-
|
3
1
|
module Briar
|
4
2
|
module Alerts_and_Sheets
|
5
3
|
def alert_exists? (alert_id)
|
@@ -28,5 +26,9 @@ module Briar
|
|
28
26
|
end
|
29
27
|
end
|
30
28
|
|
29
|
+
def dismiss_alert_with_button (button_label)
|
30
|
+
touch("alertView child button marked:'#{button_label}'")
|
31
|
+
end
|
32
|
+
|
31
33
|
end
|
32
34
|
end
|
data/lib/briar/bars/navbar.rb
CHANGED
@@ -6,6 +6,18 @@ module Briar
|
|
6
6
|
!query('navigationBar').empty?
|
7
7
|
end
|
8
8
|
|
9
|
+
def should_see_navbar
|
10
|
+
unless navbar_visible?
|
11
|
+
screenshot_and_raise 'should see the nav bar'
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
def should_not_see_navbar
|
16
|
+
if navbar_visible?
|
17
|
+
screenshot_and_raise 'should not see the nav bar'
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
9
21
|
def navbar_has_back_button?
|
10
22
|
!query('navigationItemButtonView').empty?
|
11
23
|
end
|
@@ -66,9 +78,12 @@ module Briar
|
|
66
78
|
end
|
67
79
|
|
68
80
|
def touch_navbar_item(name)
|
81
|
+
wait_for(:timeout => 1.0,
|
82
|
+
:retry_frequency => 0.4) do
|
83
|
+
index_of_navbar_button(name) != nil
|
84
|
+
end
|
69
85
|
wait_for_animation
|
70
86
|
idx = index_of_navbar_button name
|
71
|
-
#puts "index of nav bar button: #{idx}"
|
72
87
|
if idx
|
73
88
|
touch("navigationButton index:#{idx}")
|
74
89
|
step_pause
|
data/lib/briar/bars/tabbar.rb
CHANGED
@@ -19,13 +19,17 @@ module Briar
|
|
19
19
|
end
|
20
20
|
|
21
21
|
def index_of_tabbar_item(name)
|
22
|
-
|
23
|
-
|
24
|
-
tabs.index(name)
|
25
|
-
end
|
22
|
+
tabs = query('tabBarButton', :accessibilityLabel)
|
23
|
+
tabs.index(name)
|
26
24
|
end
|
27
25
|
|
28
26
|
def touch_tabbar_item(name)
|
27
|
+
wait_for(:timeout => 1.0,
|
28
|
+
:retry_frequency => 0.4) do
|
29
|
+
index_of_tabbar_item(name) != nil
|
30
|
+
end
|
31
|
+
wait_for_animation
|
32
|
+
should_see_tabbar
|
29
33
|
idx = index_of_tabbar_item name
|
30
34
|
if idx
|
31
35
|
touch "tabBarButton index:#{idx}"
|
@@ -36,6 +40,7 @@ module Briar
|
|
36
40
|
end
|
37
41
|
|
38
42
|
def should_see_tab_at_index(name, index)
|
43
|
+
should_see_tabbar
|
39
44
|
tabs = query('tabBarButton', :accessibilityLabel)
|
40
45
|
unless tabs.index(name) == index.to_i
|
41
46
|
screenshot_and_raise "should have seen tab named '#{name}' at index '#{index}' but found these: '#{tabs}'"
|
data/lib/briar/briar_core.rb
CHANGED
@@ -58,5 +58,29 @@ module Briar
|
|
58
58
|
touch("view marked:'#{view_id}'")
|
59
59
|
end
|
60
60
|
|
61
|
+
|
62
|
+
def wait_for_view (view_id, timeout=1.0)
|
63
|
+
msg = "waited for '#{timeout}' seconds but did not see '#{view_id}'"
|
64
|
+
wait_for(:timeout => timeout,
|
65
|
+
:retry_frequency => 0.2,
|
66
|
+
:post_timeout => 0.1,
|
67
|
+
:timeout_message => msg ) do
|
68
|
+
view_exists? view_id
|
69
|
+
end
|
70
|
+
end
|
71
|
+
|
72
|
+
def wait_for_view_to_disappear(view_id, timeout=1.0)
|
73
|
+
views = [view_id]
|
74
|
+
msg = "waited for '#{timeout}' seconds for '#{view_id}' to disappear but it is still visible"
|
75
|
+
wait_for_elements_do_not_exist(views, {:timeout => timeout,
|
76
|
+
:retry_frequency => 0.2,
|
77
|
+
:post_timeout => 0.1,
|
78
|
+
:timeout_message => msg})
|
79
|
+
end
|
80
|
+
|
81
|
+
def touch_and_wait_to_disappear(view_id, timeout=1.0)
|
82
|
+
touch("view marked:'#{view_id}'")
|
83
|
+
wait_for_view_to_disappear view_id, timeout
|
84
|
+
end
|
61
85
|
end
|
62
86
|
end
|
data/lib/briar/email.rb
CHANGED
@@ -3,13 +3,17 @@ require 'calabash-cucumber'
|
|
3
3
|
module Briar
|
4
4
|
module Email
|
5
5
|
|
6
|
+
def warn_about_ios6_email_view
|
7
|
+
warn 'WARN: iOS6 detected - cannot test for email views on iOS simulator or devices'
|
8
|
+
end
|
9
|
+
|
6
10
|
def email_body
|
7
11
|
query("view:'MFComposeTextContentView'", :text)
|
8
12
|
end
|
9
13
|
|
10
14
|
def email_body_contains? (text)
|
11
15
|
if gestalt.is_ios6?
|
12
|
-
|
16
|
+
warn 'WARN: iOS6 detected - cannot test for email body text https://groups.google.com/d/topic/calabash-ios/Ff3XFsjp-B0/discussion'
|
13
17
|
else
|
14
18
|
!query("view:'MFComposeTextContentView' {text LIKE '*#{text}*'}").empty?
|
15
19
|
end
|
@@ -21,7 +25,7 @@ module Briar
|
|
21
25
|
|
22
26
|
def email_subject_is? (text)
|
23
27
|
if gestalt.is_ios6?
|
24
|
-
|
28
|
+
warn 'WARN: iOS6 detected - cannot test for email subject text https://groups.google.com/d/topic/calabash-ios/Ff3XFsjp-B0/discussion'
|
25
29
|
else
|
26
30
|
email_subject.eql? text
|
27
31
|
end
|
@@ -29,7 +33,7 @@ module Briar
|
|
29
33
|
|
30
34
|
def email_subject_has_text_like? (text)
|
31
35
|
if gestalt.is_ios6?
|
32
|
-
|
36
|
+
warn 'WARN: iOS6 detected - cannot test for email subject text https://groups.google.com/d/topic/calabash-ios/Ff3XFsjp-B0/discussion'
|
33
37
|
else
|
34
38
|
!query("view:'MFComposeSubjectView' {text LIKE '*#{text}*'}").empty?
|
35
39
|
end
|
@@ -41,7 +45,7 @@ module Briar
|
|
41
45
|
|
42
46
|
def email_to_field_is? (text)
|
43
47
|
if gestalt.is_ios6?
|
44
|
-
|
48
|
+
warn 'WARN: iOS6 detected - cannot test for email to field https://groups.google.com/d/topic/calabash-ios/Ff3XFsjp-B0/discussion'
|
45
49
|
else
|
46
50
|
email_to.eql? text
|
47
51
|
end
|
@@ -52,22 +56,50 @@ module Briar
|
|
52
56
|
addrs.include? address
|
53
57
|
end
|
54
58
|
|
59
|
+
def should_see_recipients (addresses)
|
60
|
+
should_see_mail_view
|
61
|
+
wait_for_animation
|
62
|
+
addrs = addresses.split(/, ?/)
|
63
|
+
addrs.each do |expected|
|
64
|
+
unless email_to_contains? expected.strip
|
65
|
+
screenshot_and_raise "expected to see '#{expected}' in the email 'to' field but found '#{email_to}'"
|
66
|
+
end
|
67
|
+
end
|
68
|
+
end
|
69
|
+
|
55
70
|
def is_ios5_mail_view
|
56
71
|
query("layoutContainerView descendant view:'MFMailComposeView'").count == 1
|
57
72
|
end
|
58
73
|
|
59
74
|
def is_ios6_mail_view
|
60
75
|
gestalt.is_ios6?
|
61
|
-
# sometimes this is returning false
|
62
|
-
# access_ids = query("view", :accessibilityIdentifier)
|
63
|
-
# access_ids.member?("RemoteViewBridge")
|
64
76
|
end
|
65
77
|
|
66
|
-
def should_see_mail_view
|
67
|
-
|
78
|
+
def should_see_mail_view (opts={:wait => true})
|
79
|
+
wait = opts[:wait]
|
80
|
+
wait_for_animation if wait || wait == nil
|
68
81
|
unless is_ios5_mail_view || is_ios6_mail_view
|
69
82
|
screenshot_and_raise 'expected to see email view'
|
70
83
|
end
|
71
84
|
end
|
85
|
+
|
86
|
+
def device_can_send_email
|
87
|
+
return true if gestalt.is_simulator?
|
88
|
+
backdoor('calabash_backdoor_configured_for_mail:', 'ignorable').eql? 'YES'
|
89
|
+
end
|
90
|
+
|
91
|
+
def delete_draft_and_wait_for (view_id)
|
92
|
+
if gestalt.is_ios6?
|
93
|
+
warn_about_ios6_email_view
|
94
|
+
else
|
95
|
+
should_see_mail_view({:wait => false})
|
96
|
+
touch_navbar_item 'Cancel'
|
97
|
+
wait_for_animation
|
98
|
+
touch_transition("button marked:'Delete Draft'",
|
99
|
+
"view marked:'#{view_id}'",
|
100
|
+
{:timeout=>TOUCH_TRANSITION_TIMEOUT,
|
101
|
+
:retry_frequency=>TOUCH_TRANSITION_RETRY_FREQ})
|
102
|
+
end
|
103
|
+
end
|
72
104
|
end
|
73
105
|
end
|
data/lib/briar/gestalt.rb
CHANGED
@@ -1,24 +1,28 @@
|
|
1
1
|
require 'json'
|
2
2
|
|
3
3
|
module Briar
|
4
|
-
GESTALT_IPHONE =
|
5
|
-
GESTALT_IPAD =
|
6
|
-
GESTALT_IPHONE5 =
|
7
|
-
GESTALT_SIM_SYS =
|
4
|
+
GESTALT_IPHONE = 'iPhone'
|
5
|
+
GESTALT_IPAD = 'iPad'
|
6
|
+
GESTALT_IPHONE5 = 'Retina 4-inch'
|
7
|
+
GESTALT_SIM_SYS = 'x86_64'
|
8
|
+
GESTALT_IPOD = 'iPod'
|
9
|
+
|
8
10
|
|
9
11
|
class Gestalt
|
10
12
|
|
11
|
-
|
12
|
-
|
13
|
-
|
13
|
+
attr_reader :device_family
|
14
|
+
attr_reader :simulator_details, :ios_version
|
15
|
+
attr_reader :system
|
16
|
+
attr_reader :framework_version
|
14
17
|
|
15
18
|
def initialize (json)
|
16
19
|
ht = JSON.parse json
|
17
|
-
simulator_device = ht[
|
18
|
-
@system = ht[
|
20
|
+
simulator_device = ht['simulator_device']
|
21
|
+
@system = ht['system']
|
19
22
|
@device_family = @system.eql?(GESTALT_SIM_SYS) ? simulator_device : @system.split(/[\d,.]/).first
|
20
|
-
@simulator_details = ht[
|
21
|
-
@ios_version = ht[
|
23
|
+
@simulator_details = ht['simulator']
|
24
|
+
@ios_version = ht['iOS_version']
|
25
|
+
@framework_version = ht['version']
|
22
26
|
end
|
23
27
|
|
24
28
|
def is_simulator?
|
@@ -33,13 +37,17 @@ module Briar
|
|
33
37
|
self.device_family.eql? GESTALT_IPHONE
|
34
38
|
end
|
35
39
|
|
40
|
+
def is_ipod?
|
41
|
+
self.device_family.eql? GESTALT_IPOD
|
42
|
+
end
|
43
|
+
|
36
44
|
def is_ipad?
|
37
45
|
self.device_family.eql? GESTALT_IPAD
|
38
46
|
end
|
39
47
|
|
40
48
|
def is_iphone_5?
|
41
49
|
return self.simulator_details.split(/[(),]/)[3].eql? GESTALT_IPHONE5 if self.is_simulator?
|
42
|
-
return self.system.split(/[\D]/).delete_if { |x| x.eql?(
|
50
|
+
return self.system.split(/[\D]/).delete_if { |x| x.eql?('') }.first.eql?('5') if self.is_device?
|
43
51
|
end
|
44
52
|
|
45
53
|
def version_hash (version_str)
|
@@ -54,13 +62,12 @@ module Briar
|
|
54
62
|
end
|
55
63
|
|
56
64
|
def is_ios6?
|
57
|
-
self.version_hash(self.ios_version)[:major_version].eql?(
|
65
|
+
self.version_hash(self.ios_version)[:major_version].eql?('6')
|
58
66
|
end
|
59
67
|
|
60
68
|
def is_ios5?
|
61
|
-
self.version_hash(self.ios_version)[:major_version].eql?(
|
69
|
+
self.version_hash(self.ios_version)[:major_version].eql?('5')
|
62
70
|
end
|
63
|
-
|
64
71
|
end
|
65
72
|
end
|
66
73
|
|
@@ -261,7 +261,6 @@ to use the automatic mode, include this category in your CALABASH target
|
|
261
261
|
|
262
262
|
def set_picker_date_with_date_time_str (date_time_str, opts={:animated => 1,
|
263
263
|
:objc_format => PICKER__OBJC___SET_PICKER_DATE__DATE_AND_TIME_FMT})
|
264
|
-
query('datePicker', [{respondsToSelector: 'minuteInterval'}])
|
265
264
|
|
266
265
|
res = query('datePicker', [{setDateWithString:date_time_str},
|
267
266
|
{format:"#{opts[:objc_format]}"},
|
data/lib/briar/table.rb
CHANGED
@@ -76,11 +76,6 @@ module Briar
|
|
76
76
|
## iOS 4 and 5
|
77
77
|
|
78
78
|
(arr.length == 1) and (arr.first.eql? text)
|
79
|
-
## iOS 6
|
80
|
-
#if arr.length > 1
|
81
|
-
#
|
82
|
-
# pending "iOS 6 can have duplicate subviews"
|
83
|
-
# arr.member?(text)
|
84
79
|
end
|
85
80
|
|
86
81
|
|
@@ -110,7 +105,7 @@ module Briar
|
|
110
105
|
def scroll_until_i_see_row (dir, row_id)
|
111
106
|
wait_poll({:until_exists => "tableView descendant tableViewCell marked:'#{row_id}'",
|
112
107
|
:timeout => 2}) do
|
113
|
-
scroll('tableView
|
108
|
+
scroll('tableView', dir)
|
114
109
|
end
|
115
110
|
|
116
111
|
unless row_exists?(row_id)
|
data/lib/briar/version.rb
CHANGED
data/spec/briar/gestalt_spec.rb
CHANGED
@@ -7,7 +7,7 @@ module Briar
|
|
7
7
|
DEVICE__IPHONE_5__IOS_6_JSON = "{\"outcome\":\"SUCCESS\",\"app_name\":\"Rise Up CAL\",\"iOS_version\":\"6.0.1\",\"app_version\":\"1.0\",\"system\":\"iPhone5,0\",\"app_id\":\"org.recoverywarrriors.RiseUp-cal\",\"version\":\"0.9.125\"}"
|
8
8
|
DEVICE__IPAD1__IOS_5_JSON = "{\"outcome\":\"SUCCESS\",\"app_name\":\"Rise Up CAL\",\"iOS_version\":\"5.1.1\",\"app_version\":\"1.0\",\"system\":\"iPad1,1\",\"app_id\":\"org.recoverywarrriors.RiseUp-cal\",\"version\":\"0.9.125\"}"
|
9
9
|
|
10
|
-
describe
|
10
|
+
describe 'Gestalt' do
|
11
11
|
before(:each) do
|
12
12
|
@sim_iphone_5_ios6 = Gestalt.new(SIM__IPHONE_5__IOS_6_JSON)
|
13
13
|
@device_iphone4_ios6 = Gestalt.new(DEVICE__IPHONE_4__IOS_6_JSON)
|
@@ -15,7 +15,7 @@ module Briar
|
|
15
15
|
@device_ipad1_ios5 = Gestalt.new(DEVICE__IPAD1__IOS_5_JSON)
|
16
16
|
end
|
17
17
|
|
18
|
-
it
|
18
|
+
it 'should be able to determine ios major version' do
|
19
19
|
@sim_iphone_5_ios6.is_ios6?.should == true
|
20
20
|
@sim_iphone_5_ios6.is_ios5?.should == false
|
21
21
|
|
@@ -27,7 +27,7 @@ module Briar
|
|
27
27
|
end
|
28
28
|
|
29
29
|
|
30
|
-
it
|
30
|
+
it 'should be able to determine if running on device or simulator' do
|
31
31
|
@sim_iphone_5_ios6.is_simulator?.should == true
|
32
32
|
@sim_iphone_5_ios6.is_device?.should == false
|
33
33
|
|
@@ -40,7 +40,7 @@ module Briar
|
|
40
40
|
end
|
41
41
|
|
42
42
|
|
43
|
-
it
|
43
|
+
it 'should be able to determine the device family' do
|
44
44
|
@sim_iphone_5_ios6.is_iphone?.should == true
|
45
45
|
@sim_iphone_5_ios6.is_ipad?.should == false
|
46
46
|
|
@@ -52,11 +52,15 @@ module Briar
|
|
52
52
|
|
53
53
|
end
|
54
54
|
|
55
|
-
it
|
55
|
+
it 'should be able to determine the if the runtime is on iphone 5' do
|
56
56
|
@sim_iphone_5_ios6.is_iphone_5?.should == true
|
57
57
|
@device_iphone4_ios6.is_iphone_5?.should == false
|
58
58
|
@device_iphone5_ios6.is_iphone_5?.should == true
|
59
59
|
@device_ipad1_ios5.is_iphone_5?.should == false
|
60
60
|
end
|
61
|
+
|
62
|
+
it 'should be able to determine the calabash version' do
|
63
|
+
@sim_iphone_5_ios6.framework_version.should == '0.9.126'
|
64
|
+
end
|
61
65
|
end
|
62
66
|
end
|
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.0.
|
4
|
+
version: 0.0.7
|
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-04-
|
11
|
+
date: 2013-04-12 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: calabash-cucumber
|
@@ -66,6 +66,20 @@ dependencies:
|
|
66
66
|
- - ! '>='
|
67
67
|
- !ruby/object:Gem::Version
|
68
68
|
version: '0'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: syntax
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - ! '>='
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '0'
|
76
|
+
type: :runtime
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - ! '>='
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '0'
|
69
83
|
- !ruby/object:Gem::Dependency
|
70
84
|
name: rspec
|
71
85
|
requirement: !ruby/object:Gem::Requirement
|
@@ -170,7 +184,7 @@ rubyforge_project:
|
|
170
184
|
rubygems_version: 2.0.3
|
171
185
|
signing_key:
|
172
186
|
specification_version: 4
|
173
|
-
summary: briar-0.0.
|
187
|
+
summary: briar-0.0.7
|
174
188
|
test_files:
|
175
189
|
- features/step_definitions/alerts_and_sheets/action_sheet_steps.rb
|
176
190
|
- features/step_definitions/alerts_and_sheets/alert_view_steps.rb
|