celerity 0.0.4 → 0.0.6

Sign up to get free protection for your applications and to get access to all the features.
Files changed (158) hide show
  1. data/History.txt +33 -0
  2. data/README.txt +19 -9
  3. data/Rakefile +9 -3
  4. data/lib/celerity.rb +39 -39
  5. data/lib/celerity/browser.rb +538 -153
  6. data/lib/celerity/clickable_element.rb +48 -7
  7. data/lib/celerity/collections.rb +155 -131
  8. data/lib/celerity/container.rb +766 -385
  9. data/lib/celerity/default_viewer.rb +10 -0
  10. data/lib/celerity/disabled_element.rb +19 -2
  11. data/lib/celerity/element.rb +152 -83
  12. data/lib/celerity/element_collection.rb +106 -0
  13. data/lib/celerity/element_locator.rb +89 -66
  14. data/lib/celerity/elements/button.rb +23 -13
  15. data/lib/celerity/elements/file_field.rb +17 -5
  16. data/lib/celerity/elements/form.rb +21 -16
  17. data/lib/celerity/elements/frame.rb +75 -53
  18. data/lib/celerity/elements/image.rb +76 -63
  19. data/lib/celerity/elements/label.rb +4 -2
  20. data/lib/celerity/elements/link.rb +30 -18
  21. data/lib/celerity/elements/meta.rb +6 -0
  22. data/lib/celerity/{non_control_elements.rb → elements/non_control_elements.rb} +106 -76
  23. data/lib/celerity/elements/option.rb +16 -2
  24. data/lib/celerity/elements/radio_check.rb +55 -20
  25. data/lib/celerity/elements/select_list.rb +65 -29
  26. data/lib/celerity/elements/table.rb +141 -94
  27. data/lib/celerity/elements/table_cell.rb +13 -6
  28. data/lib/celerity/elements/{table_body.rb → table_elements.rb} +20 -8
  29. data/lib/celerity/elements/table_row.rb +23 -7
  30. data/lib/celerity/elements/text_field.rb +89 -33
  31. data/lib/celerity/exception.rb +77 -41
  32. data/lib/celerity/extra/method_generator.rb +42 -24
  33. data/lib/celerity/htmlunit.rb +49 -0
  34. data/lib/celerity/htmlunit/commons-collections-3.2.1.jar +0 -0
  35. data/lib/celerity/htmlunit/htmlunit-2.5-SNAPSHOT.jar +0 -0
  36. data/lib/celerity/htmlunit/htmlunit-core-js-2.5-SNAPSHOT.jar +0 -0
  37. data/lib/celerity/htmlunit/nekohtml-1.9.12-20090308.130127-11.jar +0 -0
  38. data/lib/celerity/htmlunit/serializer-2.7.1.jar +0 -0
  39. data/lib/celerity/htmlunit/xalan-2.7.1.jar +0 -0
  40. data/lib/celerity/htmlunit/xml-apis-1.3.04.jar +0 -0
  41. data/lib/celerity/identifier.rb +3 -2
  42. data/lib/celerity/input_element.rb +5 -5
  43. data/lib/celerity/listener.rb +135 -0
  44. data/lib/celerity/resources/no_viewer.png +0 -0
  45. data/lib/celerity/util.rb +88 -0
  46. data/lib/celerity/version.rb +4 -3
  47. data/lib/celerity/watir_compatibility.rb +35 -25
  48. data/tasks/jar.rake +57 -0
  49. metadata +35 -142
  50. data.tar.gz.sig +0 -0
  51. data/Manifest.txt +0 -150
  52. data/lib/celerity/element_collections.rb +0 -54
  53. data/lib/celerity/element_map.rb +0 -51
  54. data/lib/celerity/elements/table_footer.rb +0 -30
  55. data/lib/celerity/elements/table_header.rb +0 -30
  56. data/lib/celerity/htmlunit/commons-collections-3.2.jar +0 -0
  57. data/lib/celerity/htmlunit/download.sh +0 -23
  58. data/lib/celerity/htmlunit/htmlunit-2.2.jar +0 -0
  59. data/lib/celerity/htmlunit/htmlunit-core-js-2.2.jar +0 -0
  60. data/lib/celerity/htmlunit/nekohtml-1.9.8.jar +0 -0
  61. data/lib/celerity/htmlunit/xalan-2.7.0.jar +0 -0
  62. data/lib/celerity/htmlunit/xml-apis-1.0.b2.jar +0 -0
  63. data/spec/area_spec.rb +0 -97
  64. data/spec/areas_spec.rb +0 -40
  65. data/spec/browser_spec.rb +0 -266
  66. data/spec/button_spec.rb +0 -227
  67. data/spec/buttons_spec.rb +0 -39
  68. data/spec/checkbox_spec.rb +0 -302
  69. data/spec/checkboxes_spec.rb +0 -38
  70. data/spec/div_spec.rb +0 -207
  71. data/spec/divs_spec.rb +0 -39
  72. data/spec/element_spec.rb +0 -79
  73. data/spec/filefield_spec.rb +0 -123
  74. data/spec/filefields_spec.rb +0 -40
  75. data/spec/form_spec.rb +0 -59
  76. data/spec/forms_spec.rb +0 -41
  77. data/spec/frame_spec.rb +0 -121
  78. data/spec/frames_spec.rb +0 -71
  79. data/spec/hidden_spec.rb +0 -127
  80. data/spec/hiddens_spec.rb +0 -39
  81. data/spec/hn_spec.rb +0 -104
  82. data/spec/hns_spec.rb +0 -45
  83. data/spec/html/2000_spans.html +0 -2009
  84. data/spec/html/bug_duplicate_attributes.html +0 -14
  85. data/spec/html/bug_javascript_001.html +0 -11
  86. data/spec/html/form_js_bug.html +0 -11
  87. data/spec/html/forms_with_input_elements.html +0 -114
  88. data/spec/html/frame_1.html +0 -17
  89. data/spec/html/frame_2.html +0 -16
  90. data/spec/html/frames.html +0 -11
  91. data/spec/html/iframes.html +0 -12
  92. data/spec/html/images.html +0 -27
  93. data/spec/html/images/1.gif +0 -0
  94. data/spec/html/images/2.gif +0 -0
  95. data/spec/html/images/3.gif +0 -0
  96. data/spec/html/images/button.jpg +0 -0
  97. data/spec/html/images/circle.jpg +0 -0
  98. data/spec/html/images/map.gif +0 -0
  99. data/spec/html/images/map2.gif +0 -0
  100. data/spec/html/images/minus.gif +0 -0
  101. data/spec/html/images/originaltriangle.jpg +0 -0
  102. data/spec/html/images/plus.gif +0 -0
  103. data/spec/html/images/square.jpg +0 -0
  104. data/spec/html/images/triangle.jpg +0 -0
  105. data/spec/html/invalid_js.html +0 -11
  106. data/spec/html/latin1_text.html +0 -17
  107. data/spec/html/non_control_elements.html +0 -115
  108. data/spec/html/simple_ajax.html +0 -22
  109. data/spec/html/tables.html +0 -119
  110. data/spec/html/utf8_text.html +0 -15
  111. data/spec/htmlunit_spec.rb +0 -26
  112. data/spec/image_spec.rb +0 -220
  113. data/spec/images_spec.rb +0 -39
  114. data/spec/label_spec.rb +0 -79
  115. data/spec/labels_spec.rb +0 -40
  116. data/spec/li_spec.rb +0 -139
  117. data/spec/link_spec.rb +0 -189
  118. data/spec/links_spec.rb +0 -43
  119. data/spec/lis_spec.rb +0 -40
  120. data/spec/map_spec.rb +0 -102
  121. data/spec/maps_spec.rb +0 -40
  122. data/spec/meta_spec.rb +0 -8
  123. data/spec/ol_spec.rb +0 -87
  124. data/spec/ols_spec.rb +0 -40
  125. data/spec/option_spec.rb +0 -154
  126. data/spec/p_spec.rb +0 -171
  127. data/spec/pre_spec.rb +0 -135
  128. data/spec/pres_spec.rb +0 -40
  129. data/spec/ps_spec.rb +0 -40
  130. data/spec/radio_spec.rb +0 -299
  131. data/spec/radios_spec.rb +0 -42
  132. data/spec/select_list_spec.rb +0 -299
  133. data/spec/select_lists_spec.rb +0 -47
  134. data/spec/span_spec.rb +0 -184
  135. data/spec/spans_spec.rb +0 -64
  136. data/spec/spec.opts +0 -1
  137. data/spec/spec_helper.rb +0 -55
  138. data/spec/table_bodies_spec.rb +0 -57
  139. data/spec/table_body_spec.rb +0 -111
  140. data/spec/table_cell_spec.rb +0 -74
  141. data/spec/table_cells_spec.rb +0 -59
  142. data/spec/table_footer_spec.rb +0 -101
  143. data/spec/table_footers_spec.rb +0 -55
  144. data/spec/table_header_spec.rb +0 -101
  145. data/spec/table_headers_spec.rb +0 -55
  146. data/spec/table_row_spec.rb +0 -104
  147. data/spec/table_rows_spec.rb +0 -58
  148. data/spec/table_spec.rb +0 -160
  149. data/spec/tables_spec.rb +0 -42
  150. data/spec/text_field_spec.rb +0 -323
  151. data/spec/text_fields_spec.rb +0 -44
  152. data/spec/ul_spec.rb +0 -88
  153. data/spec/uls_spec.rb +0 -40
  154. data/spec/watir_compatibility_spec.rb +0 -260
  155. data/support/spec_server.rb +0 -73
  156. data/tasks/rspec.rake +0 -30
  157. data/tasks/specserver.rake +0 -21
  158. 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
@@ -1,8 +0,0 @@
1
- require File.dirname(__FILE__) + '/spec_helper.rb'
2
-
3
- describe "Celerity" do
4
- it "should raise error if run on MRI" do
5
- `ruby #{File.dirname(__FILE__) + "/../lib/celerity"}`
6
- $?.should_not be_success
7
- end
8
- end
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