briar 0.1.3.b7 → 0.1.3.b8
Sign up to get free protection for your applications and to get access to all the features.
- 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
|