celerity 0.0.4 → 0.0.6
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.
- 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/button_spec.rb
DELETED
|
@@ -1,227 +0,0 @@
|
|
|
1
|
-
require File.dirname(__FILE__) + '/spec_helper.rb'
|
|
2
|
-
|
|
3
|
-
describe "Button" 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 button exists" do
|
|
16
|
-
@browser.button(:id, "new_user_submit").should exist
|
|
17
|
-
@browser.button(:id, /new_user_submit/).should exist
|
|
18
|
-
@browser.button(:name, "new_user_reset").should exist
|
|
19
|
-
@browser.button(:name, /new_user_reset/).should exist
|
|
20
|
-
@browser.button(:value, "Button 2").should exist
|
|
21
|
-
@browser.button(:value, /Button 2/).should exist
|
|
22
|
-
@browser.button(:src, "images/button.jpg").should exist
|
|
23
|
-
@browser.button(:src, /button.jpg/).should exist
|
|
24
|
-
@browser.button(:text, "Button 2").should exist
|
|
25
|
-
@browser.button(:text, /Button 2/).should exist
|
|
26
|
-
@browser.button(:class, "image").should exist
|
|
27
|
-
@browser.button(:class, /image/).should exist
|
|
28
|
-
@browser.button(:index, 1).should exist
|
|
29
|
-
@browser.button(:xpath, "//input[@id='new_user_submit']").should exist
|
|
30
|
-
end
|
|
31
|
-
|
|
32
|
-
it "should return true if the button exists (how = :caption)" do
|
|
33
|
-
@browser.button(:caption, "Button 2").should exist
|
|
34
|
-
@browser.button(:caption, /Button 2/).should exist
|
|
35
|
-
end
|
|
36
|
-
|
|
37
|
-
it "should return true if the button exists (default how = :value)" do
|
|
38
|
-
@browser.button("Submit").should exist
|
|
39
|
-
end
|
|
40
|
-
|
|
41
|
-
it "should return false if the button doesn't exist" do
|
|
42
|
-
@browser.button(:id, "no_such_id").should_not exist
|
|
43
|
-
@browser.button(:id, /no_such_id/).should_not exist
|
|
44
|
-
@browser.button(:name, "no_such_name").should_not exist
|
|
45
|
-
@browser.button(:name, /no_such_name/).should_not exist
|
|
46
|
-
@browser.button(:value, "no_such_value").should_not exist
|
|
47
|
-
@browser.button(:value, /no_such_value/).should_not exist
|
|
48
|
-
@browser.button(:src, "no_such_src").should_not exist
|
|
49
|
-
@browser.button(:src, /no_such_src/).should_not exist
|
|
50
|
-
@browser.button(:text, "no_such_text").should_not exist
|
|
51
|
-
@browser.button(:text, /no_such_text/).should_not exist
|
|
52
|
-
@browser.button(:class, "no_such_class").should_not exist
|
|
53
|
-
@browser.button(:class, /no_such_class/).should_not exist
|
|
54
|
-
@browser.button(:index, 1337).should_not exist
|
|
55
|
-
@browser.button(:xpath, "//input[@id='no_such_id']").should_not exist
|
|
56
|
-
end
|
|
57
|
-
|
|
58
|
-
it "should raise ArgumentError when 'what' argument is invalid" do
|
|
59
|
-
lambda { @browser.button(:id, 3.14).exists? }.should raise_error(ArgumentError)
|
|
60
|
-
end
|
|
61
|
-
|
|
62
|
-
it "should raise MissingWayOfFindingObjectException when 'how' argument is invalid" do
|
|
63
|
-
lambda { @browser.button(:no_such_how, 'some_value').exists? }.should raise_error(MissingWayOfFindingObjectException)
|
|
64
|
-
end
|
|
65
|
-
end
|
|
66
|
-
|
|
67
|
-
# Attribute methods
|
|
68
|
-
describe "#class_name" do
|
|
69
|
-
it "should return the class name of the button" do
|
|
70
|
-
@browser.button(:name, "new_user_image").class_name.should == "image"
|
|
71
|
-
end
|
|
72
|
-
|
|
73
|
-
it "should return an empty string if the button has no class name" do
|
|
74
|
-
@browser.button(:name, "new_user_submit").class_name.should == ""
|
|
75
|
-
end
|
|
76
|
-
end
|
|
77
|
-
|
|
78
|
-
describe "#id" do
|
|
79
|
-
it "should return the id if the button exists" do
|
|
80
|
-
@browser.button(:index, 1).id.should == 'new_user_submit'
|
|
81
|
-
@browser.button(:index, 2).id.should == 'new_user_reset'
|
|
82
|
-
@browser.button(:index, 3).id.should == 'new_user_button'
|
|
83
|
-
end
|
|
84
|
-
|
|
85
|
-
it "should raise UnknownObjectException if button does not exist" do
|
|
86
|
-
lambda { @browser.button(:index, 1337).id }.should raise_error(UnknownObjectException, 'Unable to locate object, using :index and 1337')
|
|
87
|
-
end
|
|
88
|
-
end
|
|
89
|
-
|
|
90
|
-
describe "#name" do
|
|
91
|
-
it "should return the name if button exists" do
|
|
92
|
-
@browser.button(:index, 1).name.should == 'new_user_submit'
|
|
93
|
-
@browser.button(:index, 2).name.should == 'new_user_reset'
|
|
94
|
-
@browser.button(:index, 3).name.should == 'new_user_button'
|
|
95
|
-
end
|
|
96
|
-
|
|
97
|
-
it "should raise UnknownObjectException if the button does not exist" do
|
|
98
|
-
lambda { @browser.button(:name, "no_such_name").name }.should raise_error(UnknownObjectException, 'Unable to locate object, using :name and "no_such_name"')
|
|
99
|
-
end
|
|
100
|
-
end
|
|
101
|
-
|
|
102
|
-
describe "#src" do
|
|
103
|
-
it "should return the url for the button image" do
|
|
104
|
-
@browser.button(:name, "new_user_image").src.should == "images/button.jpg"
|
|
105
|
-
end
|
|
106
|
-
|
|
107
|
-
it "should raise UnknownObjectException if the button does not exist" do
|
|
108
|
-
lambda { @browser.button(:name, "no_such_name").src }.should raise_error(UnknownObjectException, 'Unable to locate object, using :name and "no_such_name"')
|
|
109
|
-
end
|
|
110
|
-
end
|
|
111
|
-
|
|
112
|
-
describe "#style" do
|
|
113
|
-
it "should return the style attribute if the button exists" do
|
|
114
|
-
@browser.button(:id, 'delete_user_submit').style.should == "border: 4px solid red;"
|
|
115
|
-
end
|
|
116
|
-
|
|
117
|
-
it "should return an empty string if the element exists and the attribute doesn't" do
|
|
118
|
-
@browser.button(:id, 'new_user_submit').style.should == ""
|
|
119
|
-
end
|
|
120
|
-
|
|
121
|
-
it "should raise UnknownObjectException if the button does not exist" do
|
|
122
|
-
lambda { @browser.button(:name, "no_such_name").style }.should raise_error(UnknownObjectException, 'Unable to locate object, using :name and "no_such_name"')
|
|
123
|
-
end
|
|
124
|
-
end
|
|
125
|
-
|
|
126
|
-
describe "#title" do
|
|
127
|
-
it "should return the title of the button" do
|
|
128
|
-
@browser.button(:index, 1).title.should == 'Submit the form'
|
|
129
|
-
end
|
|
130
|
-
|
|
131
|
-
it "should return an empty string for button without title" do
|
|
132
|
-
@browser.button(:index, 2).title.should == ''
|
|
133
|
-
end
|
|
134
|
-
end
|
|
135
|
-
|
|
136
|
-
describe "#type" do
|
|
137
|
-
it "should return the type if button exists" do
|
|
138
|
-
@browser.button(:index, 1).type.should == 'submit'
|
|
139
|
-
@browser.button(:index, 2).type.should == 'reset'
|
|
140
|
-
@browser.button(:index, 3).type.should == 'button'
|
|
141
|
-
end
|
|
142
|
-
|
|
143
|
-
it "should raise UnknownObjectException if button does not exist" do
|
|
144
|
-
lambda { @browser.button(:name, "no_such_name").type }.should raise_error(UnknownObjectException, 'Unable to locate object, using :name and "no_such_name"')
|
|
145
|
-
end
|
|
146
|
-
end
|
|
147
|
-
|
|
148
|
-
describe "#value" do
|
|
149
|
-
it "should return the value if button exists" do
|
|
150
|
-
@browser.button(:index, 1).value.should == 'Submit'
|
|
151
|
-
@browser.button(:index, 2).value.should == 'Reset'
|
|
152
|
-
@browser.button(:index, 3).value.should == 'Button'
|
|
153
|
-
end
|
|
154
|
-
|
|
155
|
-
it "should raise UnknownObjectException if button does not exist" do
|
|
156
|
-
lambda { @browser.button(:name, "no_such_name").value }.should raise_error(UnknownObjectException, 'Unable to locate object, using :name and "no_such_name"')
|
|
157
|
-
end
|
|
158
|
-
end
|
|
159
|
-
|
|
160
|
-
describe "#respond_to?" do
|
|
161
|
-
it "should return true for all attribute methods" do
|
|
162
|
-
@browser.button(:index, 1).should respond_to(:class_name)
|
|
163
|
-
@browser.button(:index, 1).should respond_to(:id)
|
|
164
|
-
@browser.button(:index, 1).should respond_to(:name)
|
|
165
|
-
@browser.button(:index, 1).should respond_to(:src)
|
|
166
|
-
@browser.button(:index, 1).should respond_to(:style)
|
|
167
|
-
@browser.button(:index, 1).should respond_to(:title)
|
|
168
|
-
@browser.button(:index, 1).should respond_to(:type)
|
|
169
|
-
@browser.button(:index, 1).should respond_to(:value)
|
|
170
|
-
end
|
|
171
|
-
end
|
|
172
|
-
|
|
173
|
-
# Access methods
|
|
174
|
-
describe "#enabled?" do
|
|
175
|
-
it "should return true if the button is enabled" do
|
|
176
|
-
@browser.button(:name, 'new_user_submit').should be_enabled
|
|
177
|
-
end
|
|
178
|
-
|
|
179
|
-
it "should return false if the button is disabled" do
|
|
180
|
-
@browser.button(:name, 'new_user_submit_disabled').should_not be_enabled
|
|
181
|
-
end
|
|
182
|
-
|
|
183
|
-
it "should raise UnknownObjectException if the button doesn't exist" do
|
|
184
|
-
lambda { @browser.button(:name, "no_such_name").enabled? }.should raise_error(UnknownObjectException, 'Unable to locate object, using :name and "no_such_name"')
|
|
185
|
-
end
|
|
186
|
-
end
|
|
187
|
-
|
|
188
|
-
describe "#disabled?" do
|
|
189
|
-
it "should return false when button is enabled" do
|
|
190
|
-
@browser.button(:name, 'new_user_submit').should_not be_disabled
|
|
191
|
-
end
|
|
192
|
-
|
|
193
|
-
it "should return true when button is disabled" do
|
|
194
|
-
@browser.button(:name, 'new_user_submit_disabled').should be_disabled
|
|
195
|
-
end
|
|
196
|
-
|
|
197
|
-
it "should raise UnknownObjectException if button does not exist" do
|
|
198
|
-
lambda { @browser.button(:name, "no_such_name").disabled? }.should raise_error(UnknownObjectException, 'Unable to locate object, using :name and "no_such_name"')
|
|
199
|
-
end
|
|
200
|
-
end
|
|
201
|
-
|
|
202
|
-
# Manipulation methods
|
|
203
|
-
describe "#click" do
|
|
204
|
-
it "should click the button if it exists" do
|
|
205
|
-
@browser.button(:id, 'new_user_submit').click
|
|
206
|
-
@browser.text.should include("You posted the following content:")
|
|
207
|
-
end
|
|
208
|
-
|
|
209
|
-
it "should fire events" do
|
|
210
|
-
@browser.button(:id, 'new_user_button').click
|
|
211
|
-
@browser.button(:id, 'new_user_button').value.should == 'new_value_set_by_onclick_event'
|
|
212
|
-
end
|
|
213
|
-
|
|
214
|
-
it "should raise UnknownObjectException when clicking a button that doesn't exist" do
|
|
215
|
-
lambda { @browser.button(:value, "no_such_value").click }.should raise_error(UnknownObjectException, 'Unable to locate object, using :value and "no_such_value"')
|
|
216
|
-
lambda { @browser.button(:id, "no_such_id").click }.should raise_error(UnknownObjectException, 'Unable to locate object, using :id and "no_such_id"')
|
|
217
|
-
end
|
|
218
|
-
|
|
219
|
-
it "should raise ObjectDisabledException when clicking a disabled button" do
|
|
220
|
-
lambda { @browser.button(:value, "Disabled").click }.should raise_error(ObjectDisabledException)
|
|
221
|
-
end
|
|
222
|
-
end
|
|
223
|
-
|
|
224
|
-
after :all do
|
|
225
|
-
@browser.close
|
|
226
|
-
end
|
|
227
|
-
end
|
data/spec/buttons_spec.rb
DELETED
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
require File.dirname(__FILE__) + '/spec_helper.rb'
|
|
2
|
-
|
|
3
|
-
describe "Buttons" 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 buttons" do
|
|
15
|
-
@browser.buttons.length.should == 7
|
|
16
|
-
end
|
|
17
|
-
end
|
|
18
|
-
|
|
19
|
-
describe "#[]" do
|
|
20
|
-
it "should return the button at the given index" do
|
|
21
|
-
@browser.buttons[1].title.should == "Submit the form"
|
|
22
|
-
end
|
|
23
|
-
end
|
|
24
|
-
|
|
25
|
-
describe "#each" do
|
|
26
|
-
it "should iterate through buttons correctly" do
|
|
27
|
-
@browser.buttons.each_with_index do |b, index|
|
|
28
|
-
b.name.should == @browser.button(:index, index+1).name
|
|
29
|
-
b.id.should == @browser.button(:index, index+1).id
|
|
30
|
-
b.value.should == @browser.button(:index, index+1).value
|
|
31
|
-
end
|
|
32
|
-
end
|
|
33
|
-
end
|
|
34
|
-
|
|
35
|
-
after :all do
|
|
36
|
-
@browser.close
|
|
37
|
-
end
|
|
38
|
-
|
|
39
|
-
end
|
data/spec/checkbox_spec.rb
DELETED
|
@@ -1,302 +0,0 @@
|
|
|
1
|
-
require File.dirname(__FILE__) + '/spec_helper.rb'
|
|
2
|
-
|
|
3
|
-
describe "CheckBox" 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
|
-
|
|
14
|
-
# Exists method
|
|
15
|
-
|
|
16
|
-
describe "#exists?" do
|
|
17
|
-
it "should return true if the checkbox button exists" do
|
|
18
|
-
@browser.checkbox(:id, "new_user_interests_books").should exist
|
|
19
|
-
@browser.checkbox(:id, /new_user_interests_books/).should exist
|
|
20
|
-
@browser.checkbox(:name, "new_user_interests").should exist
|
|
21
|
-
@browser.checkbox(:name, /new_user_interests/).should exist
|
|
22
|
-
@browser.checkbox(:value, "books").should exist
|
|
23
|
-
@browser.checkbox(:value, /books/).should exist
|
|
24
|
-
# not sure what :text is supposed to represent here
|
|
25
|
-
# @browser.checkbox(:text, "books").should exist
|
|
26
|
-
# @browser.checkbox(:text, /books/).should exist
|
|
27
|
-
@browser.checkbox(:class, "fun").should exist
|
|
28
|
-
@browser.checkbox(:class, /fun/).should exist
|
|
29
|
-
@browser.checkbox(:index, 1).should exist
|
|
30
|
-
@browser.checkbox(:xpath, "//input[@id='new_user_interests_books']").should exist
|
|
31
|
-
end
|
|
32
|
-
|
|
33
|
-
it "should return true if the element exists (default how = :name)" do
|
|
34
|
-
@browser.checkbox("new_user_interests").should exist
|
|
35
|
-
end
|
|
36
|
-
|
|
37
|
-
it "should return true if the checkbox button exists (search by name and value)" do
|
|
38
|
-
@browser.checkbox(:name, "new_user_interests", 'cars').should exist
|
|
39
|
-
@browser.checkbox(:xpath, "//input[@name='new_user_interests' and @value='cars']").set
|
|
40
|
-
end
|
|
41
|
-
|
|
42
|
-
it "should return false if the checkbox button does not exist" do
|
|
43
|
-
@browser.checkbox(:id, "no_such_id").should_not exist
|
|
44
|
-
@browser.checkbox(:id, /no_such_id/).should_not exist
|
|
45
|
-
@browser.checkbox(:name, "no_such_name").should_not exist
|
|
46
|
-
@browser.checkbox(:name, /no_such_name/).should_not exist
|
|
47
|
-
@browser.checkbox(:value, "no_such_value").should_not exist
|
|
48
|
-
@browser.checkbox(:value, /no_such_value/).should_not exist
|
|
49
|
-
@browser.checkbox(:text, "no_such_text").should_not exist
|
|
50
|
-
@browser.checkbox(:text, /no_such_text/).should_not exist
|
|
51
|
-
@browser.checkbox(:class, "no_such_class").should_not exist
|
|
52
|
-
@browser.checkbox(:class, /no_such_class/).should_not exist
|
|
53
|
-
@browser.checkbox(:index, 1337).should_not exist
|
|
54
|
-
@browser.checkbox(:xpath, "//input[@id='no_such_id']").should_not exist
|
|
55
|
-
end
|
|
56
|
-
|
|
57
|
-
it "should return false if the checkbox button does not exist (search by name and value)" do
|
|
58
|
-
@browser.checkbox(:name, "new_user_interests", 'no_such_value').should_not exist
|
|
59
|
-
@browser.checkbox(:xpath, "//input[@name='new_user_interests' and @value='no_such_value']").should_not exist
|
|
60
|
-
@browser.checkbox(:name, "no_such_name", 'cars').should_not exist
|
|
61
|
-
@browser.checkbox(:xpath, "//input[@name='no_such_name' and @value='cars']").should_not exist
|
|
62
|
-
end
|
|
63
|
-
|
|
64
|
-
it "should return true for checkboxs with a string value" do
|
|
65
|
-
@browser.checkbox(:name, 'new_user_interests', 'books').should exist
|
|
66
|
-
@browser.checkbox(:name, 'new_user_interests', 'cars').should exist
|
|
67
|
-
end
|
|
68
|
-
|
|
69
|
-
it "should raise ArgumentError when 'what' argument is invalid" do
|
|
70
|
-
lambda { @browser.checkbox(:id, 3.14).exists? }.should raise_error(ArgumentError)
|
|
71
|
-
end
|
|
72
|
-
|
|
73
|
-
it "should raise MissingWayOfFindingObjectException when 'how' argument is invalid" do
|
|
74
|
-
lambda { @browser.checkbox(:no_such_how, 'some_value').exists? }.should raise_error(MissingWayOfFindingObjectException)
|
|
75
|
-
end
|
|
76
|
-
end
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
# Attribute methods
|
|
80
|
-
|
|
81
|
-
describe "#class_name" do
|
|
82
|
-
it "should return the class name if the checkbox exists and has an attribute" do
|
|
83
|
-
@browser.checkbox(:id, "new_user_interests_dancing").class_name.should == "fun"
|
|
84
|
-
end
|
|
85
|
-
|
|
86
|
-
it "should return an emptry string if the checkbox exists and the attribute doesn't" do
|
|
87
|
-
@browser.checkbox(:id, "new_user_interests_books").class_name.should == ""
|
|
88
|
-
end
|
|
89
|
-
|
|
90
|
-
it "should raise UnknownObjectException if the checkbox doesn't exist" do
|
|
91
|
-
lambda { @browser.checkbox(:id, "no_such_id").class_name }.should raise_error(UnknownObjectException)
|
|
92
|
-
end
|
|
93
|
-
end
|
|
94
|
-
|
|
95
|
-
describe "#id" do
|
|
96
|
-
it "should return the id attribute if the checkbox exists and has an attribute" do
|
|
97
|
-
@browser.checkbox(:index, 1).id.should == "new_user_interests_books"
|
|
98
|
-
end
|
|
99
|
-
|
|
100
|
-
it "should return an emptry string if the checkbox exists and the attribute doesn't" do
|
|
101
|
-
@browser.checkbox(:index, 2).id.should == ""
|
|
102
|
-
end
|
|
103
|
-
|
|
104
|
-
it "should raise UnknownObjectException if the checkbox doesn't exist" do
|
|
105
|
-
lambda { @browser.checkbox(:index, 1337).id }.should raise_error(UnknownObjectException)
|
|
106
|
-
end
|
|
107
|
-
end
|
|
108
|
-
|
|
109
|
-
describe "#name" do
|
|
110
|
-
it "should return the name attribute if the checkbox exists" do
|
|
111
|
-
@browser.checkbox(:id, 'new_user_interests_books').name.should == "new_user_interests"
|
|
112
|
-
end
|
|
113
|
-
|
|
114
|
-
it "should return an empty string if the checkbox exists and the attribute doesn't" do
|
|
115
|
-
@browser.checkbox(:id, 'new_user_interests_food').name.should == ""
|
|
116
|
-
end
|
|
117
|
-
|
|
118
|
-
it "should raise UnknownObjectException if the checkbox doesn't exist" do
|
|
119
|
-
lambda { @browser.checkbox(:index, 1337).name }.should raise_error(UnknownObjectException)
|
|
120
|
-
end
|
|
121
|
-
end
|
|
122
|
-
|
|
123
|
-
describe "#title" do
|
|
124
|
-
it "should return the title attribute if the checkbox exists" do
|
|
125
|
-
@browser.checkbox(:id, "new_user_interests_dancing").title.should == "Dancing is fun!"
|
|
126
|
-
end
|
|
127
|
-
|
|
128
|
-
it "should return an emptry string if the checkbox exists and the attribute doesn't" do
|
|
129
|
-
@browser.checkbox(:id, "new_user_interests_books").title.should == ""
|
|
130
|
-
end
|
|
131
|
-
|
|
132
|
-
it "should raise UnknownObjectException if the checkbox doesn't exist" do
|
|
133
|
-
lambda { @browser.checkbox(:index, 1337).title }.should raise_error(UnknownObjectException)
|
|
134
|
-
end
|
|
135
|
-
end
|
|
136
|
-
|
|
137
|
-
describe "#type" do
|
|
138
|
-
it "should return the type attribute if the checkbox exists" do
|
|
139
|
-
@browser.checkbox(:index, 1).type.should == "checkbox"
|
|
140
|
-
end
|
|
141
|
-
|
|
142
|
-
it "should raise UnknownObjectException if the checkbox doesn't exist" do
|
|
143
|
-
lambda { @browser.checkbox(:index, 1337).type }.should raise_error(UnknownObjectException)
|
|
144
|
-
end
|
|
145
|
-
end
|
|
146
|
-
|
|
147
|
-
describe "#value" do
|
|
148
|
-
it "should return the value attribute if the checkbox exists" do
|
|
149
|
-
@browser.checkbox(:id, 'new_user_interests_books').value.should == 'books'
|
|
150
|
-
end
|
|
151
|
-
|
|
152
|
-
it "should raise UnknownObjectException if the checkbox doesn't exist" do
|
|
153
|
-
lambda { @browser.checkbox(:index, 1337).value}.should raise_error(UnknownObjectException)
|
|
154
|
-
end
|
|
155
|
-
end
|
|
156
|
-
|
|
157
|
-
describe "#respond_to?" do
|
|
158
|
-
it "should return true for all attribute methods" do
|
|
159
|
-
@browser.checkbox(:index, 1).should respond_to(:class_name)
|
|
160
|
-
@browser.checkbox(:index, 1).should respond_to(:id)
|
|
161
|
-
@browser.checkbox(:index, 1).should respond_to(:name)
|
|
162
|
-
@browser.checkbox(:index, 1).should respond_to(:title)
|
|
163
|
-
@browser.checkbox(:index, 1).should respond_to(:type)
|
|
164
|
-
@browser.checkbox(:index, 1).should respond_to(:value)
|
|
165
|
-
end
|
|
166
|
-
end
|
|
167
|
-
|
|
168
|
-
# Access methods
|
|
169
|
-
|
|
170
|
-
describe "#enabled?" do
|
|
171
|
-
it "should return true if the checkbox button is enabled" do
|
|
172
|
-
@browser.checkbox(:id, "new_user_interests_books").should be_enabled
|
|
173
|
-
@browser.checkbox(:xpath, "//input[@id='new_user_interests_books']").should be_enabled
|
|
174
|
-
end
|
|
175
|
-
|
|
176
|
-
it "should return false if the checkbox button is disabled" do
|
|
177
|
-
@browser.checkbox(:id, "new_user_interests_dentistry").should_not be_enabled
|
|
178
|
-
@browser.checkbox(:xpath,"//input[@id='new_user_interests_dentistry']").should_not be_enabled
|
|
179
|
-
end
|
|
180
|
-
|
|
181
|
-
it "should raise UnknownObjectException if the checkbox button doesn't exist" do
|
|
182
|
-
lambda { @browser.checkbox(:id, "no_such_id").enabled? }.should raise_error(UnknownObjectException)
|
|
183
|
-
lambda { @browser.checkbox(:xpath, "//input[@id='no_such_id']").enabled? }.should raise_error(UnknownObjectException)
|
|
184
|
-
end
|
|
185
|
-
end
|
|
186
|
-
|
|
187
|
-
describe "#disabled?" do
|
|
188
|
-
it "should return true if the checkbox is disabled" do
|
|
189
|
-
@browser.checkbox(:id, 'new_user_interests_dentistry').should be_disabled
|
|
190
|
-
end
|
|
191
|
-
|
|
192
|
-
it "should return false if the checkbox is enabled" do
|
|
193
|
-
@browser.checkbox(:id, 'new_user_interests_books').should_not be_disabled
|
|
194
|
-
end
|
|
195
|
-
|
|
196
|
-
it "should raise UnknownObjectException if the checkbox doesn't exist" do
|
|
197
|
-
lambda { @browser.checkbox(:index, 1337).disabled? }.should raise_error(UnknownObjectException)
|
|
198
|
-
end
|
|
199
|
-
end
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
# Manipulation methods
|
|
203
|
-
|
|
204
|
-
describe "#clear" do
|
|
205
|
-
it "should raise ObjectDisabledException if the checkbox is disabled" do
|
|
206
|
-
@browser.checkbox(:id, "new_user_interests_dentistry").should_not be_set
|
|
207
|
-
lambda { @browser.checkbox(:id, "new_user_interests_dentistry").clear }.should raise_error(ObjectDisabledException)
|
|
208
|
-
lambda { @browser.checkbox(:xpath, "//input[@id='new_user_interests_dentistry']").clear }.should raise_error(ObjectDisabledException)
|
|
209
|
-
end
|
|
210
|
-
|
|
211
|
-
it "should clear the checkbox button if it is set" do
|
|
212
|
-
@browser.checkbox(:id, "new_user_interests_books").clear
|
|
213
|
-
@browser.checkbox(:id, "new_user_interests_books").should_not be_set
|
|
214
|
-
end
|
|
215
|
-
|
|
216
|
-
it "should clear the checkbox button when found by :xpath" do
|
|
217
|
-
@browser.checkbox(:xpath, "//input[@id='new_user_interests_books']").clear
|
|
218
|
-
@browser.checkbox(:xpath, "//input[@id='new_user_interests_books']").should_not be_set
|
|
219
|
-
end
|
|
220
|
-
|
|
221
|
-
it "should raise UnknownObjectException if the checkbox button doesn't exist" do
|
|
222
|
-
lambda { @browser.checkbox(:name, "no_such_id").clear }.should raise_error(UnknownObjectException)
|
|
223
|
-
lambda { @browser.checkbox(:xpath, "//input[@id='no_such_id']").clear }.should raise_error(UnknownObjectException)
|
|
224
|
-
end
|
|
225
|
-
end
|
|
226
|
-
|
|
227
|
-
describe "#set" do
|
|
228
|
-
it "should set the checkbox button" do
|
|
229
|
-
@browser.checkbox(:id, "new_user_interests_cars").set
|
|
230
|
-
@browser.checkbox(:id, "new_user_interests_cars").should be_set
|
|
231
|
-
end
|
|
232
|
-
|
|
233
|
-
it "should set the checkbox button when found by :xpath" do
|
|
234
|
-
@browser.checkbox(:xpath, "//input[@id='new_user_interests_cars']").set
|
|
235
|
-
@browser.checkbox(:xpath, "//input[@id='new_user_interests_cars']").should be_set
|
|
236
|
-
end
|
|
237
|
-
|
|
238
|
-
it "should fire the onclick event" do
|
|
239
|
-
@browser.button(:id, "disabled_button").should be_disabled
|
|
240
|
-
@browser.checkbox(:id, "toggle_button_checkbox").set
|
|
241
|
-
@browser.button(:id, "disabled_button").should_not be_disabled
|
|
242
|
-
@browser.checkbox(:id, "toggle_button_checkbox").clear
|
|
243
|
-
@browser.button(:id, "disabled_button").should be_disabled
|
|
244
|
-
end
|
|
245
|
-
|
|
246
|
-
it "should raise UnknownObjectException if the checkbox button doesn't exist" do
|
|
247
|
-
lambda { @browser.checkbox(:name, "no_such_name").set }.should raise_error(UnknownObjectException)
|
|
248
|
-
lambda { @browser.checkbox(:xpath, "//input[@name='no_such_name']").set }.should raise_error(UnknownObjectException)
|
|
249
|
-
end
|
|
250
|
-
|
|
251
|
-
it "should raise ObjectDisabledException if the checkbox is disabled" do
|
|
252
|
-
lambda { @browser.checkbox(:id, "new_user_interests_dentistry").set }.should raise_error(ObjectDisabledException)
|
|
253
|
-
lambda { @browser.checkbox(:xpath, "//input[@id='new_user_interests_dentistry']").set }.should raise_error(ObjectDisabledException )
|
|
254
|
-
end
|
|
255
|
-
end
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
# Other
|
|
259
|
-
|
|
260
|
-
describe '#set?' do
|
|
261
|
-
it "should return true if the checkbox button is set" do
|
|
262
|
-
@browser.checkbox(:id, "new_user_interests_books").should be_set
|
|
263
|
-
end
|
|
264
|
-
|
|
265
|
-
it "should return false if the checkbox button unset" do
|
|
266
|
-
@browser.checkbox(:id, "new_user_interests_cars").should_not be_set
|
|
267
|
-
end
|
|
268
|
-
|
|
269
|
-
it "should return the state for checkboxs with string values" do
|
|
270
|
-
@browser.checkbox(:name, "new_user_interests", 'cars').should_not be_set
|
|
271
|
-
@browser.checkbox(:name, "new_user_interests", 'cars').set
|
|
272
|
-
@browser.checkbox(:name, "new_user_interests", 'cars').should be_set
|
|
273
|
-
@browser.checkbox(:name, "new_user_interests", 'cars').clear
|
|
274
|
-
@browser.checkbox(:name, "new_user_interests", 'cars').should_not be_set
|
|
275
|
-
end
|
|
276
|
-
|
|
277
|
-
it "should raise UnknownObjectException if the checkbox button doesn't exist" do
|
|
278
|
-
lambda { @browser.checkbox(:id, "no_such_id").set? }.should raise_error(UnknownObjectException)
|
|
279
|
-
lambda { @browser.checkbox(:xpath, "//input[@id='no_such_id']").set? }.should raise_error(UnknownObjectException)
|
|
280
|
-
end
|
|
281
|
-
end
|
|
282
|
-
|
|
283
|
-
describe "#get_state" do
|
|
284
|
-
it "should return true if the checkbox is set" do
|
|
285
|
-
@browser.checkbox(:id, "new_user_interests_books").get_state.should be_true
|
|
286
|
-
end
|
|
287
|
-
|
|
288
|
-
it "should return false if the checkbox is unset" do
|
|
289
|
-
@browser.checkbox(:id, "new_user_interests_cars").get_state.should be_false
|
|
290
|
-
end
|
|
291
|
-
|
|
292
|
-
it "should raise UnknownObjectException if the checkbox doesn't exist" do
|
|
293
|
-
lambda { @browser.checkbox(:name, "no_such_name").get_state }.should raise_error(UnknownObjectException)
|
|
294
|
-
lambda { @browser.checkbox(:xpath, "//input[@name='no_such_name']").get_state }.should raise_error(UnknownObjectException)
|
|
295
|
-
end
|
|
296
|
-
end
|
|
297
|
-
|
|
298
|
-
after :all do
|
|
299
|
-
@browser.close
|
|
300
|
-
end
|
|
301
|
-
end
|
|
302
|
-
|