celerity 0.0.3 → 0.0.4
Sign up to get free protection for your applications and to get access to all the features.
- data.tar.gz.sig +0 -0
- data/History.txt +14 -0
- data/Manifest.txt +127 -151
- data/README.txt +15 -20
- data/lib/celerity.rb +13 -5
- data/lib/celerity/browser.rb +296 -0
- data/lib/celerity/clickable_element.rb +1 -0
- data/lib/celerity/collections.rb +4 -0
- data/lib/celerity/container.rb +69 -2
- data/lib/celerity/disabled_element.rb +1 -0
- data/lib/celerity/element.rb +103 -38
- data/lib/celerity/element_collections.rb +14 -8
- data/lib/celerity/element_locator.rb +61 -50
- data/lib/celerity/element_map.rb +51 -0
- data/lib/celerity/elements/button.rb +1 -0
- data/lib/celerity/elements/file_field.rb +3 -2
- data/lib/celerity/elements/form.rb +1 -0
- data/lib/celerity/elements/frame.rb +16 -1
- data/lib/celerity/elements/image.rb +15 -13
- data/lib/celerity/elements/link.rb +4 -1
- data/lib/celerity/elements/option.rb +1 -0
- data/lib/celerity/elements/radio_check.rb +19 -7
- data/lib/celerity/elements/select_list.rb +17 -2
- data/lib/celerity/elements/table.rb +34 -20
- data/lib/celerity/elements/table_body.rb +2 -2
- data/lib/celerity/elements/table_cell.rb +3 -1
- data/lib/celerity/elements/table_footer.rb +2 -2
- data/lib/celerity/elements/table_header.rb +2 -2
- data/lib/celerity/elements/table_row.rb +4 -2
- data/lib/celerity/elements/text_field.rb +20 -9
- data/lib/celerity/exception.rb +11 -18
- data/lib/celerity/extra/method_generator.rb +13 -8
- data/lib/celerity/htmlunit/download.sh +23 -0
- 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.7.jar → nekohtml-1.9.8.jar} +0 -0
- data/lib/celerity/input_element.rb +1 -1
- data/lib/celerity/version.rb +1 -1
- data/lib/celerity/watir_compatibility.rb +37 -23
- data/spec/area_spec.rb +19 -4
- data/spec/areas_spec.rb +2 -3
- data/spec/{ie_spec.rb → browser_spec.rb} +66 -15
- data/spec/button_spec.rb +36 -3
- data/spec/buttons_spec.rb +2 -3
- data/spec/checkbox_spec.rb +43 -8
- data/spec/checkboxes_spec.rb +2 -3
- data/spec/div_spec.rb +31 -4
- data/spec/divs_spec.rb +2 -3
- data/spec/element_spec.rb +36 -6
- data/spec/filefield_spec.rb +28 -13
- data/spec/filefields_spec.rb +2 -3
- data/spec/form_spec.rb +6 -3
- data/spec/forms_spec.rb +2 -3
- data/spec/frame_spec.rb +14 -5
- data/spec/frames_spec.rb +71 -0
- data/spec/hidden_spec.rb +21 -3
- data/spec/hiddens_spec.rb +2 -3
- data/spec/hn_spec.rb +30 -12
- data/spec/hns_spec.rb +14 -10
- data/spec/html/form_js_bug.html +11 -0
- data/spec/html/forms_with_input_elements.html +2 -1
- data/spec/html/invalid_js.html +11 -0
- data/spec/html/latin1_text.html +1 -0
- data/spec/html/non_control_elements.html +8 -4
- data/spec/html/simple_ajax.html +22 -0
- data/spec/htmlunit_spec.rb +4 -5
- data/spec/image_spec.rb +33 -3
- data/spec/images_spec.rb +2 -3
- data/spec/label_spec.rb +16 -3
- data/spec/labels_spec.rb +2 -3
- data/spec/li_spec.rb +25 -3
- data/spec/link_spec.rb +35 -3
- data/spec/links_spec.rb +2 -3
- data/spec/lis_spec.rb +2 -3
- data/spec/map_spec.rb +19 -3
- data/spec/maps_spec.rb +2 -3
- data/spec/meta_spec.rb +3 -1
- data/spec/ol_spec.rb +17 -3
- data/spec/ols_spec.rb +2 -3
- data/spec/option_spec.rb +28 -3
- data/spec/p_spec.rb +30 -2
- data/spec/pre_spec.rb +25 -3
- data/spec/pres_spec.rb +2 -3
- data/spec/ps_spec.rb +2 -3
- data/spec/radio_spec.rb +47 -3
- data/spec/radios_spec.rb +2 -3
- data/spec/select_list_spec.rb +42 -3
- data/spec/select_lists_spec.rb +2 -3
- data/spec/span_spec.rb +32 -7
- data/spec/spans_spec.rb +2 -4
- data/spec/spec_helper.rb +5 -25
- data/spec/table_bodies_spec.rb +7 -5
- data/spec/table_body_spec.rb +11 -4
- data/spec/table_cell_spec.rb +15 -4
- data/spec/table_cells_spec.rb +3 -4
- data/spec/table_footer_spec.rb +11 -4
- data/spec/table_footers_spec.rb +7 -5
- data/spec/table_header_spec.rb +11 -4
- data/spec/table_headers_spec.rb +7 -5
- data/spec/table_row_spec.rb +31 -7
- data/spec/table_rows_spec.rb +5 -4
- data/spec/table_spec.rb +36 -7
- data/spec/tables_spec.rb +2 -3
- data/spec/text_field_spec.rb +51 -13
- data/spec/text_fields_spec.rb +2 -3
- data/spec/ul_spec.rb +18 -3
- data/spec/uls_spec.rb +2 -3
- data/spec/{watir_compatability_spec.rb → watir_compatibility_spec.rb} +42 -35
- data/support/spec_server.rb +9 -0
- metadata +167 -161
- metadata.gz.sig +0 -0
- data/benchmark/bm_2000_spans.rb +0 -48
- data/benchmark/bm_digg.rb +0 -26
- data/benchmark/bm_google_images.rb +0 -36
- data/benchmark/bm_input_locator.rb +0 -69
- data/benchmark/loader.rb +0 -9
- data/config/hoe.rb +0 -68
- data/config/requirements.rb +0 -15
- data/lib/celerity/htmlunit/htmlunit-2.2-SNAPSHOT.jar +0 -0
- data/lib/celerity/htmlunit/js-1.7R1.jar +0 -0
- data/lib/celerity/ie.rb +0 -195
- data/setup.rb +0 -1583
- data/support/celerity_viewer/rubycocoa/CelerityViewer.icns +0 -0
- data/support/celerity_viewer/rubycocoa/English.lproj/Main.nib/classes.nib +0 -37
- data/support/celerity_viewer/rubycocoa/English.lproj/Main.nib/info.nib +0 -19
- data/support/celerity_viewer/rubycocoa/English.lproj/Main.nib/keyedobjects.nib +0 -0
- data/support/celerity_viewer/rubycocoa/Info.plist.erb +0 -28
- data/support/celerity_viewer/rubycocoa/MainController.rb +0 -23
- data/support/celerity_viewer/rubycocoa/README +0 -94
- data/support/celerity_viewer/rubycocoa/Rakefile +0 -100
- data/support/celerity_viewer/rubycocoa/distributed_viewer.rb +0 -86
- data/support/celerity_viewer/rubycocoa/main.m +0 -7
- data/support/celerity_viewer/rubycocoa/main.rb +0 -27
- data/tasks/benchmark.rake +0 -4
- data/tasks/environment.rake +0 -7
- data/tasks/simple_ci.rake +0 -94
data/spec/table_rows_spec.rb
CHANGED
@@ -1,14 +1,13 @@
|
|
1
1
|
require File.dirname(__FILE__) + '/spec_helper.rb'
|
2
2
|
|
3
|
-
describe TableRows do
|
3
|
+
describe "TableRows" do
|
4
4
|
|
5
5
|
before :all do
|
6
|
-
@browser =
|
7
|
-
add_spec_checker(@browser)
|
6
|
+
@browser = Browser.new
|
8
7
|
end
|
9
8
|
|
10
9
|
before :each do
|
11
|
-
@browser =
|
10
|
+
@browser = Browser.new
|
12
11
|
@browser.goto(TEST_HOST + "/tables.html")
|
13
12
|
end
|
14
13
|
|
@@ -17,6 +16,7 @@ describe TableRows do
|
|
17
16
|
@browser.table(:id, 'inner').rows.length.should == 1
|
18
17
|
@browser.table(:id, 'outer').rows.length.should == 3
|
19
18
|
end
|
19
|
+
|
20
20
|
it "should return the correct number of cells (page context)" do
|
21
21
|
@browser.rows.length.should == 14
|
22
22
|
end
|
@@ -26,6 +26,7 @@ describe TableRows do
|
|
26
26
|
it "should return the row at the given index (table context)" do
|
27
27
|
@browser.table(:id, 'outer').rows[1].text.should == "Table 1, Row 1, Cell 1 Table 1, Row 1, Cell 2"
|
28
28
|
end
|
29
|
+
|
29
30
|
it "should return the row at the given index (page context)" do
|
30
31
|
@browser.rows[1].text.should == "Before income tax Income tax After income tax"
|
31
32
|
end
|
data/spec/table_spec.rb
CHANGED
@@ -1,14 +1,13 @@
|
|
1
1
|
require File.dirname(__FILE__) + '/spec_helper.rb'
|
2
2
|
|
3
|
-
describe Table do
|
3
|
+
describe "Table" do
|
4
4
|
|
5
5
|
before :all do
|
6
|
-
@browser =
|
7
|
-
add_spec_checker(@browser)
|
6
|
+
@browser = Browser.new
|
8
7
|
end
|
9
8
|
|
10
9
|
before :each do
|
11
|
-
@browser =
|
10
|
+
@browser = Browser.new
|
12
11
|
@browser.goto(TEST_HOST + "/tables.html")
|
13
12
|
end
|
14
13
|
|
@@ -20,18 +19,22 @@ describe Table do
|
|
20
19
|
@browser.table(:index, 1).should exist
|
21
20
|
@browser.table(:xpath, "//table[@id='axis_example']").should exist
|
22
21
|
end
|
22
|
+
|
23
23
|
it "should return true if the element exists (default how = :id)" do
|
24
24
|
@browser.table("axis_example").should exist
|
25
25
|
end
|
26
|
+
|
26
27
|
it "should return false if the table does not exist" do
|
27
28
|
@browser.table(:id, 'no_such_id').should_not exist
|
28
29
|
@browser.table(:id, /no_such_id/).should_not exist
|
29
30
|
@browser.table(:index, 1337).should_not exist
|
30
31
|
@browser.table(:xpath, "//table[@id='no_such_id']").should_not exist
|
31
32
|
end
|
33
|
+
|
32
34
|
it "should raise ArgumentError when 'what' argument is invalid" do
|
33
35
|
lambda { @browser.table(:id, 3.14).exists? }.should raise_error(ArgumentError)
|
34
36
|
end
|
37
|
+
|
35
38
|
it "should raise MissingWayOfFindingObjectException when 'how' argument is invalid" do
|
36
39
|
lambda { @browser.table(:no_such_how, 'some_value').exists? }.should raise_error(MissingWayOfFindingObjectException)
|
37
40
|
end
|
@@ -49,6 +52,7 @@ describe Table do
|
|
49
52
|
@browser.table(:id, 'inner').row_count.should == 1
|
50
53
|
@browser.table(:id, 'outer').row_count.should == 3
|
51
54
|
end
|
55
|
+
|
52
56
|
it "should raise an UnknownObjectException if the table doesn't exist" do
|
53
57
|
lambda { @browser.table(:id, 'no_such_id').row_count }.should raise_error(UnknownObjectException)
|
54
58
|
lambda { @browser.table(:index, 1337).row_count }.should raise_error(UnknownObjectException)
|
@@ -68,6 +72,7 @@ describe Table do
|
|
68
72
|
@browser.table(:id, 'inner').column_count.should == 2
|
69
73
|
@browser.table(:id, 'outer').column_count.should == 2
|
70
74
|
end
|
75
|
+
|
71
76
|
it "should raise an UnknownObjectException if the table doesn't exist" do
|
72
77
|
lambda { @browser.table(:id, 'no_such_id').column_count }.should raise_error(UnknownObjectException)
|
73
78
|
lambda { @browser.table(:index, 1337).column_count }.should raise_error(UnknownObjectException)
|
@@ -79,17 +84,41 @@ describe Table do
|
|
79
84
|
@browser.table(:id, 'inner').column_values(1).should == ["Table 2, Row 1, Cell 1"]
|
80
85
|
@browser.table(:id, 'outer').column_values(1).should == ["Table 1, Row 1, Cell 1", "Table 1, Row 2, Cell 1", "Table 1, Row 3, Cell 1"]
|
81
86
|
end
|
87
|
+
|
82
88
|
it "should raise UnknownCellException when trying to locate non-existing cell" do
|
83
89
|
lambda { @browser.table(:id, 'inner').column_values(1337) }.should raise_error(UnknownCellException)
|
84
90
|
end
|
85
91
|
end
|
86
92
|
|
87
93
|
describe "#[]" do
|
88
|
-
it "should return the
|
94
|
+
it "should return the nth child row" do
|
89
95
|
@browser.table(:id, 'outer')[1].id.should == "outer_first"
|
90
96
|
@browser.table(:id, 'inner')[1].id.should == "inner_first"
|
91
97
|
@browser.table(:id, 'outer')[3].id.should == "outer_last"
|
92
98
|
end
|
99
|
+
it "should raise UnknownRowException if the index is out of bounds" do
|
100
|
+
lambda { @browser.table(:id, 'outer')[1337] }.should raise_error(UnknownRowException)
|
101
|
+
end
|
102
|
+
end
|
103
|
+
|
104
|
+
describe "#child_row" do
|
105
|
+
it "should return the nth child row" do
|
106
|
+
@browser.table(:id, 'outer').child_row(1).id.should == "outer_first"
|
107
|
+
@browser.table(:id, 'inner').child_row(1).id.should == "inner_first"
|
108
|
+
@browser.table(:id, 'outer').child_row(3).id.should == "outer_last"
|
109
|
+
end
|
110
|
+
it "should raise UnknownRowException if the index is out of bounds" do
|
111
|
+
lambda { @browser.table(:id, 'outer').child_row(1337) }.should raise_error(UnknownRowException)
|
112
|
+
end
|
113
|
+
end
|
114
|
+
|
115
|
+
describe "#child_cell" do
|
116
|
+
it "should return the nth child row" do
|
117
|
+
@browser.table(:id, 'outer').child_cell(5).text.should == "Table 1, Row 3, Cell 1"
|
118
|
+
end
|
119
|
+
it "should raise UnknownCellException if the index is out of bounds" do
|
120
|
+
lambda { @browser.table(:id, 'outer').child_cell(1337) }.should raise_error(UnknownCellException)
|
121
|
+
end
|
93
122
|
end
|
94
123
|
|
95
124
|
describe "#each" do
|
@@ -110,7 +139,7 @@ describe Table do
|
|
110
139
|
describe "#body" do
|
111
140
|
it "should return the correct instance of TableBody" do
|
112
141
|
body = @browser.table(:index, 1).body(:id, 'first')
|
113
|
-
body.
|
142
|
+
body.should be_instance_of(TableBody)
|
114
143
|
body[1][1].text.should == "March 2008"
|
115
144
|
end
|
116
145
|
end
|
@@ -118,7 +147,7 @@ describe Table do
|
|
118
147
|
describe "#bodies" do
|
119
148
|
it "should return the correct instance of TableBodies" do
|
120
149
|
bodies = @browser.table(:index, 1).bodies
|
121
|
-
bodies.
|
150
|
+
bodies.should be_instance_of(TableBodies)
|
122
151
|
bodies[1].id.should == "first"
|
123
152
|
bodies[2].id.should == "second"
|
124
153
|
end
|
data/spec/tables_spec.rb
CHANGED
data/spec/text_field_spec.rb
CHANGED
@@ -1,10 +1,9 @@
|
|
1
1
|
require File.dirname(__FILE__) + '/spec_helper.rb'
|
2
2
|
|
3
|
-
describe TextField do
|
3
|
+
describe "TextField" do
|
4
4
|
|
5
5
|
before :all do
|
6
|
-
@browser =
|
7
|
-
add_spec_checker(@browser)
|
6
|
+
@browser = Browser.new
|
8
7
|
end
|
9
8
|
|
10
9
|
before :each do
|
@@ -27,15 +26,19 @@ describe TextField do
|
|
27
26
|
@browser.text_field(:index, 1).should exist
|
28
27
|
@browser.text_field(:xpath, "//input[@id='new_user_email']").should exist
|
29
28
|
end
|
29
|
+
|
30
30
|
it "should return true if the element exists (default how = :name)" do
|
31
31
|
@browser.text_field("new_user_email").should exist
|
32
32
|
end
|
33
|
+
|
33
34
|
it "should return true if the element exists (no type attribute)" do
|
34
35
|
@browser.text_field(:id, 'new_user_first_name').should exist
|
35
36
|
end
|
37
|
+
|
36
38
|
it "should return true if the element exists (invalid type attribute)" do
|
37
39
|
@browser.text_field(:id, 'new_user_last_name').should exist
|
38
40
|
end
|
41
|
+
|
39
42
|
it "should return false if the element does not exist" do
|
40
43
|
@browser.text_field(:id, 'no_such_id').should_not exist
|
41
44
|
@browser.text_field(:id, /no_such_id/).should_not exist
|
@@ -50,9 +53,11 @@ describe TextField do
|
|
50
53
|
@browser.text_field(:index, 1337).should_not exist
|
51
54
|
@browser.text_field(:xpath, "//input[@id='no_such_id']").should_not exist
|
52
55
|
end
|
56
|
+
|
53
57
|
it "should raise ArgumentError when 'what' argument is invalid" do
|
54
58
|
lambda { @browser.text_field(:id, 3.14).exists? }.should raise_error(ArgumentError)
|
55
59
|
end
|
60
|
+
|
56
61
|
it "should raise MissingWayOfFindingObjectException when 'how' argument is invalid" do
|
57
62
|
lambda { @browser.text_field(:no_such_how, 'some_value').exists? }.should raise_error(MissingWayOfFindingObjectException)
|
58
63
|
end
|
@@ -63,6 +68,7 @@ describe TextField do
|
|
63
68
|
it "should return the id attribute if the text field exists" do
|
64
69
|
@browser.text_field(:index, 4).id.should == "new_user_occupation"
|
65
70
|
end
|
71
|
+
|
66
72
|
it "should raise UnknownObjectException if the text field doesn't exist" do
|
67
73
|
lambda { @browser.text_field(:index, 1337).id }.should raise_error(UnknownObjectException)
|
68
74
|
end
|
@@ -72,6 +78,7 @@ describe TextField do
|
|
72
78
|
it "should return the name attribute if the text field exists" do
|
73
79
|
@browser.text_field(:index, 4).name.should == "new_user_occupation"
|
74
80
|
end
|
81
|
+
|
75
82
|
it "should raise UnknownObjectException if the text field doesn't exist" do
|
76
83
|
lambda { @browser.text_field(:index, 1337).name }.should raise_error(UnknownObjectException)
|
77
84
|
end
|
@@ -81,6 +88,7 @@ describe TextField do
|
|
81
88
|
it "should return the title attribute if the text field exists" do
|
82
89
|
@browser.text_field(:id, "new_user_code").title.should == "Your personal code"
|
83
90
|
end
|
91
|
+
|
84
92
|
it "should raise UnknownObjectException if the text field doesn't exist" do
|
85
93
|
lambda { @browser.text_field(:index, 1337).title }.should raise_error(UnknownObjectException)
|
86
94
|
end
|
@@ -90,12 +98,15 @@ describe TextField do
|
|
90
98
|
it "should return the type attribute if the text field exists" do
|
91
99
|
@browser.text_field(:index, 4).type.should == "text"
|
92
100
|
end
|
101
|
+
|
93
102
|
it "should return 'text' if the type attribute is invalid" do
|
94
103
|
@browser.text_field(:id, 'new_user_last_name').type.should == "text"
|
95
104
|
end
|
105
|
+
|
96
106
|
it "should return 'text' if the type attribute does not exist" do
|
97
107
|
@browser.text_field(:id, 'new_user_first_name').type.should == "text"
|
98
108
|
end
|
109
|
+
|
99
110
|
it "should raise UnknownObjectException if the text field doesn't exist" do
|
100
111
|
lambda { @browser.text_field(:index, 1337).type }.should raise_error(UnknownObjectException)
|
101
112
|
end
|
@@ -107,10 +118,23 @@ describe TextField do
|
|
107
118
|
@browser.text_field(:index, 4).value.should == "Developer"
|
108
119
|
@browser.text_field(:name, /new_user_occupation/i).value.should == "Developer"
|
109
120
|
end
|
121
|
+
|
110
122
|
it "should raise UnknownObjectException if the text field doesn't exist" do
|
111
123
|
lambda { @browser.text_field(:index, 1337).value }.should raise_error(UnknownObjectException)
|
112
124
|
end
|
113
125
|
end
|
126
|
+
|
127
|
+
describe "#respond_to?" do
|
128
|
+
it "should return true for all attribute methods" do
|
129
|
+
@browser.text_field(:index, 1).should respond_to(:class_name)
|
130
|
+
@browser.text_field(:index, 1).should respond_to(:id)
|
131
|
+
@browser.text_field(:index, 1).should respond_to(:name)
|
132
|
+
@browser.text_field(:index, 1).should respond_to(:title)
|
133
|
+
@browser.text_field(:index, 1).should respond_to(:type)
|
134
|
+
@browser.text_field(:index, 1).should respond_to(:value)
|
135
|
+
end
|
136
|
+
end
|
137
|
+
|
114
138
|
|
115
139
|
# Access methods
|
116
140
|
describe "#enabled?" do
|
@@ -118,9 +142,11 @@ describe TextField do
|
|
118
142
|
@browser.text_field(:name, "new_user_occupation").should be_enabled
|
119
143
|
@browser.text_field(:id, "new_user_email").should be_enabled
|
120
144
|
end
|
145
|
+
|
121
146
|
it "should return false for disabled text fields" do
|
122
147
|
@browser.text_field(:name, "new_user_species").should_not be_enabled
|
123
148
|
end
|
149
|
+
|
124
150
|
it "should raise UnknownObjectException if the text field doesn't exist" do
|
125
151
|
lambda { @browser.text_field(:id, "no_such_id").enabled? }.should raise_error(UnknownObjectException)
|
126
152
|
end
|
@@ -130,9 +156,11 @@ describe TextField do
|
|
130
156
|
it "should return true if the text field is disabled" do
|
131
157
|
@browser.text_field(:id, 'new_user_species').should be_disabled
|
132
158
|
end
|
159
|
+
|
133
160
|
it "should return false if the text field is enabled" do
|
134
161
|
@browser.text_field(:index, 1).should_not be_disabled
|
135
162
|
end
|
163
|
+
|
136
164
|
it "should raise UnknownObjectException if the text field doesn't exist" do
|
137
165
|
lambda { @browser.text_field(:index, 1337).disabled? }.should raise_error(UnknownObjectException)
|
138
166
|
end
|
@@ -143,9 +171,11 @@ describe TextField do
|
|
143
171
|
@browser.text_field(:name, "new_user_code").should be_readonly
|
144
172
|
@browser.text_field(:id, "new_user_code").should be_readonly
|
145
173
|
end
|
174
|
+
|
146
175
|
it "should return false for writeable text fields" do
|
147
176
|
@browser.text_field(:name, "new_user_email").should_not be_readonly
|
148
177
|
end
|
178
|
+
|
149
179
|
it "should raise UnknownObjectException if the text field doesn't exist" do
|
150
180
|
lambda { @browser.text_field(:id, 'no_such_id').readonly? }.should raise_error(UnknownObjectException)
|
151
181
|
end
|
@@ -158,16 +188,20 @@ describe TextField do
|
|
158
188
|
@browser.text_field(:name, "new_user_occupation").append(" Append This")
|
159
189
|
@browser.text_field(:name, "new_user_occupation").get_contents.should == "Developer Append This"
|
160
190
|
end
|
191
|
+
|
161
192
|
it "should append multi-byte characters" do
|
162
193
|
@browser.text_field(:name, "new_user_occupation").append(" ijij")
|
163
194
|
@browser.text_field(:name, "new_user_occupation").get_contents.should == "Developer ijij"
|
164
195
|
end
|
196
|
+
|
165
197
|
it "should raise ObjectReadOnlyException if the object is read only" do
|
166
198
|
lambda { @browser.text_field(:id, "new_user_code").append("Append This") }.should raise_error(ObjectReadOnlyException)
|
167
199
|
end
|
200
|
+
|
168
201
|
it "should raise ObjectDisabledException if the object is disabled" do
|
169
202
|
lambda { @browser.text_field(:name, "new_user_species").append("Append This") }.should raise_error(ObjectDisabledException)
|
170
203
|
end
|
204
|
+
|
171
205
|
it "should raise UnknownObjectException if the object doesn't exist" do
|
172
206
|
lambda { @browser.text_field(:name, "no_such_name").append("Append This") }.should raise_error(UnknownObjectException)
|
173
207
|
end
|
@@ -180,6 +214,7 @@ describe TextField do
|
|
180
214
|
@browser.text_field(:id, "delete_user_comment").clear
|
181
215
|
@browser.text_field(:id, "delete_user_comment").get_contents.should be_empty
|
182
216
|
end
|
217
|
+
|
183
218
|
it "should raise UnknownObjectException if the text field doesn't exist" do
|
184
219
|
lambda { @browser.text_field(:id, "no_such_id").clear }.should raise_error(UnknownObjectException)
|
185
220
|
end
|
@@ -192,6 +227,7 @@ describe TextField do
|
|
192
227
|
@browser.text_field(:name, "new_user_first_name").value.should be_empty
|
193
228
|
@browser.text_field(:id, "new_user_last_name").value.should == "Smith"
|
194
229
|
end
|
230
|
+
|
195
231
|
it "should raise UnknownObjectException if either of the text fields doesn't exist" do
|
196
232
|
lambda { @browser.text_field(:id, "no_such_id").drag_contents_to(:name, "new_user_last_name") }.should raise_error(UnknownObjectException)
|
197
233
|
lambda { @browser.text_field(:name, "new_user_first_name").drag_contents_to(:id, "no_such_id") }.should raise_error(UnknownObjectException)
|
@@ -202,9 +238,11 @@ describe TextField do
|
|
202
238
|
it "should return the contents of the text field" do
|
203
239
|
@browser.text_field(:name, "new_user_occupation").get_contents.should == "Developer"
|
204
240
|
end
|
241
|
+
|
205
242
|
it "should raise UnknownObjectException when accessing a non-existing element" do
|
206
243
|
lambda { @browser.text_field(:name, "no_such_name").get_contents }.should raise_error(UnknownObjectException)
|
207
244
|
end
|
245
|
+
|
208
246
|
it "should raise UnknownObjectException if the text field doesn't exist" do
|
209
247
|
lambda { @browser.text_field(:id, "no_such_id").get_contents }.should raise_error(UnknownObjectException)
|
210
248
|
end
|
@@ -215,19 +253,17 @@ describe TextField do
|
|
215
253
|
@browser.text_field(:id, 'new_user_email').value = 'Hello Cruel World'
|
216
254
|
@browser.text_field(:id, "new_user_email").value.should == 'Hello Cruel World'
|
217
255
|
end
|
256
|
+
|
218
257
|
it "should be able to set multi-byte characters" do
|
219
258
|
@browser.text_field(:name, "new_user_occupation").value = "ijij"
|
220
259
|
@browser.text_field(:name, "new_user_occupation").get_contents.should == "ijij"
|
221
260
|
end
|
222
|
-
|
223
|
-
@browser.goto(TEST_HOST + "/latin1_text.html")
|
224
|
-
@browser.text_field(:id, "charset").value = "B\370rsmegler"
|
225
|
-
@browser.text_field(:id, "charset").value.should == "B\370rsmegler"
|
226
|
-
end
|
261
|
+
|
227
262
|
it "should set the value of a textarea element" do
|
228
263
|
@browser.text_field(:id, 'delete_user_comment').value = 'Hello Cruel World'
|
229
264
|
@browser.text_field(:id, "delete_user_comment").value.should == 'Hello Cruel World'
|
230
265
|
end
|
266
|
+
|
231
267
|
it "should raise UnknownObjectException if the text field doesn't exist" do
|
232
268
|
lambda { @browser.text_field(:name, "no_such_name").value = 'yo' }.should raise_error(UnknownObjectException)
|
233
269
|
end
|
@@ -238,27 +274,27 @@ describe TextField do
|
|
238
274
|
@browser.text_field(:id, 'new_user_email').set('Bye Cruel World')
|
239
275
|
@browser.text_field(:id, "new_user_email").value.should == 'Bye Cruel World'
|
240
276
|
end
|
277
|
+
|
241
278
|
it "should set the value of a textarea element" do
|
242
279
|
@browser.text_field(:id, 'delete_user_comment').set('Hello Cruel World')
|
243
280
|
@browser.text_field(:id, "delete_user_comment").value.should == 'Hello Cruel World'
|
244
281
|
end
|
282
|
+
|
245
283
|
it "should fire events" do
|
246
284
|
@browser.text_field(:id, "new_user_username").set("Hello World")
|
247
285
|
@browser.span(:id, "current_length").text.should == "11"
|
248
286
|
end
|
287
|
+
|
249
288
|
it "should be able to set the value of a password field" do
|
250
289
|
@browser.text_field(:name , 'new_user_password').set('secret')
|
251
290
|
@browser.text_field(:name , 'new_user_password').value.should == 'secret'
|
252
291
|
end
|
292
|
+
|
253
293
|
it "should be able to set multi-byte characters" do
|
254
294
|
@browser.text_field(:name, "new_user_occupation").set("ijij")
|
255
295
|
@browser.text_field(:name, "new_user_occupation").get_contents.should == "ijij"
|
256
296
|
end
|
257
|
-
|
258
|
-
@browser.goto(TEST_HOST + "/latin1_text.html")
|
259
|
-
@browser.text_field(:id, "charset").set("B\370rsmegler")
|
260
|
-
@browser.text_field(:id, "charset").get_contents.should == "B\370rsmegler"
|
261
|
-
end
|
297
|
+
|
262
298
|
it "should raise UnknownObjectException if the text field doesn't exist" do
|
263
299
|
lambda { @browser.text_field(:id, "no_such_id").set('secret') }.should raise_error(UnknownObjectException)
|
264
300
|
end
|
@@ -269,10 +305,12 @@ describe TextField do
|
|
269
305
|
@browser.text_field(:name, "new_user_occupation").verify_contains("Developer").should be_true
|
270
306
|
@browser.text_field(:name, "new_user_occupation").verify_contains(/Developer/).should be_true
|
271
307
|
end
|
308
|
+
|
272
309
|
it "should not verify that a text field contains a non-existing value" do
|
273
310
|
@browser.text_field(:name, "new_user_email").verify_contains("no_such_text").should be_false
|
274
311
|
@browser.text_field(:name, "new_user_email").verify_contains(/no_such_text/).should be_false
|
275
312
|
end
|
313
|
+
|
276
314
|
it "should raise UnknownObjectException if the text field doesn't exist" do
|
277
315
|
lambda { @browser.text_field(:id, "no_such_id").verify_contains("Developer") }.should raise_error(UnknownObjectException)
|
278
316
|
end
|
data/spec/text_fields_spec.rb
CHANGED
data/spec/ul_spec.rb
CHANGED
@@ -1,10 +1,9 @@
|
|
1
1
|
require File.dirname(__FILE__) + '/spec_helper.rb'
|
2
2
|
|
3
|
-
describe Ul do
|
3
|
+
describe "Ul" do
|
4
4
|
|
5
5
|
before :all do
|
6
|
-
@browser =
|
7
|
-
add_spec_checker(@browser)
|
6
|
+
@browser = Browser.new
|
8
7
|
end
|
9
8
|
|
10
9
|
before :each do
|
@@ -19,9 +18,11 @@ describe Ul do
|
|
19
18
|
@browser.ul(:index, 1).should exist
|
20
19
|
@browser.ul(:xpath, "//ul[@id='navbar']").should exist
|
21
20
|
end
|
21
|
+
|
22
22
|
it "should return true if the element exists (default how = :id)" do
|
23
23
|
@browser.ul("navbar").should exist
|
24
24
|
end
|
25
|
+
|
25
26
|
it "should return false if the 'ul' doesn't exist" do
|
26
27
|
@browser.ul(:id, "no_such_id").should_not exist
|
27
28
|
@browser.ul(:id, /no_such_id/).should_not exist
|
@@ -32,9 +33,11 @@ describe Ul do
|
|
32
33
|
@browser.ul(:index, 1337).should_not exist
|
33
34
|
@browser.ul(:xpath, "//ul[@id='no_such_id']").should_not exist
|
34
35
|
end
|
36
|
+
|
35
37
|
it "should raise ArgumentError when 'what' argument is invalid" do
|
36
38
|
lambda { @browser.ul(:id, 3.14).exists? }.should raise_error(ArgumentError)
|
37
39
|
end
|
40
|
+
|
38
41
|
it "should raise MissingWayOfFindingObjectException when 'how' argument is invalid" do
|
39
42
|
lambda { @browser.ul(:no_such_how, 'some_value').exists? }.should raise_error(MissingWayOfFindingObjectException)
|
40
43
|
end
|
@@ -45,9 +48,11 @@ describe Ul do
|
|
45
48
|
it "should return the class attribute" do
|
46
49
|
@browser.ul(:id, 'navbar').class_name.should == 'navigation'
|
47
50
|
end
|
51
|
+
|
48
52
|
it "should return an empty string if the element exists and the attribute doesn't" do
|
49
53
|
@browser.ul(:index, 2).class_name.should == ''
|
50
54
|
end
|
55
|
+
|
51
56
|
it "should raise UnknownObjectException if the ul doesn't exist" do
|
52
57
|
lambda { @browser.ul(:id, 'no_such_id').class_name }.should raise_error(UnknownObjectException)
|
53
58
|
end
|
@@ -57,15 +62,25 @@ describe Ul do
|
|
57
62
|
it "should return the id attribute" do
|
58
63
|
@browser.ul(:class, 'navigation').id.should == "navbar"
|
59
64
|
end
|
65
|
+
|
60
66
|
it "should return an empty string if the element exists and the attribute doesn't" do
|
61
67
|
@browser.ul(:index, 2).id.should == ''
|
62
68
|
end
|
69
|
+
|
63
70
|
it "should raise UnknownObjectException if the ul doesn't exist" do
|
64
71
|
lambda { @browser.ul(:id, "no_such_id").id }.should raise_error(UnknownObjectException)
|
65
72
|
lambda { @browser.ul(:index, 1337).id }.should raise_error(UnknownObjectException)
|
66
73
|
end
|
67
74
|
end
|
68
75
|
|
76
|
+
describe "#respond_to?" do
|
77
|
+
it "should return true for all attribute methods" do
|
78
|
+
@browser.ul(:index, 1).should respond_to(:class_name)
|
79
|
+
@browser.ul(:index, 1).should respond_to(:id)
|
80
|
+
end
|
81
|
+
end
|
82
|
+
|
83
|
+
|
69
84
|
after :all do
|
70
85
|
@browser.close
|
71
86
|
end
|