celerity 0.0.4 → 0.0.6

Sign up to get free protection for your applications and to get access to all the features.
Files changed (158) hide show
  1. data/History.txt +33 -0
  2. data/README.txt +19 -9
  3. data/Rakefile +9 -3
  4. data/lib/celerity.rb +39 -39
  5. data/lib/celerity/browser.rb +538 -153
  6. data/lib/celerity/clickable_element.rb +48 -7
  7. data/lib/celerity/collections.rb +155 -131
  8. data/lib/celerity/container.rb +766 -385
  9. data/lib/celerity/default_viewer.rb +10 -0
  10. data/lib/celerity/disabled_element.rb +19 -2
  11. data/lib/celerity/element.rb +152 -83
  12. data/lib/celerity/element_collection.rb +106 -0
  13. data/lib/celerity/element_locator.rb +89 -66
  14. data/lib/celerity/elements/button.rb +23 -13
  15. data/lib/celerity/elements/file_field.rb +17 -5
  16. data/lib/celerity/elements/form.rb +21 -16
  17. data/lib/celerity/elements/frame.rb +75 -53
  18. data/lib/celerity/elements/image.rb +76 -63
  19. data/lib/celerity/elements/label.rb +4 -2
  20. data/lib/celerity/elements/link.rb +30 -18
  21. data/lib/celerity/elements/meta.rb +6 -0
  22. data/lib/celerity/{non_control_elements.rb → elements/non_control_elements.rb} +106 -76
  23. data/lib/celerity/elements/option.rb +16 -2
  24. data/lib/celerity/elements/radio_check.rb +55 -20
  25. data/lib/celerity/elements/select_list.rb +65 -29
  26. data/lib/celerity/elements/table.rb +141 -94
  27. data/lib/celerity/elements/table_cell.rb +13 -6
  28. data/lib/celerity/elements/{table_body.rb → table_elements.rb} +20 -8
  29. data/lib/celerity/elements/table_row.rb +23 -7
  30. data/lib/celerity/elements/text_field.rb +89 -33
  31. data/lib/celerity/exception.rb +77 -41
  32. data/lib/celerity/extra/method_generator.rb +42 -24
  33. data/lib/celerity/htmlunit.rb +49 -0
  34. data/lib/celerity/htmlunit/commons-collections-3.2.1.jar +0 -0
  35. data/lib/celerity/htmlunit/htmlunit-2.5-SNAPSHOT.jar +0 -0
  36. data/lib/celerity/htmlunit/htmlunit-core-js-2.5-SNAPSHOT.jar +0 -0
  37. data/lib/celerity/htmlunit/nekohtml-1.9.12-20090308.130127-11.jar +0 -0
  38. data/lib/celerity/htmlunit/serializer-2.7.1.jar +0 -0
  39. data/lib/celerity/htmlunit/xalan-2.7.1.jar +0 -0
  40. data/lib/celerity/htmlunit/xml-apis-1.3.04.jar +0 -0
  41. data/lib/celerity/identifier.rb +3 -2
  42. data/lib/celerity/input_element.rb +5 -5
  43. data/lib/celerity/listener.rb +135 -0
  44. data/lib/celerity/resources/no_viewer.png +0 -0
  45. data/lib/celerity/util.rb +88 -0
  46. data/lib/celerity/version.rb +4 -3
  47. data/lib/celerity/watir_compatibility.rb +35 -25
  48. data/tasks/jar.rake +57 -0
  49. metadata +35 -142
  50. data.tar.gz.sig +0 -0
  51. data/Manifest.txt +0 -150
  52. data/lib/celerity/element_collections.rb +0 -54
  53. data/lib/celerity/element_map.rb +0 -51
  54. data/lib/celerity/elements/table_footer.rb +0 -30
  55. data/lib/celerity/elements/table_header.rb +0 -30
  56. data/lib/celerity/htmlunit/commons-collections-3.2.jar +0 -0
  57. data/lib/celerity/htmlunit/download.sh +0 -23
  58. data/lib/celerity/htmlunit/htmlunit-2.2.jar +0 -0
  59. data/lib/celerity/htmlunit/htmlunit-core-js-2.2.jar +0 -0
  60. data/lib/celerity/htmlunit/nekohtml-1.9.8.jar +0 -0
  61. data/lib/celerity/htmlunit/xalan-2.7.0.jar +0 -0
  62. data/lib/celerity/htmlunit/xml-apis-1.0.b2.jar +0 -0
  63. data/spec/area_spec.rb +0 -97
  64. data/spec/areas_spec.rb +0 -40
  65. data/spec/browser_spec.rb +0 -266
  66. data/spec/button_spec.rb +0 -227
  67. data/spec/buttons_spec.rb +0 -39
  68. data/spec/checkbox_spec.rb +0 -302
  69. data/spec/checkboxes_spec.rb +0 -38
  70. data/spec/div_spec.rb +0 -207
  71. data/spec/divs_spec.rb +0 -39
  72. data/spec/element_spec.rb +0 -79
  73. data/spec/filefield_spec.rb +0 -123
  74. data/spec/filefields_spec.rb +0 -40
  75. data/spec/form_spec.rb +0 -59
  76. data/spec/forms_spec.rb +0 -41
  77. data/spec/frame_spec.rb +0 -121
  78. data/spec/frames_spec.rb +0 -71
  79. data/spec/hidden_spec.rb +0 -127
  80. data/spec/hiddens_spec.rb +0 -39
  81. data/spec/hn_spec.rb +0 -104
  82. data/spec/hns_spec.rb +0 -45
  83. data/spec/html/2000_spans.html +0 -2009
  84. data/spec/html/bug_duplicate_attributes.html +0 -14
  85. data/spec/html/bug_javascript_001.html +0 -11
  86. data/spec/html/form_js_bug.html +0 -11
  87. data/spec/html/forms_with_input_elements.html +0 -114
  88. data/spec/html/frame_1.html +0 -17
  89. data/spec/html/frame_2.html +0 -16
  90. data/spec/html/frames.html +0 -11
  91. data/spec/html/iframes.html +0 -12
  92. data/spec/html/images.html +0 -27
  93. data/spec/html/images/1.gif +0 -0
  94. data/spec/html/images/2.gif +0 -0
  95. data/spec/html/images/3.gif +0 -0
  96. data/spec/html/images/button.jpg +0 -0
  97. data/spec/html/images/circle.jpg +0 -0
  98. data/spec/html/images/map.gif +0 -0
  99. data/spec/html/images/map2.gif +0 -0
  100. data/spec/html/images/minus.gif +0 -0
  101. data/spec/html/images/originaltriangle.jpg +0 -0
  102. data/spec/html/images/plus.gif +0 -0
  103. data/spec/html/images/square.jpg +0 -0
  104. data/spec/html/images/triangle.jpg +0 -0
  105. data/spec/html/invalid_js.html +0 -11
  106. data/spec/html/latin1_text.html +0 -17
  107. data/spec/html/non_control_elements.html +0 -115
  108. data/spec/html/simple_ajax.html +0 -22
  109. data/spec/html/tables.html +0 -119
  110. data/spec/html/utf8_text.html +0 -15
  111. data/spec/htmlunit_spec.rb +0 -26
  112. data/spec/image_spec.rb +0 -220
  113. data/spec/images_spec.rb +0 -39
  114. data/spec/label_spec.rb +0 -79
  115. data/spec/labels_spec.rb +0 -40
  116. data/spec/li_spec.rb +0 -139
  117. data/spec/link_spec.rb +0 -189
  118. data/spec/links_spec.rb +0 -43
  119. data/spec/lis_spec.rb +0 -40
  120. data/spec/map_spec.rb +0 -102
  121. data/spec/maps_spec.rb +0 -40
  122. data/spec/meta_spec.rb +0 -8
  123. data/spec/ol_spec.rb +0 -87
  124. data/spec/ols_spec.rb +0 -40
  125. data/spec/option_spec.rb +0 -154
  126. data/spec/p_spec.rb +0 -171
  127. data/spec/pre_spec.rb +0 -135
  128. data/spec/pres_spec.rb +0 -40
  129. data/spec/ps_spec.rb +0 -40
  130. data/spec/radio_spec.rb +0 -299
  131. data/spec/radios_spec.rb +0 -42
  132. data/spec/select_list_spec.rb +0 -299
  133. data/spec/select_lists_spec.rb +0 -47
  134. data/spec/span_spec.rb +0 -184
  135. data/spec/spans_spec.rb +0 -64
  136. data/spec/spec.opts +0 -1
  137. data/spec/spec_helper.rb +0 -55
  138. data/spec/table_bodies_spec.rb +0 -57
  139. data/spec/table_body_spec.rb +0 -111
  140. data/spec/table_cell_spec.rb +0 -74
  141. data/spec/table_cells_spec.rb +0 -59
  142. data/spec/table_footer_spec.rb +0 -101
  143. data/spec/table_footers_spec.rb +0 -55
  144. data/spec/table_header_spec.rb +0 -101
  145. data/spec/table_headers_spec.rb +0 -55
  146. data/spec/table_row_spec.rb +0 -104
  147. data/spec/table_rows_spec.rb +0 -58
  148. data/spec/table_spec.rb +0 -160
  149. data/spec/tables_spec.rb +0 -42
  150. data/spec/text_field_spec.rb +0 -323
  151. data/spec/text_fields_spec.rb +0 -44
  152. data/spec/ul_spec.rb +0 -88
  153. data/spec/uls_spec.rb +0 -40
  154. data/spec/watir_compatibility_spec.rb +0 -260
  155. data/support/spec_server.rb +0 -73
  156. data/tasks/rspec.rake +0 -30
  157. data/tasks/specserver.rake +0 -21
  158. metadata.gz.sig +0 -0
data/spec/radios_spec.rb DELETED
@@ -1,42 +0,0 @@
1
- require File.dirname(__FILE__) + '/spec_helper.rb'
2
-
3
- describe "Radios" do
4
-
5
- before :all do
6
- @browser = Browser.new
7
- end
8
-
9
- before :each do
10
- @browser.goto(TEST_HOST + "/forms_with_input_elements.html")
11
- end
12
-
13
- describe "#length" do
14
- it "should return the number of radios" do
15
- @browser.radios.length.should == 5
16
- end
17
- end
18
-
19
- describe "#[]" do
20
- it "should return the radio button at the given index" do
21
- @browser.radios[1].id.should == "new_user_newsletter_yes"
22
- end
23
- end
24
-
25
- describe "#each" do
26
- it "should iterate through radio buttons correctly" do
27
- index = 1
28
- @browser.radios.each do |r|
29
- r.name.should == @browser.radio(:index, index).name
30
- r.id.should == @browser.radio(:index, index).id
31
- r.value.should == @browser.radio(:index, index).value
32
- index += 1
33
- end
34
- @browser.radios.length.should == index - 1
35
- end
36
- end
37
-
38
- after :all do
39
- @browser.close
40
- end
41
-
42
- end
@@ -1,299 +0,0 @@
1
- require File.dirname(__FILE__) + '/spec_helper.rb'
2
-
3
- describe "SelectList" do
4
-
5
- before :all do
6
- @browser = Browser.new
7
- end
8
-
9
- before :each do
10
- @browser.goto(TEST_HOST + "/forms_with_input_elements.html")
11
- end
12
-
13
- # Exists method
14
- describe "#exists?" do
15
- it "should return true if the select list exists" do
16
- @browser.select_list(:id, 'new_user_country').should exist
17
- @browser.select_list(:id, /new_user_country/).should exist
18
- @browser.select_list(:name, 'new_user_country').should exist
19
- @browser.select_list(:name, /new_user_country/).should exist
20
- # TODO: check behaviour in Watir
21
- # @browser.select_list(:value, 'Norway').should exist
22
- # @browser.select_list(:value, /Norway/).should exist
23
- @browser.select_list(:text, 'Norway').should exist
24
- @browser.select_list(:text, /Norway/).should exist
25
- @browser.select_list(:class, 'country').should exist
26
- @browser.select_list(:class, /country/).should exist
27
- @browser.select_list(:index, 1).should exist
28
- @browser.select_list(:xpath, "//select[@id='new_user_country']").should exist
29
- end
30
-
31
- it "should return true if the element exists (default how = :name)" do
32
- @browser.select_list("new_user_country").should exist
33
- end
34
-
35
- it "should return false if the select list doesn't exist" do
36
- @browser.select_list(:id, 'no_such_id').should_not exist
37
- @browser.select_list(:id, /no_such_id/).should_not exist
38
- @browser.select_list(:name, 'no_such_name').should_not exist
39
- @browser.select_list(:name, /no_such_name/).should_not exist
40
- @browser.select_list(:value, 'no_such_value').should_not exist
41
- @browser.select_list(:value, /no_such_value/).should_not exist
42
- @browser.select_list(:text, 'no_such_text').should_not exist
43
- @browser.select_list(:text, /no_such_text/).should_not exist
44
- @browser.select_list(:class, 'no_such_class').should_not exist
45
- @browser.select_list(:class, /no_such_class/).should_not exist
46
- @browser.select_list(:index, 1337).should_not exist
47
- @browser.select_list(:xpath, "//select[@id='no_such_id']").should_not exist
48
- end
49
-
50
- it "should raise ArgumentError when 'what' argument is invalid" do
51
- lambda { @browser.select_list(:id, 3.14).exists? }.should raise_error(ArgumentError)
52
- end
53
-
54
- it "should raise MissingWayOfFindingObjectException when 'how' argument is invalid" do
55
- lambda { @browser.select_list(:no_such_how, 'some_value').exists? }.should raise_error(MissingWayOfFindingObjectException)
56
- end
57
- end
58
-
59
-
60
- # Attribute methods
61
- describe "#class_name" do
62
- it "should return the class name of the select list" do
63
- @browser.select_list(:name, 'new_user_country').class_name.should == 'country'
64
- end
65
-
66
- it "should raise UnknownObjectException if the select list doesn't exist" do
67
- lambda { @browser.select_list(:name, 'no_such_name').class_name }.should raise_error(UnknownObjectException)
68
- end
69
- end
70
-
71
- describe "#id" do
72
- it "should return the id of the element" do
73
- @browser.select_list(:index, 1).id.should == "new_user_country"
74
- end
75
-
76
- it "should raise UnknownObjectException if the select list doesn't exist" do
77
- lambda { @browser.select_list(:index, 1337).id }.should raise_error(UnknownObjectException)
78
- end
79
- end
80
-
81
- describe "#name" do
82
- it "should return the name of the element" do
83
- @browser.select_list(:index, 1).name.should == "new_user_country"
84
- end
85
-
86
- it "should raise UnknownObjectException if the select list doesn't exist" do
87
- lambda { @browser.select_list(:index, 1337).name }.should raise_error(UnknownObjectException)
88
- end
89
- end
90
-
91
- describe "#type" do
92
- it "should return the type of the element" do
93
- @browser.select_list(:index, 1).type.should == "select-one"
94
- @browser.select_list(:index, 2).type.should == "select-multiple"
95
- end
96
-
97
- it "should raise UnknownObjectException if the select list doesn't exist" do
98
- lambda { @browser.select_list(:index, 1337).type }.should raise_error(UnknownObjectException)
99
- end
100
- end
101
-
102
- describe "#value" do
103
- it "should return the value of the selected option" do
104
- @browser.select_list(:index, 1).value.should == "2"
105
- @browser.select_list(:index, 1).select(/Sweden/)
106
- @browser.select_list(:index, 1).value.should == "3"
107
- end
108
-
109
- it "should raise UnknownObjectException if the select list doesn't exist" do
110
- lambda { @browser.select_list(:index, 1337).value }.should raise_error(UnknownObjectException)
111
- end
112
- end
113
-
114
- describe "#respond_to?" do
115
- it "should return true for all attribute methods" do
116
- @browser.select_list(:index, 1).should respond_to(:class_name)
117
- @browser.select_list(:index, 1).should respond_to(:id)
118
- @browser.select_list(:index, 1).should respond_to(:name)
119
- @browser.select_list(:index, 1).should respond_to(:type)
120
- @browser.select_list(:index, 1).should respond_to(:value)
121
- end
122
- end
123
-
124
-
125
- # Access methods
126
- describe "#enabled?" do
127
- it "should return true if the select list is enabled" do
128
- @browser.select_list(:name, 'new_user_country').should be_enabled
129
- end
130
-
131
- it "should return false if the select list is disabled" do
132
- @browser.select_list(:name, 'new_user_role').should_not be_enabled
133
- end
134
-
135
- it "should raise UnknownObjectException if the select_list doesn't exist" do
136
- lambda { @browser.select_list(:name, 'no_such_name').enabled? }.should raise_error(UnknownObjectException)
137
- end
138
- end
139
-
140
- describe "#disabled?" do
141
- it "should return true if the select list is disabled" do
142
- @browser.select_list(:index, 3).should be_disabled
143
- end
144
-
145
- it "should return false if the select list is enabled" do
146
- @browser.select_list(:index, 1).should_not be_disabled
147
- end
148
-
149
- it "should should raise UnknownObjectException when the select list does not exist" do
150
- lambda { @browser.select_list(:index, 1337).disabled? }.should raise_error(UnknownObjectException)
151
- end
152
- end
153
-
154
- # Other
155
- describe "#option" do
156
- it "should return an instance of Option" do
157
- option = @browser.select_list(:name, "new_user_country").option(:text, "Denmark")
158
- option.should be_instance_of(Option)
159
- option.value.should == "1"
160
- end
161
- end
162
-
163
- describe "#get_all_contents" do
164
- it "should should raise UnknownObjectException if the select list doesn't exist" do
165
- lambda { @browser.select_list(:name, 'no_such_name').get_all_contents }.should raise_error(UnknownObjectException)
166
- end
167
-
168
- it "should return all the options as an Array" do
169
- @browser.select_list(:name, "new_user_country").get_all_contents.should == ["Denmark" ,"Norway" , "Sweden" , "United Kingdom", "USA"]
170
- end
171
- end
172
-
173
- describe "#get_selected_items" do
174
- it "should should raise UnknownObjectException if the select list doesn't exist" do
175
- lambda { @browser.select_list(:name, 'no_such_name').get_selected_items }.should raise_error(UnknownObjectException)
176
- end
177
-
178
- it "should get the currently selected item(s)" do
179
- @browser.select_list(:name, "new_user_country").get_selected_items.should == ["Norway"]
180
- @browser.select_list(:name, "new_user_languages").get_selected_items.should == ["English", "Norwegian"]
181
- end
182
- end
183
-
184
- describe "#clear_selection" do
185
- it "should clear the selection when possible" do
186
- @browser.select_list(:name, "new_user_languages").clear_selection
187
- @browser.select_list(:name, "new_user_languages").get_selected_items.should be_empty
188
- end
189
-
190
- it "should not clear selections when not possible" do
191
- @browser.select_list(:name , "new_user_country").clear_selection
192
- @browser.select_list(:name, "new_user_country").get_selected_items.should == ["Norway"]
193
- end
194
-
195
- it "should should raise UnknownObjectException if the select list doesn't exist" do
196
- lambda { @browser.select_list(:name, 'no_such_name').clear_selection }.should raise_error(UnknownObjectException)
197
- end
198
- end
199
-
200
- describe "#includes?" do
201
- it "should return true if the given option exists" do
202
- @browser.select_list(:name, 'new_user_country').includes?('Denmark').should be_true
203
- end
204
-
205
- it "should return false if the given option doesn't exist" do
206
- @browser.select_list(:name, 'new_user_country').includes?('Ireland').should be_false
207
- end
208
- end
209
-
210
- describe "#selected?" do
211
- it "should return true if the given option is selected" do
212
- @browser.select_list(:name, 'new_user_country').select('Denmark')
213
- @browser.select_list(:name, 'new_user_country').selected?('Denmark').should be_true
214
- end
215
-
216
- it "should return false if the given option is not selected" do
217
- @browser.select_list(:name, 'new_user_country').selected?('Sweden').should be_false
218
- end
219
-
220
- it "should raise UnknonwObjectException if the option doesn't exist" do
221
- lambda { @browser.select_list(:name, 'new_user_country').selected?('missing_option') }.should raise_error(UnknownObjectException)
222
- end
223
- end
224
-
225
- describe "#select" do
226
- it "should select the given item when given a String" do
227
- @browser.select_list(:name, "new_user_country").select("Denmark")
228
- @browser.select_list(:name, "new_user_country").get_selected_items.should == ["Denmark"]
229
- end
230
-
231
- it "should select the given item when given a Regexp" do
232
- @browser.select_list(:name, "new_user_country").select(/Denmark/)
233
- @browser.select_list(:name, "new_user_country").get_selected_items.should == ["Denmark"]
234
- end
235
-
236
- it "should select the given item when given an Xpath" do
237
- @browser.select_list(:xpath, "//select[@name='new_user_country']").select("Denmark")
238
- @browser.select_list(:xpath, "//select[@name='new_user_country']").get_selected_items.should == ["Denmark"]
239
- end
240
-
241
- it "should be able to select multiple items using :name and a String" do
242
- @browser.select_list(:name, "new_user_languages").clear_selection
243
- @browser.select_list(:name, "new_user_languages").select("Danish")
244
- @browser.select_list(:name, "new_user_languages").select("Swedish")
245
- @browser.select_list(:name, "new_user_languages").get_selected_items.should == ["Danish", "Swedish"]
246
- end
247
-
248
- it "should be able to select multiple items using :name and a Regexp" do
249
- @browser.select_list(:name, "new_user_languages").clear_selection
250
- @browser.select_list(:name, "new_user_languages").select(/ish/)
251
- @browser.select_list(:name, "new_user_languages").get_selected_items.should == ["Danish", "English", "Swedish"]
252
- end
253
-
254
- it "should be able to select multiple items using :xpath" do
255
- @browser.select_list(:xpath, "//select[@name='new_user_languages']").clear_selection
256
- @browser.select_list(:xpath, "//select[@name='new_user_languages']").select(/ish/)
257
- @browser.select_list(:xpath, "//select[@name='new_user_languages']").get_selected_items.should == ["Danish", "English", "Swedish"]
258
- end
259
-
260
- it "should fire onchange event when selecting an item" do
261
- @browser.div(:id, "changed_language").text.should be_empty
262
- @browser.select_list(:id, "new_user_languages").select("Danish")
263
- @browser.div(:id, "changed_language").text.should == "changed language"
264
- @browser.refresh # to reset js
265
- end
266
-
267
- it "should not fire onchange event when selecting an already selected item" do
268
- @browser.select_list(:id, "new_user_languages").clear_selection # removes the two pre-selected options
269
- @browser.div(:id, "changed_language").text.should == "changed languagechanged language"
270
- @browser.select_list(:id, "new_user_languages").select("English")
271
- @browser.div(:id, "changed_language").text.should == "changed languagechanged languagechanged language"
272
- @browser.select_list(:id, "new_user_languages").select("English")
273
- @browser.div(:id, "changed_language").text.should == "changed languagechanged languagechanged language"
274
- end
275
-
276
- it "should raise NoValueFoundException if the option doesn't exist" do
277
- lambda { @browser.select_list(:name, "new_user_country").select("missing_option") }.should raise_error(NoValueFoundException)
278
- lambda { @browser.select_list(:name, "new_user_country").select(/missing_option/) }.should raise_error(NoValueFoundException)
279
- end
280
- end
281
-
282
- describe "#select_value" do
283
- it "should select the given item" do
284
- @browser.select_list(:name, "new_user_languages").clear_selection
285
- @browser.select_list(:name, "new_user_languages").select("Swedish")
286
- @browser.select_list(:name, "new_user_languages").get_selected_items.should == ["Swedish"]
287
- end
288
-
289
- it "should raise NoValueFoundException if the option doesn't exist" do
290
- lambda { @browser.select_list(:name, "new_user_languages").select_value("no_such_option") }.should raise_error(NoValueFoundException)
291
- lambda { @browser.select_list(:name, "new_user_languages").select_value(/no_such_option/) }.should raise_error(NoValueFoundException)
292
- end
293
- end
294
-
295
- after :all do
296
- @browser.close
297
- end
298
-
299
- end
@@ -1,47 +0,0 @@
1
- require File.dirname(__FILE__) + '/spec_helper.rb'
2
-
3
- describe "SelectLists" do
4
-
5
- before :all do
6
- @browser = Browser.new
7
- end
8
-
9
- before :each do
10
- @browser.goto(TEST_HOST + "/forms_with_input_elements.html")
11
- end
12
-
13
- describe "#length" do
14
- it "should return the correct number of select lists on the page" do
15
- @browser.select_lists.length.should == 4
16
- end
17
- end
18
-
19
- describe "#[]" do
20
- it "should return the correct item" do
21
- @browser.select_lists[1].value.should == "2"
22
- @browser.select_lists[1].name.should == "new_user_country"
23
- @browser.select_lists[1].type.should == "select-one"
24
- @browser.select_lists[2].type.should == "select-multiple"
25
- end
26
- end
27
-
28
- describe "#each" do
29
- it "should iterate through the select lists correctly" do
30
- index=1
31
- @browser.select_lists.each do |l|
32
- @browser.select_list(:index, index).name.should == l.name
33
- @browser.select_list(:index, index).id.should == l.id
34
- @browser.select_list(:index, index).type.should == l.type
35
- @browser.select_list(:index, index).value.should == l.value
36
- index += 1
37
- end
38
- (index - 1).should == @browser.select_lists.length
39
- end
40
- end
41
-
42
- after :all do
43
- @browser.close
44
- end
45
-
46
- end
47
-
data/spec/span_spec.rb DELETED
@@ -1,184 +0,0 @@
1
- require File.dirname(__FILE__) + '/spec_helper.rb'
2
-
3
- describe "Span" do
4
-
5
- before :all do
6
- @browser = Browser.new
7
- end
8
-
9
- before :each do
10
- @browser.goto(TEST_HOST + "/non_control_elements.html")
11
- end
12
-
13
- # Exists method
14
- describe "#exist?" do
15
- it "should return true if the 'span' exists" do
16
- @browser.span(:id, "lead").should exist
17
- @browser.span(:id, /lead/).should exist
18
- @browser.span(:text, "Dubito, ergo cogito, ergo sum.").should exist
19
- @browser.span(:text, /Dubito, ergo cogito, ergo sum/).should exist
20
- @browser.span(:class, "lead").should exist
21
- @browser.span(:class, /lead/).should exist
22
- @browser.span(:index, 1).should exist
23
- @browser.span(:xpath, "//span[@id='lead']").should exist
24
- end
25
-
26
- it "should return true if the element exists (default how = :id)" do
27
- @browser.span("lead").should exist
28
- end
29
-
30
- it "should return false if the 'p' doesn't exist" do
31
- @browser.span(:id, "no_such_id").should_not exist
32
- @browser.span(:id, /no_such_id/).should_not exist
33
- @browser.span(:text, "no_such_text").should_not exist
34
- @browser.span(:text, /no_such_text/).should_not exist
35
- @browser.span(:class, "no_such_class").should_not exist
36
- @browser.span(:class, /no_such_class/).should_not exist
37
- @browser.span(:index, 1337).should_not exist
38
- @browser.span(:xpath, "//span[@id='no_such_id']").should_not exist
39
- end
40
-
41
- it "should raise ArgumentError when 'what' argument is invalid" do
42
- lambda { @browser.span(:id, 3.14).exists? }.should raise_error(ArgumentError)
43
- end
44
-
45
- it "should raise MissingWayOfFindingObjectException when 'how' argument is invalid" do
46
- lambda { @browser.span(:no_such_how, 'some_value').exists? }.should raise_error(MissingWayOfFindingObjectException)
47
- end
48
- end
49
-
50
- # Attribute methods
51
- describe "#class_name" do
52
- it "should return the class attribute" do
53
- @browser.span(:index, 1).class_name.should == 'lead'
54
- end
55
-
56
- it "should return an empty string if the element exists and the attribute doesn't" do
57
- @browser.span(:index, 3).class_name.should == ''
58
- end
59
-
60
- it "should raise UnknownObjectException if the span doesn't exist" do
61
- lambda { @browser.span(:id, 'no_such_id').class_name }.should raise_error(UnknownObjectException)
62
- end
63
- end
64
-
65
- describe "#id" do
66
- it "should return the id attribute" do
67
- @browser.span(:index, 1).id.should == "lead"
68
- end
69
-
70
- it "should return an empty string if the element exists and the attribute doesn't" do
71
- @browser.span(:index, 3).id.should == ''
72
- end
73
-
74
- it "should raise UnknownObjectException if the span doesn't exist" do
75
- lambda { @browser.span(:id, "no_such_id").id }.should raise_error(UnknownObjectException)
76
- lambda { @browser.span(:index, 1337).id }.should raise_error(UnknownObjectException)
77
- end
78
- end
79
-
80
- describe "#name" do
81
- it "should return the name attribute" do
82
- @browser.span(:index, 2).name.should == "invalid_attribute"
83
- end
84
-
85
- it "should return an empty string if the element exists and the attribute doesn't" do
86
- @browser.span(:index, 3).name.should == ''
87
- end
88
-
89
- it "should raise UnknownObjectException if the span doesn't exist" do
90
- lambda { @browser.span(:id, "no_such_id").name }.should raise_error(UnknownObjectException)
91
- lambda { @browser.span(:index, 1337).name }.should raise_error(UnknownObjectException)
92
- end
93
- end
94
-
95
- describe "#title" do
96
- it "should return the title attribute" do
97
- @browser.span(:index, 1).title.should == 'Lorem ipsum'
98
- end
99
-
100
- it "should return an empty string if the element exists and the attribute doesn't" do
101
- @browser.span(:index, 3).title.should == ''
102
- end
103
-
104
- it "should raise UnknownObjectException if the span doesn't exist" do
105
- lambda { @browser.span(:id, 'no_such_id').title }.should raise_error( UnknownObjectException)
106
- lambda { @browser.span(:xpath, "//span[@id='no_such_id']").title }.should raise_error( UnknownObjectException)
107
- end
108
- end
109
-
110
- describe "#text" do
111
- it "should return the text of the span" do
112
- @browser.span(:index, 2).text.should == 'Sed pretium metus et quam. Nullam odio dolor, vestibulum non, tempor ut, vehicula sed, sapien. Vestibulum placerat ligula at quam. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas.'
113
- end
114
-
115
- it "should return an empty string if the element doesn't contain any text" do
116
- @browser.span(:index, 5).text.should == ''
117
- end
118
-
119
- it "should raise UnknownObjectException if the p doesn't exist" do
120
- lambda { @browser.span(:id, 'no_such_id').text }.should raise_error( UnknownObjectException)
121
- lambda { @browser.span(:xpath , "//span[@id='no_such_id']").text }.should raise_error( UnknownObjectException)
122
- end
123
- end
124
-
125
- describe "#value" do
126
- it "should return the value attribute" do
127
- @browser.span(:index, 2).value.should == "invalid_attribute"
128
- end
129
-
130
- it "should return an empty string if the element exists and the attribute doesn't" do
131
- @browser.span(:index, 3).value.should == ''
132
- end
133
-
134
- it "should raise UnknownObjectException if the span doesn't exist" do
135
- lambda { @browser.span(:id , "no_such_id").value }.should raise_error(UnknownObjectException)
136
- lambda { @browser.span(:index , 1337).value }.should raise_error(UnknownObjectException)
137
- end
138
- end
139
-
140
- describe "#respond_to?" do
141
- it "should return true for all attribute methods" do
142
- @browser.image(:index, 1).should respond_to(:class_name)
143
- @browser.image(:index, 1).should respond_to(:id)
144
- @browser.image(:index, 1).should respond_to(:name)
145
- @browser.image(:index, 1).should respond_to(:title)
146
- @browser.image(:index, 1).should respond_to(:text)
147
- @browser.image(:index, 1).should respond_to(:value)
148
- end
149
- end
150
-
151
-
152
- # Other
153
- describe "#click" do
154
- it "should fire events" do
155
- @browser.span(:name, 'footer').text.should_not include('Javascript')
156
- @browser.span(:name, 'footer').click
157
- @browser.span(:name, 'footer').text.should include('Javascript')
158
- end
159
-
160
- it "should raise UnknownObjectException if the span doesn't exist" do
161
- lambda { @browser.span(:id, "no_such_id").click }.should raise_error(UnknownObjectException)
162
- lambda { @browser.span(:title, "no_such_title").click }.should raise_error(UnknownObjectException)
163
- end
164
- end
165
-
166
- describe "#to_s" do
167
- it "should return a human readable representation of the element" do
168
- @browser.span(:index, 2).to_s.should == "tag: span\n" +
169
- " name: invalid_attribute\n" +
170
- " value: invalid_attribute\n" +
171
- " text: Sed pretium metus et quam. Nullam odio dolor, vestibulum non, tempor ut, vehicula sed, sapien. Vestibulum placerat ligula at quam. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas."
172
- end
173
-
174
- it "should raise UnknownObjectException if the p doesn't exist" do
175
- lambda { @browser.span(:xpath, "//span[@id='no_such_id']").to_s }.should raise_error( UnknownObjectException)
176
- end
177
- end
178
-
179
- after :all do
180
- @browser.close
181
- end
182
-
183
- end
184
-