page-object 0.2 → 0.2.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (134) hide show
  1. data/.gitignore +1 -0
  2. data/.rvmrc +1 -1
  3. data/ChangeLog +12 -6
  4. data/README.md +1 -1
  5. data/Rakefile +3 -19
  6. data/features/async.feature +8 -8
  7. data/features/button.feature +7 -7
  8. data/features/check_box.feature +8 -8
  9. data/features/div.feature +7 -6
  10. data/features/element_attributes.feature +14 -14
  11. data/features/form.feature +5 -5
  12. data/features/frames.feature +12 -0
  13. data/features/hidden_field.feature +5 -5
  14. data/features/html/frame_1.html +18 -0
  15. data/features/html/frame_2.html +16 -0
  16. data/features/html/frames.html +11 -0
  17. data/features/html/iframes.html +12 -0
  18. data/features/html/static_elements.html +50 -42
  19. data/features/html/success.html +5 -5
  20. data/features/image.feature +11 -11
  21. data/features/link.feature +1 -1
  22. data/features/list_item.feature +5 -5
  23. data/features/ordered_list.feature +6 -6
  24. data/features/page_level_actions.feature +16 -5
  25. data/features/radio_button.feature +12 -12
  26. data/features/select_list.feature +12 -12
  27. data/features/span.feature +5 -5
  28. data/features/step_definitions/accessor_steps.rb +2 -2
  29. data/features/step_definitions/async_steps.rb +1 -1
  30. data/features/step_definitions/element_steps.rb +1 -1
  31. data/features/step_definitions/frames_steps.rb +21 -0
  32. data/features/step_definitions/page_level_actions_steps.rb +24 -2
  33. data/features/step_definitions/page_traversal_steps.rb +0 -1
  34. data/features/support/env.rb +20 -6
  35. data/features/support/page.rb +14 -11
  36. data/features/support/url_helper.rb +4 -0
  37. data/features/table.feature +9 -9
  38. data/features/table_cell.feature +6 -6
  39. data/features/text_area.feature +6 -6
  40. data/features/text_field.feature +7 -7
  41. data/features/unordered_list.feature +6 -6
  42. data/lib/page-object.rb +40 -16
  43. data/lib/page-object/accessors.rb +15 -15
  44. data/lib/page-object/elements.rb +0 -1
  45. data/lib/page-object/elements/button.rb +24 -24
  46. data/lib/page-object/elements/div.rb +8 -3
  47. data/lib/page-object/elements/element.rb +27 -28
  48. data/lib/page-object/elements/form.rb +7 -7
  49. data/lib/page-object/elements/hidden_field.rb +5 -5
  50. data/lib/page-object/elements/image.rb +8 -8
  51. data/lib/page-object/elements/link.rb +9 -9
  52. data/lib/page-object/elements/list_item.rb +1 -1
  53. data/lib/page-object/elements/option.rb +1 -1
  54. data/lib/page-object/elements/ordered_list.rb +13 -13
  55. data/lib/page-object/elements/select_list.rb +6 -6
  56. data/lib/page-object/elements/span.rb +2 -2
  57. data/lib/page-object/elements/table.rb +11 -11
  58. data/lib/page-object/elements/table_row.rb +9 -9
  59. data/lib/page-object/elements/text_area.rb +4 -4
  60. data/lib/page-object/elements/text_field.rb +4 -4
  61. data/lib/page-object/elements/unordered_list.rb +13 -13
  62. data/lib/page-object/loads_platform.rb +24 -0
  63. data/lib/page-object/page_factory.rb +3 -3
  64. data/lib/page-object/platforms.rb +18 -0
  65. data/lib/page-object/platforms/selenium.rb +16 -0
  66. data/lib/page-object/platforms/selenium/button.rb +15 -0
  67. data/lib/page-object/platforms/selenium/element.rb +168 -0
  68. data/lib/page-object/platforms/selenium/form.rb +16 -0
  69. data/lib/page-object/platforms/selenium/image.rb +28 -0
  70. data/lib/page-object/platforms/selenium/link.rb +16 -0
  71. data/lib/page-object/platforms/selenium/ordered_list.rb +33 -0
  72. data/lib/page-object/platforms/selenium/page_object.rb +524 -0
  73. data/lib/page-object/platforms/selenium/select_list.rb +32 -0
  74. data/lib/page-object/platforms/selenium/table.rb +40 -0
  75. data/lib/page-object/platforms/selenium/table_row.rb +32 -0
  76. data/lib/page-object/platforms/selenium/unordered_list.rb +33 -0
  77. data/lib/page-object/platforms/watir.rb +16 -0
  78. data/lib/page-object/platforms/watir/element.rb +154 -0
  79. data/lib/page-object/platforms/watir/form.rb +16 -0
  80. data/lib/page-object/platforms/watir/image.rb +22 -0
  81. data/lib/page-object/platforms/watir/ordered_list.rb +32 -0
  82. data/lib/page-object/{watir_page_object.rb → platforms/watir/page_object.rb} +62 -35
  83. data/lib/page-object/platforms/watir/select_list.rb +33 -0
  84. data/lib/page-object/platforms/watir/table.rb +27 -0
  85. data/lib/page-object/platforms/watir/table_row.rb +24 -0
  86. data/lib/page-object/platforms/watir/unordered_list.rb +33 -0
  87. data/lib/page-object/version.rb +1 -1
  88. data/page-object.gemspec +13 -13
  89. data/spec/page-object/accessors_spec.rb +142 -108
  90. data/spec/page-object/elements/button_spec.rb +33 -33
  91. data/spec/page-object/elements/check_box_spec.rb +1 -1
  92. data/spec/page-object/elements/div_spec.rb +3 -3
  93. data/spec/page-object/elements/element_spec.rb +51 -41
  94. data/spec/page-object/elements/form_spec.rb +3 -3
  95. data/spec/page-object/elements/hidden_field_spec.rb +3 -3
  96. data/spec/page-object/elements/image_spec.rb +7 -7
  97. data/spec/page-object/elements/link_spec.rb +8 -8
  98. data/spec/page-object/elements/list_item_spec.rb +1 -1
  99. data/spec/page-object/elements/ordered_list_spec.rb +9 -9
  100. data/spec/page-object/elements/radio_button_spec.rb +1 -1
  101. data/spec/page-object/elements/select_list_spec.rb +2 -2
  102. data/spec/page-object/elements/span_spec.rb +1 -1
  103. data/spec/page-object/elements/table_row_spec.rb +6 -6
  104. data/spec/page-object/elements/table_spec.rb +9 -9
  105. data/spec/page-object/elements/text_area_spec.rb +3 -3
  106. data/spec/page-object/elements/text_field_spec.rb +3 -3
  107. data/spec/page-object/elements/unordered_list_spec.rb +10 -10
  108. data/spec/page-object/loads_platform_spec.rb +38 -0
  109. data/spec/page-object/page-object_spec.rb +70 -10
  110. data/spec/page-object/page_factory_spec.rb +3 -3
  111. data/spec/page-object/{selenium_page_object_spec.rb → platforms/selenium/selenium_page_object_spec.rb} +10 -3
  112. data/spec/page-object/platforms/selenium_spec.rb +26 -0
  113. data/spec/page-object/platforms/watir_spec.rb +27 -0
  114. data/spec/spec_helper.rb +18 -5
  115. metadata +48 -26
  116. data/lib/page-object/platforms/selenium_button.rb +0 -13
  117. data/lib/page-object/platforms/selenium_element.rb +0 -142
  118. data/lib/page-object/platforms/selenium_form.rb +0 -14
  119. data/lib/page-object/platforms/selenium_image.rb +0 -26
  120. data/lib/page-object/platforms/selenium_link.rb +0 -13
  121. data/lib/page-object/platforms/selenium_ordered_list.rb +0 -31
  122. data/lib/page-object/platforms/selenium_select_list.rb +0 -29
  123. data/lib/page-object/platforms/selenium_table.rb +0 -38
  124. data/lib/page-object/platforms/selenium_table_row.rb +0 -29
  125. data/lib/page-object/platforms/selenium_unordered_list.rb +0 -31
  126. data/lib/page-object/platforms/watir_element.rb +0 -136
  127. data/lib/page-object/platforms/watir_form.rb +0 -14
  128. data/lib/page-object/platforms/watir_image.rb +0 -20
  129. data/lib/page-object/platforms/watir_ordered_list.rb +0 -30
  130. data/lib/page-object/platforms/watir_select_list.rb +0 -30
  131. data/lib/page-object/platforms/watir_table.rb +0 -24
  132. data/lib/page-object/platforms/watir_table_row.rb +0 -22
  133. data/lib/page-object/platforms/watir_unordered_list.rb +0 -31
  134. data/lib/page-object/selenium_page_object.rb +0 -486
@@ -1,34 +1,34 @@
1
- require 'spec_helper'
2
- require 'page-object/elements'
3
-
4
- describe PageObject::Elements::Button do
5
- let(:button) { PageObject::Elements::Button }
6
-
7
- context "when mapping how to find an element" do
8
- it "should map watir types to same" do
9
- [:class, :id, :index, :name, :xpath].each do |t|
10
- identifier = button.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, :index, :name, :xpath].each do |t|
17
- key, value = button.selenium_identifier_for t => 'value'
18
- key.should == t
19
- end
20
- end
21
- end
22
-
23
- describe "interface" do
24
- let(:button_element) { double('button_element') }
25
-
26
- context "for selenium" do
27
- it "should return error when asked for its' text" do
28
- button = PageObject::Elements::Button.new(button_element, :platform => :selenium)
29
- lambda {button.text}.should raise_error
30
- end
31
- end
32
- end
33
-
1
+ require 'spec_helper'
2
+ require 'page-object/elements'
3
+
4
+ describe PageObject::Elements::Button do
5
+ let(:button) { PageObject::Elements::Button }
6
+
7
+ context "when mapping how to find an element" do
8
+ it "should map watir types to same" do
9
+ [:class, :id, :index, :name, :xpath].each do |t|
10
+ identifier = button.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, :index, :name, :xpath].each do |t|
17
+ key, value = button.selenium_identifier_for t => 'value'
18
+ key.should == t
19
+ end
20
+ end
21
+ end
22
+
23
+ describe "interface" do
24
+ let(:button_element) { double('button_element') }
25
+
26
+ context "for selenium" do
27
+ it "should return error when asked for its' text" do
28
+ button = PageObject::Elements::Button.new(button_element, :platform => :selenium)
29
+ lambda { button.text }.should raise_error
30
+ end
31
+ end
32
+ end
33
+
34
34
  end
@@ -3,7 +3,7 @@ require 'page-object/elements'
3
3
 
4
4
  describe PageObject::Elements::CheckBox do
5
5
  let(:checkbox) { PageObject::Elements::CheckBox }
6
-
6
+
7
7
  describe "when mapping how to find an element" do
8
8
  it "should map watir types to same" do
9
9
  [:class, :id, :index, :name, :xpath].each do |t|
@@ -3,17 +3,17 @@ require 'page-object/elements'
3
3
 
4
4
  describe PageObject::Elements::Div do
5
5
  let(:div) { PageObject::Elements::Div }
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, :xpath].each do |t|
9
+ [:class, :id, :text, :index, :xpath].each do |t|
10
10
  identifier = div.watir_identifier_for t => 'value'
11
11
  identifier.keys.first.should == t
12
12
  end
13
13
  end
14
14
 
15
15
  it "should map selenium types to same" do
16
- [:class, :id, :index, :name, :xpath].each do |t|
16
+ [:class, :id, :text, :index, :name, :xpath].each do |t|
17
17
  key, value = div.selenium_identifier_for t => 'value'
18
18
  key.should == t
19
19
  end
@@ -7,7 +7,7 @@ describe PageObject::Elements::Element do
7
7
  let(:selenium_driver) { double('selenium') }
8
8
  let(:watir_element) { PageObject::Elements::Element.new(watir_driver, :platform => :watir) }
9
9
  let(:selenium_element) { PageObject::Elements::Element.new(selenium_driver, :platform => :selenium) }
10
- let(:element) {PageObject::Elements::Element}
10
+ let(:element) { PageObject::Elements::Element }
11
11
 
12
12
  context "when building the identifiers for Watir" do
13
13
  it "should build xpath when finding elements by name where not supported" do
@@ -18,16 +18,16 @@ describe PageObject::Elements::Element do
18
18
  end
19
19
  end
20
20
  end
21
-
21
+
22
22
  context "when building the identifiers for Selenium" do
23
23
  def all_basic_elements
24
24
  ['textarea', 'select', 'a', 'div', 'span', 'table', 'td', 'img', 'form', 'li', 'ul', 'ol']
25
25
  end
26
-
26
+
27
27
  def all_input_elements
28
28
  ['text', 'hidden', 'checkbox', 'radio', 'submit']
29
29
  end
30
-
30
+
31
31
  it "should build xpath when index is provided for basic elements" do
32
32
  all_basic_elements.each do |tag|
33
33
  identifier = {:tag_name => tag, :index => 1}
@@ -36,7 +36,7 @@ describe PageObject::Elements::Element do
36
36
  what.should == ".//#{tag}[2]"
37
37
  end
38
38
  end
39
-
39
+
40
40
  it "should should build xpath when index is provided for input elements" do
41
41
  all_input_elements.each do |tag|
42
42
  identifier = {:tag_name => 'input', :type => tag, :index => 1}
@@ -45,7 +45,7 @@ describe PageObject::Elements::Element do
45
45
  what.should == ".//input[@type='#{tag}'][2]"
46
46
  end
47
47
  end
48
-
48
+
49
49
  it "should build xpath when locating basic elements by name and index" do
50
50
  all_basic_elements.each do |tag|
51
51
  identifier = {:tag_name => tag, :name => 'blah', :index => 0}
@@ -54,7 +54,7 @@ describe PageObject::Elements::Element do
54
54
  what.should == ".//#{tag}[@name='blah'][1]"
55
55
  end
56
56
  end
57
-
57
+
58
58
  it "should build xpath when locating input elements by name and index" do
59
59
  all_input_elements.each do |type|
60
60
  identifier = {:tag_name => 'input', :type => "#{type}", :name => 'blah', :index => 0}
@@ -63,14 +63,14 @@ describe PageObject::Elements::Element do
63
63
  what.should == ".//input[@type='#{type}' and @name='blah'][1]"
64
64
  end
65
65
  end
66
-
66
+
67
67
  it "should build xpath when locating basic elements by name and class" do
68
68
  all_basic_elements.each do |tag|
69
69
  identifier = {:tag_name => tag, :name => 'foo', :class => 'bar'}
70
70
  how, what = element.selenium_identifier_for identifier
71
71
  how.should == :xpath
72
72
  what.should == ".//#{tag}[@name='foo' and @class='bar']"
73
- end
73
+ end
74
74
  end
75
75
 
76
76
  it "should build xpath when locating input elements by name and class" do
@@ -78,7 +78,7 @@ describe PageObject::Elements::Element do
78
78
  identifier = {:tag_name => 'input', :type => "#{type}", :name => 'foo', :class => 'bar'}
79
79
  how, what = element.selenium_identifier_for identifier
80
80
  what.should == ".//input[@type='#{type}' and @name='foo' and @class='bar']"
81
- end
81
+ end
82
82
  end
83
83
  end
84
84
 
@@ -87,118 +87,123 @@ describe PageObject::Elements::Element do
87
87
  watir_driver.should_receive(:present?).and_return(true)
88
88
  watir_element.visible?.should == true
89
89
  end
90
-
90
+
91
91
  it "should know when it is not visible" do
92
92
  watir_driver.should_receive(:present?).and_return(false)
93
93
  watir_element.visible?.should == false
94
94
  end
95
-
95
+
96
96
  it "should know when it exists" do
97
97
  watir_driver.should_receive(:exists?).and_return(true)
98
98
  watir_element.exists?.should == true
99
99
  end
100
-
100
+
101
101
  it "should know when it does not exist" do
102
102
  watir_driver.should_receive(:exists?).and_return(false)
103
103
  watir_element.exists?.should == false
104
104
  end
105
-
105
+
106
106
  it "should be able to return the text contained in the element" do
107
107
  watir_driver.should_receive(:text).and_return("my text")
108
108
  watir_element.text.should == "my text"
109
109
  end
110
-
110
+
111
111
  it "should know when it is equal to another" do
112
112
  watir_driver.should_receive(:==).and_return(true)
113
113
  watir_element.should == watir_element
114
114
  end
115
-
115
+
116
116
  it "should return its tag name" do
117
117
  watir_driver.should_receive(:tag_name).and_return("h1")
118
118
  watir_element.tag_name.should == "h1"
119
119
  end
120
-
120
+
121
121
  it "should know its value" do
122
122
  watir_driver.should_receive(:value).and_return("value")
123
123
  watir_element.value.should == "value"
124
124
  end
125
-
125
+
126
126
  it "should know how to retrieve the value of an attribute" do
127
127
  watir_driver.should_receive(:attribute_value).and_return(true)
128
128
  watir_element.attribute("readonly").should be_true
129
129
  end
130
-
130
+
131
131
  it "should be clickable" do
132
132
  watir_driver.should_receive(:click)
133
133
  watir_element.click
134
134
  end
135
-
135
+
136
136
  it "should be able to block until it is present" do
137
137
  watir_driver.should_receive(:wait_until_present).with(10)
138
138
  watir_element.when_present(10)
139
139
  end
140
-
140
+
141
141
  it "should be able to block until it is visible" do
142
142
  Watir::Wait.should_receive(:until).with(10, "Element was not visible in 10 seconds")
143
143
  watir_element.when_visible(10)
144
144
  end
145
-
145
+
146
146
  it "should be able to block until it is not visible" do
147
147
  Watir::Wait.should_receive(:while).with(10, "Element still visible after 10 seconds")
148
148
  watir_element.when_not_visible(10)
149
149
  end
150
-
150
+
151
151
  it "should be able to block until a user define event fires true" do
152
152
  Watir::Wait.should_receive(:until).with(10, "Element blah")
153
153
  watir_element.wait_until(10, "Element blah") {}
154
154
  end
155
+
156
+ it "should send keys to the element" do
157
+ watir_driver.should_receive(:send_keys).with([:control, 'a'])
158
+ watir_element.send_keys([:control, 'a'])
159
+ end
155
160
  end
156
-
161
+
157
162
  context "when using Selenium" do
158
163
  it "should know when it is visible" do
159
164
  selenium_driver.should_receive(:displayed?).and_return(true)
160
165
  selenium_element.visible?.should == true
161
166
  end
162
-
167
+
163
168
  it "should know when it is not visible" do
164
169
  selenium_driver.should_receive(:displayed?).and_return(false)
165
170
  selenium_element.visible?.should == false
166
171
  end
167
-
172
+
168
173
  it "should know when it exists" do
169
- selenium_element.exists?.should == true
174
+ selenium_element.exists?.should == true
170
175
  end
171
-
176
+
172
177
  it "should know when it does not exist" do
173
178
  selenium_element = PageObject::Elements::Element.new(nil, :platform => :selenium)
174
179
  selenium_element.exists?.should == false
175
180
  end
176
-
181
+
177
182
  it "should be able to return the text contained in the element" do
178
183
  selenium_driver.should_receive(:text).and_return("my text")
179
184
  selenium_element.text.should == "my text"
180
185
  end
181
-
186
+
182
187
  it "should know when it is equal to another" do
183
188
  selenium_driver.should_receive(:==).and_return(true)
184
189
  selenium_element.should == selenium_element
185
190
  end
186
-
191
+
187
192
  it "should return its tag name" do
188
193
  selenium_driver.should_receive(:tag_name).and_return("h1")
189
194
  selenium_element.tag_name.should == "h1"
190
195
  end
191
-
196
+
192
197
  it "should know its value" do
193
198
  selenium_driver.should_receive(:attribute).with('value').and_return("value")
194
199
  selenium_element.value.should == "value"
195
200
  end
196
-
201
+
197
202
  it "should know how to retrieve the value of an attribute" do
198
203
  selenium_driver.should_receive(:attribute).and_return(true)
199
204
  selenium_element.attribute('readonly').should be_true
200
205
  end
201
-
206
+
202
207
  it "should be clickable" do
203
208
  selenium_driver.should_receive(:click)
204
209
  selenium_element.click
@@ -206,30 +211,35 @@ describe PageObject::Elements::Element do
206
211
 
207
212
  it "should be able to block until it is present" do
208
213
  wait = double('wait')
209
- Selenium::WebDriver::Wait.should_receive(:new).and_return(wait)
214
+ Object::Selenium::WebDriver::Wait.should_receive(:new).and_return(wait)
210
215
  wait.should_receive(:until)
211
216
  selenium_element.when_present(10)
212
217
  end
213
-
218
+
214
219
  it "should be able to block until it is visible" do
215
220
  wait = double('wait')
216
- Selenium::WebDriver::Wait.should_receive(:new).and_return(wait)
221
+ Object::Selenium::WebDriver::Wait.should_receive(:new).and_return(wait)
217
222
  wait.should_receive(:until)
218
223
  selenium_element.when_visible(10)
219
224
  end
220
-
225
+
221
226
  it "should be able to block until it is not visible" do
222
227
  wait = double('wait')
223
- Selenium::WebDriver::Wait.should_receive(:new).and_return(wait)
228
+ Object::Selenium::WebDriver::Wait.should_receive(:new).and_return(wait)
224
229
  wait.should_receive(:until)
225
230
  selenium_element.when_not_visible(10)
226
231
  end
227
-
232
+
228
233
  it "should be able to block until a user define event fires true" do
229
234
  wait = double('wait')
230
- Selenium::WebDriver::Wait.should_receive(:new).and_return(wait)
235
+ Object::Selenium::WebDriver::Wait.should_receive(:new).and_return(wait)
231
236
  wait.should_receive(:until)
232
237
  selenium_element.wait_until(10, "Element blah") {}
233
238
  end
239
+
240
+ it "should send keys to the element" do
241
+ selenium_driver.should_receive(:send_keys).with([:control, 'a'])
242
+ selenium_element.send_keys([:control, 'a'])
243
+ end
234
244
  end
235
245
  end
@@ -4,7 +4,7 @@ require 'page-object/elements'
4
4
  describe PageObject::Elements::Form do
5
5
  describe "interface" do
6
6
  let(:form_element) { double('form_element') }
7
-
7
+
8
8
  context "for watir" do
9
9
  it "should submit a form" do
10
10
  form = PageObject::Elements::Form.new(form_element, :platform => :watir)
@@ -12,13 +12,13 @@ describe PageObject::Elements::Form do
12
12
  form.submit
13
13
  end
14
14
  end
15
-
15
+
16
16
  context "for selenium" do
17
17
  it "should submit a form" do
18
18
  form = PageObject::Elements::Form.new(form_element, :platform => :selenium)
19
19
  form_element.should_receive(:submit)
20
20
  form.submit
21
- end
21
+ end
22
22
  end
23
23
  end
24
24
  end
@@ -3,7 +3,7 @@ require 'page-object/elements'
3
3
 
4
4
  describe PageObject::Elements::HiddenField do
5
5
  let(:hiddenfield) { PageObject::Elements::HiddenField }
6
-
6
+
7
7
  describe "when mapping how to find an element" do
8
8
  it "should map watir types to same" do
9
9
  [:class, :id, :index, :name, :tag_name, :text, :xpath].each do |t|
@@ -16,14 +16,14 @@ describe PageObject::Elements::HiddenField do
16
16
  identifier = hiddenfield.watir_identifier_for :css => 'value'
17
17
  identifier.keys.first.should == :tag_name
18
18
  end
19
-
19
+
20
20
  it "should map selenium types to same" do
21
21
  [:class, :css, :id, :name, :xpath, :index].each do |t|
22
22
  key, value = hiddenfield.selenium_identifier_for t => 'value'
23
23
  key.should == t
24
24
  end
25
25
  end
26
-
26
+
27
27
  it "should map watir types to selenium" do
28
28
  key, value = hiddenfield.selenium_identifier_for :tag_name => 'value'
29
29
  key.should == :css
@@ -3,7 +3,7 @@ require 'page-object/elements'
3
3
 
4
4
  describe PageObject::Elements::Image do
5
5
  let(:image) { PageObject::Elements::Image }
6
-
6
+
7
7
  describe "when mapping how to find an element" do
8
8
  it "should map watir types to same" do
9
9
  [:class, :id, :index, :name, :xpath].each do |t|
@@ -19,28 +19,28 @@ describe PageObject::Elements::Image do
19
19
  end
20
20
  end
21
21
  end
22
-
22
+
23
23
  describe "interface" do
24
24
  let(:image_element) { double('image_element') }
25
-
25
+
26
26
  before(:each) do
27
27
  image_element.stub(:size).and_return(image_element)
28
28
  end
29
-
29
+
30
30
  context "for watir" do
31
31
  it "should know the images width" do
32
32
  image = PageObject::Elements::Image.new(image_element, :platform => :watir)
33
33
  image_element.should_receive(:width).and_return(100)
34
34
  image.width.should == 100
35
35
  end
36
-
36
+
37
37
  it "should know the images height" do
38
38
  image = PageObject::Elements::Image.new(image_element, :platform => :watir)
39
39
  image_element.should_receive(:height).and_return(120)
40
40
  image.height.should == 120
41
41
  end
42
42
  end
43
-
43
+
44
44
  context "for selenium" do
45
45
  it "should know the images width" do
46
46
  dim = double('dimension')
@@ -49,7 +49,7 @@ describe PageObject::Elements::Image do
49
49
  dim.should_receive(:width).and_return(100)
50
50
  image.width.should == 100
51
51
  end
52
-
52
+
53
53
  it "should know the images height" do
54
54
  dim = double('dimension')
55
55
  image = PageObject::Elements::Image.new(image_element, :platform => :selenium)