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_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
|