celerity 0.0.4 → 0.0.6
Sign up to get free protection for your applications and to get access to all the features.
- data/History.txt +33 -0
- data/README.txt +19 -9
- data/Rakefile +9 -3
- data/lib/celerity.rb +39 -39
- data/lib/celerity/browser.rb +538 -153
- data/lib/celerity/clickable_element.rb +48 -7
- data/lib/celerity/collections.rb +155 -131
- data/lib/celerity/container.rb +766 -385
- data/lib/celerity/default_viewer.rb +10 -0
- data/lib/celerity/disabled_element.rb +19 -2
- data/lib/celerity/element.rb +152 -83
- data/lib/celerity/element_collection.rb +106 -0
- data/lib/celerity/element_locator.rb +89 -66
- data/lib/celerity/elements/button.rb +23 -13
- data/lib/celerity/elements/file_field.rb +17 -5
- data/lib/celerity/elements/form.rb +21 -16
- data/lib/celerity/elements/frame.rb +75 -53
- data/lib/celerity/elements/image.rb +76 -63
- data/lib/celerity/elements/label.rb +4 -2
- data/lib/celerity/elements/link.rb +30 -18
- data/lib/celerity/elements/meta.rb +6 -0
- data/lib/celerity/{non_control_elements.rb → elements/non_control_elements.rb} +106 -76
- data/lib/celerity/elements/option.rb +16 -2
- data/lib/celerity/elements/radio_check.rb +55 -20
- data/lib/celerity/elements/select_list.rb +65 -29
- data/lib/celerity/elements/table.rb +141 -94
- data/lib/celerity/elements/table_cell.rb +13 -6
- data/lib/celerity/elements/{table_body.rb → table_elements.rb} +20 -8
- data/lib/celerity/elements/table_row.rb +23 -7
- data/lib/celerity/elements/text_field.rb +89 -33
- data/lib/celerity/exception.rb +77 -41
- data/lib/celerity/extra/method_generator.rb +42 -24
- data/lib/celerity/htmlunit.rb +49 -0
- data/lib/celerity/htmlunit/commons-collections-3.2.1.jar +0 -0
- data/lib/celerity/htmlunit/htmlunit-2.5-SNAPSHOT.jar +0 -0
- data/lib/celerity/htmlunit/htmlunit-core-js-2.5-SNAPSHOT.jar +0 -0
- data/lib/celerity/htmlunit/nekohtml-1.9.12-20090308.130127-11.jar +0 -0
- data/lib/celerity/htmlunit/serializer-2.7.1.jar +0 -0
- data/lib/celerity/htmlunit/xalan-2.7.1.jar +0 -0
- data/lib/celerity/htmlunit/xml-apis-1.3.04.jar +0 -0
- data/lib/celerity/identifier.rb +3 -2
- data/lib/celerity/input_element.rb +5 -5
- data/lib/celerity/listener.rb +135 -0
- data/lib/celerity/resources/no_viewer.png +0 -0
- data/lib/celerity/util.rb +88 -0
- data/lib/celerity/version.rb +4 -3
- data/lib/celerity/watir_compatibility.rb +35 -25
- data/tasks/jar.rake +57 -0
- metadata +35 -142
- data.tar.gz.sig +0 -0
- data/Manifest.txt +0 -150
- data/lib/celerity/element_collections.rb +0 -54
- data/lib/celerity/element_map.rb +0 -51
- data/lib/celerity/elements/table_footer.rb +0 -30
- data/lib/celerity/elements/table_header.rb +0 -30
- data/lib/celerity/htmlunit/commons-collections-3.2.jar +0 -0
- data/lib/celerity/htmlunit/download.sh +0 -23
- data/lib/celerity/htmlunit/htmlunit-2.2.jar +0 -0
- data/lib/celerity/htmlunit/htmlunit-core-js-2.2.jar +0 -0
- data/lib/celerity/htmlunit/nekohtml-1.9.8.jar +0 -0
- data/lib/celerity/htmlunit/xalan-2.7.0.jar +0 -0
- data/lib/celerity/htmlunit/xml-apis-1.0.b2.jar +0 -0
- data/spec/area_spec.rb +0 -97
- data/spec/areas_spec.rb +0 -40
- data/spec/browser_spec.rb +0 -266
- data/spec/button_spec.rb +0 -227
- data/spec/buttons_spec.rb +0 -39
- data/spec/checkbox_spec.rb +0 -302
- data/spec/checkboxes_spec.rb +0 -38
- data/spec/div_spec.rb +0 -207
- data/spec/divs_spec.rb +0 -39
- data/spec/element_spec.rb +0 -79
- data/spec/filefield_spec.rb +0 -123
- data/spec/filefields_spec.rb +0 -40
- data/spec/form_spec.rb +0 -59
- data/spec/forms_spec.rb +0 -41
- data/spec/frame_spec.rb +0 -121
- data/spec/frames_spec.rb +0 -71
- data/spec/hidden_spec.rb +0 -127
- data/spec/hiddens_spec.rb +0 -39
- data/spec/hn_spec.rb +0 -104
- data/spec/hns_spec.rb +0 -45
- data/spec/html/2000_spans.html +0 -2009
- data/spec/html/bug_duplicate_attributes.html +0 -14
- data/spec/html/bug_javascript_001.html +0 -11
- data/spec/html/form_js_bug.html +0 -11
- data/spec/html/forms_with_input_elements.html +0 -114
- data/spec/html/frame_1.html +0 -17
- data/spec/html/frame_2.html +0 -16
- data/spec/html/frames.html +0 -11
- data/spec/html/iframes.html +0 -12
- data/spec/html/images.html +0 -27
- data/spec/html/images/1.gif +0 -0
- data/spec/html/images/2.gif +0 -0
- data/spec/html/images/3.gif +0 -0
- data/spec/html/images/button.jpg +0 -0
- data/spec/html/images/circle.jpg +0 -0
- data/spec/html/images/map.gif +0 -0
- data/spec/html/images/map2.gif +0 -0
- data/spec/html/images/minus.gif +0 -0
- data/spec/html/images/originaltriangle.jpg +0 -0
- data/spec/html/images/plus.gif +0 -0
- data/spec/html/images/square.jpg +0 -0
- data/spec/html/images/triangle.jpg +0 -0
- data/spec/html/invalid_js.html +0 -11
- data/spec/html/latin1_text.html +0 -17
- data/spec/html/non_control_elements.html +0 -115
- data/spec/html/simple_ajax.html +0 -22
- data/spec/html/tables.html +0 -119
- data/spec/html/utf8_text.html +0 -15
- data/spec/htmlunit_spec.rb +0 -26
- data/spec/image_spec.rb +0 -220
- data/spec/images_spec.rb +0 -39
- data/spec/label_spec.rb +0 -79
- data/spec/labels_spec.rb +0 -40
- data/spec/li_spec.rb +0 -139
- data/spec/link_spec.rb +0 -189
- data/spec/links_spec.rb +0 -43
- data/spec/lis_spec.rb +0 -40
- data/spec/map_spec.rb +0 -102
- data/spec/maps_spec.rb +0 -40
- data/spec/meta_spec.rb +0 -8
- data/spec/ol_spec.rb +0 -87
- data/spec/ols_spec.rb +0 -40
- data/spec/option_spec.rb +0 -154
- data/spec/p_spec.rb +0 -171
- data/spec/pre_spec.rb +0 -135
- data/spec/pres_spec.rb +0 -40
- data/spec/ps_spec.rb +0 -40
- data/spec/radio_spec.rb +0 -299
- data/spec/radios_spec.rb +0 -42
- data/spec/select_list_spec.rb +0 -299
- data/spec/select_lists_spec.rb +0 -47
- data/spec/span_spec.rb +0 -184
- data/spec/spans_spec.rb +0 -64
- data/spec/spec.opts +0 -1
- data/spec/spec_helper.rb +0 -55
- data/spec/table_bodies_spec.rb +0 -57
- data/spec/table_body_spec.rb +0 -111
- data/spec/table_cell_spec.rb +0 -74
- data/spec/table_cells_spec.rb +0 -59
- data/spec/table_footer_spec.rb +0 -101
- data/spec/table_footers_spec.rb +0 -55
- data/spec/table_header_spec.rb +0 -101
- data/spec/table_headers_spec.rb +0 -55
- data/spec/table_row_spec.rb +0 -104
- data/spec/table_rows_spec.rb +0 -58
- data/spec/table_spec.rb +0 -160
- data/spec/tables_spec.rb +0 -42
- data/spec/text_field_spec.rb +0 -323
- data/spec/text_fields_spec.rb +0 -44
- data/spec/ul_spec.rb +0 -88
- data/spec/uls_spec.rb +0 -40
- data/spec/watir_compatibility_spec.rb +0 -260
- data/support/spec_server.rb +0 -73
- data/tasks/rspec.rake +0 -30
- data/tasks/specserver.rake +0 -21
- metadata.gz.sig +0 -0
data/spec/map_spec.rb
DELETED
@@ -1,102 +0,0 @@
|
|
1
|
-
require File.dirname(__FILE__) + '/spec_helper.rb'
|
2
|
-
|
3
|
-
describe "Map" do
|
4
|
-
|
5
|
-
before :all do
|
6
|
-
@browser = Browser.new
|
7
|
-
end
|
8
|
-
|
9
|
-
before :each do
|
10
|
-
@browser.goto(TEST_HOST + "/images.html")
|
11
|
-
end
|
12
|
-
|
13
|
-
# Exists method
|
14
|
-
describe "#exist?" do
|
15
|
-
it "should return true if the 'map' exists" do
|
16
|
-
@browser.map(:id, "triangle_map").should exist
|
17
|
-
@browser.map(:id, /triangle_map/).should exist
|
18
|
-
@browser.map(:name, "triangle_map").should exist
|
19
|
-
@browser.map(:name, /triangle_map/).should exist
|
20
|
-
@browser.map(:index, 1).should exist
|
21
|
-
@browser.map(:xpath, "//map[@id='triangle_map']").should exist
|
22
|
-
end
|
23
|
-
|
24
|
-
it "should return true if the element exists (default how = :id)" do
|
25
|
-
@browser.map("triangle_map").should exist
|
26
|
-
end
|
27
|
-
|
28
|
-
it "should return false if the 'map' doesn't exist" do
|
29
|
-
@browser.map(:id, "no_such_id").should_not exist
|
30
|
-
@browser.map(:id, /no_such_id/).should_not exist
|
31
|
-
@browser.map(:name, "no_such_id").should_not exist
|
32
|
-
@browser.map(:name, /no_such_id/).should_not exist
|
33
|
-
@browser.map(:index, 1337).should_not exist
|
34
|
-
@browser.map(:xpath, "//map[@id='no_such_id']").should_not exist
|
35
|
-
end
|
36
|
-
|
37
|
-
it "should raise ArgumentError when 'what' argument is invalid" do
|
38
|
-
lambda { @browser.map(:id, 3.14).exists? }.should raise_error(ArgumentError)
|
39
|
-
end
|
40
|
-
|
41
|
-
it "should raise MissingWayOfFindingObjectException when 'how' argument is invalid" do
|
42
|
-
lambda { @browser.map(:no_such_how, 'some_value').exists? }.should raise_error(MissingWayOfFindingObjectException)
|
43
|
-
end
|
44
|
-
end
|
45
|
-
|
46
|
-
# Attribute methods
|
47
|
-
describe "#id" do
|
48
|
-
it "should return the id attribute" do
|
49
|
-
@browser.map(:index, 1).id.should == "triangle_map"
|
50
|
-
end
|
51
|
-
|
52
|
-
it "should return an empty string if the element exists and the attribute doesn't" do
|
53
|
-
@browser.map(:index, 2).id.should == ''
|
54
|
-
end
|
55
|
-
|
56
|
-
it "should raise UnknownObjectException if the p doesn't exist" do
|
57
|
-
lambda { @browser.map(:id, "no_such_id").id }.should raise_error(UnknownObjectException)
|
58
|
-
lambda { @browser.map(:index, 1337).id }.should raise_error(UnknownObjectException)
|
59
|
-
end
|
60
|
-
end
|
61
|
-
|
62
|
-
describe "#name" do
|
63
|
-
it "should return the name attribute" do
|
64
|
-
@browser.map(:index, 1).name.should == "triangle_map"
|
65
|
-
end
|
66
|
-
|
67
|
-
it "should return an empty string if the element exists and the attribute doesn't" do
|
68
|
-
@browser.map(:index, 2).name.should == ''
|
69
|
-
end
|
70
|
-
|
71
|
-
it "should raise UnknownObjectException if the p doesn't exist" do
|
72
|
-
lambda { @browser.map(:id, "no_such_id").name }.should raise_error(UnknownObjectException)
|
73
|
-
lambda { @browser.map(:index, 1337).name }.should raise_error(UnknownObjectException)
|
74
|
-
end
|
75
|
-
end
|
76
|
-
|
77
|
-
describe "#respond_to?" do
|
78
|
-
it "should return true for all attribute methods" do
|
79
|
-
@browser.map(:index, 1).should respond_to(:id)
|
80
|
-
@browser.map(:index, 1).should respond_to(:name)
|
81
|
-
end
|
82
|
-
end
|
83
|
-
|
84
|
-
|
85
|
-
# Other
|
86
|
-
describe "#to_s" do
|
87
|
-
it "should return a human readable representation of the element" do
|
88
|
-
@browser.map(:index, 1).to_s.should == "tag: map\n" +
|
89
|
-
" id: triangle_map\n" +
|
90
|
-
" name: triangle_map"
|
91
|
-
end
|
92
|
-
|
93
|
-
it "should raise UnknownObjectException if the p doesn't exist" do
|
94
|
-
lambda { @browser.map(:xpath, "//map[@id='no_such_id']").to_s }.should raise_error( UnknownObjectException)
|
95
|
-
end
|
96
|
-
end
|
97
|
-
|
98
|
-
after :all do
|
99
|
-
@browser.close
|
100
|
-
end
|
101
|
-
|
102
|
-
end
|
data/spec/maps_spec.rb
DELETED
@@ -1,40 +0,0 @@
|
|
1
|
-
require File.dirname(__FILE__) + '/spec_helper.rb'
|
2
|
-
|
3
|
-
describe "Maps" do
|
4
|
-
|
5
|
-
before :all do
|
6
|
-
@browser = Browser.new
|
7
|
-
end
|
8
|
-
|
9
|
-
before :each do
|
10
|
-
@browser.goto(TEST_HOST + "/images.html")
|
11
|
-
end
|
12
|
-
|
13
|
-
describe "#length" do
|
14
|
-
it "should return the number of maps" do
|
15
|
-
@browser.maps.length.should == 2
|
16
|
-
end
|
17
|
-
end
|
18
|
-
|
19
|
-
describe "#[]" do
|
20
|
-
it "should return the p at the given index" do
|
21
|
-
@browser.maps[1].id.should == "triangle_map"
|
22
|
-
end
|
23
|
-
end
|
24
|
-
|
25
|
-
describe "#each" do
|
26
|
-
it "should iterate through maps correctly" do
|
27
|
-
@browser.maps.each_with_index do |m, index|
|
28
|
-
m.name.should == @browser.map(:index, index+1).name
|
29
|
-
m.id.should == @browser.map(:index, index+1).id
|
30
|
-
m.value.should == @browser.map(:index, index+1).value
|
31
|
-
end
|
32
|
-
end
|
33
|
-
end
|
34
|
-
|
35
|
-
after :all do
|
36
|
-
@browser.close
|
37
|
-
end
|
38
|
-
|
39
|
-
end
|
40
|
-
|
data/spec/meta_spec.rb
DELETED
data/spec/ol_spec.rb
DELETED
@@ -1,87 +0,0 @@
|
|
1
|
-
require File.dirname(__FILE__) + '/spec_helper.rb'
|
2
|
-
|
3
|
-
describe "Ul" do
|
4
|
-
|
5
|
-
before :all do
|
6
|
-
@browser = Browser.new
|
7
|
-
end
|
8
|
-
|
9
|
-
before :each do
|
10
|
-
@browser.goto(TEST_HOST + "/non_control_elements.html")
|
11
|
-
end
|
12
|
-
|
13
|
-
# Exists method
|
14
|
-
describe "#exist?" do
|
15
|
-
it "should return true if the 'ol' exists" do
|
16
|
-
@browser.ol(:id, "favorite_compounds").should exist
|
17
|
-
@browser.ol(:id, /favorite_compounds/).should exist
|
18
|
-
@browser.ol(:index, 1).should exist
|
19
|
-
@browser.ol(:xpath, "//ol[@id='favorite_compounds']").should exist
|
20
|
-
end
|
21
|
-
|
22
|
-
it "should return true if the element exists (default how = :id)" do
|
23
|
-
@browser.ol("favorite_compounds").should exist
|
24
|
-
end
|
25
|
-
|
26
|
-
it "should return false if the 'ol' doesn't exist" do
|
27
|
-
@browser.ol(:id, "no_such_id").should_not exist
|
28
|
-
@browser.ol(:id, /no_such_id/).should_not exist
|
29
|
-
@browser.ol(:text, "no_such_text").should_not exist
|
30
|
-
@browser.ol(:text, /no_such_text/).should_not exist
|
31
|
-
@browser.ol(:class, "no_such_class").should_not exist
|
32
|
-
@browser.ol(:class, /no_such_class/).should_not exist
|
33
|
-
@browser.ol(:index, 1337).should_not exist
|
34
|
-
@browser.ol(:xpath, "//ol[@id='no_such_id']").should_not exist
|
35
|
-
end
|
36
|
-
|
37
|
-
it "should raise ArgumentError when 'what' argument is invalid" do
|
38
|
-
lambda { @browser.ol(:id, 3.14).exists? }.should raise_error(ArgumentError)
|
39
|
-
end
|
40
|
-
|
41
|
-
it "should raise MissingWayOfFindingObjectException when 'how' argument is invalid" do
|
42
|
-
lambda { @browser.ol(:no_such_how, 'some_value').exists? }.should raise_error(MissingWayOfFindingObjectException)
|
43
|
-
end
|
44
|
-
end
|
45
|
-
|
46
|
-
# Attribute methods
|
47
|
-
describe "#class_name" do
|
48
|
-
it "should return the class attribute" do
|
49
|
-
@browser.ol(:id, 'favorite_compounds').class_name.should == 'chemistry'
|
50
|
-
end
|
51
|
-
|
52
|
-
it "should return an empty string if the element exists and the attribute doesn't" do
|
53
|
-
@browser.ol(:index, 2).class_name.should == ''
|
54
|
-
end
|
55
|
-
|
56
|
-
it "should raise UnknownObjectException if the ol doesn't exist" do
|
57
|
-
lambda { @browser.ol(:id, 'no_such_id').class_name }.should raise_error(UnknownObjectException)
|
58
|
-
end
|
59
|
-
end
|
60
|
-
|
61
|
-
describe "#id" do
|
62
|
-
it "should return the id attribute" do
|
63
|
-
@browser.ol(:class, 'chemistry').id.should == "favorite_compounds"
|
64
|
-
end
|
65
|
-
|
66
|
-
it "should return an empty string if the element exists and the attribute doesn't" do
|
67
|
-
@browser.ol(:index, 2).id.should == ''
|
68
|
-
end
|
69
|
-
|
70
|
-
it "should raise UnknownObjectException if the ol doesn't exist" do
|
71
|
-
lambda { @browser.ol(:id, "no_such_id").id }.should raise_error(UnknownObjectException)
|
72
|
-
lambda { @browser.ol(:index, 1337).id }.should raise_error(UnknownObjectException)
|
73
|
-
end
|
74
|
-
end
|
75
|
-
|
76
|
-
describe "#respond_to?" do
|
77
|
-
it "should return true for all attribute methods" do
|
78
|
-
@browser.ol(:index, 1).should respond_to(:class_name)
|
79
|
-
@browser.ol(:index, 1).should respond_to(:id)
|
80
|
-
end
|
81
|
-
end
|
82
|
-
|
83
|
-
after :all do
|
84
|
-
@browser.close
|
85
|
-
end
|
86
|
-
|
87
|
-
end
|
data/spec/ols_spec.rb
DELETED
@@ -1,40 +0,0 @@
|
|
1
|
-
require File.dirname(__FILE__) + '/spec_helper.rb'
|
2
|
-
|
3
|
-
describe "Ols" do
|
4
|
-
|
5
|
-
before :all do
|
6
|
-
@browser = Browser.new
|
7
|
-
end
|
8
|
-
|
9
|
-
before :each do
|
10
|
-
@browser.goto(TEST_HOST + "/non_control_elements.html")
|
11
|
-
end
|
12
|
-
|
13
|
-
describe "#length" do
|
14
|
-
it "should return the number of ols" do
|
15
|
-
@browser.ols.length.should == 2
|
16
|
-
end
|
17
|
-
end
|
18
|
-
|
19
|
-
describe "#[]" do
|
20
|
-
it "should return the ol at the given index" do
|
21
|
-
@browser.ols[1].id.should == "favorite_compounds"
|
22
|
-
end
|
23
|
-
end
|
24
|
-
|
25
|
-
describe "#each" do
|
26
|
-
it "should iterate through ols correctly" do
|
27
|
-
@browser.ols.each_with_index do |ul, index|
|
28
|
-
ul.name.should == @browser.ol(:index, index+1).name
|
29
|
-
ul.id.should == @browser.ol(:index, index+1).id
|
30
|
-
ul.value.should == @browser.ol(:index, index+1).value
|
31
|
-
end
|
32
|
-
end
|
33
|
-
end
|
34
|
-
|
35
|
-
after :all do
|
36
|
-
@browser.close
|
37
|
-
end
|
38
|
-
|
39
|
-
end
|
40
|
-
|
data/spec/option_spec.rb
DELETED
@@ -1,154 +0,0 @@
|
|
1
|
-
require File.dirname(__FILE__) + '/spec_helper.rb'
|
2
|
-
|
3
|
-
describe "Option" do
|
4
|
-
|
5
|
-
before :all do
|
6
|
-
@browser = Browser.new
|
7
|
-
end
|
8
|
-
|
9
|
-
before :each do
|
10
|
-
@browser.goto(TEST_HOST + "/forms_with_input_elements.html")
|
11
|
-
end
|
12
|
-
|
13
|
-
describe "#exists?" do
|
14
|
-
it "should return true if the element exists (page context)" do
|
15
|
-
@browser.option(:id, "nor").should exist
|
16
|
-
@browser.option(:id, /nor/).should exist
|
17
|
-
@browser.option(:value, "2").should exist
|
18
|
-
@browser.option(:value, /2/).should exist
|
19
|
-
@browser.option(:text, "Norway").should exist
|
20
|
-
@browser.option(:text, /Norway/).should exist
|
21
|
-
@browser.option(:class, "scandinavia").should exist
|
22
|
-
@browser.option(:index, 2).should exist
|
23
|
-
@browser.option(:xpath, "//option[@id='nor']").should exist
|
24
|
-
end
|
25
|
-
|
26
|
-
it "should return true if the element exists (select_list context)" do
|
27
|
-
@browser.select_list(:name, "new_user_country").option(:id, "nor").should exist
|
28
|
-
@browser.select_list(:name, "new_user_country").option(:id, /nor/).should exist
|
29
|
-
@browser.select_list(:name, "new_user_country").option(:value, "2").should exist
|
30
|
-
@browser.select_list(:name, "new_user_country").option(:value, /2/).should exist
|
31
|
-
@browser.select_list(:name, "new_user_country").option(:text, "Norway").should exist
|
32
|
-
@browser.select_list(:name, "new_user_country").option(:text, /Norway/).should exist
|
33
|
-
@browser.select_list(:name, "new_user_country").option(:class, "scandinavia").should exist
|
34
|
-
@browser.select_list(:name, "new_user_country").option(:index, 2).should exist
|
35
|
-
@browser.select_list(:name, "new_user_country").option(:xpath, "//option[@id='nor']").should exist
|
36
|
-
end
|
37
|
-
|
38
|
-
it "should return true if the element exists (default how = :text)" do
|
39
|
-
@browser.option("Swedish").should exist
|
40
|
-
@browser.select_list(:name, "new_user_languages").option("Swedish").should exist
|
41
|
-
end
|
42
|
-
|
43
|
-
it "should return false if the element does not exist (page context)" do
|
44
|
-
@browser.option(:id, "no_such_id").should_not exist
|
45
|
-
@browser.option(:id, /no_such_id/).should_not exist
|
46
|
-
@browser.option(:value, "no_such_value").should_not exist
|
47
|
-
@browser.option(:value, /no_such_value/).should_not exist
|
48
|
-
@browser.option(:text, "no_such_text").should_not exist
|
49
|
-
@browser.option(:text, /no_such_text/).should_not exist
|
50
|
-
@browser.option(:class, "no_such_class").should_not exist
|
51
|
-
@browser.option(:index, 1337).should_not exist
|
52
|
-
@browser.option(:xpath, "//option[@id='no_such_id']").should_not exist
|
53
|
-
end
|
54
|
-
|
55
|
-
it "should return false if the element does not exist (select_list context)" do
|
56
|
-
@browser.select_list(:name, "new_user_country").option(:id, "no_such_id").should_not exist
|
57
|
-
@browser.select_list(:name, "new_user_country").option(:id, /no_such_id/).should_not exist
|
58
|
-
@browser.select_list(:name, "new_user_country").option(:value, "no_such_value").should_not exist
|
59
|
-
@browser.select_list(:name, "new_user_country").option(:value, /no_such_value/).should_not exist
|
60
|
-
@browser.select_list(:name, "new_user_country").option(:text, "no_such_text").should_not exist
|
61
|
-
@browser.select_list(:name, "new_user_country").option(:text, /no_such_text/).should_not exist
|
62
|
-
@browser.select_list(:name, "new_user_country").option(:class, "no_such_class").should_not exist
|
63
|
-
@browser.select_list(:name, "new_user_country").option(:index, 1337).should_not exist
|
64
|
-
@browser.select_list(:name, "new_user_country").option(:xpath, "//option[@id='no_such_id']").should_not exist
|
65
|
-
end
|
66
|
-
|
67
|
-
it "should raise ArgumentError when 'what' argument is invalid" do
|
68
|
-
lambda { @browser.option(:id, 3.14).exists? }.should raise_error(ArgumentError)
|
69
|
-
lambda { @browser.select_list(:name, "new_user_country").option(:id, 3.14).exists? }.should raise_error(ArgumentError)
|
70
|
-
end
|
71
|
-
|
72
|
-
it "should raise MissingWayOfFindingObjectException when 'how' argument is invalid" do
|
73
|
-
lambda { @browser.option(:no_such_how, 'some_value').exists? }.should raise_error(MissingWayOfFindingObjectException)
|
74
|
-
lambda { @browser.select_list(:name, "new_user_country").option(:no_such_how, 'some_value').exists? }.should raise_error(MissingWayOfFindingObjectException)
|
75
|
-
end
|
76
|
-
end
|
77
|
-
|
78
|
-
describe "#select" do
|
79
|
-
it "should should be able to select the chosen option (page context)" do
|
80
|
-
@browser.select_list(:name, "new_user_country").clear_selection
|
81
|
-
@browser.option(:text, "Denmark").select
|
82
|
-
@browser.select_list(:name, "new_user_country").get_selected_items.should == ["Denmark"]
|
83
|
-
end
|
84
|
-
|
85
|
-
it "should should be able to select the chosen option (select_list context)" do
|
86
|
-
@browser.select_list(:name, "new_user_country").clear_selection
|
87
|
-
@browser.select_list(:name, "new_user_country").option(:text, "Denmark").select
|
88
|
-
@browser.select_list(:name, "new_user_country").get_selected_items.should == ["Denmark"]
|
89
|
-
end
|
90
|
-
|
91
|
-
it "should select the option when found by text (page context)" do
|
92
|
-
@browser.option(:text, 'Sweden').select
|
93
|
-
@browser.option(:text, 'Sweden').should be_selected
|
94
|
-
end
|
95
|
-
|
96
|
-
it "should select the option when found by text (select_list context)" do
|
97
|
-
@browser.select_list(:name, 'new_user_country').option(:text, 'Sweden').select
|
98
|
-
@browser.select_list(:name, 'new_user_country').option(:text, 'Sweden').should be_selected
|
99
|
-
end
|
100
|
-
|
101
|
-
it "should fire onclick event (page context)" do
|
102
|
-
@browser.option(:text, "Username 3").select
|
103
|
-
@browser.text_field(:id, 'delete_user_comment').value.should == 'Don\'t do it!'
|
104
|
-
end
|
105
|
-
|
106
|
-
it "should fire onclick event (select_list context)" do
|
107
|
-
@browser.select_list(:id, 'delete_user_username').option(:text, "Username 3").select
|
108
|
-
@browser.text_field(:id, 'delete_user_comment').value.should == 'Don\'t do it!'
|
109
|
-
end
|
110
|
-
|
111
|
-
it "should raise UnknownObjectException if the option does not exist (page context)" do
|
112
|
-
lambda { @browser.option(:text, "no_such_text").select }.should raise_error(UnknownObjectException)
|
113
|
-
lambda { @browser.option(:text, /missing/).select }.should raise_error(UnknownObjectException)
|
114
|
-
end
|
115
|
-
|
116
|
-
it "should raise UnknownObjectException if the option does not exist (select_list context)" do
|
117
|
-
lambda { @browser.select_list(:name, "new_user_country").option(:text, "no_such_text").select }.should raise_error(UnknownObjectException)
|
118
|
-
lambda { @browser.select_list(:name, "new_user_country").option(:text, /missing/).select }.should raise_error(UnknownObjectException)
|
119
|
-
end
|
120
|
-
|
121
|
-
it "should raise MissingWayOfFindingObjectException when given a bad 'how' (page context)" do
|
122
|
-
lambda { @browser.option(:missing, "Denmark").select }.should raise_error(MissingWayOfFindingObjectException)
|
123
|
-
end
|
124
|
-
|
125
|
-
it "should raise MissingWayOfFindingObjectException when given a bad 'how' (select_list context)" do
|
126
|
-
lambda { @browser.select_list(:name, "new_user_country").option(:missing, "Denmark").select }.should raise_error(MissingWayOfFindingObjectException)
|
127
|
-
end
|
128
|
-
end
|
129
|
-
|
130
|
-
describe "#class_name" do
|
131
|
-
it "should be able to get attributes (page context)" do
|
132
|
-
@browser.option(:text, 'Sweden').class_name.should == "scandinavia"
|
133
|
-
end
|
134
|
-
|
135
|
-
it "should be able to get attributes (select_list context)" do
|
136
|
-
@browser.select_list(:name, "new_user_country").option(:text , 'Sweden').class_name.should == "scandinavia"
|
137
|
-
end
|
138
|
-
end
|
139
|
-
|
140
|
-
describe "#respond_to?" do
|
141
|
-
it "should return true for all attribute methods" do
|
142
|
-
@browser.option(:index, 1).should respond_to(:class_name)
|
143
|
-
@browser.option(:index, 1).should respond_to(:id)
|
144
|
-
@browser.option(:index, 1).should respond_to(:text)
|
145
|
-
@browser.option(:index, 1).should respond_to(:name)
|
146
|
-
end
|
147
|
-
end
|
148
|
-
|
149
|
-
|
150
|
-
after :all do
|
151
|
-
@browser.close
|
152
|
-
end
|
153
|
-
|
154
|
-
end
|
data/spec/p_spec.rb
DELETED
@@ -1,171 +0,0 @@
|
|
1
|
-
require File.dirname(__FILE__) + '/spec_helper.rb'
|
2
|
-
|
3
|
-
describe P do
|
4
|
-
|
5
|
-
before :all do
|
6
|
-
@browser = Browser.new
|
7
|
-
end
|
8
|
-
|
9
|
-
before :each do
|
10
|
-
@browser.goto(TEST_HOST + "/non_control_elements.html")
|
11
|
-
end
|
12
|
-
|
13
|
-
# Exists method
|
14
|
-
describe "#exist?" do
|
15
|
-
it "should return true if the 'p' exists" do
|
16
|
-
@browser.p(:id, "lead").should exist
|
17
|
-
@browser.p(:id, /lead/).should exist
|
18
|
-
@browser.p(:text, "Dubito, ergo cogito, ergo sum.").should exist
|
19
|
-
@browser.p(:text, /Dubito, ergo cogito, ergo sum/).should exist
|
20
|
-
@browser.p(:class, "lead").should exist
|
21
|
-
@browser.p(:class, /lead/).should exist
|
22
|
-
@browser.p(:index, 1).should exist
|
23
|
-
@browser.p(:xpath, "//p[@id='lead']").should exist
|
24
|
-
end
|
25
|
-
|
26
|
-
it "should return true if the element exists (default how = :id)" do
|
27
|
-
@browser.p("lead").should exist
|
28
|
-
end
|
29
|
-
|
30
|
-
it "should return false if the 'p' doesn't exist" do
|
31
|
-
@browser.p(:id, "no_such_id").should_not exist
|
32
|
-
@browser.p(:id, /no_such_id/).should_not exist
|
33
|
-
@browser.p(:text, "no_such_text").should_not exist
|
34
|
-
@browser.p(:text, /no_such_text/).should_not exist
|
35
|
-
@browser.p(:class, "no_such_class").should_not exist
|
36
|
-
@browser.p(:class, /no_such_class/).should_not exist
|
37
|
-
@browser.p(:index, 1337).should_not exist
|
38
|
-
@browser.p(:xpath, "//p[@id='no_such_id']").should_not exist
|
39
|
-
end
|
40
|
-
|
41
|
-
it "should raise ArgumentError when 'what' argument is invalid" do
|
42
|
-
lambda { @browser.p(:id, 3.14).exists? }.should raise_error(ArgumentError)
|
43
|
-
end
|
44
|
-
|
45
|
-
it "should raise MissingWayOfFindingObjectException when 'how' argument is invalid" do
|
46
|
-
lambda { @browser.p(:no_such_how, 'some_value').exists? }.should raise_error(MissingWayOfFindingObjectException)
|
47
|
-
end
|
48
|
-
end
|
49
|
-
|
50
|
-
# Attribute methods
|
51
|
-
describe "#class_name" do
|
52
|
-
it "should return the class attribute" do
|
53
|
-
@browser.p(:index, 1).class_name.should == 'lead'
|
54
|
-
end
|
55
|
-
|
56
|
-
it "should return an empty string if the element exists and the attribute doesn't" do
|
57
|
-
@browser.p(:index, 3).class_name.should == ''
|
58
|
-
end
|
59
|
-
|
60
|
-
it "should raise UnknownObjectException if the p doesn't exist" do
|
61
|
-
lambda { @browser.p(:id, 'no_such_id').class_name }.should raise_error(UnknownObjectException)
|
62
|
-
end
|
63
|
-
end
|
64
|
-
|
65
|
-
describe "#id" do
|
66
|
-
it "should return the id attribute" do
|
67
|
-
@browser.p(:index, 1).id.should == "lead"
|
68
|
-
end
|
69
|
-
|
70
|
-
it "should return an empty string if the element exists and the attribute doesn't" do
|
71
|
-
@browser.p(:index, 3).id.should == ''
|
72
|
-
end
|
73
|
-
|
74
|
-
it "should raise UnknownObjectException if the p doesn't exist" do
|
75
|
-
lambda { @browser.p(:id, "no_such_id").id }.should raise_error(UnknownObjectException)
|
76
|
-
lambda { @browser.p(:index, 1337).id }.should raise_error(UnknownObjectException)
|
77
|
-
end
|
78
|
-
end
|
79
|
-
|
80
|
-
describe "#name" do
|
81
|
-
it "should return the name attribute" do
|
82
|
-
@browser.p(:index, 2).name.should == "invalid_attribute"
|
83
|
-
end
|
84
|
-
|
85
|
-
it "should return an empty string if the element exists and the attribute doesn't" do
|
86
|
-
@browser.p(:index, 3).name.should == ''
|
87
|
-
end
|
88
|
-
|
89
|
-
it "should raise UnknownObjectException if the p doesn't exist" do
|
90
|
-
lambda { @browser.p(:id, "no_such_id").name }.should raise_error(UnknownObjectException)
|
91
|
-
lambda { @browser.p(:index, 1337).name }.should raise_error(UnknownObjectException)
|
92
|
-
end
|
93
|
-
end
|
94
|
-
|
95
|
-
describe "#title" do
|
96
|
-
it "should return the title attribute" do
|
97
|
-
@browser.p(:index, 1).title.should == 'Lorem ipsum'
|
98
|
-
end
|
99
|
-
|
100
|
-
it "should return an empty string if the element exists and the attribute doesn't" do
|
101
|
-
@browser.p(:index, 3).title.should == ''
|
102
|
-
end
|
103
|
-
|
104
|
-
it "should raise UnknownObjectException if the p doesn't exist" do
|
105
|
-
lambda { @browser.p(:id, 'no_such_id').title }.should raise_error( UnknownObjectException)
|
106
|
-
lambda { @browser.p(:xpath, "//p[@id='no_such_id']").title }.should raise_error( UnknownObjectException)
|
107
|
-
end
|
108
|
-
end
|
109
|
-
|
110
|
-
describe "#text" do
|
111
|
-
it "should return the text of the p" do
|
112
|
-
@browser.p(:index, 2).text.should == 'Sed pretium metus et quam. Nullam odio dolor, vestibulum non, tempor ut, vehicula sed, sapien. Vestibulum placerat ligula at quam. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas.'
|
113
|
-
end
|
114
|
-
|
115
|
-
it "should return an empty string if the element doesn't contain any text" do
|
116
|
-
@browser.p(:index, 5).text.should == ''
|
117
|
-
end
|
118
|
-
|
119
|
-
it "should raise UnknownObjectException if the p doesn't exist" do
|
120
|
-
lambda { @browser.p(:id, 'no_such_id').text }.should raise_error( UnknownObjectException)
|
121
|
-
lambda { @browser.p(:xpath , "//p[@id='no_such_id']").text }.should raise_error( UnknownObjectException)
|
122
|
-
end
|
123
|
-
end
|
124
|
-
|
125
|
-
describe "#value" do
|
126
|
-
it "should return the value attribute" do
|
127
|
-
@browser.p(:index, 2).value.should == "invalid_attribute"
|
128
|
-
end
|
129
|
-
|
130
|
-
it "should return an empty string if the element exists and the attribute doesn't" do
|
131
|
-
@browser.p(:index, 3).value.should == ''
|
132
|
-
end
|
133
|
-
|
134
|
-
it "should raise UnknownObjectException if the p doesn't exist" do
|
135
|
-
lambda { @browser.p(:id , "no_such_id").value }.should raise_error(UnknownObjectException)
|
136
|
-
lambda { @browser.p(:index , 1337).value }.should raise_error(UnknownObjectException)
|
137
|
-
end
|
138
|
-
end
|
139
|
-
|
140
|
-
describe "#respond_to?" do
|
141
|
-
it "should return true for all attribute methods" do
|
142
|
-
@browser.p(:index, 1).should respond_to(:class_name)
|
143
|
-
@browser.p(:index, 1).should respond_to(:id)
|
144
|
-
@browser.p(:index, 1).should respond_to(:name)
|
145
|
-
@browser.p(:index, 1).should respond_to(:title)
|
146
|
-
@browser.p(:index, 1).should respond_to(:text)
|
147
|
-
@browser.p(:index, 1).should respond_to(:value)
|
148
|
-
end
|
149
|
-
end
|
150
|
-
|
151
|
-
|
152
|
-
# Other
|
153
|
-
describe "#to_s" do
|
154
|
-
it "should return a human readable representation of the element" do
|
155
|
-
@browser.p(:index, 1).to_s.should == "tag: p\n" +
|
156
|
-
" id: lead\n" +
|
157
|
-
" class: lead\n" +
|
158
|
-
" title: Lorem ipsum\n" +
|
159
|
-
" text: Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Curabitur eu pede. Ut justo. Praesent feugiat, elit in feugiat iaculis, sem risus rutrum justo, eget fermentum dolor arcu non nunc."
|
160
|
-
end
|
161
|
-
|
162
|
-
it "should raise UnknownObjectException if the p doesn't exist" do
|
163
|
-
lambda { @browser.p(:xpath, "//p[@id='no_such_id']").to_s }.should raise_error( UnknownObjectException)
|
164
|
-
end
|
165
|
-
end
|
166
|
-
|
167
|
-
after :all do
|
168
|
-
@browser.close
|
169
|
-
end
|
170
|
-
|
171
|
-
end
|