briar 0.1.3.b7 → 0.1.3.b8
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 +4 -4
- data/README.md +3 -0
- data/briar.gemspec +4 -2
- data/lib/briar.rb +3 -0
- data/lib/briar/briar_core.rb +10 -3
- data/lib/briar/control/button.rb +10 -1
- data/lib/briar/cucumber.rb +32 -19
- data/lib/briar/email.rb +4 -6
- data/lib/briar/irbrc.rb +199 -0
- data/lib/briar/page/briar_page.rb +55 -0
- data/lib/briar/page/briar_page_helpers.rb +35 -0
- data/lib/briar/uia/briar_ipad_emulation.rb +2 -10
- data/lib/briar/version.rb +1 -1
- metadata +8 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d41c3feb1feec357d18d6bf4309999c248b8d664
|
4
|
+
data.tar.gz: 83235a9761d72557bfe0527f6c10741fd1c0bd9c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 021631be2fb7f87bd3128da2990acecbae0cd4b56535dd9702483772e3fc719f3fb271a37311ba5fa5aab9673cfd62a9f579a53b3e4fb16fb59c838f7fec9800
|
7
|
+
data.tar.gz: 62a149922a64cf8e2ac6912cb2ef84b8152eaef9017389e1c3558c055189f613e31746389a2e8c9ef4d584810aa508693e3b677342ced1067e2b4da1f881fe18
|
data/README.md
CHANGED
@@ -33,6 +33,9 @@ require 'briar/cucumber'
|
|
33
33
|
I18n.enforce_available_locales = false
|
34
34
|
```
|
35
35
|
|
36
|
+
To integrate briar and your calabash-ios console see: https://github.com/jmoody/briar/wiki/Integrating-Briar-Into-Your-Calabash-Console
|
37
|
+
|
38
|
+
|
36
39
|
## Xamarin Test Cloud
|
37
40
|
|
38
41
|
There is currently an issue with using briar predefined steps on the XTC:
|
data/briar.gemspec
CHANGED
@@ -25,10 +25,12 @@ Gem::Specification.new do |gem|
|
|
25
25
|
gem.platform = Gem::Platform::RUBY
|
26
26
|
gem.required_ruby_version = '>= 1.8.7'
|
27
27
|
|
28
|
-
gem.add_runtime_dependency 'rbx-require-relative',
|
28
|
+
gem.add_runtime_dependency 'rbx-require-relative', '~> 0.0.9'
|
29
29
|
gem.add_runtime_dependency 'calabash-cucumber', '>= 0.9.164'
|
30
30
|
gem.add_runtime_dependency 'rake', '~>10.1'
|
31
|
-
|
31
|
+
# downgrading to 1.0.0 from 1.2.0
|
32
|
+
# https://trello.com/c/YKREVfCX/630-lesspainfulformatter-should-depend-on-syntax-1-2-0
|
33
|
+
gem.add_runtime_dependency 'syntax', '~>1.0.0'
|
32
34
|
|
33
35
|
gem.files = `git ls-files`.split("\n") - ['.gitignore']
|
34
36
|
gem.executables = 'briar'
|
data/lib/briar.rb
CHANGED
data/lib/briar/briar_core.rb
CHANGED
@@ -1,3 +1,4 @@
|
|
1
|
+
#noinspection RubyResolve
|
1
2
|
require 'calabash-cucumber'
|
2
3
|
|
3
4
|
module Briar
|
@@ -49,6 +50,7 @@ module Briar
|
|
49
50
|
}
|
50
51
|
end
|
51
52
|
|
53
|
+
# todo refactor should_see_view_with_center to wait for view
|
52
54
|
def should_see_view_with_center(view_id, center_ht)
|
53
55
|
res = query("view marked:'#{view_id}'").first
|
54
56
|
if res.nil?
|
@@ -69,13 +71,18 @@ module Briar
|
|
69
71
|
end
|
70
72
|
end
|
71
73
|
|
72
|
-
def
|
74
|
+
def touch_view(view_id)
|
73
75
|
wait_for_view view_id
|
74
76
|
touch("view marked:'#{view_id}'")
|
75
77
|
end
|
76
78
|
|
79
|
+
def touch_view_named(view_id)
|
80
|
+
_deprecated('0.1.3', "use 'touch_view' instead", :warn)
|
81
|
+
touch_view(view_id)
|
82
|
+
end
|
83
|
+
|
77
84
|
def touch_and_wait_for_view(view_id, view_to_wait_for, timeout=BRIAR_WAIT_TIMEOUT)
|
78
|
-
|
85
|
+
touch_view(view_id)
|
79
86
|
wait_for_view(view_to_wait_for, timeout)
|
80
87
|
end
|
81
88
|
|
@@ -152,7 +159,7 @@ module Briar
|
|
152
159
|
end
|
153
160
|
|
154
161
|
def touch_and_wait_to_disappear(view_id, timeout=BRIAR_WAIT_TIMEOUT)
|
155
|
-
|
162
|
+
touch_view(view_id)
|
156
163
|
wait_for_view_to_disappear view_id, timeout
|
157
164
|
end
|
158
165
|
|
data/lib/briar/control/button.rb
CHANGED
@@ -68,8 +68,17 @@ module Briar
|
|
68
68
|
:timeout_message => msg) do
|
69
69
|
button_exists? button_id
|
70
70
|
end
|
71
|
-
|
71
|
+
res = query("button descendant view {text LIKE '#{title}'")
|
72
|
+
if res.empty?
|
73
|
+
screenshot_and_raise "expected button '#{button_id}' to have title '#{title}'"
|
74
|
+
end
|
75
|
+
end
|
76
|
+
|
77
|
+
def touch_button_with_title(button_id, title, timeout=BRIAR_WAIT_TIMEOUT)
|
78
|
+
wait_for_button_with_title button_id, title, timeout
|
79
|
+
touch("button marked:'#{button_id}'")
|
72
80
|
end
|
81
|
+
|
73
82
|
end
|
74
83
|
end
|
75
84
|
end
|
data/lib/briar/cucumber.rb
CHANGED
@@ -27,30 +27,43 @@ World(Briar::ScrollView)
|
|
27
27
|
World(Briar::Table)
|
28
28
|
World(Briar::TextField)
|
29
29
|
World(Briar::TextView)
|
30
|
+
World(Briar::Page::Helpers)
|
30
31
|
|
32
|
+
# briar predefined steps are not found during the XTC validation phase
|
33
|
+
#
|
34
|
+
# they are, however, correctly exposed because if you copy them to the
|
35
|
+
# step_definitions directory as part of the XTC submission, you will see
|
36
|
+
# Cucumber:Ambiguous errors
|
37
|
+
#
|
38
|
+
# so the strategy to is avoid loading the step definitions when running on the
|
39
|
+
# XTC and copying them to the features/step_definitions directory during the
|
40
|
+
# XTC job submission.
|
41
|
+
#
|
42
|
+
# see the xamarin-build.sh script
|
43
|
+
unless ENV['XAMARIN_TEST_CLOUD'] == '1'
|
44
|
+
require_relative '../../features/step_definitions/alerts_and_sheets/action_sheet_steps'
|
45
|
+
require_relative '../../features/step_definitions/alerts_and_sheets/alert_view_steps'
|
31
46
|
|
32
|
-
require_relative '../../features/step_definitions/
|
33
|
-
require_relative '../../features/step_definitions/
|
47
|
+
require_relative '../../features/step_definitions/bars/tabbar_steps'
|
48
|
+
require_relative '../../features/step_definitions/bars/navbar_steps'
|
49
|
+
require_relative '../../features/step_definitions/bars/toolbar_steps'
|
34
50
|
|
35
|
-
require_relative '../../features/step_definitions/
|
36
|
-
require_relative '../../features/step_definitions/
|
37
|
-
require_relative '../../features/step_definitions/
|
51
|
+
require_relative '../../features/step_definitions/control/button_steps'
|
52
|
+
require_relative '../../features/step_definitions/control/segmented_control_steps'
|
53
|
+
require_relative '../../features/step_definitions/control/slider_steps'
|
38
54
|
|
39
|
-
require_relative '../../features/step_definitions/control/button_steps'
|
40
|
-
require_relative '../../features/step_definitions/control/segmented_control_steps'
|
41
|
-
require_relative '../../features/step_definitions/control/slider_steps'
|
42
55
|
|
56
|
+
require_relative '../../features/step_definitions/picker/picker_steps'
|
57
|
+
require_relative '../../features/step_definitions/picker/date_picker_steps'
|
43
58
|
|
44
|
-
require_relative '../../features/step_definitions/picker/picker_steps'
|
45
|
-
require_relative '../../features/step_definitions/picker/date_picker_steps'
|
46
59
|
|
60
|
+
require_relative '../../features/step_definitions/email_steps'
|
61
|
+
require_relative '../../features/step_definitions/image_view_steps'
|
62
|
+
require_relative '../../features/step_definitions/keyboard_steps'
|
63
|
+
require_relative '../../features/step_definitions/label_steps'
|
64
|
+
require_relative '../../features/step_definitions/scroll_view_steps'
|
47
65
|
|
48
|
-
require_relative '../../features/step_definitions/
|
49
|
-
require_relative '../../features/step_definitions/
|
50
|
-
require_relative '../../features/step_definitions/
|
51
|
-
|
52
|
-
require_relative '../../features/step_definitions/scroll_view_steps'
|
53
|
-
|
54
|
-
require_relative '../../features/step_definitions/table_steps'
|
55
|
-
require_relative '../../features/step_definitions/text_field_steps'
|
56
|
-
require_relative '../../features/step_definitions/text_view_steps'
|
66
|
+
require_relative '../../features/step_definitions/table_steps'
|
67
|
+
require_relative '../../features/step_definitions/text_field_steps'
|
68
|
+
require_relative '../../features/step_definitions/text_view_steps'
|
69
|
+
end
|
data/lib/briar/email.rb
CHANGED
@@ -162,7 +162,7 @@ module Briar
|
|
162
162
|
:retry_frequency => BRIAR_WAIT_RETRY_FREQ,
|
163
163
|
:post_timeout => BRIAR_WAIT_STEP_PAUSE,
|
164
164
|
:timeout_message => msg) do
|
165
|
-
|
165
|
+
uia_element_exists?(:view, {:marked => 'Delete Draft'})
|
166
166
|
end
|
167
167
|
|
168
168
|
uia_tap_mark('Delete Draft')
|
@@ -180,11 +180,9 @@ module Briar
|
|
180
180
|
screenshot_and_raise 'UIA needs to be available'
|
181
181
|
end
|
182
182
|
|
183
|
-
|
184
|
-
|
185
|
-
|
186
|
-
:y => rect['y']}
|
187
|
-
uia_touch_with_options(point)
|
183
|
+
# with predicate
|
184
|
+
# uia_tap(:textField, {[:label, :beginswith] => "'To:'"})
|
185
|
+
uia_tap(:textField, marked:'toField')
|
188
186
|
uia_wait_for_keyboard if opts[:wait_for_keyboard]
|
189
187
|
end
|
190
188
|
|
data/lib/briar/irbrc.rb
ADDED
@@ -0,0 +1,199 @@
|
|
1
|
+
require 'rubygems'
|
2
|
+
require 'irb/completion'
|
3
|
+
require 'irb/ext/save-history'
|
4
|
+
require 'awesome_print'
|
5
|
+
AwesomePrint.irb!
|
6
|
+
|
7
|
+
require 'require_relative'
|
8
|
+
|
9
|
+
#noinspection RubyUnusedLocalVariable
|
10
|
+
def World(*world_modules, &proc)
|
11
|
+
world_modules.each { |mod|
|
12
|
+
include mod
|
13
|
+
puts "loaded '#{mod}'"
|
14
|
+
}
|
15
|
+
end
|
16
|
+
|
17
|
+
|
18
|
+
ARGV.concat [ '--readline',
|
19
|
+
'--prompt-mode',
|
20
|
+
'simple']
|
21
|
+
|
22
|
+
# 25 entries in the list
|
23
|
+
IRB.conf[:SAVE_HISTORY] = 50
|
24
|
+
|
25
|
+
# Store results in home directory with specified file name
|
26
|
+
IRB.conf[:HISTORY_FILE] = '.irb-history'
|
27
|
+
|
28
|
+
require 'calabash-cucumber'
|
29
|
+
require 'calabash-cucumber/operations'
|
30
|
+
require 'calabash-cucumber/launch/simulator_helper'
|
31
|
+
require 'calabash-cucumber/launcher'
|
32
|
+
|
33
|
+
SIM=Calabash::Cucumber::SimulatorHelper
|
34
|
+
|
35
|
+
extend Calabash::Cucumber::Operations
|
36
|
+
|
37
|
+
def embed(x,y=nil,z=nil)
|
38
|
+
puts "Screenshot at #{x}"
|
39
|
+
end
|
40
|
+
|
41
|
+
puts 'loaded calabash'
|
42
|
+
|
43
|
+
include Briar::Bars
|
44
|
+
include Briar::Alerts_and_Sheets
|
45
|
+
include Briar::Control::Button
|
46
|
+
include Briar::Control::Segmented_Control
|
47
|
+
include Briar::Control::Slider
|
48
|
+
include Briar::Picker
|
49
|
+
include Briar::Picker_Shared
|
50
|
+
include Briar::Picker::DateCore
|
51
|
+
include Briar::Picker::DateManipulation
|
52
|
+
include Briar::Picker::DateSteps
|
53
|
+
include Briar::Core
|
54
|
+
include Briar::UIA
|
55
|
+
include Briar::UIA::IPadEmulation
|
56
|
+
include Briar::Table
|
57
|
+
include Briar::ImageView
|
58
|
+
include Briar::Label
|
59
|
+
include Briar::Keyboard
|
60
|
+
include Briar::UIAKeyboard
|
61
|
+
include Briar::UIAKeyboard::Numeric
|
62
|
+
include Briar::UIAKeyboard::Language
|
63
|
+
include Briar::Email
|
64
|
+
include Briar::TextField
|
65
|
+
include Briar::TextView
|
66
|
+
include Briar::Page::Helpers
|
67
|
+
|
68
|
+
|
69
|
+
@ai=:accessibilityIdentifier
|
70
|
+
@al=:accessibilityLabel
|
71
|
+
|
72
|
+
def print_marks(marks, max_width)
|
73
|
+
counter = -1
|
74
|
+
marks.sort.each { |elm|
|
75
|
+
printf("%4s %#{max_width + 2}s => %s\n", "[#{counter = counter + 1}]", elm[0], elm[1])
|
76
|
+
}
|
77
|
+
end
|
78
|
+
|
79
|
+
def accessibility_marks(kind, opts={})
|
80
|
+
opts = {:print => true, :return => false}.merge(opts)
|
81
|
+
|
82
|
+
kinds = [:id, :label]
|
83
|
+
raise "'#{kind}' is not one of '#{kinds}'" unless kinds.include?(kind)
|
84
|
+
|
85
|
+
res = Array.new
|
86
|
+
max_width = 0
|
87
|
+
query('*').each { |view|
|
88
|
+
aid = view[kind.to_s]
|
89
|
+
unless aid.nil? or aid.eql?('')
|
90
|
+
cls = view['class']
|
91
|
+
len = cls.length
|
92
|
+
max_width = len if len > max_width
|
93
|
+
res << [cls, aid]
|
94
|
+
end
|
95
|
+
}
|
96
|
+
print_marks(res, max_width) if opts[:print]
|
97
|
+
opts[:return] ? res : nil
|
98
|
+
end
|
99
|
+
|
100
|
+
def text_marks(opts={})
|
101
|
+
opts = {:print => true, :return => false}.merge(opts)
|
102
|
+
|
103
|
+
indexes = Array.new
|
104
|
+
idx = 0
|
105
|
+
all_texts = query('*', :text)
|
106
|
+
all_texts.each { |view|
|
107
|
+
indexes << idx unless view.eql?('*****') or view.eql?('')
|
108
|
+
idx = idx + 1
|
109
|
+
}
|
110
|
+
|
111
|
+
res = Array.new
|
112
|
+
|
113
|
+
all_views = query('*')
|
114
|
+
max_width = 0
|
115
|
+
indexes.each { |index|
|
116
|
+
view = all_views[index]
|
117
|
+
cls = view['class']
|
118
|
+
text = all_texts[index]
|
119
|
+
len = cls.length
|
120
|
+
max_width = len if len > max_width
|
121
|
+
res << [cls, text]
|
122
|
+
}
|
123
|
+
|
124
|
+
print_marks(res, max_width) if opts[:print]
|
125
|
+
opts[:return] ? res : nil
|
126
|
+
end
|
127
|
+
|
128
|
+
|
129
|
+
def ids
|
130
|
+
accessibility_marks(:id)
|
131
|
+
end
|
132
|
+
|
133
|
+
def labels
|
134
|
+
accessibility_marks(:label)
|
135
|
+
end
|
136
|
+
|
137
|
+
def text
|
138
|
+
text_marks
|
139
|
+
end
|
140
|
+
|
141
|
+
def marks
|
142
|
+
opts = {:print => false, :return => true }
|
143
|
+
res = accessibility_marks(:id, opts).each { |elm|elm << :ai }
|
144
|
+
res.concat(accessibility_marks(:label, opts).each { |elm| elm << :al })
|
145
|
+
res.concat(text_marks(opts).each { |elm| elm << :text })
|
146
|
+
max_width = 0
|
147
|
+
res.each { |elm|
|
148
|
+
len = elm[0].length
|
149
|
+
max_width = len if len > max_width
|
150
|
+
}
|
151
|
+
|
152
|
+
counter = -1
|
153
|
+
res.sort.each { |elm|
|
154
|
+
printf("%4s %-4s => %#{max_width}s => %s\n",
|
155
|
+
"[#{counter = counter + 1}]",
|
156
|
+
elm[2], elm[0], elm[1])
|
157
|
+
}
|
158
|
+
nil
|
159
|
+
end
|
160
|
+
|
161
|
+
def nbl
|
162
|
+
query('navigationButton', :accessibilityLabel)
|
163
|
+
end
|
164
|
+
|
165
|
+
def row_ids
|
166
|
+
query('tableViewCell', @ai).compact.sort.each {|x| puts "* #{x}" }
|
167
|
+
end
|
168
|
+
|
169
|
+
def puts_calabash_environment
|
170
|
+
|
171
|
+
puts ''
|
172
|
+
puts "loaded #{Dir.pwd}/.irbrc"
|
173
|
+
puts ''
|
174
|
+
puts " DEVICE_ENDPOINT => '#{ENV['DEVICE_ENDPOINT']}'"
|
175
|
+
puts " DEVICE_TARGET => '#{ENV['DEVICE_TARGET']}'"
|
176
|
+
puts " DEVICE => '#{ENV['DEVICE']}'"
|
177
|
+
puts " BUNDLE_ID => '#{ENV['BUNDLE_ID']}'"
|
178
|
+
puts " PLAYBACK_DIR => '#{ENV['PLAYBACK_DIR']}'"
|
179
|
+
puts " SCREENSHOT_PATH => '#{ENV['SCREENSHOT_PATH']}'"
|
180
|
+
puts " SDK_VERSION => '#{ENV['SDK_VERSION']}'"
|
181
|
+
puts "CALABASH_FULL_CONSOLE_OUTPUT => '#{ENV['CALABASH_FULL_CONSOLE_OUTPUT']}'"
|
182
|
+
puts " DEBUG => '#{ENV['DEBUG']}'"
|
183
|
+
puts ''
|
184
|
+
puts '*** useful functions defined in .irbrc ***'
|
185
|
+
puts '> ids => all accessibilityIdentifiers'
|
186
|
+
puts '> labels => all accessibilityLabels'
|
187
|
+
puts '> text => all text'
|
188
|
+
puts '> row_ids => all tableViewCell accessibilityIdentifiers'
|
189
|
+
puts ''
|
190
|
+
end
|
191
|
+
|
192
|
+
def briar_message_of_the_day
|
193
|
+
motd=["Let's get this done!", 'Ready to rumble.', 'Enjoy.', 'Remember to breathe.',
|
194
|
+
'Take a deep breath.', "Isn't it time for a break?", 'Can I get you a coffee?',
|
195
|
+
'What is a calabash anyway?', 'Smile! You are on camera!', 'Let op! Wild Rooster!',
|
196
|
+
"Don't touch that button!", "I'm gonna take this to 11.", 'Console. Engaged.',
|
197
|
+
'Your wish is my command.', 'This console session was created just for you.']
|
198
|
+
puts "#{motd.sample}"
|
199
|
+
end
|
@@ -0,0 +1,55 @@
|
|
1
|
+
require 'calabash-cucumber/ibase'
|
2
|
+
|
3
|
+
# extends Calabash::IBase
|
4
|
+
class BriarPage < Calabash::IBase
|
5
|
+
|
6
|
+
def initialize(world, transition_duration=BRIAR_WAIT_STEP_PAUSE)
|
7
|
+
super(world, transition_duration)
|
8
|
+
end
|
9
|
+
|
10
|
+
# returns a query string that can be used by +trait+ method to create a
|
11
|
+
# query string based on the mark
|
12
|
+
#
|
13
|
+
# accepts the following options:
|
14
|
+
# +:ui_class+ - defaults to <tt>'view'</tt>
|
15
|
+
# +:is_custom_class+ - defaults to +false+
|
16
|
+
#
|
17
|
+
# raises an exception if +:is_custom+ is +true+ and +:ui_class+ is
|
18
|
+
# <tt>'view'</tt> - set the +:ui_class+ to your custom class name
|
19
|
+
def qstr_for_trait(mark, opts={})
|
20
|
+
default_opts = {:ui_class => 'view',
|
21
|
+
:is_custom => false}
|
22
|
+
opts = default_opts.merge(opts)
|
23
|
+
|
24
|
+
ui_class = opts[:ui_class]
|
25
|
+
is_custom = opts[:is_custom]
|
26
|
+
|
27
|
+
if is_custom and ui_class.eql?('view')
|
28
|
+
raise "if is_custom is 'true' than ui_class should not be '#{view}'"
|
29
|
+
end
|
30
|
+
|
31
|
+
if opts[:is_custom]
|
32
|
+
view = "view:'#{opts[:is_custom]}'"
|
33
|
+
else
|
34
|
+
view = ui_class
|
35
|
+
end
|
36
|
+
|
37
|
+
"#{view} marked:'#{mark}'"
|
38
|
+
end
|
39
|
+
|
40
|
+
# returns the mark for this page
|
41
|
+
#
|
42
|
+
# raises an exception if subclass does not implement
|
43
|
+
def mark
|
44
|
+
raise "subclasses must implement the 'mark' method"
|
45
|
+
end
|
46
|
+
|
47
|
+
def trait
|
48
|
+
qstr_for_trait(mark)
|
49
|
+
end
|
50
|
+
|
51
|
+
def page_visible?
|
52
|
+
view_exists?(mark)
|
53
|
+
end
|
54
|
+
|
55
|
+
end
|
@@ -0,0 +1,35 @@
|
|
1
|
+
module Briar
|
2
|
+
module Page
|
3
|
+
module Helpers
|
4
|
+
|
5
|
+
# returns +true+ if +current_page+ is an instance of +page_class+
|
6
|
+
#
|
7
|
+
# the +current_page+ argument defaults to the +@cp+ World variable
|
8
|
+
def cp_is?(page_class, current_page=@cp)
|
9
|
+
current_page.is_a?(page_class)
|
10
|
+
end
|
11
|
+
|
12
|
+
# raises a exception if the +current_page+ is not an instance of
|
13
|
+
# +page_class+
|
14
|
+
#
|
15
|
+
# the +current_page+ argument defaults to the +@cp+ World variable
|
16
|
+
def expect_current_page(page_class, current_page=@cp)
|
17
|
+
unless cp_is? page_class, current_page
|
18
|
+
screenshot_and_raise "expected current page to be '#{page_class}' but found '#{current_page}'"
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
# raises an exception if the +current_page+ is not an instance of any of
|
23
|
+
# +page_classes+
|
24
|
+
#
|
25
|
+
# the +current_page+ argument defaults to the +@cp+ World variable
|
26
|
+
def expect_current_page_is_one_of(page_classes, current_page=@cp)
|
27
|
+
res = page_classes.any? { |page_class| cp_is?(page_class, current_page) }
|
28
|
+
unless res
|
29
|
+
screenshot_and_raise "expected current page to be on of these '#{page_classes}' pages but found '#{current_page}'"
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
@@ -74,14 +74,6 @@ module Briar
|
|
74
74
|
end
|
75
75
|
end
|
76
76
|
|
77
|
-
|
78
|
-
def is_iphone_app_emulated_on_ipad?(cache=Cache.new)
|
79
|
-
return false unless ipad?
|
80
|
-
idx = window_index_of_ipad_1x_2x_button({:raise_if_not_found => false,
|
81
|
-
:cache => cache})
|
82
|
-
idx != -1
|
83
|
-
end
|
84
|
-
|
85
77
|
def window_index_of_ipad_1x_2x_button(opts={})
|
86
78
|
|
87
79
|
default_opts = {:language_code => :en,
|
@@ -143,8 +135,8 @@ module Briar
|
|
143
135
|
end
|
144
136
|
|
145
137
|
cache = Cache.new
|
146
|
-
|
147
|
-
return unless
|
138
|
+
|
139
|
+
return unless iphone_app_emulated_on_ipad?
|
148
140
|
|
149
141
|
default_opts = {:language_code => :en,
|
150
142
|
:ensure_uia_and_ipad => false,
|
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.3.
|
4
|
+
version: 0.1.3.b8
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Joshua Moody
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-01-
|
11
|
+
date: 2014-01-21 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rbx-require-relative
|
@@ -58,14 +58,14 @@ dependencies:
|
|
58
58
|
requirements:
|
59
59
|
- - ~>
|
60
60
|
- !ruby/object:Gem::Version
|
61
|
-
version:
|
61
|
+
version: 1.0.0
|
62
62
|
type: :runtime
|
63
63
|
prerelease: false
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
65
65
|
requirements:
|
66
66
|
- - ~>
|
67
67
|
- !ruby/object:Gem::Version
|
68
|
-
version:
|
68
|
+
version: 1.0.0
|
69
69
|
description: extends calabash-ios steps
|
70
70
|
email:
|
71
71
|
- joshuajmoody@gmail.com
|
@@ -117,11 +117,14 @@ files:
|
|
117
117
|
- lib/briar/cucumber.rb
|
118
118
|
- lib/briar/email.rb
|
119
119
|
- lib/briar/image_view.rb
|
120
|
+
- lib/briar/irbrc.rb
|
120
121
|
- lib/briar/keyboard/keyboard.rb
|
121
122
|
- lib/briar/keyboard/uia_keyboard.rb
|
122
123
|
- lib/briar/keyboard/uia_keyboard_language.rb
|
123
124
|
- lib/briar/keyboard/uia_numeric_keyboard.rb
|
124
125
|
- lib/briar/label.rb
|
126
|
+
- lib/briar/page/briar_page.rb
|
127
|
+
- lib/briar/page/briar_page_helpers.rb
|
125
128
|
- lib/briar/picker/date_picker.rb
|
126
129
|
- lib/briar/picker/date_picker_core.rb
|
127
130
|
- lib/briar/picker/date_picker_manipulation.rb
|
@@ -159,6 +162,6 @@ rubyforge_project:
|
|
159
162
|
rubygems_version: 2.2.1
|
160
163
|
signing_key:
|
161
164
|
specification_version: 4
|
162
|
-
summary: briar-0.1.3.
|
165
|
+
summary: briar-0.1.3.b8
|
163
166
|
test_files:
|
164
167
|
- spec/spec_helper.rb
|