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_bodies_spec.rb
CHANGED
|
@@ -1,14 +1,13 @@
|
|
|
1
1
|
require File.dirname(__FILE__) + '/spec_helper.rb'
|
|
2
2
|
|
|
3
|
-
describe TableBodies do
|
|
3
|
+
describe "TableBodies" 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
|
|
|
@@ -16,6 +15,7 @@ describe TableBodies do
|
|
|
16
15
|
it "should return the correct number of table bodies (page context)" do
|
|
17
16
|
@browser.bodies.length.should == 5
|
|
18
17
|
end
|
|
18
|
+
|
|
19
19
|
it "should return the correct number of table bodies (table context)" do
|
|
20
20
|
@browser.table(:index, 1).bodies.length.should == 2
|
|
21
21
|
end
|
|
@@ -26,6 +26,7 @@ describe TableBodies do
|
|
|
26
26
|
@browser.bodies[1].id.should == "first"
|
|
27
27
|
@browser.bodies[2].name.should == "second"
|
|
28
28
|
end
|
|
29
|
+
|
|
29
30
|
it "should return the row at the given index (table context)" do
|
|
30
31
|
@browser.table(:index, 1).bodies[1].id.should == "first"
|
|
31
32
|
@browser.table(:index, 1).bodies[2].name.should == "second"
|
|
@@ -38,7 +39,8 @@ describe TableBodies do
|
|
|
38
39
|
body.name.should == @browser.tbody(:index, index+1).name
|
|
39
40
|
body.id.should == @browser.tbody(:index, index+1).id
|
|
40
41
|
end
|
|
41
|
-
end
|
|
42
|
+
end
|
|
43
|
+
|
|
42
44
|
it "should iterate through table bodies correctly (table context)" do
|
|
43
45
|
table = @browser.table(:index, 1)
|
|
44
46
|
table.bodies.each_with_index do |body, index|
|
data/spec/table_body_spec.rb
CHANGED
|
@@ -1,14 +1,13 @@
|
|
|
1
1
|
require File.dirname(__FILE__) + '/spec_helper.rb'
|
|
2
2
|
|
|
3
|
-
describe TableBody do
|
|
3
|
+
describe "TableBody" 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
|
|
|
@@ -21,6 +20,7 @@ describe TableBody do
|
|
|
21
20
|
@browser.body(:index, 1).should exist
|
|
22
21
|
@browser.body(:xpath, "//tbody[@id='first']").should exist
|
|
23
22
|
end
|
|
23
|
+
|
|
24
24
|
it "should return true if the table body exists (table context)" do
|
|
25
25
|
@browser.table(:index, 1).body(:id, 'first').should exist
|
|
26
26
|
@browser.table(:index, 1).body(:id, /first/).should exist
|
|
@@ -29,10 +29,12 @@ describe TableBody do
|
|
|
29
29
|
@browser.table(:index, 1).body(:index, 1).should exist
|
|
30
30
|
@browser.table(:index, 1).body(:xpath, "//tbody[@id='first']").should exist
|
|
31
31
|
end
|
|
32
|
+
|
|
32
33
|
it "should return true if the element exists (default how = :id)" do
|
|
33
34
|
@browser.body("first").should exist
|
|
34
35
|
@browser.table(:index, 1).body("first").should exist
|
|
35
36
|
end
|
|
37
|
+
|
|
36
38
|
it "should return false if the table body exists (page context)" do
|
|
37
39
|
@browser.body(:id, 'no_such_id').should_not exist
|
|
38
40
|
@browser.body(:id, /no_such_id/).should_not exist
|
|
@@ -41,6 +43,7 @@ describe TableBody do
|
|
|
41
43
|
@browser.body(:index, 1337).should_not exist
|
|
42
44
|
@browser.body(:xpath, "//tbody[@id='no_such_id']").should_not exist
|
|
43
45
|
end
|
|
46
|
+
|
|
44
47
|
it "should return false if the table body exists (table context)" do
|
|
45
48
|
@browser.table(:index, 1).body(:id, 'no_such_id').should_not exist
|
|
46
49
|
@browser.table(:index, 1).body(:id, /no_such_id/).should_not exist
|
|
@@ -49,10 +52,12 @@ describe TableBody do
|
|
|
49
52
|
@browser.table(:index, 1).body(:index, 1337).should_not exist
|
|
50
53
|
@browser.table(:index, 1).body(:xpath, "//tbody[@id='no_such_id']").should_not exist
|
|
51
54
|
end
|
|
55
|
+
|
|
52
56
|
it "should raise ArgumentError when 'what' argument is invalid" do
|
|
53
57
|
lambda { @browser.body(:id, 3.14).exists? }.should raise_error(ArgumentError)
|
|
54
58
|
lambda { @browser.table(:index, 1).body(: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.body(:no_such_how, 'some_value').exists? }.should raise_error(MissingWayOfFindingObjectException)
|
|
58
63
|
lambda { @browser.table(:index, 1).body(:no_such_how, 'some_value').exists? }.should raise_error(MissingWayOfFindingObjectException)
|
|
@@ -64,6 +69,7 @@ describe TableBody do
|
|
|
64
69
|
@browser.body(:id, 'first').length.should == 3
|
|
65
70
|
@browser.body(:name, 'second').length.should == 3
|
|
66
71
|
end
|
|
72
|
+
|
|
67
73
|
it "should return the correct number of table bodies (table context)" do
|
|
68
74
|
@browser.table(:index, 1).body(:id, 'first').length.should == 3
|
|
69
75
|
@browser.table(:index, 1).body(:name, 'second').length.should == 3
|
|
@@ -76,6 +82,7 @@ describe TableBody do
|
|
|
76
82
|
@browser.body(:id, 'first')[2][1].text.should == 'Gregory House'
|
|
77
83
|
@browser.body(:id, 'first')[3][1].text.should == 'Hugh Laurie'
|
|
78
84
|
end
|
|
85
|
+
|
|
79
86
|
it "should return the row at the given index (table context)" do
|
|
80
87
|
@browser.table(:index, 1).body(:id, 'first')[1].text.should == 'March 2008'
|
|
81
88
|
@browser.table(:index, 1).body(:id, 'first')[2][1].text.should == 'Gregory House'
|
data/spec/table_cell_spec.rb
CHANGED
|
@@ -1,14 +1,13 @@
|
|
|
1
1
|
require File.dirname(__FILE__) + '/spec_helper.rb'
|
|
2
2
|
|
|
3
|
-
describe TableCell do
|
|
3
|
+
describe "TableCell" 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
|
|
|
@@ -22,9 +21,11 @@ describe TableCell do
|
|
|
22
21
|
@browser.cell(:index, 1).should exist
|
|
23
22
|
@browser.cell(:xpath, "//td[@id='t1_r2_c1']").should exist
|
|
24
23
|
end
|
|
24
|
+
|
|
25
25
|
it "should return true if the element exists (default how = :id)" do
|
|
26
26
|
@browser.cell("t1_r2_c1").should exist
|
|
27
27
|
end
|
|
28
|
+
|
|
28
29
|
it "should return false when the table cell does not exist" do
|
|
29
30
|
@browser.cell(:id, 'no_such_id').should_not exist
|
|
30
31
|
@browser.cell(:id, /no_such_id/).should_not exist
|
|
@@ -33,9 +34,11 @@ describe TableCell do
|
|
|
33
34
|
@browser.cell(:index, 1337).should_not exist
|
|
34
35
|
@browser.cell(:xpath, "//td[@id='no_such_id']").should_not exist
|
|
35
36
|
end
|
|
37
|
+
|
|
36
38
|
it "should raise ArgumentError when 'what' argument is invalid" do
|
|
37
39
|
lambda { @browser.cell(:id, 3.14).exists? }.should raise_error(ArgumentError)
|
|
38
40
|
end
|
|
41
|
+
|
|
39
42
|
it "should raise MissingWayOfFindingObjectException when 'how' argument is invalid" do
|
|
40
43
|
lambda { @browser.cell(:no_such_how, 'some_value').exists? }.should raise_error(MissingWayOfFindingObjectException)
|
|
41
44
|
end
|
|
@@ -56,6 +59,14 @@ describe TableCell do
|
|
|
56
59
|
end
|
|
57
60
|
end
|
|
58
61
|
|
|
62
|
+
describe "#respond_to?" do
|
|
63
|
+
it "should return true for all attribute methods" do
|
|
64
|
+
@browser.cell(:index, 1).should respond_to(:text)
|
|
65
|
+
@browser.cell(:index, 1).should respond_to(:colspan)
|
|
66
|
+
end
|
|
67
|
+
end
|
|
68
|
+
|
|
69
|
+
|
|
59
70
|
after :all do
|
|
60
71
|
@browser.close
|
|
61
72
|
end
|
data/spec/table_cells_spec.rb
CHANGED
|
@@ -1,14 +1,13 @@
|
|
|
1
1
|
require File.dirname(__FILE__) + '/spec_helper.rb'
|
|
2
2
|
|
|
3
|
-
describe TableCells do
|
|
3
|
+
describe "TableCells" 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
|
|
data/spec/table_footer_spec.rb
CHANGED
|
@@ -1,14 +1,13 @@
|
|
|
1
1
|
require File.dirname(__FILE__) + '/spec_helper.rb'
|
|
2
2
|
|
|
3
|
-
describe TableFooter do
|
|
3
|
+
describe "TableFooter" 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
|
|
|
@@ -19,32 +18,38 @@ describe TableFooter do
|
|
|
19
18
|
@browser.tfoot(:index, 1).should exist
|
|
20
19
|
@browser.tfoot(:xpath, "//tfoot[@id='tax_totals']").should exist
|
|
21
20
|
end
|
|
21
|
+
|
|
22
22
|
it "should return true if the table tfoot exists (table context)" do
|
|
23
23
|
@browser.table(:index, 1).tfoot(:id, 'tax_totals').should exist
|
|
24
24
|
@browser.table(:index, 1).tfoot(:id, /tax_totals/).should exist
|
|
25
25
|
@browser.table(:index, 1).tfoot(:index, 1).should exist
|
|
26
26
|
@browser.table(:index, 1).tfoot(:xpath, "//tfoot[@id='tax_totals']").should exist
|
|
27
27
|
end
|
|
28
|
+
|
|
28
29
|
it "should return true if the element exists (default how = :id)" do
|
|
29
30
|
@browser.tfoot("tax_totals").should exist
|
|
30
31
|
@browser.table(:index, 1).tfoot("tax_totals").should exist
|
|
31
32
|
end
|
|
33
|
+
|
|
32
34
|
it "should return false if the table tfoot exists (page context)" do
|
|
33
35
|
@browser.tfoot(:id, 'no_such_id').should_not exist
|
|
34
36
|
@browser.tfoot(:id, /no_such_id/).should_not exist
|
|
35
37
|
@browser.tfoot(:index, 1337).should_not exist
|
|
36
38
|
@browser.tfoot(:xpath, "//tfoot[@id='no_such_id']").should_not exist
|
|
37
39
|
end
|
|
40
|
+
|
|
38
41
|
it "should return false if the table tfoot exists (table context)" do
|
|
39
42
|
@browser.table(:index, 1).tfoot(:id, 'no_such_id').should_not exist
|
|
40
43
|
@browser.table(:index, 1).tfoot(:id, /no_such_id/).should_not exist
|
|
41
44
|
@browser.table(:index, 1).tfoot(:index, 1337).should_not exist
|
|
42
45
|
@browser.table(:index, 1).tfoot(:xpath, "//tfoot[@id='no_such_id']").should_not exist
|
|
43
46
|
end
|
|
47
|
+
|
|
44
48
|
it "should raise ArgumentError when 'what' argument is invalid" do
|
|
45
49
|
lambda { @browser.tfoot(:id, 3.14).exists? }.should raise_error(ArgumentError)
|
|
46
50
|
lambda { @browser.table(:index, 1).tfoot(:id, 3.14).exists? }.should raise_error(ArgumentError)
|
|
47
51
|
end
|
|
52
|
+
|
|
48
53
|
it "should raise MissingWayOfFindingObjectException when 'how' argument is invalid" do
|
|
49
54
|
lambda { @browser.tfoot(:no_such_how, 'some_value').exists? }.should raise_error(MissingWayOfFindingObjectException)
|
|
50
55
|
lambda { @browser.table(:index, 1).tfoot(:no_such_how, 'some_value').exists? }.should raise_error(MissingWayOfFindingObjectException)
|
|
@@ -55,6 +60,7 @@ describe TableFooter do
|
|
|
55
60
|
it "should return the correct number of table bodies (page context)" do
|
|
56
61
|
@browser.tfoot(:id, 'tax_totals').length.should == 1
|
|
57
62
|
end
|
|
63
|
+
|
|
58
64
|
it "should return the correct number of table bodies (table context)" do
|
|
59
65
|
@browser.table(:index, 1).tfoot(:id, 'tax_totals').length.should == 1
|
|
60
66
|
end
|
|
@@ -66,6 +72,7 @@ describe TableFooter do
|
|
|
66
72
|
@browser.tfoot(:id, 'tax_totals')[1][2].text.should == '24 349'
|
|
67
73
|
@browser.tfoot(:id, 'tax_totals')[1][3].text.should == '5 577'
|
|
68
74
|
end
|
|
75
|
+
|
|
69
76
|
it "should return the row at the given index (table context)" do
|
|
70
77
|
@browser.table(:index, 1).tfoot(:id, 'tax_totals')[1].text.should == 'Sum 24 349 5 577 18 722'
|
|
71
78
|
@browser.table(:index, 1).tfoot(:id, 'tax_totals')[1][2].text.should == '24 349'
|
data/spec/table_footers_spec.rb
CHANGED
|
@@ -1,14 +1,13 @@
|
|
|
1
1
|
require File.dirname(__FILE__) + '/spec_helper.rb'
|
|
2
2
|
|
|
3
|
-
describe TableFooters do
|
|
3
|
+
describe "TableFooters" 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
|
|
|
@@ -16,6 +15,7 @@ describe TableFooters do
|
|
|
16
15
|
it "should return the correct number of table tfoots (page context)" do
|
|
17
16
|
@browser.tfoots.length.should == 1
|
|
18
17
|
end
|
|
18
|
+
|
|
19
19
|
it "should return the correct number of table tfoots (table context)" do
|
|
20
20
|
@browser.table(:index, 1).tfoots.length.should == 1
|
|
21
21
|
end
|
|
@@ -25,6 +25,7 @@ describe TableFooters do
|
|
|
25
25
|
it "should return the row at the given index (page context)" do
|
|
26
26
|
@browser.tfoots[1].id.should == "tax_totals"
|
|
27
27
|
end
|
|
28
|
+
|
|
28
29
|
it "should return the row at the given index (table context)" do
|
|
29
30
|
@browser.table(:index, 1).tfoots[1].id.should == "tax_totals"
|
|
30
31
|
end
|
|
@@ -36,7 +37,8 @@ describe TableFooters do
|
|
|
36
37
|
tfoot.name.should == @browser.tfoot(:index, index+1).name
|
|
37
38
|
tfoot.id.should == @browser.tfoot(:index, index+1).id
|
|
38
39
|
end
|
|
39
|
-
end
|
|
40
|
+
end
|
|
41
|
+
|
|
40
42
|
it "should iterate through table tfoots correctly (table context)" do
|
|
41
43
|
table = @browser.table(:index, 1)
|
|
42
44
|
table.tfoots.each_with_index do |tfoot, index|
|
data/spec/table_header_spec.rb
CHANGED
|
@@ -1,14 +1,13 @@
|
|
|
1
1
|
require File.dirname(__FILE__) + '/spec_helper.rb'
|
|
2
2
|
|
|
3
|
-
describe TableHeader do
|
|
3
|
+
describe "TableHeader" 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
|
|
|
@@ -19,32 +18,38 @@ describe TableHeader do
|
|
|
19
18
|
@browser.thead(:index, 1).should exist
|
|
20
19
|
@browser.thead(:xpath, "//thead[@id='tax_headers']").should exist
|
|
21
20
|
end
|
|
21
|
+
|
|
22
22
|
it "should return true if the table theader exists (table context)" do
|
|
23
23
|
@browser.table(:index, 1).thead(:id, 'tax_headers').should exist
|
|
24
24
|
@browser.table(:index, 1).thead(:id, /tax_headers/).should exist
|
|
25
25
|
@browser.table(:index, 1).thead(:index, 1).should exist
|
|
26
26
|
@browser.table(:index, 1).thead(:xpath, "//thead[@id='tax_headers']").should exist
|
|
27
27
|
end
|
|
28
|
+
|
|
28
29
|
it "should return true if the element exists (default how = :id)" do
|
|
29
30
|
@browser.thead("tax_headers").should exist
|
|
30
31
|
@browser.table(:index, 1).thead("tax_headers").should exist
|
|
31
32
|
end
|
|
33
|
+
|
|
32
34
|
it "should return false if the table theader exists (page context)" do
|
|
33
35
|
@browser.thead(:id, 'no_such_id').should_not exist
|
|
34
36
|
@browser.thead(:id, /no_such_id/).should_not exist
|
|
35
37
|
@browser.thead(:index, 1337).should_not exist
|
|
36
38
|
@browser.thead(:xpath, "//thead[@id='no_such_id']").should_not exist
|
|
37
39
|
end
|
|
40
|
+
|
|
38
41
|
it "should return false if the table theader exists (table context)" do
|
|
39
42
|
@browser.table(:index, 1).thead(:id, 'no_such_id').should_not exist
|
|
40
43
|
@browser.table(:index, 1).thead(:id, /no_such_id/).should_not exist
|
|
41
44
|
@browser.table(:index, 1).thead(:index, 1337).should_not exist
|
|
42
45
|
@browser.table(:index, 1).thead(:xpath, "//thead[@id='no_such_id']").should_not exist
|
|
43
46
|
end
|
|
47
|
+
|
|
44
48
|
it "should raise ArgumentError when 'what' argument is invalid" do
|
|
45
49
|
lambda { @browser.thead(:id, 3.14).exists? }.should raise_error(ArgumentError)
|
|
46
50
|
lambda { @browser.table(:index, 1).thead(:id, 3.14).exists? }.should raise_error(ArgumentError)
|
|
47
51
|
end
|
|
52
|
+
|
|
48
53
|
it "should raise MissingWayOfFindingObjectException when 'how' argument is invalid" do
|
|
49
54
|
lambda { @browser.thead(:no_such_how, 'some_value').exists? }.should raise_error(MissingWayOfFindingObjectException)
|
|
50
55
|
lambda { @browser.table(:index, 1).thead(:no_such_how, 'some_value').exists? }.should raise_error(MissingWayOfFindingObjectException)
|
|
@@ -55,6 +60,7 @@ describe TableHeader do
|
|
|
55
60
|
it "should return the correct number of table bodies (page context)" do
|
|
56
61
|
@browser.thead(:id, 'tax_headers').length.should == 1
|
|
57
62
|
end
|
|
63
|
+
|
|
58
64
|
it "should return the correct number of table bodies (table context)" do
|
|
59
65
|
@browser.table(:index, 1).thead(:id, 'tax_headers').length.should == 1
|
|
60
66
|
end
|
|
@@ -66,6 +72,7 @@ describe TableHeader do
|
|
|
66
72
|
@browser.thead(:id, 'tax_headers')[1][2].text.should == 'Before income tax'
|
|
67
73
|
@browser.thead(:id, 'tax_headers')[1][3].text.should == 'Income tax'
|
|
68
74
|
end
|
|
75
|
+
|
|
69
76
|
it "should return the row at the given index (table context)" do
|
|
70
77
|
@browser.table(:index, 1).thead(:id, 'tax_headers')[1].text.should == 'Before income tax Income tax After income tax'
|
|
71
78
|
@browser.table(:index, 1).thead(:id, 'tax_headers')[1][2].text.should == 'Before income tax'
|
data/spec/table_headers_spec.rb
CHANGED
|
@@ -1,14 +1,13 @@
|
|
|
1
1
|
require File.dirname(__FILE__) + '/spec_helper.rb'
|
|
2
2
|
|
|
3
|
-
describe TableHeaders do
|
|
3
|
+
describe "TableHeaders" 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
|
|
|
@@ -16,6 +15,7 @@ describe TableHeaders do
|
|
|
16
15
|
it "should return the correct number of table theads (page context)" do
|
|
17
16
|
@browser.theads.length.should == 1
|
|
18
17
|
end
|
|
18
|
+
|
|
19
19
|
it "should return the correct number of table theads (table context)" do
|
|
20
20
|
@browser.table(:index, 1).theads.length.should == 1
|
|
21
21
|
end
|
|
@@ -25,6 +25,7 @@ describe TableHeaders do
|
|
|
25
25
|
it "should return the row at the given index (page context)" do
|
|
26
26
|
@browser.theads[1].id.should == "tax_headers"
|
|
27
27
|
end
|
|
28
|
+
|
|
28
29
|
it "should return the row at the given index (table context)" do
|
|
29
30
|
@browser.table(:index, 1).theads[1].id.should == "tax_headers"
|
|
30
31
|
end
|
|
@@ -36,7 +37,8 @@ describe TableHeaders do
|
|
|
36
37
|
thead.name.should == @browser.thead(:index, index+1).name
|
|
37
38
|
thead.id.should == @browser.thead(:index, index+1).id
|
|
38
39
|
end
|
|
39
|
-
end
|
|
40
|
+
end
|
|
41
|
+
|
|
40
42
|
it "should iterate through table theads correctly (table context)" do
|
|
41
43
|
table = @browser.table(:index, 1)
|
|
42
44
|
table.theads.each_with_index do |thead, index|
|
data/spec/table_row_spec.rb
CHANGED
|
@@ -1,14 +1,13 @@
|
|
|
1
1
|
require File.dirname(__FILE__) + '/spec_helper.rb'
|
|
2
2
|
|
|
3
|
-
describe TableRow do
|
|
3
|
+
describe "TableRow" 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
|
|
|
@@ -19,15 +18,22 @@ describe TableRow do
|
|
|
19
18
|
@browser.row(:index, 1).should exist
|
|
20
19
|
@browser.row(:xpath, "//tr[@id='outer_first']")
|
|
21
20
|
end
|
|
21
|
+
|
|
22
22
|
it "should return true if the element exists (default how = :id)" do
|
|
23
23
|
@browser.row("outer_last").should exist
|
|
24
24
|
end
|
|
25
|
+
|
|
25
26
|
it "should return false if the table row exists" do
|
|
26
|
-
|
|
27
|
+
@browser.row(:id, "no_such_id").should_not exist
|
|
28
|
+
@browser.row(:id, /no_such_id/).should_not exist
|
|
29
|
+
@browser.row(:index, 1337).should_not exist
|
|
30
|
+
@browser.row(:xpath, "//tr[@id='no_such_id']")
|
|
27
31
|
end
|
|
32
|
+
|
|
28
33
|
it "should raise ArgumentError when 'what' argument is invalid" do
|
|
29
34
|
lambda { @browser.row(:id, 3.14).exists? }.should raise_error(ArgumentError)
|
|
30
35
|
end
|
|
36
|
+
|
|
31
37
|
it "should raise MissingWayOfFindingObjectException when 'how' argument is invalid" do
|
|
32
38
|
lambda { @browser.row(:no_such_how, 'some_value').exists? }.should raise_error(MissingWayOfFindingObjectException)
|
|
33
39
|
end
|
|
@@ -51,15 +57,33 @@ describe TableRow do
|
|
|
51
57
|
end
|
|
52
58
|
|
|
53
59
|
describe "#[]" do
|
|
54
|
-
it "should
|
|
60
|
+
it "should return the nth cell of the parent row" do
|
|
55
61
|
@browser.table(:id, 'outer').row(:index, 1)[1].text.should == "Table 1, Row 1, Cell 1"
|
|
56
62
|
@browser.table(:id, 'outer')[1][1].text.should == "Table 1, Row 1, Cell 1"
|
|
57
63
|
@browser.table(:id, 'outer')[3][1].text.should == "Table 1, Row 3, Cell 1"
|
|
58
64
|
end
|
|
65
|
+
|
|
66
|
+
it "should raise UnknownCellException if the index is out of bounds" do
|
|
67
|
+
lambda { @browser.table(:id, 'outer').row(:index, 1)[1337] }.should raise_error(UnknownCellException)
|
|
68
|
+
lambda { @browser.table(:id, 'outer')[1][1337] }.should raise_error(UnknownCellException)
|
|
69
|
+
end
|
|
70
|
+
end
|
|
71
|
+
|
|
72
|
+
describe "#child_cell" do
|
|
73
|
+
it "should return the nth cell of the parent row" do
|
|
74
|
+
@browser.table(:id, 'outer').row(:index, 1).child_cell(1).text.should == "Table 1, Row 1, Cell 1"
|
|
75
|
+
@browser.table(:id, 'outer')[1].child_cell(1).text.should == "Table 1, Row 1, Cell 1"
|
|
76
|
+
@browser.table(:id, 'outer')[3].child_cell(1).text.should == "Table 1, Row 3, Cell 1"
|
|
77
|
+
end
|
|
78
|
+
|
|
79
|
+
it "should raise UnknownCellException if the index is out of bounds" do
|
|
80
|
+
lambda { @browser.table(:id, 'outer').row(:index, 1).child_cell(1337) }.should raise_error(UnknownCellException)
|
|
81
|
+
lambda { @browser.table(:id, 'outer')[1].child_cell(1337) }.should raise_error(UnknownCellException)
|
|
82
|
+
end
|
|
59
83
|
end
|
|
60
84
|
|
|
61
85
|
describe "#each" do
|
|
62
|
-
it "should
|
|
86
|
+
it "should iterate correctly through the cells of the row" do
|
|
63
87
|
index = 1
|
|
64
88
|
@browser.table(:id, 'outer')[2].each do |c|
|
|
65
89
|
case index
|