page-object 0.6.4 → 0.6.5

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.
@@ -89,12 +89,12 @@ module PageObject
89
89
  # delegate calls to driver element
90
90
  def method_missing(*args, &block)
91
91
  m = args.shift
92
- puts "*** DEPRECATION WARNING"
93
- puts "*** You are calling a method named #{m} at #{caller[0]}."
94
- puts "*** This method does not exist in page-object so it is being passed to the driver."
95
- puts "*** This feature will be removed in the near future."
96
- puts "*** Please change your code to call the correct page-object method."
97
- puts "*** If you are using functionality that does not exist in page-object please request it be added."
92
+ $stderr.puts "*** DEPRECATION WARNING"
93
+ $stderr.puts "*** You are calling a method named #{m} at #{caller[0]}."
94
+ $stderr.puts "*** This method does not exist in page-object so it is being passed to the driver."
95
+ $stderr.puts "*** This feature will be removed in the near future."
96
+ $stderr.puts "*** Please change your code to call the correct page-object method."
97
+ $stderr.puts "*** If you are using functionality that does not exist in page-object please request it be added."
98
98
  begin
99
99
  element.send m, *args, &block
100
100
  rescue Exception => e
@@ -172,7 +172,7 @@ module PageObject
172
172
 
173
173
  def self.identifier_for identifier, find_by, find_by_mapping
174
174
  how, what = identifier.keys.first, identifier.values.first
175
- return how => what if find_by.include? how
175
+ return how => what if find_by.include? how or how == :tag_name
176
176
  return find_by_mapping[how] => what if find_by_mapping[how]
177
177
  return nil => what
178
178
  end
@@ -9,19 +9,11 @@ module PageObject
9
9
  protected
10
10
 
11
11
  def self.watir_finders
12
- super + [:tag_name, :text, :value]
13
- end
14
-
15
- def self.watir_mapping
16
- super.merge({:css => :tag_name})
12
+ super + [:text, :value]
17
13
  end
18
14
 
19
15
  def self.selenium_finders
20
- super + [:css, :value]
21
- end
22
-
23
- def self.selenium_mapping
24
- super.merge({:tag_name => :css})
16
+ super + [:value]
25
17
  end
26
18
  end
27
19
 
@@ -10,22 +10,6 @@ module PageObject
10
10
 
11
11
  protected
12
12
 
13
- def self.watir_finders
14
- super + [:tag_name]
15
- end
16
-
17
- def self.watir_mapping
18
- super.merge({:css => :tag_name})
19
- end
20
-
21
- def self.selenium_finders
22
- super + [:css]
23
- end
24
-
25
- def self.selenium_mapping
26
- super.merge({:tag_name => :css})
27
- end
28
-
29
13
  def include_platform_for platform
30
14
  super
31
15
  if platform[:platform] == :watir_webdriver
@@ -15,19 +15,11 @@ module PageObject
15
15
  protected
16
16
 
17
17
  def self.watir_finders
18
- super + [:tag_name, :title]
19
- end
20
-
21
- def self.watir_mapping
22
- super.merge({:css => :tag_name})
18
+ super + [:title]
23
19
  end
24
20
 
25
21
  def self.selenium_finders
26
- super + [:css, :title]
27
- end
28
-
29
- def self.selenium_mapping
30
- super.merge({:tag_name => :css})
22
+ super + [:title]
31
23
  end
32
24
 
33
25
  def include_platform_for platform
@@ -0,0 +1,28 @@
1
+ module PageObject
2
+ module Platforms
3
+ module SeleniumWebDriver
4
+ class NullSeleniumElement
5
+ def exists?
6
+ false
7
+ end
8
+
9
+ def visible?
10
+ false
11
+ end
12
+
13
+ def nil?
14
+ true
15
+ end
16
+
17
+ def displayed?
18
+ false
19
+ end
20
+
21
+ def method_missing(meth, *args)
22
+ $stderr.puts "You are calling #{meth} on an element that does not yet exist."
23
+ raise Selenium::WebDriver::Error::NoSuchElementError
24
+ end
25
+ end
26
+ end
27
+ end
28
+ end
@@ -850,6 +850,13 @@ module PageObject
850
850
  find_selenium_element(identifier, Elements::FileField, 'input', :type => 'file')
851
851
  end
852
852
 
853
+ #
854
+ # platform method to return an array of file field elements
855
+ #
856
+ def file_fields_for(identifier)
857
+ find_selenium_elements(identifier, Elements::FileField, 'input', :type => 'file')
858
+ end
859
+
853
860
  #
854
861
  # platform method to retrieve a generic element
855
862
  # See PageObject::Accessors#element
@@ -911,6 +918,7 @@ module PageObject
911
918
  end
912
919
 
913
920
  def supported_identifier(identifier, tag, additional)
921
+ return false if identifier.size == 0
914
922
  return false if identifier[:index]
915
923
  return false if identifier[:action] and tag == 'form'
916
924
  return false if identifier[:alt] and tag == 'img'
@@ -207,7 +207,8 @@ module PageObject
207
207
  # platform method to retrieve an array of text field elements
208
208
  #
209
209
  def text_fields_for(identifier)
210
- find_watir_elements("text_fields(identifier)", Elements::TextField, identifier)
210
+ elements = find_watir_elements("text_fields(identifier)", Elements::TextField, identifier)
211
+ elements.select {|e| e.element.tag_name == 'input'}
211
212
  end
212
213
 
213
214
  #
@@ -798,6 +799,14 @@ module PageObject
798
799
  find_watir_element("file_field(identifier)", Elements::FileField, identifier)
799
800
  end
800
801
 
802
+ #
803
+ # platform method to retrieve an array of file field elements
804
+ #
805
+ def file_fields_for(identifier)
806
+ find_watir_elements("file_fields(identifier)", Elements::FileField, identifier)
807
+
808
+ end
809
+
801
810
  #
802
811
  # platform method to return a PageObject::Elements::Element element
803
812
  # See PageObject::Accessors#elem
@@ -1,4 +1,4 @@
1
1
  module PageObject
2
2
  # @private
3
- VERSION = "0.6.4"
3
+ VERSION = "0.6.5"
4
4
  end
data/page-object.gemspec CHANGED
@@ -20,7 +20,7 @@ Gem::Specification.new do |s|
20
20
  s.require_paths = ["lib"]
21
21
 
22
22
  s.add_dependency 'watir-webdriver', '>= 0.5.4'
23
- s.add_dependency 'selenium-webdriver', '>= 2.20.0'
23
+ s.add_dependency 'selenium-webdriver', '>= 2.21.0'
24
24
 
25
25
  s.add_development_dependency 'rspec', '>= 2.6.0'
26
26
  s.add_development_dependency 'cucumber', '>= 1.1.0'
@@ -184,6 +184,185 @@ describe PageObject::Accessors do
184
184
  end
185
185
  end
186
186
 
187
+ describe "using default identifiers" do
188
+ class DefaultIdentifier
189
+ include PageObject
190
+ text_field(:default_tf)
191
+ hidden_field(:default_hf)
192
+ text_area(:default_ta)
193
+ select_list(:default_sl)
194
+ link(:default_link)
195
+ checkbox(:default_cb)
196
+ radio_button(:default_rb)
197
+ button(:default_but)
198
+ div(:default_div)
199
+ span(:default_span)
200
+ table(:default_tab)
201
+ cell(:default_cell)
202
+ image(:default_im)
203
+ form(:default_form)
204
+ list_item(:default_li)
205
+ unordered_list(:default_ul)
206
+ ordered_list(:default_ol)
207
+ h1(:default_h1)
208
+ h2(:default_h2)
209
+ h3(:default_h3)
210
+ h4(:default_h4)
211
+ h5(:default_h5)
212
+ h6(:default_h6)
213
+ paragraph(:default_p)
214
+ file_field(:default_ff)
215
+ label(:default_lab)
216
+ element(:default_el, :audio)
217
+ end
218
+
219
+ let(:default_identifier) { DefaultIdentifier.new(watir_browser) }
220
+
221
+ before(:each) do
222
+ watir_browser.should_receive(:exists?).and_return(true)
223
+ end
224
+
225
+ def mock_driver_for(tag)
226
+ watir_browser.should_receive(tag).with(:index => 0).and_return(watir_browser)
227
+ end
228
+
229
+ it "should work with a text_field" do
230
+ mock_driver_for :text_field
231
+ default_identifier.default_tf?
232
+ end
233
+
234
+ it "should work with a hidden field" do
235
+ mock_driver_for :hidden
236
+ default_identifier.default_hf?
237
+ end
238
+
239
+ it "should work with a text area" do
240
+ mock_driver_for :textarea
241
+ default_identifier.default_ta?
242
+ end
243
+
244
+ it "should work with a select list" do
245
+ mock_driver_for :select_list
246
+ default_identifier.default_sl?
247
+ end
248
+
249
+ it "should work with a link" do
250
+ mock_driver_for :link
251
+ default_identifier.default_link?
252
+ end
253
+
254
+ it "should work with a checkbox" do
255
+ mock_driver_for :checkbox
256
+ default_identifier.default_cb?
257
+ end
258
+
259
+ it "should work with a radio button" do
260
+ mock_driver_for :radio
261
+ default_identifier.default_rb?
262
+ end
263
+
264
+ it "should work with a button" do
265
+ mock_driver_for :button
266
+ default_identifier.default_but?
267
+ end
268
+
269
+ it "should work with a div" do
270
+ mock_driver_for :div
271
+ default_identifier.default_div?
272
+ end
273
+
274
+ it "should work with a span" do
275
+ mock_driver_for :span
276
+ default_identifier.default_span?
277
+ end
278
+
279
+ it "should work for a table" do
280
+ mock_driver_for :table
281
+ default_identifier.default_tab?
282
+ end
283
+
284
+ it "should work for a cell" do
285
+ mock_driver_for :td
286
+ default_identifier.default_cell?
287
+ end
288
+
289
+ it "should work for an image" do
290
+ mock_driver_for :image
291
+ default_identifier.default_im?
292
+ end
293
+
294
+ it "should work for a form" do
295
+ mock_driver_for :form
296
+ default_identifier.default_form?
297
+ end
298
+
299
+ it "should work for a list item" do
300
+ mock_driver_for :li
301
+ default_identifier.default_li?
302
+ end
303
+
304
+ it "should work for unordered lists" do
305
+ mock_driver_for :ul
306
+ default_identifier.default_ul?
307
+ end
308
+
309
+ it "should work for ordered lists" do
310
+ mock_driver_for :ol
311
+ default_identifier.default_ol?
312
+ end
313
+
314
+ it "should work for h1" do
315
+ mock_driver_for :h1
316
+ default_identifier.default_h1?
317
+ end
318
+
319
+ it "should work for h2" do
320
+ mock_driver_for :h2
321
+ default_identifier.default_h2?
322
+ end
323
+
324
+ it "should work for h3" do
325
+ mock_driver_for :h3
326
+ default_identifier.default_h3?
327
+ end
328
+
329
+ it "should work for a h4" do
330
+ mock_driver_for :h4
331
+ default_identifier.default_h4?
332
+ end
333
+
334
+ it "should work for a h5" do
335
+ mock_driver_for :h5
336
+ default_identifier.default_h5?
337
+ end
338
+
339
+ it "should work for a h6" do
340
+ mock_driver_for :h6
341
+ default_identifier.default_h6?
342
+ end
343
+
344
+ it "should work with a paragraph" do
345
+ mock_driver_for :p
346
+ default_identifier.default_p?
347
+ end
348
+
349
+ it "should work with a file_field" do
350
+ mock_driver_for :file_field
351
+ default_identifier.default_ff?
352
+ end
353
+
354
+ it "should work with a label" do
355
+ mock_driver_for :label
356
+ default_identifier.default_lab?
357
+ end
358
+
359
+ it "should work with an element" do
360
+ mock_driver_for :audio
361
+ default_identifier.default_el?
362
+ end
363
+
364
+ end
365
+
187
366
  describe "link accessors" do
188
367
  context "when called on a page object" do
189
368
  it "should generate accessor methods" do
@@ -232,6 +411,7 @@ describe PageObject::Accessors do
232
411
  watir_page_object.should respond_to(:first_name=)
233
412
  watir_page_object.should respond_to(:first_name_element)
234
413
  watir_page_object.should respond_to(:first_name_text_field)
414
+ watir_page_object.should respond_to(:first_name?)
235
415
  end
236
416
 
237
417
  it "should call a block on the element method when present" do
@@ -17,11 +17,21 @@ describe PageObject::ElementLocators do
17
17
  element.should be_instance_of PageObject::Elements::Button
18
18
  end
19
19
 
20
+ it "should find a button element using a default identifier" do
21
+ watir_browser.should_receive(:button).with(:index => 0).and_return(watir_browser)
22
+ watir_page_object.button_element
23
+ end
24
+
20
25
  it "should find all button elements" do
21
26
  watir_browser.should_receive(:buttons).with(:id => 'blah').and_return([watir_browser])
22
27
  elements = watir_page_object.button_elements(:id => 'blah')
23
28
  elements[0].should be_instance_of PageObject::Elements::Button
24
29
  end
30
+
31
+ it "should find all buttons with no identifier" do
32
+ watir_browser.should_receive(:buttons).with({}).and_return([watir_browser])
33
+ watir_page_object.button_elements
34
+ end
25
35
 
26
36
  it "should find a text field element" do
27
37
  watir_browser.should_receive(:text_field).with(:id => 'blah').and_return(watir_browser)
@@ -29,11 +39,23 @@ describe PageObject::ElementLocators do
29
39
  element.should be_instance_of PageObject::Elements::TextField
30
40
  end
31
41
 
42
+ it "should find a text field element using a default identifier" do
43
+ watir_browser.should_receive(:text_field).with(:index => 0).and_return(watir_browser)
44
+ watir_page_object.text_field_element
45
+ end
46
+
32
47
  it "should find all text field elements" do
33
48
  watir_browser.should_receive(:text_fields).with(:id => 'blah').and_return([watir_browser])
49
+ watir_browser.should_receive(:tag_name).and_return('input')
34
50
  elements = watir_page_object.text_field_elements(:id => 'blah')
35
51
  elements[0].should be_instance_of PageObject::Elements::TextField
36
52
  end
53
+
54
+ it "should find all text fields with no identifier" do
55
+ watir_browser.should_receive(:text_fields).with({}).and_return([watir_browser])
56
+ watir_browser.should_receive(:tag_name).and_return('input')
57
+ watir_page_object.text_field_elements
58
+ end
37
59
 
38
60
  it "should find a hidden field element" do
39
61
  watir_browser.should_receive(:hidden).with(:id => 'blah').and_return(watir_browser)
@@ -41,11 +63,21 @@ describe PageObject::ElementLocators do
41
63
  element.should be_instance_of PageObject::Elements::HiddenField
42
64
  end
43
65
 
66
+ it "should find a hidden field using a default identifier" do
67
+ watir_browser.should_receive(:hidden).with(:index => 0).and_return(watir_browser)
68
+ watir_page_object.hidden_field_element
69
+ end
70
+
44
71
  it "should find all hidden field elements" do
45
72
  watir_browser.should_receive(:hiddens).with(:id => 'blah').and_return([watir_browser])
46
73
  elements = watir_page_object.hidden_field_elements(:id => 'blah')
47
74
  elements[0].should be_instance_of(PageObject::Elements::HiddenField)
48
75
  end
76
+
77
+ it "should find all hidden field elements using no identifier" do
78
+ watir_browser.should_receive(:hiddens).with({}).and_return([watir_browser])
79
+ watir_page_object.hidden_field_elements
80
+ end
49
81
 
50
82
  it "should find a text area element" do
51
83
  watir_browser.should_receive(:textarea).with(:id => 'blah').and_return(watir_browser)
@@ -53,11 +85,21 @@ describe PageObject::ElementLocators do
53
85
  element.should be_instance_of PageObject::Elements::TextArea
54
86
  end
55
87
 
88
+ it "should find a text area using a default identifier" do
89
+ watir_browser.should_receive(:textarea).with(:index => 0).and_return(watir_browser)
90
+ watir_page_object.text_area_element
91
+ end
92
+
56
93
  it "should find all text area elements" do
57
94
  watir_browser.should_receive(:textareas).with(:id => 'blah').and_return([watir_browser])
58
95
  elements = watir_page_object.text_area_elements(:id => 'blah')
59
96
  elements[0].should be_instance_of PageObject::Elements::TextArea
60
97
  end
98
+
99
+ it "should find all text area elements using no identifier" do
100
+ watir_browser.should_receive(:textareas).with({}).and_return([watir_browser])
101
+ watir_page_object.text_area_elements
102
+ end
61
103
 
62
104
  it "should find a select list element" do
63
105
  watir_browser.should_receive(:select_list).with(:id => 'blah').and_return(watir_browser)
@@ -65,11 +107,21 @@ describe PageObject::ElementLocators do
65
107
  element.should be_instance_of PageObject::Elements::SelectList
66
108
  end
67
109
 
110
+ it "should find a select list using a default identifier" do
111
+ watir_browser.should_receive(:select_list).with(:index => 0).and_return(watir_browser)
112
+ watir_page_object.select_list_element
113
+ end
114
+
68
115
  it "should find all select list elements" do
69
116
  watir_browser.should_receive(:select_lists).with(:id => 'blah').and_return([watir_browser])
70
117
  elements = watir_page_object.select_list_elements(:id => 'blah')
71
118
  elements[0].should be_instance_of PageObject::Elements::SelectList
72
119
  end
120
+
121
+ it "should find all select list elements using no identifier" do
122
+ watir_browser.should_receive(:select_lists).with({}).and_return([watir_browser])
123
+ watir_page_object.select_list_elements
124
+ end
73
125
 
74
126
  it "should find a link element" do
75
127
  watir_browser.should_receive(:link).with(:id => 'blah').and_return(watir_browser)
@@ -77,11 +129,21 @@ describe PageObject::ElementLocators do
77
129
  element.should be_instance_of PageObject::Elements::Link
78
130
  end
79
131
 
132
+ it "should find a link element using a default identifier" do
133
+ watir_browser.should_receive(:link).with(:index => 0).and_return(watir_browser)
134
+ watir_page_object.link_element
135
+ end
136
+
80
137
  it "should find all link elements" do
81
138
  watir_browser.should_receive(:links).with(:id => 'blah').and_return([watir_browser])
82
139
  elements = watir_page_object.link_elements(:id => 'blah')
83
140
  elements[0].should be_instance_of PageObject::Elements::Link
84
141
  end
142
+
143
+ it "should find all links using no identifier" do
144
+ watir_browser.should_receive(:links).with({}).and_return([watir_browser])
145
+ watir_page_object.link_elements
146
+ end
85
147
 
86
148
  it "should find a check box" do
87
149
  watir_browser.should_receive(:checkbox).with(:id => 'blah').and_return(watir_browser)
@@ -89,11 +151,21 @@ describe PageObject::ElementLocators do
89
151
  element.should be_instance_of PageObject::Elements::CheckBox
90
152
  end
91
153
 
154
+ it "should find a check box using a default identifier" do
155
+ watir_browser.should_receive(:checkbox).with(:index => 0).and_return(watir_browser)
156
+ watir_page_object.checkbox_element
157
+ end
158
+
92
159
  it "should find all check box elements" do
93
160
  watir_browser.should_receive(:checkboxes).with(:id => 'blah').and_return([watir_browser])
94
161
  elements = watir_page_object.checkbox_elements(:id => 'blah')
95
162
  elements[0].should be_instance_of PageObject::Elements::CheckBox
96
163
  end
164
+
165
+ it "should find all check box elements using no identifier" do
166
+ watir_browser.should_receive(:checkboxes).with({}).and_return([watir_browser])
167
+ watir_page_object.checkbox_elements
168
+ end
97
169
 
98
170
  it "should find a radio button" do
99
171
  watir_browser.should_receive(:radio).with(:id => 'blah').and_return(watir_browser)
@@ -101,11 +173,21 @@ describe PageObject::ElementLocators do
101
173
  element.should be_instance_of PageObject::Elements::RadioButton
102
174
  end
103
175
 
176
+ it "should find a radio button using a default identifier" do
177
+ watir_browser.should_receive(:radio).with(:index => 0).and_return(watir_browser)
178
+ watir_page_object.radio_button_element
179
+ end
180
+
104
181
  it "should find all radio buttons" do
105
182
  watir_browser.should_receive(:radios).with(:id => 'blah').and_return([watir_browser])
106
183
  elements = watir_page_object.radio_button_elements(:id => 'blah')
107
184
  elements[0].should be_instance_of PageObject::Elements::RadioButton
108
185
  end
186
+
187
+ it "should find all radio buttons using no identifier" do
188
+ watir_browser.should_receive(:radios).with({}).and_return([watir_browser])
189
+ watir_page_object.radio_button_elements
190
+ end
109
191
 
110
192
  it "should find a div" do
111
193
  watir_browser.should_receive(:div).with(:id => 'blah').and_return(watir_browser)
@@ -113,11 +195,21 @@ describe PageObject::ElementLocators do
113
195
  element.should be_instance_of PageObject::Elements::Div
114
196
  end
115
197
 
198
+ it "should find a div using a default identifier" do
199
+ watir_browser.should_receive(:div).with(:index => 0).and_return(watir_browser)
200
+ watir_page_object.div_element
201
+ end
202
+
116
203
  it "should find all div elements" do
117
204
  watir_browser.should_receive(:divs).with(:id => 'blah').and_return([watir_browser])
118
205
  elements = watir_page_object.div_elements(:id => 'blah')
119
206
  elements[0].should be_instance_of PageObject::Elements::Div
120
207
  end
208
+
209
+ it "should find all div elements using no identifier" do
210
+ watir_browser.should_receive(:divs).with({}).and_return([watir_browser])
211
+ watir_page_object.div_elements
212
+ end
121
213
 
122
214
  it "should find a span" do
123
215
  watir_browser.should_receive(:span).with(:id => 'blah').and_return(watir_browser)
@@ -125,11 +217,21 @@ describe PageObject::ElementLocators do
125
217
  element.should be_instance_of PageObject::Elements::Span
126
218
  end
127
219
 
220
+ it "should find a span using a default identifier" do
221
+ watir_browser.should_receive(:span).with(:index => 0).and_return(watir_browser)
222
+ watir_page_object.span_element
223
+ end
224
+
128
225
  it "should find all span elements" do
129
226
  watir_browser.should_receive(:spans).with(:id => 'blah').and_return([watir_browser])
130
227
  elements = watir_page_object.span_elements(:id => 'blah')
131
228
  elements[0].should be_instance_of PageObject::Elements::Span
132
229
  end
230
+
231
+ it "should find all span elements using no identifier" do
232
+ watir_browser.should_receive(:spans).with({}).and_return([watir_browser])
233
+ watir_page_object.span_elements
234
+ end
133
235
 
134
236
  it "should find a table" do
135
237
  watir_browser.should_receive(:table).with(:id => 'blah').and_return(watir_browser)
@@ -137,11 +239,21 @@ describe PageObject::ElementLocators do
137
239
  element.should be_instance_of PageObject::Elements::Table
138
240
  end
139
241
 
242
+ it "should find a table using a default identifier" do
243
+ watir_browser.should_receive(:table).with(:index => 0).and_return(watir_browser)
244
+ watir_page_object.table_element
245
+ end
246
+
140
247
  it "should find all table elements" do
141
248
  watir_browser.should_receive(:tables).with(:id => 'blah').and_return([watir_browser])
142
249
  elements = watir_page_object.table_elements(:id => 'blah')
143
250
  elements[0].should be_instance_of PageObject::Elements::Table
144
251
  end
252
+
253
+ it "should find all table elements using no identifier" do
254
+ watir_browser.should_receive(:tables).with({}).and_return([watir_browser])
255
+ watir_page_object.table_elements
256
+ end
145
257
 
146
258
  it "should find a table cell" do
147
259
  watir_browser.should_receive(:td).with(:id => 'blah').and_return(watir_browser)
@@ -149,11 +261,21 @@ describe PageObject::ElementLocators do
149
261
  element.should be_instance_of PageObject::Elements::TableCell
150
262
  end
151
263
 
264
+ it "should find a table cell using a default identifier" do
265
+ watir_browser.should_receive(:td).with(:index => 0).and_return(watir_browser)
266
+ watir_page_object.cell_element
267
+ end
268
+
152
269
  it "should find all table cells" do
153
270
  watir_browser.should_receive(:tds).with(:id => 'blah').and_return([watir_browser])
154
271
  elements = watir_page_object.cell_elements(:id => 'blah')
155
272
  elements[0].should be_instance_of PageObject::Elements::TableCell
156
273
  end
274
+
275
+ it "should find all table cells using no identifier" do
276
+ watir_browser.should_receive(:tds).with({}).and_return([watir_browser])
277
+ watir_page_object.cell_elements
278
+ end
157
279
 
158
280
  it "should find an image" do
159
281
  watir_browser.should_receive(:image).with(:id => 'blah').and_return(watir_browser)
@@ -161,11 +283,21 @@ describe PageObject::ElementLocators do
161
283
  element.should be_instance_of PageObject::Elements::Image
162
284
  end
163
285
 
286
+ it "should find an image using a default identifier" do
287
+ watir_browser.should_receive(:image).with(:index => 0).and_return(watir_browser)
288
+ watir_page_object.image_element
289
+ end
290
+
164
291
  it "should find all images" do
165
292
  watir_browser.should_receive(:images).with(:id => 'blah').and_return([watir_browser])
166
293
  elements = watir_page_object.image_elements(:id => 'blah')
167
294
  elements[0].should be_instance_of PageObject::Elements::Image
168
295
  end
296
+
297
+ it "should find all images using no identifier" do
298
+ watir_browser.should_receive(:images).with({}).and_return([watir_browser])
299
+ watir_page_object.image_elements
300
+ end
169
301
 
170
302
  it "should find a form" do
171
303
  watir_browser.should_receive(:form).with(:id => 'blah').and_return(watir_browser)
@@ -173,11 +305,21 @@ describe PageObject::ElementLocators do
173
305
  element.should be_instance_of PageObject::Elements::Form
174
306
  end
175
307
 
308
+ it "should find a form using a default identifier" do
309
+ watir_browser.should_receive(:form).with(:index => 0).and_return(watir_browser)
310
+ watir_page_object.form_element
311
+ end
312
+
176
313
  it "should find all forms" do
177
314
  watir_browser.should_receive(:forms).with(:id => 'blah').and_return([watir_browser])
178
315
  elements = watir_page_object.form_elements(:id => 'blah')
179
316
  elements[0].should be_instance_of PageObject::Elements::Form
180
317
  end
318
+
319
+ it "should find all forms using no identifier" do
320
+ watir_browser.should_receive(:forms).with({}).and_return([watir_browser])
321
+ watir_page_object.form_elements
322
+ end
181
323
 
182
324
  it "should find a list item" do
183
325
  watir_browser.should_receive(:li).with(:id => 'blah').and_return(watir_browser)
@@ -185,11 +327,21 @@ describe PageObject::ElementLocators do
185
327
  element.should be_instance_of PageObject::Elements::ListItem
186
328
  end
187
329
 
330
+ it "should find a list item using a default identifier" do
331
+ watir_browser.should_receive(:li).with(:index => 0).and_return(watir_browser)
332
+ watir_page_object.list_item_element
333
+ end
334
+
188
335
  it "should find all list items" do
189
336
  watir_browser.should_receive(:lis).with(:id => 'blah').and_return([watir_browser])
190
337
  elements = watir_page_object.list_item_elements(:id => 'blah')
191
338
  elements[0].should be_instance_of PageObject::Elements::ListItem
192
339
  end
340
+
341
+ it "should find all list items using no parameter" do
342
+ watir_browser.should_receive(:lis).with({}).and_return([watir_browser])
343
+ watir_page_object.list_item_elements
344
+ end
193
345
 
194
346
  it "should find an unordered list" do
195
347
  watir_browser.should_receive(:ul).with(:id => 'blah').and_return(watir_browser)
@@ -197,11 +349,21 @@ describe PageObject::ElementLocators do
197
349
  element.should be_instance_of PageObject::Elements::UnorderedList
198
350
  end
199
351
 
352
+ it "should find an unordered list using a default identifier" do
353
+ watir_browser.should_receive(:ul).with(:index => 0).and_return(watir_browser)
354
+ watir_page_object.unordered_list_element
355
+ end
356
+
200
357
  it "should find all unordered lists" do
201
358
  watir_browser.should_receive(:uls).with(:id => 'blah').and_return([watir_browser])
202
359
  elements = watir_page_object.unordered_list_elements(:id => 'blah')
203
360
  elements[0].should be_instance_of PageObject::Elements::UnorderedList
204
361
  end
362
+
363
+ it "should find all unordered lists using no parameters" do
364
+ watir_browser.should_receive(:uls).with({}).and_return([watir_browser])
365
+ watir_page_object.unordered_list_elements
366
+ end
205
367
 
206
368
  it "should find an ordered list" do
207
369
  watir_browser.should_receive(:ol).with(:id => 'blah').and_return(watir_browser)
@@ -209,11 +371,21 @@ describe PageObject::ElementLocators do
209
371
  element.should be_instance_of PageObject::Elements::OrderedList
210
372
  end
211
373
 
374
+ it "should find an orderd list using a default identifier" do
375
+ watir_browser.should_receive(:ol).with(:index => 0).and_return(watir_browser)
376
+ watir_page_object.ordered_list_element
377
+ end
378
+
212
379
  it "should find all ordered lists" do
213
380
  watir_browser.should_receive(:ols).with(:id => 'blah').and_return([watir_browser])
214
381
  elements = watir_page_object.ordered_list_elements(:id => 'blah')
215
382
  elements[0].should be_instance_of PageObject::Elements::OrderedList
216
383
  end
384
+
385
+ it "should find all orderd lists using no parameters" do
386
+ watir_browser.should_receive(:ols).with({}).and_return([watir_browser])
387
+ watir_page_object.ordered_list_elements
388
+ end
217
389
 
218
390
  it "should find a h1 element" do
219
391
  watir_browser.should_receive(:h1).with(:id => 'blah').and_return(watir_browser)
@@ -221,101 +393,208 @@ describe PageObject::ElementLocators do
221
393
  element.should be_instance_of PageObject::Elements::Heading
222
394
  end
223
395
 
224
- it "shoudl find all h1 elements" do
396
+ it "should find a h1 element using a default identifier" do
397
+ watir_browser.should_receive(:h1).with(:index => 0).and_return(watir_browser)
398
+ watir_page_object.h1_element
399
+ end
400
+
401
+ it "should find all h1 elements" do
225
402
  watir_browser.should_receive(:h1s).with(:id => 'blah').and_return([watir_browser])
226
403
  elements = watir_page_object.h1_elements(:id => 'blah')
227
404
  elements[0].should be_instance_of PageObject::Elements::Heading
228
405
  end
229
406
 
407
+ it "should find all h1 elements using no parameters" do
408
+ watir_browser.should_receive(:h1s).with({}).and_return([watir_browser])
409
+ watir_page_object.h1_elements
410
+ end
411
+
230
412
  it "should find a h2 element" do
231
413
  watir_browser.should_receive(:h2).with(:id => 'blah').and_return(watir_browser)
232
414
  element = watir_page_object.h2_element(:id => 'blah')
233
415
  element.should be_instance_of PageObject::Elements::Heading
234
416
  end
235
417
 
418
+ it "should find a h2 element using default identifier" do
419
+ watir_browser.should_receive(:h2).with(:index => 0).and_return(watir_browser)
420
+ watir_page_object.h2_element
421
+ end
422
+
236
423
  it "should find all h2 elements" do
237
424
  watir_browser.should_receive(:h2s).with(:id => 'blah').and_return([watir_browser])
238
425
  elements = watir_page_object.h2_elements(:id => 'blah')
239
426
  elements[0].should be_instance_of PageObject::Elements::Heading
240
427
  end
241
428
 
429
+ it "should find all h2 elements using no identifier" do
430
+ watir_browser.should_receive(:h2s).with({}).and_return([watir_browser])
431
+ watir_page_object.h2_elements
432
+ end
433
+
242
434
  it "should find a h3 element" do
243
435
  watir_browser.should_receive(:h3).with(:id => 'blah').and_return(watir_browser)
244
436
  element = watir_page_object.h3_element(:id => 'blah')
245
437
  element.should be_instance_of PageObject::Elements::Heading
246
438
  end
247
439
 
440
+ it "should find a h3 element using a default identifier" do
441
+ watir_browser.should_receive(:h3).with(:index => 0).and_return(watir_browser)
442
+ watir_page_object.h3_element
443
+ end
444
+
248
445
  it "should find all h3 elements" do
249
446
  watir_browser.should_receive(:h3s).with(:id => 'blah').and_return([watir_browser])
250
447
  elements = watir_page_object.h3_elements(:id => 'blah')
251
448
  elements[0].should be_instance_of PageObject::Elements::Heading
252
449
  end
253
450
 
451
+ it "should find all h3 elements using no identifiers" do
452
+ watir_browser.should_receive(:h3s).with({}).and_return([watir_browser])
453
+ watir_page_object.h3_elements
454
+ end
455
+
254
456
  it "should find a h4 element" do
255
457
  watir_browser.should_receive(:h4).with(:id => 'blah').and_return(watir_browser)
256
458
  element = watir_page_object.h4_element(:id => 'blah')
257
459
  element.should be_instance_of PageObject::Elements::Heading
258
460
  end
259
461
 
462
+ it "should find a h4 element using a default identifier" do
463
+ watir_browser.should_receive(:h4).with(:index => 0).and_return(watir_browser)
464
+ watir_page_object.h4_element
465
+ end
466
+
260
467
  it "should find all h4 elements" do
261
468
  watir_browser.should_receive(:h4s).with(:id => 'blah').and_return([watir_browser])
262
469
  elements = watir_page_object.h4_elements(:id => 'blah')
263
470
  elements[0].should be_instance_of PageObject::Elements::Heading
264
471
  end
265
472
 
473
+ it "should find all h4 elements using no identifier" do
474
+ watir_browser.should_receive(:h4s).with({}).and_return([watir_browser])
475
+ watir_page_object.h4_elements
476
+ end
477
+
266
478
  it "should find a h5 element" do
267
479
  watir_browser.should_receive(:h5).with(:id => 'blah').and_return(watir_browser)
268
480
  element = watir_page_object.h5_element(:id => 'blah')
269
481
  element.should be_instance_of PageObject::Elements::Heading
270
482
  end
271
483
 
484
+ it "should find a h5 element using a default identifier" do
485
+ watir_browser.should_receive(:h5).with(:index => 0).and_return(watir_browser)
486
+ watir_page_object.h5_element
487
+ end
488
+
272
489
  it "should find all h5 elements" do
273
490
  watir_browser.should_receive(:h5s).with(:id => 'blah').and_return([watir_browser])
274
491
  elements = watir_page_object.h5_elements(:id => 'blah')
275
492
  elements[0].should be_instance_of PageObject::Elements::Heading
276
493
  end
277
494
 
495
+ it "should find all h5 elements using no identifier" do
496
+ watir_browser.should_receive(:h5s).with({}).and_return([watir_browser])
497
+ watir_page_object.h5_elements
498
+ end
499
+
278
500
  it "should find a h6 element" do
279
501
  watir_browser.should_receive(:h6).with(:id => 'blah').and_return(watir_browser)
280
502
  element = watir_page_object.h6_element(:id => 'blah')
281
503
  element.should be_instance_of PageObject::Elements::Heading
282
504
  end
283
505
 
506
+ it "should find a h6 element using a default identifier" do
507
+ watir_browser.should_receive(:h6).with(:index => 0).and_return(watir_browser)
508
+ watir_page_object.h6_element
509
+ end
510
+
284
511
  it "should find all h6 elements" do
285
512
  watir_browser.should_receive(:h6s).with(:id => 'blah').and_return([watir_browser])
286
513
  elements = watir_page_object.h6_elements(:id => 'blah')
287
514
  elements[0].should be_instance_of PageObject::Elements::Heading
288
515
  end
289
516
 
517
+ it "should find all h6 elements using no identifier" do
518
+ watir_browser.should_receive(:h6s).with({}).and_return([watir_browser])
519
+ watir_page_object.h6_elements
520
+ end
521
+
290
522
  it "should find a paragraph element" do
291
523
  watir_browser.should_receive(:p).with(:id => 'blah').and_return(watir_browser)
292
524
  element = watir_page_object.paragraph_element(:id => 'blah')
293
525
  element.should be_instance_of PageObject::Elements::Paragraph
294
526
  end
295
527
 
528
+ it "should find a paragraph element using a default identifier" do
529
+ watir_browser.should_receive(:p).with(:index => 0).and_return(watir_browser)
530
+ watir_page_object.paragraph_element
531
+ end
532
+
296
533
  it "should find all paragraph elements" do
297
534
  watir_browser.should_receive(:ps).with(:id => 'blah').and_return([watir_browser])
298
535
  elements = watir_page_object.paragraph_elements(:id => 'blah')
299
536
  elements[0].should be_instance_of PageObject::Elements::Paragraph
300
537
  end
301
538
 
539
+ it "should find all paragraph elements using no identifier" do
540
+ watir_browser.should_receive(:ps).with({}).and_return([watir_browser])
541
+ watir_page_object.paragraph_elements
542
+ end
543
+
302
544
  it "should find a label" do
303
545
  watir_browser.should_receive(:label).with(:id => 'blah').and_return(watir_browser)
304
546
  element = watir_page_object.label_element(:id => 'blah')
305
547
  element.should be_instance_of PageObject::Elements::Label
306
548
  end
307
549
 
550
+ it "should find a label element using default parameters" do
551
+ watir_browser.should_receive(:label).with(:index => 0).and_return(watir_browser)
552
+ watir_page_object.label_element
553
+ end
554
+
308
555
  it "should find all label elements" do
309
556
  watir_browser.should_receive(:labels).with(:id => 'blah').and_return([watir_browser])
310
557
  elements = watir_page_object.label_elements(:id => 'blah')
311
558
  elements[0].should be_instance_of PageObject::Elements::Label
312
- end
559
+ end
560
+
561
+ it "should find all label elements using no parameters" do
562
+ watir_browser.should_receive(:labels).with({}).and_return([watir_browser])
563
+ watir_page_object.label_elements
564
+ end
313
565
 
314
566
  it "should find a file field element" do
315
567
  watir_browser.should_receive(:file_field).with(:id => 'blah').and_return(watir_browser)
316
568
  element = watir_page_object.file_field_element(:id => 'blah')
317
569
  element.should be_instance_of PageObject::Elements::FileField
318
570
  end
571
+
572
+ it "should find a file field element using a default identifier" do
573
+ watir_browser.should_receive(:file_field).with(:index => 0).and_return(watir_browser)
574
+ watir_page_object.file_field_element
575
+ end
576
+
577
+ it "should find all file field elements" do
578
+ watir_browser.should_receive(:file_fields).with(:id => 'blah').and_return([watir_browser])
579
+ element = watir_page_object.file_field_elements(:id => 'blah')
580
+ element[0].should be_instance_of PageObject::Elements::FileField
581
+ end
582
+
583
+ it "should find all file fields using no identifier" do
584
+ watir_browser.should_receive(:file_fields).with({}).and_return([watir_browser])
585
+ watir_page_object.file_field_elements
586
+ end
587
+
588
+ it "should find an element" do
589
+ watir_browser.should_receive(:audio).with(:id => 'blah').and_return(watir_browser)
590
+ element = watir_page_object.element(:audio, :id => 'blah')
591
+ element.should be_instance_of PageObject::Elements::Element
592
+ end
593
+
594
+ it "should find an element using a default identifier" do
595
+ watir_browser.should_receive(:audio).with(:index => 0).and_return(watir_browser)
596
+ watir_page_object.element(:audio)
597
+ end
319
598
  end
320
599
 
321
600
  context "when using Selenium" do