celerity 0.0.4 → 0.0.6
Sign up to get free protection for your applications and to get access to all the features.
- data/History.txt +33 -0
- data/README.txt +19 -9
- data/Rakefile +9 -3
- data/lib/celerity.rb +39 -39
- data/lib/celerity/browser.rb +538 -153
- data/lib/celerity/clickable_element.rb +48 -7
- data/lib/celerity/collections.rb +155 -131
- data/lib/celerity/container.rb +766 -385
- data/lib/celerity/default_viewer.rb +10 -0
- data/lib/celerity/disabled_element.rb +19 -2
- data/lib/celerity/element.rb +152 -83
- data/lib/celerity/element_collection.rb +106 -0
- data/lib/celerity/element_locator.rb +89 -66
- data/lib/celerity/elements/button.rb +23 -13
- data/lib/celerity/elements/file_field.rb +17 -5
- data/lib/celerity/elements/form.rb +21 -16
- data/lib/celerity/elements/frame.rb +75 -53
- data/lib/celerity/elements/image.rb +76 -63
- data/lib/celerity/elements/label.rb +4 -2
- data/lib/celerity/elements/link.rb +30 -18
- data/lib/celerity/elements/meta.rb +6 -0
- data/lib/celerity/{non_control_elements.rb → elements/non_control_elements.rb} +106 -76
- data/lib/celerity/elements/option.rb +16 -2
- data/lib/celerity/elements/radio_check.rb +55 -20
- data/lib/celerity/elements/select_list.rb +65 -29
- data/lib/celerity/elements/table.rb +141 -94
- data/lib/celerity/elements/table_cell.rb +13 -6
- data/lib/celerity/elements/{table_body.rb → table_elements.rb} +20 -8
- data/lib/celerity/elements/table_row.rb +23 -7
- data/lib/celerity/elements/text_field.rb +89 -33
- data/lib/celerity/exception.rb +77 -41
- data/lib/celerity/extra/method_generator.rb +42 -24
- data/lib/celerity/htmlunit.rb +49 -0
- data/lib/celerity/htmlunit/commons-collections-3.2.1.jar +0 -0
- data/lib/celerity/htmlunit/htmlunit-2.5-SNAPSHOT.jar +0 -0
- data/lib/celerity/htmlunit/htmlunit-core-js-2.5-SNAPSHOT.jar +0 -0
- data/lib/celerity/htmlunit/nekohtml-1.9.12-20090308.130127-11.jar +0 -0
- data/lib/celerity/htmlunit/serializer-2.7.1.jar +0 -0
- data/lib/celerity/htmlunit/xalan-2.7.1.jar +0 -0
- data/lib/celerity/htmlunit/xml-apis-1.3.04.jar +0 -0
- data/lib/celerity/identifier.rb +3 -2
- data/lib/celerity/input_element.rb +5 -5
- data/lib/celerity/listener.rb +135 -0
- data/lib/celerity/resources/no_viewer.png +0 -0
- data/lib/celerity/util.rb +88 -0
- data/lib/celerity/version.rb +4 -3
- data/lib/celerity/watir_compatibility.rb +35 -25
- data/tasks/jar.rake +57 -0
- metadata +35 -142
- data.tar.gz.sig +0 -0
- data/Manifest.txt +0 -150
- data/lib/celerity/element_collections.rb +0 -54
- data/lib/celerity/element_map.rb +0 -51
- data/lib/celerity/elements/table_footer.rb +0 -30
- data/lib/celerity/elements/table_header.rb +0 -30
- data/lib/celerity/htmlunit/commons-collections-3.2.jar +0 -0
- data/lib/celerity/htmlunit/download.sh +0 -23
- data/lib/celerity/htmlunit/htmlunit-2.2.jar +0 -0
- data/lib/celerity/htmlunit/htmlunit-core-js-2.2.jar +0 -0
- data/lib/celerity/htmlunit/nekohtml-1.9.8.jar +0 -0
- data/lib/celerity/htmlunit/xalan-2.7.0.jar +0 -0
- data/lib/celerity/htmlunit/xml-apis-1.0.b2.jar +0 -0
- data/spec/area_spec.rb +0 -97
- data/spec/areas_spec.rb +0 -40
- data/spec/browser_spec.rb +0 -266
- data/spec/button_spec.rb +0 -227
- data/spec/buttons_spec.rb +0 -39
- data/spec/checkbox_spec.rb +0 -302
- data/spec/checkboxes_spec.rb +0 -38
- data/spec/div_spec.rb +0 -207
- data/spec/divs_spec.rb +0 -39
- data/spec/element_spec.rb +0 -79
- data/spec/filefield_spec.rb +0 -123
- data/spec/filefields_spec.rb +0 -40
- data/spec/form_spec.rb +0 -59
- data/spec/forms_spec.rb +0 -41
- data/spec/frame_spec.rb +0 -121
- data/spec/frames_spec.rb +0 -71
- data/spec/hidden_spec.rb +0 -127
- data/spec/hiddens_spec.rb +0 -39
- data/spec/hn_spec.rb +0 -104
- data/spec/hns_spec.rb +0 -45
- data/spec/html/2000_spans.html +0 -2009
- data/spec/html/bug_duplicate_attributes.html +0 -14
- data/spec/html/bug_javascript_001.html +0 -11
- data/spec/html/form_js_bug.html +0 -11
- data/spec/html/forms_with_input_elements.html +0 -114
- data/spec/html/frame_1.html +0 -17
- data/spec/html/frame_2.html +0 -16
- data/spec/html/frames.html +0 -11
- data/spec/html/iframes.html +0 -12
- data/spec/html/images.html +0 -27
- data/spec/html/images/1.gif +0 -0
- data/spec/html/images/2.gif +0 -0
- data/spec/html/images/3.gif +0 -0
- data/spec/html/images/button.jpg +0 -0
- data/spec/html/images/circle.jpg +0 -0
- data/spec/html/images/map.gif +0 -0
- data/spec/html/images/map2.gif +0 -0
- data/spec/html/images/minus.gif +0 -0
- data/spec/html/images/originaltriangle.jpg +0 -0
- data/spec/html/images/plus.gif +0 -0
- data/spec/html/images/square.jpg +0 -0
- data/spec/html/images/triangle.jpg +0 -0
- data/spec/html/invalid_js.html +0 -11
- data/spec/html/latin1_text.html +0 -17
- data/spec/html/non_control_elements.html +0 -115
- data/spec/html/simple_ajax.html +0 -22
- data/spec/html/tables.html +0 -119
- data/spec/html/utf8_text.html +0 -15
- data/spec/htmlunit_spec.rb +0 -26
- data/spec/image_spec.rb +0 -220
- data/spec/images_spec.rb +0 -39
- data/spec/label_spec.rb +0 -79
- data/spec/labels_spec.rb +0 -40
- data/spec/li_spec.rb +0 -139
- data/spec/link_spec.rb +0 -189
- data/spec/links_spec.rb +0 -43
- data/spec/lis_spec.rb +0 -40
- data/spec/map_spec.rb +0 -102
- data/spec/maps_spec.rb +0 -40
- data/spec/meta_spec.rb +0 -8
- data/spec/ol_spec.rb +0 -87
- data/spec/ols_spec.rb +0 -40
- data/spec/option_spec.rb +0 -154
- data/spec/p_spec.rb +0 -171
- data/spec/pre_spec.rb +0 -135
- data/spec/pres_spec.rb +0 -40
- data/spec/ps_spec.rb +0 -40
- data/spec/radio_spec.rb +0 -299
- data/spec/radios_spec.rb +0 -42
- data/spec/select_list_spec.rb +0 -299
- data/spec/select_lists_spec.rb +0 -47
- data/spec/span_spec.rb +0 -184
- data/spec/spans_spec.rb +0 -64
- data/spec/spec.opts +0 -1
- data/spec/spec_helper.rb +0 -55
- data/spec/table_bodies_spec.rb +0 -57
- data/spec/table_body_spec.rb +0 -111
- data/spec/table_cell_spec.rb +0 -74
- data/spec/table_cells_spec.rb +0 -59
- data/spec/table_footer_spec.rb +0 -101
- data/spec/table_footers_spec.rb +0 -55
- data/spec/table_header_spec.rb +0 -101
- data/spec/table_headers_spec.rb +0 -55
- data/spec/table_row_spec.rb +0 -104
- data/spec/table_rows_spec.rb +0 -58
- data/spec/table_spec.rb +0 -160
- data/spec/tables_spec.rb +0 -42
- data/spec/text_field_spec.rb +0 -323
- data/spec/text_fields_spec.rb +0 -44
- data/spec/ul_spec.rb +0 -88
- data/spec/uls_spec.rb +0 -40
- data/spec/watir_compatibility_spec.rb +0 -260
- data/support/spec_server.rb +0 -73
- data/tasks/rspec.rake +0 -30
- data/tasks/specserver.rake +0 -21
- 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
|
data/spec/select_list_spec.rb
DELETED
@@ -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
|
data/spec/select_lists_spec.rb
DELETED
@@ -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
|
-
|