page-object 0.0.3 → 0.0.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.
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