mkuklis-webrat 0.5.1 → 0.6.rc1

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.
Files changed (211) hide show
  1. data/.document +3 -3
  2. data/.gitignore +14 -14
  3. data/History.txt +413 -413
  4. data/MIT-LICENSE.txt +19 -19
  5. data/README.rdoc +84 -84
  6. data/Rakefile +187 -187
  7. data/VERSION +1 -1
  8. data/install.rb +1 -1
  9. data/lib/webrat/adapters/mechanize.rb +78 -78
  10. data/lib/webrat/adapters/merb.rb +11 -11
  11. data/lib/webrat/adapters/rack.rb +25 -25
  12. data/lib/webrat/adapters/rails.rb +81 -81
  13. data/lib/webrat/adapters/sinatra.rb +9 -9
  14. data/lib/webrat/core/configuration.rb +92 -92
  15. data/lib/webrat/core/elements/area.rb +31 -31
  16. data/lib/webrat/core/elements/element.rb +33 -33
  17. data/lib/webrat/core/elements/field.rb +487 -487
  18. data/lib/webrat/core/elements/form.rb +103 -103
  19. data/lib/webrat/core/elements/label.rb +31 -31
  20. data/lib/webrat/core/elements/link.rb +93 -93
  21. data/lib/webrat/core/elements/select_option.rb +48 -48
  22. data/lib/webrat/core/locators/area_locator.rb +38 -38
  23. data/lib/webrat/core/locators/button_locator.rb +54 -54
  24. data/lib/webrat/core/locators/field_by_id_locator.rb +37 -37
  25. data/lib/webrat/core/locators/field_labeled_locator.rb +56 -56
  26. data/lib/webrat/core/locators/field_locator.rb +25 -25
  27. data/lib/webrat/core/locators/field_named_locator.rb +41 -41
  28. data/lib/webrat/core/locators/form_locator.rb +19 -19
  29. data/lib/webrat/core/locators/label_locator.rb +34 -34
  30. data/lib/webrat/core/locators/link_locator.rb +74 -74
  31. data/lib/webrat/core/locators/locator.rb +20 -20
  32. data/lib/webrat/core/locators/select_option_locator.rb +59 -59
  33. data/lib/webrat/core/locators.rb +20 -20
  34. data/lib/webrat/core/logging.rb +23 -23
  35. data/lib/webrat/core/matchers/have_content.rb +68 -68
  36. data/lib/webrat/core/matchers/have_selector.rb +74 -74
  37. data/lib/webrat/core/matchers/have_tag.rb +21 -21
  38. data/lib/webrat/core/matchers/have_xpath.rb +122 -122
  39. data/lib/webrat/core/matchers.rb +4 -4
  40. data/lib/webrat/core/methods.rb +64 -64
  41. data/lib/webrat/core/mime.rb +18 -18
  42. data/lib/webrat/core/save_and_open_page.rb +48 -48
  43. data/lib/webrat/core/scope.rb +365 -365
  44. data/lib/webrat/core/session.rb +306 -306
  45. data/lib/webrat/core/xml.rb +72 -72
  46. data/lib/webrat/core.rb +13 -13
  47. data/lib/webrat/core_extensions/blank.rb +58 -58
  48. data/lib/webrat/core_extensions/deprecate.rb +8 -8
  49. data/lib/webrat/core_extensions/detect_mapped.rb +12 -12
  50. data/lib/webrat/core_extensions/meta_class.rb +6 -6
  51. data/lib/webrat/core_extensions/nil_to_param.rb +5 -5
  52. data/lib/webrat/core_extensions/tcp_socket.rb +27 -27
  53. data/lib/webrat/integrations/merb.rb +10 -10
  54. data/lib/webrat/integrations/rails.rb +25 -25
  55. data/lib/webrat/integrations/rspec-rails.rb +10 -10
  56. data/lib/webrat/integrations/selenium.rb +11 -11
  57. data/lib/webrat/merb.rb +9 -9
  58. data/lib/webrat/rspec-rails.rb +2 -2
  59. data/lib/webrat/selenium/application_server_factory.rb +40 -40
  60. data/lib/webrat/selenium/application_servers/external.rb +26 -26
  61. data/lib/webrat/selenium/application_servers/merb.rb +50 -50
  62. data/lib/webrat/selenium/application_servers/rails.rb +3 -6
  63. data/lib/webrat/selenium/application_servers/sinatra.rb +37 -37
  64. data/lib/webrat/selenium/application_servers.rb +5 -5
  65. data/lib/webrat/selenium/location_strategy_javascript/button.js +19 -19
  66. data/lib/webrat/selenium/location_strategy_javascript/label.js +42 -42
  67. data/lib/webrat/selenium/location_strategy_javascript/webrat.js +6 -6
  68. data/lib/webrat/selenium/location_strategy_javascript/webratlink.js +32 -32
  69. data/lib/webrat/selenium/location_strategy_javascript/webratlinkwithin.js +15 -15
  70. data/lib/webrat/selenium/location_strategy_javascript/webratselectwithoption.js +5 -5
  71. data/lib/webrat/selenium/matchers/have_content.rb +66 -66
  72. data/lib/webrat/selenium/matchers/have_selector.rb +49 -49
  73. data/lib/webrat/selenium/matchers/have_tag.rb +72 -72
  74. data/lib/webrat/selenium/matchers/have_xpath.rb +45 -45
  75. data/lib/webrat/selenium/matchers.rb +4 -4
  76. data/lib/webrat/selenium/selenium_extensions.js +5 -5
  77. data/lib/webrat/selenium/selenium_rc_server.rb +86 -86
  78. data/lib/webrat/selenium/selenium_session.rb +267 -272
  79. data/lib/webrat/selenium/silence_stream.rb +18 -18
  80. data/lib/webrat/selenium.rb +70 -70
  81. data/lib/webrat.rb +18 -18
  82. data/spec/fakes/test_adapter.rb +37 -37
  83. data/spec/integration/mechanize/Rakefile +6 -6
  84. data/spec/integration/mechanize/config.ru +1 -1
  85. data/spec/integration/mechanize/sample_app.rb +20 -20
  86. data/spec/integration/mechanize/spec/mechanize_spec.rb +22 -22
  87. data/spec/integration/mechanize/spec/spec_helper.rb +27 -27
  88. data/spec/integration/merb/.gitignore +20 -20
  89. data/spec/integration/merb/Rakefile +35 -35
  90. data/spec/integration/merb/app/controllers/application.rb +2 -2
  91. data/spec/integration/merb/app/controllers/exceptions.rb +13 -13
  92. data/spec/integration/merb/app/controllers/testing.rb +27 -27
  93. data/spec/integration/merb/app/views/exceptions/not_acceptable.html.erb +63 -63
  94. data/spec/integration/merb/app/views/exceptions/not_found.html.erb +47 -47
  95. data/spec/integration/merb/app/views/layout/application.html.erb +11 -11
  96. data/spec/integration/merb/app/views/testing/show_form.html.erb +26 -26
  97. data/spec/integration/merb/app/views/testing/upload.html.erb +8 -8
  98. data/spec/integration/merb/config/environments/development.rb +15 -15
  99. data/spec/integration/merb/config/environments/rake.rb +11 -11
  100. data/spec/integration/merb/config/environments/test.rb +14 -14
  101. data/spec/integration/merb/config/init.rb +25 -25
  102. data/spec/integration/merb/config/rack.rb +11 -11
  103. data/spec/integration/merb/config/router.rb +34 -34
  104. data/spec/integration/merb/spec/spec.opts +1 -1
  105. data/spec/integration/merb/spec/spec_helper.rb +26 -26
  106. data/spec/integration/merb/spec/webrat_spec.rb +39 -39
  107. data/spec/integration/merb/tasks/merb.thor/app_script.rb +31 -31
  108. data/spec/integration/merb/tasks/merb.thor/common.rb +64 -64
  109. data/spec/integration/merb/tasks/merb.thor/gem_ext.rb +124 -124
  110. data/spec/integration/merb/tasks/merb.thor/main.thor +149 -149
  111. data/spec/integration/merb/tasks/merb.thor/ops.rb +93 -93
  112. data/spec/integration/merb/tasks/merb.thor/utils.rb +40 -40
  113. data/spec/integration/rack/Rakefile +5 -5
  114. data/spec/integration/rack/app.rb +89 -89
  115. data/spec/integration/rack/test/helper.rb +21 -21
  116. data/spec/integration/rack/test/webrat_rack_test.rb +73 -73
  117. data/spec/integration/rails/.gitignore +3 -3
  118. data/spec/integration/rails/Rakefile +30 -30
  119. data/spec/integration/rails/app/controllers/application.rb +15 -15
  120. data/spec/integration/rails/app/controllers/buttons_controller.rb +7 -7
  121. data/spec/integration/rails/app/controllers/fields_controller.rb +4 -4
  122. data/spec/integration/rails/app/controllers/links_controller.rb +7 -7
  123. data/spec/integration/rails/app/controllers/webrat_controller.rb +46 -46
  124. data/spec/integration/rails/app/helpers/buttons_helper.rb +2 -2
  125. data/spec/integration/rails/app/helpers/fields_helper.rb +2 -2
  126. data/spec/integration/rails/app/helpers/links_helper.rb +2 -2
  127. data/spec/integration/rails/app/views/buttons/show.html.erb +10 -10
  128. data/spec/integration/rails/app/views/fields/show.html.erb +8 -8
  129. data/spec/integration/rails/app/views/links/show.html.erb +5 -5
  130. data/spec/integration/rails/app/views/webrat/before_redirect_form.html.erb +3 -3
  131. data/spec/integration/rails/app/views/webrat/buttons.html.erb +10 -10
  132. data/spec/integration/rails/app/views/webrat/form.html.erb +27 -27
  133. data/spec/integration/rails/app/views/webrat/within.html.erb +2 -2
  134. data/spec/integration/rails/config/boot.rb +109 -109
  135. data/spec/integration/rails/config/environment.rb +12 -12
  136. data/spec/integration/rails/config/environments/development.rb +17 -17
  137. data/spec/integration/rails/config/environments/selenium.rb +22 -22
  138. data/spec/integration/rails/config/environments/test.rb +22 -22
  139. data/spec/integration/rails/config/initializers/inflections.rb +10 -10
  140. data/spec/integration/rails/config/initializers/mime_types.rb +5 -5
  141. data/spec/integration/rails/config/initializers/new_rails_defaults.rb +17 -17
  142. data/spec/integration/rails/config/locales/en.yml +4 -4
  143. data/spec/integration/rails/config/routes.rb +19 -19
  144. data/spec/integration/rails/public/404.html +29 -29
  145. data/spec/integration/rails/public/422.html +29 -29
  146. data/spec/integration/rails/public/500.html +33 -33
  147. data/spec/integration/rails/script/about +3 -3
  148. data/spec/integration/rails/script/console +3 -3
  149. data/spec/integration/rails/script/dbconsole +3 -3
  150. data/spec/integration/rails/script/destroy +3 -3
  151. data/spec/integration/rails/script/generate +3 -3
  152. data/spec/integration/rails/script/performance/benchmarker +3 -3
  153. data/spec/integration/rails/script/performance/profiler +3 -3
  154. data/spec/integration/rails/script/performance/request +3 -3
  155. data/spec/integration/rails/script/plugin +3 -3
  156. data/spec/integration/rails/script/process/inspector +3 -3
  157. data/spec/integration/rails/script/process/reaper +3 -3
  158. data/spec/integration/rails/script/process/spawner +3 -3
  159. data/spec/integration/rails/script/runner +3 -3
  160. data/spec/integration/rails/script/server +3 -3
  161. data/spec/integration/rails/test/integration/button_click_test.rb +80 -80
  162. data/spec/integration/rails/test/integration/fill_in_test.rb +24 -24
  163. data/spec/integration/rails/test/integration/link_click_test.rb +27 -27
  164. data/spec/integration/rails/test/integration/webrat_test.rb +122 -122
  165. data/spec/integration/rails/test/test_helper.rb +26 -26
  166. data/spec/integration/sinatra/Rakefile +5 -5
  167. data/spec/integration/sinatra/classic_app.rb +64 -64
  168. data/spec/integration/sinatra/modular_app.rb +16 -16
  169. data/spec/integration/sinatra/test/classic_app_test.rb +37 -37
  170. data/spec/integration/sinatra/test/modular_app_test.rb +18 -18
  171. data/spec/integration/sinatra/test/test_helper.rb +17 -17
  172. data/spec/private/core/configuration_spec.rb +87 -87
  173. data/spec/private/core/field_spec.rb +85 -85
  174. data/spec/private/core/link_spec.rb +24 -24
  175. data/spec/private/core/session_spec.rb +200 -200
  176. data/spec/private/mechanize/mechanize_adapter_spec.rb +73 -73
  177. data/spec/private/nokogiri_spec.rb +77 -77
  178. data/spec/private/rails/attaches_file_spec.rb +81 -81
  179. data/spec/private/rails/rails_adapter_spec.rb +86 -86
  180. data/spec/private/selenium/application_servers/rails_spec.rb +26 -26
  181. data/spec/public/basic_auth_spec.rb +24 -24
  182. data/spec/public/check_spec.rb +191 -191
  183. data/spec/public/choose_spec.rb +118 -118
  184. data/spec/public/click_area_spec.rb +106 -106
  185. data/spec/public/click_button_spec.rb +494 -494
  186. data/spec/public/click_link_spec.rb +511 -511
  187. data/spec/public/fill_in_spec.rb +224 -224
  188. data/spec/public/locators/field_by_xpath_spec.rb +19 -19
  189. data/spec/public/locators/field_labeled_spec.rb +172 -172
  190. data/spec/public/locators/field_with_id_spec.rb +16 -16
  191. data/spec/public/matchers/contain_spec.rb +114 -114
  192. data/spec/public/matchers/have_selector_spec.rb +146 -146
  193. data/spec/public/matchers/have_tag_spec.rb +39 -39
  194. data/spec/public/matchers/have_xpath_spec.rb +136 -136
  195. data/spec/public/reload_spec.rb +10 -10
  196. data/spec/public/save_and_open_spec.rb +70 -70
  197. data/spec/public/select_date_spec.rb +112 -112
  198. data/spec/public/select_datetime_spec.rb +137 -137
  199. data/spec/public/select_spec.rb +455 -455
  200. data/spec/public/select_time_spec.rb +100 -100
  201. data/spec/public/selenium/application_server_factory_spec.rb +49 -49
  202. data/spec/public/selenium/application_servers/external_spec.rb +12 -12
  203. data/spec/public/selenium/selenium_session_spec.rb +37 -37
  204. data/spec/public/set_hidden_field_spec.rb +5 -5
  205. data/spec/public/submit_form_spec.rb +5 -5
  206. data/spec/public/visit_spec.rb +58 -58
  207. data/spec/public/within_spec.rb +177 -177
  208. data/spec/spec.opts +1 -1
  209. data/spec/spec_helper.rb +54 -54
  210. data/webrat.gemspec +360 -0
  211. metadata +6 -5
@@ -1,146 +1,146 @@
1
- require File.expand_path(File.dirname(__FILE__) + "/../../spec_helper")
2
-
3
- describe "have_selector" do
4
- include Webrat::Matchers
5
-
6
- before(:each) do
7
- @body = <<-HTML
8
- <div id='main'>
9
- <div class='inner'>hello, world!</div>
10
- <h2>Welcome "Bryan"</h2>
11
- <h3>Welcome 'Bryan'</h3>
12
- <h4>Welcome 'Bryan"</h4>
13
- <ul>
14
- <li>First</li>
15
- <li>Second</li>
16
- <li><a href="http://example.org/">Third</a></li>
17
- </ul>
18
- </div>
19
- HTML
20
- end
21
-
22
- it "should be able to match a CSS selector" do
23
- @body.should have_selector("div")
24
- end
25
-
26
- it "should not match a CSS selector that does not exist" do
27
- @body.should_not have_selector("p")
28
- end
29
-
30
- describe "specifying attributes" do
31
- it "should be able to specify the attributes of the tag" do
32
- @body.should have_selector("div", :class => "inner")
33
- end
34
- end
35
-
36
- describe "specifying content" do
37
- it "should be able to specify the content of the tag" do
38
- @body.should have_selector("div", :content => "hello, world!")
39
- end
40
-
41
- it "should be able to specify the content of the tag with double quotes in it" do
42
- @body.should have_selector("h2", :content => 'Welcome "Bryan"')
43
- end
44
-
45
- it "should be able to specify the content of the tag with single quotes in it" do
46
- @body.should have_selector("h3", :content => "Welcome 'Bryan'")
47
- end
48
-
49
- it "should be able to specify the content of the tag with both kinds of quotes" do
50
- @body.should have_selector("h4", :content => "Welcome 'Bryan\"")
51
- end
52
- end
53
-
54
- describe "specifying counts" do
55
- it "should be able to specify the number of occurences of the tag" do
56
- @body.should have_selector("li", :count => 3)
57
- end
58
-
59
- it "should not match if the count is wrong" do
60
- lambda {
61
- @body.should have_selector("li", :count => 4)
62
- }.should raise_error(Spec::Expectations::ExpectationNotMetError)
63
- end
64
-
65
- it "should convert a string to an integer for count" do
66
- @body.should have_selector("li", :count => "3")
67
- end
68
- end
69
-
70
- describe "specifying nested elements" do
71
- it "should be able to loop over all the matched elements" do
72
- @body.should have_selector("div") do |node|
73
- node.first.name.should == "div"
74
- end
75
- end
76
-
77
- it "should not match of any of the matchers in the block fail" do
78
- lambda {
79
- @body.should have_selector("div") do |node|
80
- node.first.name.should == "p"
81
- end
82
- }.should raise_error(Spec::Expectations::ExpectationNotMetError)
83
- end
84
-
85
- it "should be able to use #have_selector in the block" do
86
- @body.should have_selector("#main") do |node|
87
- node.should have_selector(".inner")
88
- end
89
- end
90
-
91
- it "should not match any parent tags in the block" do
92
- lambda {
93
- @body.should have_selector(".inner") do |node|
94
- node.should have_selector("#main")
95
- end
96
- }.should raise_error(Spec::Expectations::ExpectationNotMetError)
97
- end
98
-
99
- it "should work with items that have multiple child nodes" do
100
- @body.should have_selector("ul") do |n|
101
- n.should have_selector("li", :content => "First")
102
- n.should have_selector("li", :content => "Second")
103
- end
104
- end
105
-
106
- it "should work with descendants of the matched elements" do
107
- @body.should have_selector("ul") do |n|
108
- n.should have_selector("a", :content => "Third")
109
- end
110
- end
111
- end
112
-
113
- describe "Test::Unit assertions" do
114
- include Test::Unit::Assertions
115
-
116
- before(:each) do
117
- require 'test/unit'
118
- should_receive(:response_body).and_return @body
119
- end
120
-
121
- describe "assert_have_selector" do
122
- it "should pass when body contains the selection" do
123
- assert_have_selector("div")
124
- end
125
-
126
- it "should throw an exception when the body doesnt have matching selection" do
127
- lambda {
128
- assert_have_selector("p")
129
- }.should raise_error(AssertionFailedError)
130
- end
131
- end
132
-
133
- describe "assert_have_not_selector" do
134
- it "should pass when the body doesn't contan the selection" do
135
- assert_have_no_selector("p")
136
- end
137
-
138
- it "should throw an exception when the body does contain the selection" do
139
- lambda {
140
- assert_have_no_selector("div")
141
- }.should raise_error(AssertionFailedError)
142
- end
143
- end
144
- end
145
-
146
- end
1
+ require File.expand_path(File.dirname(__FILE__) + "/../../spec_helper")
2
+
3
+ describe "have_selector" do
4
+ include Webrat::Matchers
5
+
6
+ before(:each) do
7
+ @body = <<-HTML
8
+ <div id='main'>
9
+ <div class='inner'>hello, world!</div>
10
+ <h2>Welcome "Bryan"</h2>
11
+ <h3>Welcome 'Bryan'</h3>
12
+ <h4>Welcome 'Bryan"</h4>
13
+ <ul>
14
+ <li>First</li>
15
+ <li>Second</li>
16
+ <li><a href="http://example.org/">Third</a></li>
17
+ </ul>
18
+ </div>
19
+ HTML
20
+ end
21
+
22
+ it "should be able to match a CSS selector" do
23
+ @body.should have_selector("div")
24
+ end
25
+
26
+ it "should not match a CSS selector that does not exist" do
27
+ @body.should_not have_selector("p")
28
+ end
29
+
30
+ describe "specifying attributes" do
31
+ it "should be able to specify the attributes of the tag" do
32
+ @body.should have_selector("div", :class => "inner")
33
+ end
34
+ end
35
+
36
+ describe "specifying content" do
37
+ it "should be able to specify the content of the tag" do
38
+ @body.should have_selector("div", :content => "hello, world!")
39
+ end
40
+
41
+ it "should be able to specify the content of the tag with double quotes in it" do
42
+ @body.should have_selector("h2", :content => 'Welcome "Bryan"')
43
+ end
44
+
45
+ it "should be able to specify the content of the tag with single quotes in it" do
46
+ @body.should have_selector("h3", :content => "Welcome 'Bryan'")
47
+ end
48
+
49
+ it "should be able to specify the content of the tag with both kinds of quotes" do
50
+ @body.should have_selector("h4", :content => "Welcome 'Bryan\"")
51
+ end
52
+ end
53
+
54
+ describe "specifying counts" do
55
+ it "should be able to specify the number of occurences of the tag" do
56
+ @body.should have_selector("li", :count => 3)
57
+ end
58
+
59
+ it "should not match if the count is wrong" do
60
+ lambda {
61
+ @body.should have_selector("li", :count => 4)
62
+ }.should raise_error(Spec::Expectations::ExpectationNotMetError)
63
+ end
64
+
65
+ it "should convert a string to an integer for count" do
66
+ @body.should have_selector("li", :count => "3")
67
+ end
68
+ end
69
+
70
+ describe "specifying nested elements" do
71
+ it "should be able to loop over all the matched elements" do
72
+ @body.should have_selector("div") do |node|
73
+ node.first.name.should == "div"
74
+ end
75
+ end
76
+
77
+ it "should not match of any of the matchers in the block fail" do
78
+ lambda {
79
+ @body.should have_selector("div") do |node|
80
+ node.first.name.should == "p"
81
+ end
82
+ }.should raise_error(Spec::Expectations::ExpectationNotMetError)
83
+ end
84
+
85
+ it "should be able to use #have_selector in the block" do
86
+ @body.should have_selector("#main") do |node|
87
+ node.should have_selector(".inner")
88
+ end
89
+ end
90
+
91
+ it "should not match any parent tags in the block" do
92
+ lambda {
93
+ @body.should have_selector(".inner") do |node|
94
+ node.should have_selector("#main")
95
+ end
96
+ }.should raise_error(Spec::Expectations::ExpectationNotMetError)
97
+ end
98
+
99
+ it "should work with items that have multiple child nodes" do
100
+ @body.should have_selector("ul") do |n|
101
+ n.should have_selector("li", :content => "First")
102
+ n.should have_selector("li", :content => "Second")
103
+ end
104
+ end
105
+
106
+ it "should work with descendants of the matched elements" do
107
+ @body.should have_selector("ul") do |n|
108
+ n.should have_selector("a", :content => "Third")
109
+ end
110
+ end
111
+ end
112
+
113
+ describe "Test::Unit assertions" do
114
+ include Test::Unit::Assertions
115
+
116
+ before(:each) do
117
+ require 'test/unit'
118
+ should_receive(:response_body).and_return @body
119
+ end
120
+
121
+ describe "assert_have_selector" do
122
+ it "should pass when body contains the selection" do
123
+ assert_have_selector("div")
124
+ end
125
+
126
+ it "should throw an exception when the body doesnt have matching selection" do
127
+ lambda {
128
+ assert_have_selector("p")
129
+ }.should raise_error(AssertionFailedError)
130
+ end
131
+ end
132
+
133
+ describe "assert_have_not_selector" do
134
+ it "should pass when the body doesn't contan the selection" do
135
+ assert_have_no_selector("p")
136
+ end
137
+
138
+ it "should throw an exception when the body does contain the selection" do
139
+ lambda {
140
+ assert_have_no_selector("div")
141
+ }.should raise_error(AssertionFailedError)
142
+ end
143
+ end
144
+ end
145
+
146
+ end
@@ -1,39 +1,39 @@
1
- require File.expand_path(File.dirname(__FILE__) + "/../../spec_helper")
2
-
3
- describe "have_tag" do
4
- include Webrat::Matchers
5
- include Webrat::HaveTagMatcher
6
-
7
- before(:each) do
8
- @body = <<-HTML
9
- <div id='main'>
10
- <div class='inner'>hello, world!</div>
11
- </div>
12
- HTML
13
- end
14
-
15
- it "should be an alias for have_selector" do
16
- @body.should have_tag("div")
17
- end
18
-
19
- describe "asserts for tags" do
20
- include Test::Unit::Assertions
21
-
22
- before(:each) do
23
- should_receive(:response_body).and_return @body
24
- require 'test/unit'
25
- end
26
-
27
- describe "assert_have_tag" do
28
- it "should be an alias for assert_have_selector" do
29
- assert_have_tag("div")
30
- end
31
- end
32
-
33
- describe "assert_have_no_tag" do
34
- it "should be an alias for assert_have_no_selector" do
35
- assert_have_no_tag("p")
36
- end
37
- end
38
- end
39
- end
1
+ require File.expand_path(File.dirname(__FILE__) + "/../../spec_helper")
2
+
3
+ describe "have_tag" do
4
+ include Webrat::Matchers
5
+ include Webrat::HaveTagMatcher
6
+
7
+ before(:each) do
8
+ @body = <<-HTML
9
+ <div id='main'>
10
+ <div class='inner'>hello, world!</div>
11
+ </div>
12
+ HTML
13
+ end
14
+
15
+ it "should be an alias for have_selector" do
16
+ @body.should have_tag("div")
17
+ end
18
+
19
+ describe "asserts for tags" do
20
+ include Test::Unit::Assertions
21
+
22
+ before(:each) do
23
+ should_receive(:response_body).and_return @body
24
+ require 'test/unit'
25
+ end
26
+
27
+ describe "assert_have_tag" do
28
+ it "should be an alias for assert_have_selector" do
29
+ assert_have_tag("div")
30
+ end
31
+ end
32
+
33
+ describe "assert_have_no_tag" do
34
+ it "should be an alias for assert_have_no_selector" do
35
+ assert_have_no_tag("p")
36
+ end
37
+ end
38
+ end
39
+ end
@@ -1,136 +1,136 @@
1
- require File.expand_path(File.dirname(__FILE__) + "/../../spec_helper")
2
-
3
- describe "have_xpath" do
4
- include Webrat::Matchers
5
-
6
- before(:each) do
7
- @body = <<-HTML
8
- <div id='main'>
9
- <div class='inner'>hello, world!</div>
10
- <h2>Welcome "Bryan"</h2>
11
- <h3>Welcome 'Bryan'</h3>
12
- <h4>Welcome 'Bryan"</h4>
13
- <ul>
14
- <li>First</li>
15
- <li>Second</li>
16
- <li><a href="http://example.org">Third</a></li>
17
- </ul>
18
- </div>
19
- HTML
20
- end
21
-
22
- it "should be able to match an XPATH" do
23
- @body.should have_xpath("//div")
24
- end
25
-
26
- it "should be able to match an XPATH with attributes" do
27
- @body.should have_xpath("//div", :class => "inner")
28
- end
29
-
30
- it "should be able to match an XPATH with content" do
31
- @body.should have_xpath("//div", :content => "hello, world!")
32
- end
33
-
34
- it "should not match an XPATH without content" do
35
- @body.should_not have_xpath("//div", :content => "not present")
36
- end
37
-
38
- it "should be able to match an XPATH with content and class" do
39
- @body.should have_xpath("//div", :class => "inner", :content => "hello, world!")
40
- end
41
-
42
- it "should not match an XPATH with content and wrong class" do
43
- @body.should_not have_xpath("//div", :class => "outer", :content => "hello, world!")
44
- end
45
-
46
- it "should not match an XPATH with wrong content and class" do
47
- @body.should_not have_xpath("//div", :class => "inner", :content => "wrong")
48
- end
49
-
50
- it "should not match an XPATH with wrong content and wrong class" do
51
- @body.should_not have_xpath("//div", :class => "outer", :content => "wrong")
52
- end
53
-
54
- it "should not match a XPATH that does not exist" do
55
- @body.should_not have_xpath("//p")
56
- end
57
-
58
- it "should be able to loop over all the matched elements" do
59
- @body.should have_xpath("//div") do |node|
60
- node.first.name.should == "div"
61
- end
62
- end
63
-
64
- it "should not match if any of the matchers in the block fail" do
65
- lambda {
66
- @body.should have_xpath("//div") do |node|
67
- node.first.name.should == "p"
68
- end
69
- }.should raise_error(Spec::Expectations::ExpectationNotMetError)
70
- end
71
-
72
- it "should be able to use #have_xpath in the block" do
73
- @body.should have_xpath("//div[@id='main']") do |node|
74
- node.should have_xpath("./div[@class='inner']")
75
- end
76
- end
77
-
78
- it "should convert absolute paths to relative in the block" do
79
- @body.should have_xpath("//div[@id='main']") do |node|
80
- node.should have_xpath("//div[@class='inner']")
81
- end
82
- end
83
-
84
- it "should not match any parent tags in the block" do
85
- lambda {
86
- @body.should have_xpath("//div[@class='inner']") do |node|
87
- node.should have_xpath("//div[@id='main']")
88
- end
89
- }.should raise_error(Spec::Expectations::ExpectationNotMetError)
90
- end
91
-
92
- it "should match descendants of the matched elements in the block" do
93
- @body.should have_xpath("//ul") do |node|
94
- node.should have_xpath("//a[@href='http://example.org']")
95
- end
96
- end
97
-
98
- it "should allow descendant selectors in the block" do
99
- @body.should have_xpath("//div[@id='main']") do |node|
100
- node.should have_xpath("//ul//a")
101
- end
102
- end
103
-
104
- describe 'asserts for xpath' do
105
- include Test::Unit::Assertions
106
-
107
- before(:each) do
108
- should_receive(:response_body).and_return @body
109
- require 'test/unit'
110
- end
111
-
112
- describe "assert_have_xpath" do
113
- it "should pass when body contains the selection" do
114
- assert_have_xpath("//div")
115
- end
116
-
117
- it "should throw an exception when the body doesnt have matching xpath" do
118
- lambda {
119
- assert_have_xpath("//p")
120
- }.should raise_error(AssertionFailedError)
121
- end
122
- end
123
-
124
- describe "assert_have_no_xpath" do
125
- it "should pass when the body doesn't contan the xpath" do
126
- assert_have_no_xpath("//p")
127
- end
128
-
129
- it "should throw an exception when the body does contain the xpath" do
130
- lambda {
131
- assert_have_no_xpath("//div")
132
- }.should raise_error(AssertionFailedError)
133
- end
134
- end
135
- end
136
- end
1
+ require File.expand_path(File.dirname(__FILE__) + "/../../spec_helper")
2
+
3
+ describe "have_xpath" do
4
+ include Webrat::Matchers
5
+
6
+ before(:each) do
7
+ @body = <<-HTML
8
+ <div id='main'>
9
+ <div class='inner'>hello, world!</div>
10
+ <h2>Welcome "Bryan"</h2>
11
+ <h3>Welcome 'Bryan'</h3>
12
+ <h4>Welcome 'Bryan"</h4>
13
+ <ul>
14
+ <li>First</li>
15
+ <li>Second</li>
16
+ <li><a href="http://example.org">Third</a></li>
17
+ </ul>
18
+ </div>
19
+ HTML
20
+ end
21
+
22
+ it "should be able to match an XPATH" do
23
+ @body.should have_xpath("//div")
24
+ end
25
+
26
+ it "should be able to match an XPATH with attributes" do
27
+ @body.should have_xpath("//div", :class => "inner")
28
+ end
29
+
30
+ it "should be able to match an XPATH with content" do
31
+ @body.should have_xpath("//div", :content => "hello, world!")
32
+ end
33
+
34
+ it "should not match an XPATH without content" do
35
+ @body.should_not have_xpath("//div", :content => "not present")
36
+ end
37
+
38
+ it "should be able to match an XPATH with content and class" do
39
+ @body.should have_xpath("//div", :class => "inner", :content => "hello, world!")
40
+ end
41
+
42
+ it "should not match an XPATH with content and wrong class" do
43
+ @body.should_not have_xpath("//div", :class => "outer", :content => "hello, world!")
44
+ end
45
+
46
+ it "should not match an XPATH with wrong content and class" do
47
+ @body.should_not have_xpath("//div", :class => "inner", :content => "wrong")
48
+ end
49
+
50
+ it "should not match an XPATH with wrong content and wrong class" do
51
+ @body.should_not have_xpath("//div", :class => "outer", :content => "wrong")
52
+ end
53
+
54
+ it "should not match a XPATH that does not exist" do
55
+ @body.should_not have_xpath("//p")
56
+ end
57
+
58
+ it "should be able to loop over all the matched elements" do
59
+ @body.should have_xpath("//div") do |node|
60
+ node.first.name.should == "div"
61
+ end
62
+ end
63
+
64
+ it "should not match if any of the matchers in the block fail" do
65
+ lambda {
66
+ @body.should have_xpath("//div") do |node|
67
+ node.first.name.should == "p"
68
+ end
69
+ }.should raise_error(Spec::Expectations::ExpectationNotMetError)
70
+ end
71
+
72
+ it "should be able to use #have_xpath in the block" do
73
+ @body.should have_xpath("//div[@id='main']") do |node|
74
+ node.should have_xpath("./div[@class='inner']")
75
+ end
76
+ end
77
+
78
+ it "should convert absolute paths to relative in the block" do
79
+ @body.should have_xpath("//div[@id='main']") do |node|
80
+ node.should have_xpath("//div[@class='inner']")
81
+ end
82
+ end
83
+
84
+ it "should not match any parent tags in the block" do
85
+ lambda {
86
+ @body.should have_xpath("//div[@class='inner']") do |node|
87
+ node.should have_xpath("//div[@id='main']")
88
+ end
89
+ }.should raise_error(Spec::Expectations::ExpectationNotMetError)
90
+ end
91
+
92
+ it "should match descendants of the matched elements in the block" do
93
+ @body.should have_xpath("//ul") do |node|
94
+ node.should have_xpath("//a[@href='http://example.org']")
95
+ end
96
+ end
97
+
98
+ it "should allow descendant selectors in the block" do
99
+ @body.should have_xpath("//div[@id='main']") do |node|
100
+ node.should have_xpath("//ul//a")
101
+ end
102
+ end
103
+
104
+ describe 'asserts for xpath' do
105
+ include Test::Unit::Assertions
106
+
107
+ before(:each) do
108
+ should_receive(:response_body).and_return @body
109
+ require 'test/unit'
110
+ end
111
+
112
+ describe "assert_have_xpath" do
113
+ it "should pass when body contains the selection" do
114
+ assert_have_xpath("//div")
115
+ end
116
+
117
+ it "should throw an exception when the body doesnt have matching xpath" do
118
+ lambda {
119
+ assert_have_xpath("//p")
120
+ }.should raise_error(AssertionFailedError)
121
+ end
122
+ end
123
+
124
+ describe "assert_have_no_xpath" do
125
+ it "should pass when the body doesn't contan the xpath" do
126
+ assert_have_no_xpath("//p")
127
+ end
128
+
129
+ it "should throw an exception when the body does contain the xpath" do
130
+ lambda {
131
+ assert_have_no_xpath("//div")
132
+ }.should raise_error(AssertionFailedError)
133
+ end
134
+ end
135
+ end
136
+ end
@@ -1,10 +1,10 @@
1
- require File.expand_path(File.dirname(__FILE__) + "/../spec_helper")
2
-
3
- describe "reloads" do
4
- it "should reload the page with http referer" do
5
- webrat_session.should_receive(:get).with("/", {})
6
- webrat_session.should_receive(:get).with("/", {}, {"HTTP_REFERER"=>"/"})
7
- visit("/")
8
- reload
9
- end
10
- end
1
+ require File.expand_path(File.dirname(__FILE__) + "/../spec_helper")
2
+
3
+ describe "reloads" do
4
+ it "should reload the page with http referer" do
5
+ webrat_session.should_receive(:get).with("/", {})
6
+ webrat_session.should_receive(:get).with("/", {}, {"HTTP_REFERER"=>"/"})
7
+ visit("/")
8
+ reload
9
+ end
10
+ end