page-object 0.0.3 → 0.0.4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (49) hide show
  1. data/ChangeLog +10 -1
  2. data/Gemfile +3 -0
  3. data/README.md +2 -2
  4. data/cucumber.yml +2 -0
  5. data/features/element.feature +81 -8
  6. data/features/form.feature +28 -0
  7. data/features/hidden_field.feature +32 -0
  8. data/features/html/static_elements.html +26 -0
  9. data/features/list_item.feature +36 -0
  10. data/features/ordered_list.feature +39 -0
  11. data/features/step_definitions/accessor_steps.rb +71 -0
  12. data/features/step_definitions/element_steps.rb +23 -0
  13. data/features/support/page.rb +43 -0
  14. data/features/text_area.feature +32 -0
  15. data/features/text_field.feature +1 -2
  16. data/features/unordered_list.feature +39 -0
  17. data/lib/page-object.rb +48 -3
  18. data/lib/page-object/accessors.rb +282 -111
  19. data/lib/page-object/elements.rb +6 -0
  20. data/lib/page-object/elements/element.rb +5 -1
  21. data/lib/page-object/elements/form.rb +25 -0
  22. data/lib/page-object/elements/hidden_field.rb +28 -0
  23. data/lib/page-object/elements/list_item.rb +7 -0
  24. data/lib/page-object/elements/ordered_list.rb +31 -0
  25. data/lib/page-object/elements/text_area.rb +24 -0
  26. data/lib/page-object/elements/text_field.rb +1 -1
  27. data/lib/page-object/elements/unordered_list.rb +31 -0
  28. data/lib/page-object/platforms/selenium_button.rb +1 -1
  29. data/lib/page-object/platforms/selenium_element.rb +3 -0
  30. data/lib/page-object/platforms/selenium_form.rb +14 -0
  31. data/lib/page-object/platforms/selenium_image.rb +6 -2
  32. data/lib/page-object/platforms/selenium_ordered_list.rb +18 -0
  33. data/lib/page-object/platforms/selenium_unordered_list.rb +18 -0
  34. data/lib/page-object/platforms/watir_element.rb +3 -0
  35. data/lib/page-object/platforms/watir_form.rb +14 -0
  36. data/lib/page-object/platforms/watir_ordered_list.rb +18 -0
  37. data/lib/page-object/platforms/watir_unordered_list.rb +18 -0
  38. data/lib/page-object/selenium_page_object.rb +101 -0
  39. data/lib/page-object/version.rb +2 -1
  40. data/lib/page-object/watir_page_object.rb +103 -2
  41. data/spec/page-object/accessors_spec.rb +203 -2
  42. data/spec/page-object/elements/form_spec.rb +24 -0
  43. data/spec/page-object/elements/hidden_field_spec.rb +32 -0
  44. data/spec/page-object/elements/list_item_spec.rb +22 -0
  45. data/spec/page-object/elements/ordered_list_spec.rb +43 -0
  46. data/spec/page-object/elements/text_area_spec.rb +32 -0
  47. data/spec/page-object/elements/text_field_spec.rb +1 -1
  48. data/spec/page-object/elements/unordered_list_spec.rb +43 -0
  49. metadata +39 -5
@@ -0,0 +1,43 @@
1
+ require 'spec_helper'
2
+ require 'page-object/elements'
3
+
4
+ describe PageObject::Elements::OrderedList do
5
+ let(:ol) { PageObject::Elements::OrderedList }
6
+
7
+ describe "when mapping how to find an element" do
8
+ it "should map watir types to same" do
9
+ [:class, :id, :index, :xpath].each do |t|
10
+ identifier = ol.watir_identifier_for t => 'value'
11
+ identifier.keys.first.should == t
12
+ end
13
+ end
14
+
15
+ it "should map selenium types to same" do
16
+ [:class, :id, :name, :xpath].each do |t|
17
+ key, value = ol.selenium_identifier_for t => 'value'
18
+ key.should == t
19
+ end
20
+ end
21
+ end
22
+
23
+ describe "interface" do
24
+ let(:ol_element) { double('ol_element') }
25
+
26
+ context "for watir" do
27
+ it "should return a list item when indexed" do
28
+ ol = PageObject::Elements::OrderedList.new(ol_element, :platform => :watir)
29
+ ol_element.stub(:wd).and_return(ol_element)
30
+ ol_element.stub(:find_element)
31
+ ol[1].should be_instance_of PageObject::Elements::ListItem
32
+ end
33
+ end
34
+
35
+ context "for selenium" do
36
+ it "should return a list item when indexed" do
37
+ ol = PageObject::Elements::OrderedList.new(ol_element, :platform => :selenium)
38
+ ol_element.should_receive(:find_element).and_return(ol_element)
39
+ ol[1].should be_instance_of PageObject::Elements::ListItem
40
+ end
41
+ end
42
+ end
43
+ end
@@ -0,0 +1,32 @@
1
+ require 'spec_helper'
2
+ require 'page-object/elements'
3
+
4
+ describe PageObject::Elements::TextArea do
5
+ let(:textarea) { PageObject::Elements::TextArea }
6
+
7
+ describe "when mapping how to find an element" do
8
+ it "should map watir types to same" do
9
+ [:class, :id, :index, :name, :tag_name, :xpath].each do |t|
10
+ identifier = textarea.watir_identifier_for t => 'value'
11
+ identifier.keys.first.should == t
12
+ end
13
+ end
14
+
15
+ it "should map selenium types to watir" do
16
+ identifier = textarea.watir_identifier_for :css => 'value'
17
+ identifier.keys.first.should == :tag_name
18
+ end
19
+
20
+ it "should map selenium types to same" do
21
+ [:class, :css, :id, :name, :xpath].each do |t|
22
+ key, value = textarea.selenium_identifier_for t => 'value'
23
+ key.should == t
24
+ end
25
+ end
26
+
27
+ it "should map watir types to selenium" do
28
+ key, value = textarea.selenium_identifier_for :tag_name => 'value'
29
+ key.should == :css
30
+ end
31
+ end
32
+ end
@@ -6,7 +6,7 @@ describe PageObject::Elements::TextField do
6
6
 
7
7
  describe "when mapping how to find an element" do
8
8
  it "should map watir types to same" do
9
- [:class, :id, :index, :name, :tag_name, :text, :value, :xpath].each do |t|
9
+ [:class, :id, :index, :name, :tag_name, :xpath].each do |t|
10
10
  identifier = textfield.watir_identifier_for t => 'value'
11
11
  identifier.keys.first.should == t
12
12
  end
@@ -0,0 +1,43 @@
1
+ require 'spec_helper'
2
+ require 'page-object/elements'
3
+
4
+ describe PageObject::Elements::UnorderedList do
5
+ let(:ul) { PageObject::Elements::UnorderedList }
6
+
7
+ describe "when mapping how to find an element" do
8
+ it "should map watir types to same" do
9
+ [:class, :id, :index, :xpath].each do |t|
10
+ identifier = ul.watir_identifier_for t => 'value'
11
+ identifier.keys.first.should == t
12
+ end
13
+ end
14
+
15
+ it "should map selenium types to same" do
16
+ [:class, :id, :name, :xpath].each do |t|
17
+ key, value = ul.selenium_identifier_for t => 'value'
18
+ key.should == t
19
+ end
20
+ end
21
+ end
22
+
23
+ describe "interface" do
24
+ let(:ul_element) { double('ul_element') }
25
+
26
+ context "for watir" do
27
+ it "should return a list item when indexed" do
28
+ ul = PageObject::Elements::UnorderedList.new(ul_element, :platform => :watir)
29
+ ul_element.stub(:wd).and_return(ul_element)
30
+ ul_element.stub(:find_element)
31
+ ul[1].should be_instance_of PageObject::Elements::ListItem
32
+ end
33
+ end
34
+
35
+ context "for selenium" do
36
+ it "should return a list item when indexed" do
37
+ ul = PageObject::Elements::UnorderedList.new(ul_element, :platform => :selenium)
38
+ ul_element.should_receive(:find_element).and_return(ul_element)
39
+ ul[1].should be_instance_of PageObject::Elements::ListItem
40
+ end
41
+ end
42
+ end
43
+ end
metadata CHANGED
@@ -2,7 +2,7 @@
2
2
  name: page-object
3
3
  version: !ruby/object:Gem::Version
4
4
  prerelease:
5
- version: 0.0.3
5
+ version: 0.0.4
6
6
  platform: ruby
7
7
  authors:
8
8
  - Jeff Morgan
@@ -10,8 +10,7 @@ autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
12
 
13
- date: 2011-06-02 00:00:00 -04:00
14
- default_executable:
13
+ date: 2011-06-13 00:00:00 Z
15
14
  dependencies:
16
15
  - !ruby/object:Gem::Dependency
17
16
  name: watir-webdriver
@@ -91,11 +90,15 @@ files:
91
90
  - features/check_box.feature
92
91
  - features/div.feature
93
92
  - features/element.feature
93
+ - features/form.feature
94
+ - features/hidden_field.feature
94
95
  - features/html/images/circle.png
95
96
  - features/html/static_elements.html
96
97
  - features/html/success.html
97
98
  - features/image.feature
98
99
  - features/link.feature
100
+ - features/list_item.feature
101
+ - features/ordered_list.feature
99
102
  - features/page_level_actions.feature
100
103
  - features/radio_button.feature
101
104
  - features/select_list.feature
@@ -110,7 +113,9 @@ files:
110
113
  - features/support/url_helper.rb
111
114
  - features/table.feature
112
115
  - features/table_cell.feature
116
+ - features/text_area.feature
113
117
  - features/text_field.feature
118
+ - features/unordered_list.feature
114
119
  - lib/page-object.rb
115
120
  - lib/page-object/accessors.rb
116
121
  - lib/page-object/elements.rb
@@ -118,25 +123,37 @@ files:
118
123
  - lib/page-object/elements/check_box.rb
119
124
  - lib/page-object/elements/div.rb
120
125
  - lib/page-object/elements/element.rb
126
+ - lib/page-object/elements/form.rb
127
+ - lib/page-object/elements/hidden_field.rb
121
128
  - lib/page-object/elements/image.rb
122
129
  - lib/page-object/elements/link.rb
130
+ - lib/page-object/elements/list_item.rb
131
+ - lib/page-object/elements/ordered_list.rb
123
132
  - lib/page-object/elements/radio_button.rb
124
133
  - lib/page-object/elements/select_list.rb
125
134
  - lib/page-object/elements/span.rb
126
135
  - lib/page-object/elements/table.rb
127
136
  - lib/page-object/elements/table_cell.rb
128
137
  - lib/page-object/elements/table_row.rb
138
+ - lib/page-object/elements/text_area.rb
129
139
  - lib/page-object/elements/text_field.rb
140
+ - lib/page-object/elements/unordered_list.rb
130
141
  - lib/page-object/platforms/selenium_button.rb
131
142
  - lib/page-object/platforms/selenium_element.rb
143
+ - lib/page-object/platforms/selenium_form.rb
132
144
  - lib/page-object/platforms/selenium_image.rb
133
145
  - lib/page-object/platforms/selenium_link.rb
146
+ - lib/page-object/platforms/selenium_ordered_list.rb
134
147
  - lib/page-object/platforms/selenium_table.rb
135
148
  - lib/page-object/platforms/selenium_table_row.rb
149
+ - lib/page-object/platforms/selenium_unordered_list.rb
136
150
  - lib/page-object/platforms/watir_element.rb
151
+ - lib/page-object/platforms/watir_form.rb
137
152
  - lib/page-object/platforms/watir_image.rb
153
+ - lib/page-object/platforms/watir_ordered_list.rb
138
154
  - lib/page-object/platforms/watir_table.rb
139
155
  - lib/page-object/platforms/watir_table_row.rb
156
+ - lib/page-object/platforms/watir_unordered_list.rb
140
157
  - lib/page-object/selenium_page_object.rb
141
158
  - lib/page-object/version.rb
142
159
  - lib/page-object/watir_page_object.rb
@@ -146,17 +163,22 @@ files:
146
163
  - spec/page-object/elements/check_box_spec.rb
147
164
  - spec/page-object/elements/div_spec.rb
148
165
  - spec/page-object/elements/element_spec.rb
166
+ - spec/page-object/elements/form_spec.rb
167
+ - spec/page-object/elements/hidden_field_spec.rb
149
168
  - spec/page-object/elements/image_spec.rb
150
169
  - spec/page-object/elements/link_spec.rb
170
+ - spec/page-object/elements/list_item_spec.rb
171
+ - spec/page-object/elements/ordered_list_spec.rb
151
172
  - spec/page-object/elements/radio_button_spec.rb
152
173
  - spec/page-object/elements/select_list_spec.rb
153
174
  - spec/page-object/elements/span_spec.rb
154
175
  - spec/page-object/elements/table_row_spec.rb
155
176
  - spec/page-object/elements/table_spec.rb
177
+ - spec/page-object/elements/text_area_spec.rb
156
178
  - spec/page-object/elements/text_field_spec.rb
179
+ - spec/page-object/elements/unordered_list_spec.rb
157
180
  - spec/page-object/page-object_spec.rb
158
181
  - spec/spec_helper.rb
159
- has_rdoc: true
160
182
  homepage: http://github.com/cheezy/page-object
161
183
  licenses: []
162
184
 
@@ -180,7 +202,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
180
202
  requirements: []
181
203
 
182
204
  rubyforge_project: page-object
183
- rubygems_version: 1.6.2
205
+ rubygems_version: 1.8.5
184
206
  signing_key:
185
207
  specification_version: 3
186
208
  summary: Page Object DSL for browser testing
@@ -189,11 +211,15 @@ test_files:
189
211
  - features/check_box.feature
190
212
  - features/div.feature
191
213
  - features/element.feature
214
+ - features/form.feature
215
+ - features/hidden_field.feature
192
216
  - features/html/images/circle.png
193
217
  - features/html/static_elements.html
194
218
  - features/html/success.html
195
219
  - features/image.feature
196
220
  - features/link.feature
221
+ - features/list_item.feature
222
+ - features/ordered_list.feature
197
223
  - features/page_level_actions.feature
198
224
  - features/radio_button.feature
199
225
  - features/select_list.feature
@@ -208,19 +234,27 @@ test_files:
208
234
  - features/support/url_helper.rb
209
235
  - features/table.feature
210
236
  - features/table_cell.feature
237
+ - features/text_area.feature
211
238
  - features/text_field.feature
239
+ - features/unordered_list.feature
212
240
  - spec/page-object/accessors_spec.rb
213
241
  - spec/page-object/elements/button_spec.rb
214
242
  - spec/page-object/elements/check_box_spec.rb
215
243
  - spec/page-object/elements/div_spec.rb
216
244
  - spec/page-object/elements/element_spec.rb
245
+ - spec/page-object/elements/form_spec.rb
246
+ - spec/page-object/elements/hidden_field_spec.rb
217
247
  - spec/page-object/elements/image_spec.rb
218
248
  - spec/page-object/elements/link_spec.rb
249
+ - spec/page-object/elements/list_item_spec.rb
250
+ - spec/page-object/elements/ordered_list_spec.rb
219
251
  - spec/page-object/elements/radio_button_spec.rb
220
252
  - spec/page-object/elements/select_list_spec.rb
221
253
  - spec/page-object/elements/span_spec.rb
222
254
  - spec/page-object/elements/table_row_spec.rb
223
255
  - spec/page-object/elements/table_spec.rb
256
+ - spec/page-object/elements/text_area_spec.rb
224
257
  - spec/page-object/elements/text_field_spec.rb
258
+ - spec/page-object/elements/unordered_list_spec.rb
225
259
  - spec/page-object/page-object_spec.rb
226
260
  - spec/spec_helper.rb