druid-ts 1.1.3 → 1.1.4
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/ChangeLog +27 -0
- data/features/async.feature +6 -0
- data/features/div.feature +1 -0
- data/features/element.feature +4 -0
- data/features/hidden_field.feature +0 -2
- data/features/html/async.html +13 -0
- data/features/html/multi_elements.html +4 -0
- data/features/html/static_elements.html +10 -3
- data/features/link.feature +1 -0
- data/features/multi_elements.feature +135 -25
- data/features/select_list.feature +8 -0
- data/features/span.feature +2 -0
- data/features/step_definations/async_steps.rb +17 -0
- data/features/step_definations/element_steps.rb +6 -0
- data/features/step_definations/multi_elements_steps.rb +96 -0
- data/features/step_definations/select_list_steps.rb +12 -0
- data/features/step_definations/table_steps.rb +20 -3
- data/features/support/ajax_test_environment.rb +1 -1
- data/features/support/page.rb +7 -2
- data/features/table.feature +35 -0
- data/features/text_area.feature +0 -2
- data/features/text_field.feature +1 -2
- data/lib/druid.rb +31 -3
- data/lib/druid/accessors.rb +184 -146
- data/lib/druid/assist.rb +10 -2
- data/lib/druid/element_locators.rb +186 -102
- data/lib/druid/elements/div.rb +1 -1
- data/lib/druid/elements/element.rb +131 -96
- data/lib/druid/elements/hidden_field.rb +1 -5
- data/lib/druid/elements/link.rb +1 -1
- data/lib/druid/elements/select_list.rb +8 -0
- data/lib/druid/elements/span.rb +1 -1
- data/lib/druid/elements/table.rb +14 -3
- data/lib/druid/elements/table_row.rb +17 -2
- data/lib/druid/elements/text_area.rb +0 -8
- data/lib/druid/elements/text_field.rb +1 -1
- data/lib/druid/javascript/yui.rb +19 -0
- data/lib/druid/javascript_framework_facade.rb +3 -1
- data/lib/druid/nested_elements.rb +1 -1
- data/lib/druid/page_factory.rb +25 -0
- data/lib/druid/page_populator.rb +1 -0
- data/lib/druid/version.rb +1 -1
- data/spec/druid/accessors_spec.rb +189 -1
- data/spec/druid/druid_spec.rb +6 -0
- data/spec/druid/element_locators_spec.rb +276 -0
- data/spec/druid/elements/div_spec.rb +1 -1
- data/spec/druid/elements/element_spec.rb +11 -0
- data/spec/druid/elements/hidden_field_spec.rb +0 -5
- data/spec/druid/elements/link_spec.rb +1 -1
- data/spec/druid/elements/span_spec.rb +1 -1
- data/spec/druid/elements/text_area_spec.rb +0 -5
- data/spec/druid/elements/text_field_spec.rb +1 -1
- data/spec/druid/page_factory_spec.rb +20 -0
- data/spec/druid/page_populator_spec.rb +8 -4
- metadata +2 -1
@@ -1,5 +1,6 @@
|
|
1
1
|
require 'druid/javascript/jquery'
|
2
2
|
require 'druid/javascript/prototype'
|
3
|
+
require 'druid/javascript/yui'
|
3
4
|
|
4
5
|
module Druid
|
5
6
|
#
|
@@ -56,7 +57,8 @@ module Druid
|
|
56
57
|
def initialize_script_builder
|
57
58
|
@builder = {
|
58
59
|
:jquery => Druid::Javascript::JQuery,
|
59
|
-
:prototype => Druid::Javascript::Prototype
|
60
|
+
:prototype => Druid::Javascript::Prototype,
|
61
|
+
:yui => Druid::Javascript::YUI
|
60
62
|
}
|
61
63
|
end
|
62
64
|
|
data/lib/druid/page_factory.rb
CHANGED
@@ -61,6 +61,31 @@ module Druid
|
|
61
61
|
# Support 'on' for readability of usage
|
62
62
|
alias_method :on, :on_page
|
63
63
|
|
64
|
+
#
|
65
|
+
# Create a page object if and only if the current page is the same page to be created
|
66
|
+
#
|
67
|
+
# @example
|
68
|
+
# original:
|
69
|
+
# on_page(NewProduct).save if @current_page.class == NewProduct
|
70
|
+
# on_page(EditProduct).save if @current_page.class == EditProduct
|
71
|
+
# new:
|
72
|
+
# if_page NewProduct do |page|
|
73
|
+
# page.save
|
74
|
+
# end
|
75
|
+
# if_page EditProduct do |page|
|
76
|
+
# page.update
|
77
|
+
# end
|
78
|
+
# @param [PageObject] a class that has included the Druid module
|
79
|
+
# @param [block] an optional block to be called
|
80
|
+
# @return [PageObject] the newly created page object
|
81
|
+
def if_page(page_class, &block)
|
82
|
+
return @current_page unless @current_page.class == page_class
|
83
|
+
on_page(page_class, false, &block)
|
84
|
+
end
|
85
|
+
|
86
|
+
# support 'if' for readability of usage
|
87
|
+
alias_method :if, :if_page
|
88
|
+
|
64
89
|
#
|
65
90
|
# Navigate to a specific page following a predefined path.
|
66
91
|
#
|
data/lib/druid/page_populator.rb
CHANGED
data/lib/druid/version.rb
CHANGED
@@ -158,6 +158,15 @@ describe Druid::Accessors do
|
|
158
158
|
expect(druid).to have_expected_title
|
159
159
|
end
|
160
160
|
|
161
|
+
it "should validate the by regexp" do
|
162
|
+
class RegexpExpectedTitle
|
163
|
+
include Druid
|
164
|
+
expected_title /\w+ \w+/
|
165
|
+
end
|
166
|
+
expect(driver).to receive(:title).and_return("Expected Title")
|
167
|
+
expect(RegexpExpectedTitle.new(driver)).to have_expected_title
|
168
|
+
end
|
169
|
+
|
161
170
|
it "should raise error when it does not have expected title" do
|
162
171
|
expect(driver).to receive(:title).twice.and_return("Not Expected")
|
163
172
|
expect {druid.has_expected_title? }.to raise_error
|
@@ -180,6 +189,184 @@ describe Druid::Accessors do
|
|
180
189
|
end
|
181
190
|
end
|
182
191
|
|
192
|
+
describe "using default identifiers" do
|
193
|
+
class DefaultIdentifier
|
194
|
+
include Druid
|
195
|
+
text_field(:default_tf)
|
196
|
+
hidden_field(:default_hf)
|
197
|
+
text_area(:default_ta)
|
198
|
+
select_list(:default_sl)
|
199
|
+
link(:default_link)
|
200
|
+
checkbox(:default_cb)
|
201
|
+
radio_button(:default_rb)
|
202
|
+
button(:default_but)
|
203
|
+
div(:default_div)
|
204
|
+
span(:default_span)
|
205
|
+
table(:default_tab)
|
206
|
+
cell(:default_cell)
|
207
|
+
image(:default_im)
|
208
|
+
form(:default_form)
|
209
|
+
list_item(:default_li)
|
210
|
+
unordered_list(:default_ul)
|
211
|
+
ordered_list(:default_ol)
|
212
|
+
h1(:default_h1)
|
213
|
+
h2(:default_h2)
|
214
|
+
h3(:default_h3)
|
215
|
+
h4(:default_h4)
|
216
|
+
h5(:default_h5)
|
217
|
+
h6(:default_h6)
|
218
|
+
paragraph(:default_p)
|
219
|
+
file_field(:default_ff)
|
220
|
+
label(:default_lab)
|
221
|
+
element(:default_el, :audio)
|
222
|
+
end
|
223
|
+
|
224
|
+
let(:default_identifier) { DefaultIdentifier.new(driver) }
|
225
|
+
|
226
|
+
before(:each) do
|
227
|
+
expect(driver).to receive(:exist?).and_return(true)
|
228
|
+
end
|
229
|
+
|
230
|
+
def mock_driver_for(tag)
|
231
|
+
expect(driver).to receive(tag).with(:index => 0).and_return(driver)
|
232
|
+
end
|
233
|
+
|
234
|
+
it "should work with a text_field" do
|
235
|
+
mock_driver_for :text_field
|
236
|
+
default_identifier.default_tf?
|
237
|
+
end
|
238
|
+
|
239
|
+
it "should work with a hidden field" do
|
240
|
+
mock_driver_for :hidden
|
241
|
+
default_identifier.default_hf?
|
242
|
+
end
|
243
|
+
|
244
|
+
it "should work with a text area" do
|
245
|
+
mock_driver_for :textarea
|
246
|
+
default_identifier.default_ta?
|
247
|
+
end
|
248
|
+
|
249
|
+
it "should work with a select list" do
|
250
|
+
mock_driver_for :select_list
|
251
|
+
default_identifier.default_sl?
|
252
|
+
end
|
253
|
+
|
254
|
+
it "should work with a link" do
|
255
|
+
mock_driver_for :link
|
256
|
+
default_identifier.default_link?
|
257
|
+
end
|
258
|
+
|
259
|
+
it "should work with a checkbox" do
|
260
|
+
mock_driver_for :checkbox
|
261
|
+
default_identifier.default_cb?
|
262
|
+
end
|
263
|
+
|
264
|
+
it "should work with a radio button" do
|
265
|
+
mock_driver_for :radio
|
266
|
+
default_identifier.default_rb?
|
267
|
+
end
|
268
|
+
|
269
|
+
it "should work with a button" do
|
270
|
+
mock_driver_for :button
|
271
|
+
default_identifier.default_but?
|
272
|
+
end
|
273
|
+
|
274
|
+
it "should work with a div" do
|
275
|
+
mock_driver_for :div
|
276
|
+
default_identifier.default_div?
|
277
|
+
end
|
278
|
+
|
279
|
+
it "should work with a span" do
|
280
|
+
mock_driver_for :span
|
281
|
+
default_identifier.default_span?
|
282
|
+
end
|
283
|
+
|
284
|
+
it "should work with a table" do
|
285
|
+
mock_driver_for :table
|
286
|
+
default_identifier.default_tab?
|
287
|
+
end
|
288
|
+
|
289
|
+
it "should work with a cell" do
|
290
|
+
mock_driver_for :td
|
291
|
+
default_identifier.default_cell?
|
292
|
+
end
|
293
|
+
|
294
|
+
it "should work with an image" do
|
295
|
+
mock_driver_for :image
|
296
|
+
default_identifier.default_im?
|
297
|
+
end
|
298
|
+
|
299
|
+
it "should work with a form" do
|
300
|
+
mock_driver_for :form
|
301
|
+
default_identifier.default_form?
|
302
|
+
end
|
303
|
+
|
304
|
+
it "should work with a list item" do
|
305
|
+
mock_driver_for :li
|
306
|
+
default_identifier.default_li?
|
307
|
+
end
|
308
|
+
|
309
|
+
it "should work with unordered lists" do
|
310
|
+
mock_driver_for :ul
|
311
|
+
default_identifier.default_ul?
|
312
|
+
end
|
313
|
+
|
314
|
+
it "should work with ordered lists" do
|
315
|
+
mock_driver_for :ol
|
316
|
+
default_identifier.default_ol?
|
317
|
+
end
|
318
|
+
|
319
|
+
it "should work with h1" do
|
320
|
+
mock_driver_for :h1
|
321
|
+
default_identifier.default_h1?
|
322
|
+
end
|
323
|
+
|
324
|
+
it "should work with h2" do
|
325
|
+
mock_driver_for :h2
|
326
|
+
default_identifier.default_h2?
|
327
|
+
end
|
328
|
+
|
329
|
+
it "should work with h3" do
|
330
|
+
mock_driver_for :h3
|
331
|
+
default_identifier.default_h3?
|
332
|
+
end
|
333
|
+
|
334
|
+
it "should work with h4" do
|
335
|
+
mock_driver_for :h4
|
336
|
+
default_identifier.default_h4?
|
337
|
+
end
|
338
|
+
|
339
|
+
it "should work with h5" do
|
340
|
+
mock_driver_for :h5
|
341
|
+
default_identifier.default_h5?
|
342
|
+
end
|
343
|
+
|
344
|
+
it "should work with h6" do
|
345
|
+
mock_driver_for :h6
|
346
|
+
default_identifier.default_h6?
|
347
|
+
end
|
348
|
+
|
349
|
+
it "should work with paragraph" do
|
350
|
+
mock_driver_for :p
|
351
|
+
default_identifier.default_p?
|
352
|
+
end
|
353
|
+
|
354
|
+
it "should work with file_field" do
|
355
|
+
mock_driver_for :file_field
|
356
|
+
default_identifier.default_ff?
|
357
|
+
end
|
358
|
+
|
359
|
+
it "should work with a label" do
|
360
|
+
mock_driver_for :label
|
361
|
+
default_identifier.default_lab?
|
362
|
+
end
|
363
|
+
|
364
|
+
it "should work with an element" do
|
365
|
+
mock_driver_for :audio
|
366
|
+
default_identifier.default_el?
|
367
|
+
end
|
368
|
+
end
|
369
|
+
|
183
370
|
describe "check_box accessors" do
|
184
371
|
context "when called on a page object" do
|
185
372
|
it "should generate accessor methods" do
|
@@ -285,6 +472,7 @@ describe Druid::Accessors do
|
|
285
472
|
expect(druid).to respond_to(:first_name)
|
286
473
|
expect(druid).to respond_to(:first_name=)
|
287
474
|
expect(druid).to respond_to(:first_name_element)
|
475
|
+
expect(druid).to respond_to(:first_name?)
|
288
476
|
end
|
289
477
|
|
290
478
|
it "should call a block on the element method when present" do
|
@@ -544,7 +732,7 @@ describe Druid::Accessors do
|
|
544
732
|
|
545
733
|
context "implementation" do
|
546
734
|
it "should set some text on the text area" do
|
547
|
-
expect(driver).to receive_message_chain(:textarea, :
|
735
|
+
expect(driver).to receive_message_chain(:textarea, :set).with('123 main street')
|
548
736
|
druid.address='123 main street'
|
549
737
|
end
|
550
738
|
|
data/spec/druid/druid_spec.rb
CHANGED
@@ -154,6 +154,12 @@ describe Druid do
|
|
154
154
|
druid.save_screenshot('tim.png')
|
155
155
|
end
|
156
156
|
|
157
|
+
it "should use the overriden timeout value when set" do
|
158
|
+
Druid.default_page_wait = 10
|
159
|
+
expect(driver).to receive(:wait_until).with(10, nil)
|
160
|
+
druid.wait_until
|
161
|
+
end
|
162
|
+
|
157
163
|
it "should wait until there are no pending ajax requests" do
|
158
164
|
expect(Druid::JavascriptFrameworkFacade).to receive(:pending_requests).and_return('pending requests')
|
159
165
|
expect(driver).to receive(:execute_script).with('pending requests').and_return(0)
|
@@ -14,96 +14,177 @@ describe Druid::ElementLocators do
|
|
14
14
|
expect(button).to be_instance_of Druid::Elements::Button
|
15
15
|
end
|
16
16
|
|
17
|
+
it "should find a button element using a default identifier" do
|
18
|
+
expect(driver).to receive(:button).with(:index => 0).and_return(driver)
|
19
|
+
page.button_element
|
20
|
+
end
|
21
|
+
|
17
22
|
it "should find all button elements" do
|
18
23
|
expect(driver).to receive(:buttons).with(:id => 'blah').and_return([driver])
|
19
24
|
elements = page.button_elements(:id => 'blah')
|
20
25
|
expect(elements[0]).to be_instance_of Druid::Elements::Button
|
21
26
|
end
|
22
27
|
|
28
|
+
it "should find all buttons with no identifier" do
|
29
|
+
expect(driver).to receive(:buttons).with({}).and_return([driver])
|
30
|
+
page.button_elements
|
31
|
+
end
|
32
|
+
|
23
33
|
it "should find a text field element" do
|
24
34
|
expect(driver).to receive(:text_field).with(:id => 'blah').and_return(driver)
|
25
35
|
text_field = page.text_field_element(:id => 'blah')
|
26
36
|
expect(text_field).to be_instance_of Druid::Elements::TextField
|
27
37
|
end
|
28
38
|
|
39
|
+
it "should find a text field element using a default identifier" do
|
40
|
+
expect(driver).to receive(:text_field).with(:index => 0).and_return(driver)
|
41
|
+
page.text_field_element
|
42
|
+
end
|
43
|
+
|
29
44
|
it "should find all text field elemnts" do
|
30
45
|
expect(driver).to receive(:text_fields).with(:id => 'blah').and_return([driver])
|
46
|
+
expect(driver).to receive(:tag_name).and_return('input')
|
31
47
|
elements = page.text_field_elements(:id => 'blah')
|
32
48
|
expect(elements[0]).to be_instance_of Druid::Elements::TextField
|
33
49
|
end
|
34
50
|
|
51
|
+
it "should find all text fields with no identifier" do
|
52
|
+
expect(driver).to receive(:text_fields).with({}).and_return([driver])
|
53
|
+
expect(driver).to receive(:tag_name).and_return('input')
|
54
|
+
page.text_field_elements
|
55
|
+
end
|
56
|
+
|
35
57
|
it "should find a hidden field element" do
|
36
58
|
expect(driver).to receive(:hidden).with(:id => 'blah').and_return(driver)
|
37
59
|
element = page.hidden_field_element(:id => 'blah')
|
38
60
|
expect(element).to be_instance_of Druid::Elements::HiddenField
|
39
61
|
end
|
40
62
|
|
63
|
+
it "should find a hidden field element using a default identifier" do
|
64
|
+
expect(driver).to receive(:hidden).with(:index => 0).and_return(driver)
|
65
|
+
page.hidden_field_element
|
66
|
+
end
|
67
|
+
|
41
68
|
it "should find all hidden field elements" do
|
42
69
|
expect(driver).to receive(:hiddens).with(:id => 'blah').and_return([driver])
|
43
70
|
elements = page.hidden_field_elements(:id => 'blah')
|
44
71
|
expect(elements[0]).to be_instance_of Druid::Elements::HiddenField
|
45
72
|
end
|
46
73
|
|
74
|
+
it "should find all hidden fields using no identifier" do
|
75
|
+
expect(driver).to receive(:hiddens).with({}).and_return([driver])
|
76
|
+
page.hidden_field_elements
|
77
|
+
end
|
78
|
+
|
47
79
|
it "should find a text area element" do
|
48
80
|
expect(driver).to receive(:textarea).with(:id => 'blah').and_return(driver)
|
49
81
|
element = page.text_area_element(:id => "blah")
|
50
82
|
expect(element).to be_instance_of Druid::Elements::TextArea
|
51
83
|
end
|
52
84
|
|
85
|
+
it "should find a text area element using a default identifier" do
|
86
|
+
expect(driver).to receive(:textarea).with(:index => 0).and_return(driver)
|
87
|
+
page.text_area_element
|
88
|
+
end
|
89
|
+
|
53
90
|
it "should find all text area elements" do
|
54
91
|
expect(driver).to receive(:textareas).with(:id => 'blah').and_return([driver])
|
55
92
|
elements = page.text_area_elements(:id => 'blah')
|
56
93
|
expect(elements[0]).to be_instance_of Druid::Elements::TextArea
|
57
94
|
end
|
58
95
|
|
96
|
+
it "should find all text areas using no identifier" do
|
97
|
+
expect(driver).to receive(:textareas).with({}).and_return([driver])
|
98
|
+
page.text_area_elements
|
99
|
+
end
|
100
|
+
|
59
101
|
it "should find a select list element" do
|
60
102
|
expect(driver).to receive(:select_list).with(:id => 'blah').and_return(driver)
|
61
103
|
element = page.select_list_element(:id => "blah")
|
62
104
|
expect(element).to be_instance_of Druid::Elements::SelectList
|
63
105
|
end
|
64
106
|
|
107
|
+
it "should find a select list element using a default identifier" do
|
108
|
+
expect(driver).to receive(:select_list).with(:index => 0).and_return(driver)
|
109
|
+
page.select_list_element
|
110
|
+
end
|
111
|
+
|
65
112
|
it "should find all select list elements" do
|
66
113
|
expect(driver).to receive(:select_lists).with(:id => 'blah').and_return([driver])
|
67
114
|
elements = page.select_list_elements(:id => 'blah')
|
68
115
|
expect(elements[0]).to be_instance_of Druid::Elements::SelectList
|
69
116
|
end
|
70
117
|
|
118
|
+
it "should find all select lists using no identifier" do
|
119
|
+
expect(driver).to receive(:select_lists).with({}).and_return([driver])
|
120
|
+
page.select_list_elements
|
121
|
+
end
|
122
|
+
|
71
123
|
it "should find a link element" do
|
72
124
|
expect(driver).to receive(:link).with(:id => 'blah').and_return(driver)
|
73
125
|
element = page.link_element(:id => 'blah')
|
74
126
|
expect(element).to be_instance_of Druid::Elements::Link
|
75
127
|
end
|
76
128
|
|
129
|
+
it "should find a link element using a default identifier" do
|
130
|
+
expect(driver).to receive(:link).with(:index => 0).and_return(driver)
|
131
|
+
page.link_element
|
132
|
+
end
|
133
|
+
|
77
134
|
it "should find all link elements" do
|
78
135
|
expect(driver).to receive(:links).with(:id => 'blah').and_return([driver])
|
79
136
|
elements = page.link_elements(:id => 'blah')
|
80
137
|
expect(elements[0]).to be_instance_of Druid::Elements::Link
|
81
138
|
end
|
82
139
|
|
140
|
+
it "should find all links using no identifier" do
|
141
|
+
expect(driver).to receive(:links).with({}).and_return([driver])
|
142
|
+
page.link_elements
|
143
|
+
end
|
144
|
+
|
83
145
|
it "should find a check box element" do
|
84
146
|
expect(driver).to receive(:checkbox).with(:id => 'blah').and_return(driver)
|
85
147
|
element = page.checkbox_element(:id => 'blah')
|
86
148
|
expect(element).to be_instance_of Druid::Elements::CheckBox
|
87
149
|
end
|
88
150
|
|
151
|
+
it "should find a check box element using a default identifier" do
|
152
|
+
expect(driver).to receive(:checkbox).with(:index => 0).and_return(driver)
|
153
|
+
page.checkbox_element
|
154
|
+
end
|
155
|
+
|
89
156
|
it "should find all check box elements" do
|
90
157
|
expect(driver).to receive(:checkboxes).with(:id => 'blah').and_return([driver])
|
91
158
|
elements = page.checkbox_elements(:id => 'blah')
|
92
159
|
expect(elements[0]).to be_instance_of Druid::Elements::CheckBox
|
93
160
|
end
|
94
161
|
|
162
|
+
it "should find all checkboxes using no identifier" do
|
163
|
+
expect(driver).to receive(:checkboxes).with({}).and_return([driver])
|
164
|
+
page.checkbox_elements
|
165
|
+
end
|
166
|
+
|
95
167
|
it "should find a radio button element" do
|
96
168
|
expect(driver).to receive(:radio).with(:id => 'blah').and_return(driver)
|
97
169
|
element = page.radio_button_element(:id => 'blah')
|
98
170
|
expect(element).to be_instance_of Druid::Elements::RadioButton
|
99
171
|
end
|
100
172
|
|
173
|
+
it "should find a radio button element using a default identifier" do
|
174
|
+
expect(driver).to receive(:radio).with(:index => 0).and_return(driver)
|
175
|
+
page.radio_button_element
|
176
|
+
end
|
177
|
+
|
101
178
|
it "should find all radio button elements" do
|
102
179
|
expect(driver).to receive(:radios).with(:id => 'blah').and_return([driver])
|
103
180
|
elements = page.radio_button_elements(:id => 'blah')
|
104
181
|
expect(elements[0]).to be_instance_of Druid::Elements::RadioButton
|
105
182
|
end
|
106
183
|
|
184
|
+
it "should find all radio buttons using no identifier" do
|
185
|
+
expect(driver).to receive(:radios).with({}).and_return([driver])
|
186
|
+
page.radio_button_elements
|
187
|
+
end
|
107
188
|
|
108
189
|
it "should find a div element" do
|
109
190
|
expect(driver).to receive(:div).with(:id => 'blah').and_return(driver)
|
@@ -111,96 +192,175 @@ describe Druid::ElementLocators do
|
|
111
192
|
expect(element).to be_instance_of Druid::Elements::Div
|
112
193
|
end
|
113
194
|
|
195
|
+
it "should find a div element using a default identifier" do
|
196
|
+
expect(driver).to receive(:div).with(:index => 0).and_return(driver)
|
197
|
+
page.div_element
|
198
|
+
end
|
199
|
+
|
114
200
|
it "should find all div elements" do
|
115
201
|
expect(driver).to receive(:divs).with(:id => 'blah').and_return([driver])
|
116
202
|
elements = page.div_elements(:id => 'blah')
|
117
203
|
expect(elements[0]).to be_instance_of Druid::Elements::Div
|
118
204
|
end
|
119
205
|
|
206
|
+
it "should find all divs using no identifier" do
|
207
|
+
expect(driver).to receive(:divs).with({}).and_return([driver])
|
208
|
+
page.div_elements
|
209
|
+
end
|
210
|
+
|
120
211
|
it "should find a span element" do
|
121
212
|
expect(driver).to receive(:span).with(:id => 'blah').and_return(driver)
|
122
213
|
element = page.span_element(:id => 'blah')
|
123
214
|
expect(element).to be_instance_of Druid::Elements::Span
|
124
215
|
end
|
125
216
|
|
217
|
+
it "should find a span element using a default identifier" do
|
218
|
+
expect(driver).to receive(:span).with(:index => 0).and_return(driver)
|
219
|
+
page.span_element
|
220
|
+
end
|
221
|
+
|
126
222
|
it "should find all span elements" do
|
127
223
|
expect(driver).to receive(:spans).with(:id => 'blah').and_return([driver])
|
128
224
|
elements = page.span_elements(:id => 'blah')
|
129
225
|
expect(elements[0]).to be_instance_of Druid::Elements::Span
|
130
226
|
end
|
131
227
|
|
228
|
+
it "should find all spans using no identifier" do
|
229
|
+
expect(driver).to receive(:spans).with({}).and_return([driver])
|
230
|
+
page.span_elements
|
231
|
+
end
|
232
|
+
|
132
233
|
it "should find a table element" do
|
133
234
|
expect(driver).to receive(:table).with(:id => 'blah').and_return(driver)
|
134
235
|
element = page.table_element(:id => 'blah')
|
135
236
|
expect(element).to be_instance_of Druid::Elements::Table
|
136
237
|
end
|
137
238
|
|
239
|
+
it "should find a table element using a default identifier" do
|
240
|
+
expect(driver).to receive(:table).with(:index => 0).and_return(driver)
|
241
|
+
page.table_element
|
242
|
+
end
|
243
|
+
|
138
244
|
it "should find all table elements" do
|
139
245
|
expect(driver).to receive(:tables).with(:id => 'blah').and_return([driver])
|
140
246
|
elements = page.table_elements(:id => 'blah')
|
141
247
|
expect(elements[0]).to be_instance_of Druid::Elements::Table
|
142
248
|
end
|
143
249
|
|
250
|
+
it "should find all tables using no identifier" do
|
251
|
+
expect(driver).to receive(:tables).with({}).and_return([driver])
|
252
|
+
page.table_elements
|
253
|
+
end
|
254
|
+
|
144
255
|
it "should find a table cell element" do
|
145
256
|
expect(driver).to receive(:td).with(:id => 'blah').and_return(driver)
|
146
257
|
element = page.cell_element(:id => 'blah')
|
147
258
|
expect(element).to be_instance_of Druid::Elements::TableCell
|
148
259
|
end
|
149
260
|
|
261
|
+
it "should find a table cell element using a default identifier" do
|
262
|
+
expect(driver).to receive(:td).with(:index => 0).and_return(driver)
|
263
|
+
page.cell_element
|
264
|
+
end
|
265
|
+
|
150
266
|
it "should find all table cells" do
|
151
267
|
expect(driver).to receive(:tds).with(:id => 'blah').and_return([driver])
|
152
268
|
elements = page.cell_elements(:id => 'blah')
|
153
269
|
expect(elements[0]).to be_instance_of Druid::Elements::TableCell
|
154
270
|
end
|
155
271
|
|
272
|
+
it "should find all table cells using no identifier" do
|
273
|
+
expect(driver).to receive(:tds).with({}).and_return([driver])
|
274
|
+
page.cell_elements
|
275
|
+
end
|
276
|
+
|
156
277
|
it "should find an image element" do
|
157
278
|
expect(driver).to receive(:image).with(:id => 'blah').and_return(driver)
|
158
279
|
element = page.image_element(:id => 'blah')
|
159
280
|
expect(element).to be_instance_of Druid::Elements::Image
|
160
281
|
end
|
161
282
|
|
283
|
+
it "should find a image element using a default identifier" do
|
284
|
+
expect(driver).to receive(:image).with(:index => 0).and_return(driver)
|
285
|
+
page.image_element
|
286
|
+
end
|
287
|
+
|
162
288
|
it "should find all image elements" do
|
163
289
|
expect(driver).to receive(:images).with(:id => 'blah').and_return([driver])
|
164
290
|
elements = page.image_elements(:id => 'blah')
|
165
291
|
expect(elements[0]).to be_instance_of Druid::Elements::Image
|
166
292
|
end
|
167
293
|
|
294
|
+
it "should find all images using no identifier" do
|
295
|
+
expect(driver).to receive(:images).with({}).and_return([driver])
|
296
|
+
page.image_elements
|
297
|
+
end
|
298
|
+
|
168
299
|
it "should find a form element" do
|
169
300
|
expect(driver).to receive(:form).with(:id => 'blah').and_return(driver)
|
170
301
|
element = page.form_element(:id => 'blah')
|
171
302
|
expect(element).to be_instance_of Druid::Elements::Form
|
172
303
|
end
|
173
304
|
|
305
|
+
it "should find a form element using a default identifier" do
|
306
|
+
expect(driver).to receive(:form).with(:index => 0).and_return(driver)
|
307
|
+
page.form_element
|
308
|
+
end
|
309
|
+
|
174
310
|
it "should find all form elements" do
|
175
311
|
expect(driver).to receive(:forms).with(:id => 'blah').and_return([driver])
|
176
312
|
elements = page.form_elements(:id => 'blah')
|
177
313
|
expect(elements[0]).to be_instance_of Druid::Elements::Form
|
178
314
|
end
|
179
315
|
|
316
|
+
it "should find all forms using no identifier" do
|
317
|
+
expect(driver).to receive(:forms).with({}).and_return([driver])
|
318
|
+
page.form_elements
|
319
|
+
end
|
320
|
+
|
180
321
|
it "should find a list item element" do
|
181
322
|
expect(driver).to receive(:li).with(:id => 'blah').and_return(driver)
|
182
323
|
element = page.list_item_element(:id => 'blah')
|
183
324
|
expect(element).to be_instance_of Druid::Elements::ListItem
|
184
325
|
end
|
185
326
|
|
327
|
+
it "should find a list item element using a default identifier" do
|
328
|
+
expect(driver).to receive(:li).with(:index => 0).and_return(driver)
|
329
|
+
page.list_item_element
|
330
|
+
end
|
331
|
+
|
186
332
|
it "should find all list item elements" do
|
187
333
|
expect(driver).to receive(:lis).with(:id => 'blah').and_return([driver])
|
188
334
|
elements = page.list_item_elements(:id => 'blah')
|
189
335
|
expect(elements[0]).to be_instance_of Druid::Elements::ListItem
|
190
336
|
end
|
191
337
|
|
338
|
+
it "should find all list items using no identifier" do
|
339
|
+
expect(driver).to receive(:lis).with({}).and_return([driver])
|
340
|
+
page.list_item_elements
|
341
|
+
end
|
342
|
+
|
192
343
|
it "should find an ordered list element" do
|
193
344
|
expect(driver).to receive(:ol).with(:id => 'blah').and_return(driver)
|
194
345
|
element = page.ordered_list_element(:id => 'blah')
|
195
346
|
expect(element).to be_instance_of Druid::Elements::OrderedList
|
196
347
|
end
|
197
348
|
|
349
|
+
it "should find an ordered list element using a default identifier" do
|
350
|
+
expect(driver).to receive(:ol).with(:index => 0).and_return(driver)
|
351
|
+
page.ordered_list_element
|
352
|
+
end
|
353
|
+
|
198
354
|
it "should find all ordered list elements" do
|
199
355
|
expect(driver).to receive(:ols).with(:id => 'blah').and_return([driver])
|
200
356
|
elements = page.ordered_list_elements(:id => 'blah')
|
201
357
|
expect(elements[0]).to be_instance_of Druid::Elements::OrderedList
|
202
358
|
end
|
203
359
|
|
360
|
+
it "should find all ordered lists using no identifier" do
|
361
|
+
expect(driver).to receive(:ols).with({}).and_return([driver])
|
362
|
+
page.ordered_list_elements
|
363
|
+
end
|
204
364
|
|
205
365
|
it "should find an unordered list element" do
|
206
366
|
expect(driver).to receive(:ul).with(:id => 'blah').and_return(driver)
|
@@ -208,12 +368,21 @@ describe Druid::ElementLocators do
|
|
208
368
|
expect(element).to be_instance_of Druid::Elements::UnOrderedList
|
209
369
|
end
|
210
370
|
|
371
|
+
it "should find an unordered list element using a default identifier" do
|
372
|
+
expect(driver).to receive(:ul).with(:index => 0).and_return(driver)
|
373
|
+
page.unordered_list_element
|
374
|
+
end
|
375
|
+
|
211
376
|
it "should find all unordered list elements" do
|
212
377
|
expect(driver).to receive(:uls).with(:id => 'blah').and_return([driver])
|
213
378
|
elements = page.unordered_list_elements(:id => 'blah')
|
214
379
|
expect(elements[0]).to be_instance_of Druid::Elements::UnOrderedList
|
215
380
|
end
|
216
381
|
|
382
|
+
it "should find all unordered lists using no identifier" do
|
383
|
+
expect(driver).to receive(:uls).with({}).and_return([driver])
|
384
|
+
page.unordered_list_elements
|
385
|
+
end
|
217
386
|
|
218
387
|
it "should find a h1 element" do
|
219
388
|
expect(driver).to receive(:h1).with(:id => 'blah').and_return(driver)
|
@@ -221,72 +390,132 @@ describe Druid::ElementLocators do
|
|
221
390
|
expect(element).to be_instance_of Druid::Elements::Heading
|
222
391
|
end
|
223
392
|
|
393
|
+
it "should find a h1 element using a default identifier" do
|
394
|
+
expect(driver).to receive(:h1).with(:index => 0).and_return(driver)
|
395
|
+
page.h1_element
|
396
|
+
end
|
397
|
+
|
224
398
|
it "should find all h1 elements" do
|
225
399
|
expect(driver).to receive(:h1s).with(:id => 'blah').and_return([driver])
|
226
400
|
elements = page.h1_elements(:id => 'blah')
|
227
401
|
expect(elements[0]).to be_instance_of Druid::Elements::Heading
|
228
402
|
end
|
229
403
|
|
404
|
+
it "should find all h1s using no identifier" do
|
405
|
+
expect(driver).to receive(:h1s).with({}).and_return([driver])
|
406
|
+
page.h1_elements
|
407
|
+
end
|
408
|
+
|
230
409
|
it "should find a h2 element" do
|
231
410
|
expect(driver).to receive(:h2).with(:id => 'blah').and_return(driver)
|
232
411
|
element = page.h2_element(:id => 'blah')
|
233
412
|
expect(element).to be_instance_of Druid::Elements::Heading
|
234
413
|
end
|
235
414
|
|
415
|
+
it "should find a h2 element using a default identifier" do
|
416
|
+
expect(driver).to receive(:h2).with(:index => 0).and_return(driver)
|
417
|
+
page.h2_element
|
418
|
+
end
|
419
|
+
|
236
420
|
it "should find all h2 elements" do
|
237
421
|
expect(driver).to receive(:h2s).with(:id => 'blah').and_return([driver])
|
238
422
|
elements = page.h2_elements(:id => 'blah')
|
239
423
|
expect(elements[0]).to be_instance_of Druid::Elements::Heading
|
240
424
|
end
|
241
425
|
|
426
|
+
it "should find all h2s using no identifier" do
|
427
|
+
expect(driver).to receive(:h2s).with({}).and_return([driver])
|
428
|
+
page.h2_elements
|
429
|
+
end
|
430
|
+
|
242
431
|
it "should find a h3 element" do
|
243
432
|
expect(driver).to receive(:h3).with(:id => 'blah').and_return(driver)
|
244
433
|
element = page.h3_element(:id => 'blah')
|
245
434
|
expect(element).to be_instance_of Druid::Elements::Heading
|
246
435
|
end
|
247
436
|
|
437
|
+
it "should find a h3 element using a default identifier" do
|
438
|
+
expect(driver).to receive(:h3).with(:index => 0).and_return(driver)
|
439
|
+
page.h3_element
|
440
|
+
end
|
441
|
+
|
248
442
|
it "should find all h3 elements" do
|
249
443
|
expect(driver).to receive(:h3s).with(:id => 'blah').and_return([driver])
|
250
444
|
elements = page.h3_elements(:id => 'blah')
|
251
445
|
expect(elements[0]).to be_instance_of Druid::Elements::Heading
|
252
446
|
end
|
253
447
|
|
448
|
+
it "should find all h3s using no identifier" do
|
449
|
+
expect(driver).to receive(:h3s).with({}).and_return([driver])
|
450
|
+
page.h3_elements
|
451
|
+
end
|
452
|
+
|
254
453
|
it "should find a h4 element" do
|
255
454
|
expect(driver).to receive(:h4).with(:id => 'blah').and_return(driver)
|
256
455
|
element = page.h4_element(:id => 'blah')
|
257
456
|
expect(element).to be_instance_of Druid::Elements::Heading
|
258
457
|
end
|
259
458
|
|
459
|
+
it "should find a h4 element using a default identifier" do
|
460
|
+
expect(driver).to receive(:h4).with(:index => 0).and_return(driver)
|
461
|
+
page.h4_element
|
462
|
+
end
|
463
|
+
|
260
464
|
it "should find all h4 elements" do
|
261
465
|
expect(driver).to receive(:h4s).with(:id => 'blah').and_return([driver])
|
262
466
|
elements = page.h4_elements(:id => 'blah')
|
263
467
|
expect(elements[0]).to be_instance_of Druid::Elements::Heading
|
264
468
|
end
|
265
469
|
|
470
|
+
it "should find all h4s using no identifier" do
|
471
|
+
expect(driver).to receive(:h4s).with({}).and_return([driver])
|
472
|
+
page.h4_elements
|
473
|
+
end
|
474
|
+
|
266
475
|
it "should find a h5 element" do
|
267
476
|
expect(driver).to receive(:h5).with(:id => 'blah').and_return(driver)
|
268
477
|
element = page.h5_element(:id => 'blah')
|
269
478
|
expect(element).to be_instance_of Druid::Elements::Heading
|
270
479
|
end
|
271
480
|
|
481
|
+
it "should find a h5 element using a default identifier" do
|
482
|
+
expect(driver).to receive(:h5).with(:index => 0).and_return(driver)
|
483
|
+
page.h5_element
|
484
|
+
end
|
485
|
+
|
272
486
|
it "should find all h5 elements" do
|
273
487
|
expect(driver).to receive(:h5s).with(:id => 'blah').and_return([driver])
|
274
488
|
elements = page.h5_elements(:id => 'blah')
|
275
489
|
expect(elements[0]).to be_instance_of Druid::Elements::Heading
|
276
490
|
end
|
277
491
|
|
492
|
+
it "should find all h5s using no identifier" do
|
493
|
+
expect(driver).to receive(:h5s).with({}).and_return([driver])
|
494
|
+
page.h5_elements
|
495
|
+
end
|
496
|
+
|
278
497
|
it "should find a h6 element" do
|
279
498
|
expect(driver).to receive(:h6).with(:id => 'blah').and_return(driver)
|
280
499
|
element = page.h6_element(:id => 'blah')
|
281
500
|
expect(element).to be_instance_of Druid::Elements::Heading
|
282
501
|
end
|
283
502
|
|
503
|
+
it "should find a h6 element using a default identifier" do
|
504
|
+
expect(driver).to receive(:h6).with(:index => 0).and_return(driver)
|
505
|
+
page.h6_element
|
506
|
+
end
|
507
|
+
|
284
508
|
it "should find all h6 elements" do
|
285
509
|
expect(driver).to receive(:h6s).with(:id => 'blah').and_return([driver])
|
286
510
|
elements = page.h6_elements(:id => 'blah')
|
287
511
|
expect(elements[0]).to be_instance_of Druid::Elements::Heading
|
288
512
|
end
|
289
513
|
|
514
|
+
it "should find all h6s using no identifier" do
|
515
|
+
expect(driver).to receive(:h6s).with({}).and_return([driver])
|
516
|
+
page.h6_elements
|
517
|
+
end
|
518
|
+
|
290
519
|
it "should find a paragraph element" do
|
291
520
|
expect(driver).to receive(:p).with(:id => 'blah').and_return(driver)
|
292
521
|
element = page.paragraph_element(:id => 'blah')
|
@@ -299,21 +528,68 @@ describe Druid::ElementLocators do
|
|
299
528
|
expect(elements[0]).to be_instance_of Druid::Elements::Paragraph
|
300
529
|
end
|
301
530
|
|
531
|
+
it "should find a paragraph element using a default identifier" do
|
532
|
+
expect(driver).to receive(:p).with(:index => 0).and_return(driver)
|
533
|
+
page.paragraph_element
|
534
|
+
end
|
535
|
+
|
536
|
+
it "should find all paragraphs using no identifier" do
|
537
|
+
expect(driver).to receive(:ps).with({}).and_return([driver])
|
538
|
+
page.paragraph_elements
|
539
|
+
end
|
540
|
+
|
302
541
|
it "should find a file field element" do
|
303
542
|
expect(driver).to receive(:file_field).with(:id => 'blah').and_return(driver)
|
304
543
|
element = page.file_field_element(:id => 'blah')
|
305
544
|
expect(element).to be_instance_of Druid::Elements::FileField
|
306
545
|
end
|
307
546
|
|
547
|
+
it "should find a file field element using a default identifier" do
|
548
|
+
expect(driver).to receive(:file_field).with(:index => 0).and_return(driver)
|
549
|
+
page.file_field_element
|
550
|
+
end
|
551
|
+
|
552
|
+
it "should find all file field elements" do
|
553
|
+
expect(driver).to receive(:file_fields).with(:id => 'blah').and_return([driver])
|
554
|
+
element = page.file_field_elements(:id => 'blah')
|
555
|
+
expect(element[0]).to be_instance_of Druid::Elements::FileField
|
556
|
+
end
|
557
|
+
|
558
|
+
it "should find all file fields using no identifier" do
|
559
|
+
expect(driver).to receive(:file_fields).with({}).and_return([driver])
|
560
|
+
page.file_field_elements
|
561
|
+
end
|
562
|
+
|
308
563
|
it "should find a label" do
|
309
564
|
expect(driver).to receive(:label).with(:id => 'blah').and_return(driver)
|
310
565
|
element = page.label_element(:id => 'blah')
|
311
566
|
expect(element).to be_instance_of Druid::Elements::Label
|
312
567
|
end
|
313
568
|
|
569
|
+
it "should find a label element using a default identifier" do
|
570
|
+
expect(driver).to receive(:label).with(:index => 0).and_return(driver)
|
571
|
+
page.label_element
|
572
|
+
end
|
573
|
+
|
314
574
|
it "should find all label elements" do
|
315
575
|
expect(driver).to receive(:labels).with(:id => 'blah').and_return([driver])
|
316
576
|
elements = page.label_elements(:id => 'blah')
|
317
577
|
expect(elements[0]).to be_instance_of Druid::Elements::Label
|
318
578
|
end
|
579
|
+
|
580
|
+
it "should find all labels using no identifier" do
|
581
|
+
expect(driver).to receive(:labels).with({}).and_return([driver])
|
582
|
+
page.label_elements
|
583
|
+
end
|
584
|
+
|
585
|
+
it "should find an element" do
|
586
|
+
expect(driver).to receive(:audio).with(:id => 'blah').and_return(driver)
|
587
|
+
element = page.element(:audio, :id => 'blah')
|
588
|
+
expect(element).to be_instance_of Druid::Elements::Element
|
589
|
+
end
|
590
|
+
|
591
|
+
it "should find an element using a default identifier" do
|
592
|
+
expect(driver).to receive(:audio).with(:index => 0).and_return(driver)
|
593
|
+
page.element(:audio)
|
594
|
+
end
|
319
595
|
end
|