celerity 0.0.3 → 0.0.4
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.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
|