rspec-rails 1.3.2 → 6.1.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (269) hide show
  1. checksums.yaml +7 -0
  2. checksums.yaml.gz.sig +0 -0
  3. data/.document +4 -6
  4. data/.yardopts +11 -0
  5. data/Capybara.md +28 -0
  6. data/Changelog.md +1286 -0
  7. data/LICENSE.md +25 -0
  8. data/README.md +381 -0
  9. data/lib/generators/rspec/channel/channel_generator.rb +12 -0
  10. data/lib/generators/rspec/channel/templates/channel_spec.rb.erb +7 -0
  11. data/lib/generators/rspec/controller/controller_generator.rb +51 -0
  12. data/lib/generators/rspec/controller/templates/controller_spec.rb +16 -0
  13. data/lib/generators/rspec/controller/templates/request_spec.rb +19 -0
  14. data/lib/generators/rspec/controller/templates/routing_spec.rb +13 -0
  15. data/lib/generators/rspec/controller/templates/view_spec.rb +5 -0
  16. data/lib/generators/rspec/feature/feature_generator.rb +29 -0
  17. data/lib/generators/rspec/feature/templates/feature_singular_spec.rb +5 -0
  18. data/lib/generators/rspec/feature/templates/feature_spec.rb +5 -0
  19. data/lib/generators/rspec/generator/generator_generator.rb +24 -0
  20. data/lib/generators/rspec/generator/templates/generator_spec.rb +5 -0
  21. data/lib/generators/rspec/helper/helper_generator.rb +16 -0
  22. data/lib/generators/rspec/helper/templates/helper_spec.rb +17 -0
  23. data/lib/generators/rspec/install/install_generator.rb +80 -0
  24. data/lib/generators/rspec/install/templates/spec/rails_helper.rb +84 -0
  25. data/lib/generators/rspec/integration/integration_generator.rb +29 -0
  26. data/lib/generators/rspec/job/job_generator.rb +13 -0
  27. data/lib/generators/rspec/job/templates/job_spec.rb.erb +7 -0
  28. data/lib/generators/rspec/mailbox/mailbox_generator.rb +14 -0
  29. data/lib/generators/rspec/mailbox/templates/mailbox_spec.rb.erb +7 -0
  30. data/lib/generators/rspec/mailer/mailer_generator.rb +30 -0
  31. data/lib/generators/rspec/mailer/templates/fixture +3 -0
  32. data/lib/generators/rspec/mailer/templates/mailer_spec.rb +25 -0
  33. data/lib/generators/rspec/mailer/templates/preview.rb +13 -0
  34. data/lib/generators/rspec/model/model_generator.rb +37 -0
  35. data/lib/generators/rspec/model/templates/fixtures.yml +19 -0
  36. data/lib/generators/rspec/model/templates/model_spec.rb +7 -0
  37. data/lib/generators/rspec/request/request_generator.rb +17 -0
  38. data/lib/generators/rspec/request/templates/request_spec.rb +10 -0
  39. data/lib/generators/rspec/scaffold/scaffold_generator.rb +136 -0
  40. data/lib/generators/rspec/scaffold/templates/api_controller_spec.rb +129 -0
  41. data/lib/generators/rspec/scaffold/templates/api_request_spec.rb +131 -0
  42. data/lib/generators/rspec/scaffold/templates/controller_spec.rb +160 -0
  43. data/lib/generators/rspec/scaffold/templates/edit_spec.rb +27 -0
  44. data/lib/generators/rspec/scaffold/templates/index_spec.rb +26 -0
  45. data/lib/generators/rspec/scaffold/templates/new_spec.rb +22 -0
  46. data/lib/generators/rspec/scaffold/templates/request_spec.rb +153 -0
  47. data/lib/generators/rspec/scaffold/templates/routing_spec.rb +46 -0
  48. data/lib/generators/rspec/scaffold/templates/show_spec.rb +21 -0
  49. data/lib/generators/rspec/system/system_generator.rb +24 -0
  50. data/lib/generators/rspec/system/templates/system_spec.rb +9 -0
  51. data/lib/generators/rspec/view/templates/view_spec.rb +5 -0
  52. data/lib/generators/rspec/view/view_generator.rb +22 -0
  53. data/lib/generators/rspec.rb +56 -0
  54. data/lib/rspec/rails/active_record.rb +25 -0
  55. data/lib/rspec/rails/adapters.rb +196 -0
  56. data/lib/rspec/rails/configuration.rb +222 -0
  57. data/lib/rspec/rails/example/channel_example_group.rb +93 -0
  58. data/lib/rspec/rails/example/controller_example_group.rb +217 -0
  59. data/lib/rspec/rails/example/feature_example_group.rb +53 -0
  60. data/lib/rspec/rails/example/helper_example_group.rb +42 -0
  61. data/lib/rspec/rails/example/job_example_group.rb +23 -0
  62. data/lib/rspec/rails/example/mailbox_example_group.rb +80 -0
  63. data/lib/rspec/rails/example/mailer_example_group.rb +38 -0
  64. data/lib/rspec/rails/example/model_example_group.rb +11 -0
  65. data/lib/rspec/rails/example/rails_example_group.rb +25 -0
  66. data/lib/rspec/rails/example/request_example_group.rb +27 -0
  67. data/lib/rspec/rails/example/routing_example_group.rb +61 -0
  68. data/lib/rspec/rails/example/system_example_group.rb +172 -0
  69. data/lib/rspec/rails/example/view_example_group.rb +214 -0
  70. data/lib/rspec/rails/example.rb +13 -0
  71. data/lib/rspec/rails/extensions/active_record/proxy.rb +11 -0
  72. data/lib/rspec/rails/extensions.rb +1 -0
  73. data/lib/rspec/rails/feature_check.rb +51 -0
  74. data/lib/rspec/rails/file_fixture_support.rb +18 -0
  75. data/lib/rspec/rails/fixture_file_upload_support.rb +45 -0
  76. data/lib/rspec/rails/fixture_support.rb +89 -0
  77. data/lib/rspec/rails/matchers/action_cable/have_broadcasted_to.rb +173 -0
  78. data/lib/rspec/rails/matchers/action_cable/have_streams.rb +58 -0
  79. data/lib/rspec/rails/matchers/action_cable.rb +65 -0
  80. data/lib/rspec/rails/matchers/action_mailbox.rb +73 -0
  81. data/lib/rspec/rails/matchers/active_job.rb +465 -0
  82. data/lib/rspec/rails/matchers/base_matcher.rb +179 -0
  83. data/lib/rspec/rails/matchers/be_a_new.rb +83 -0
  84. data/lib/rspec/rails/matchers/be_new_record.rb +30 -0
  85. data/lib/rspec/rails/matchers/be_valid.rb +49 -0
  86. data/lib/rspec/rails/matchers/have_enqueued_mail.rb +227 -0
  87. data/lib/rspec/rails/matchers/have_http_status.rb +385 -0
  88. data/lib/rspec/rails/matchers/have_rendered.rb +64 -0
  89. data/lib/rspec/rails/matchers/redirect_to.rb +38 -0
  90. data/lib/rspec/rails/matchers/relation_match_array.rb +3 -0
  91. data/lib/rspec/rails/matchers/routing_matchers.rb +125 -0
  92. data/lib/rspec/rails/matchers/send_email.rb +122 -0
  93. data/lib/rspec/rails/matchers.rb +36 -0
  94. data/lib/rspec/rails/tasks/rspec.rake +47 -0
  95. data/lib/rspec/rails/vendor/capybara.rb +32 -0
  96. data/lib/rspec/rails/version.rb +9 -0
  97. data/lib/rspec/rails/view_assigns.rb +27 -0
  98. data/lib/rspec/rails/view_path_builder.rb +29 -0
  99. data/lib/rspec/rails/view_rendering.rb +166 -0
  100. data/lib/rspec/rails/view_spec_methods.rb +56 -0
  101. data/lib/rspec/rails.rb +18 -0
  102. data/lib/rspec-rails.rb +80 -0
  103. data.tar.gz.sig +2 -0
  104. metadata +308 -261
  105. metadata.gz.sig +0 -0
  106. data/Contribute.rdoc +0 -4
  107. data/History.rdoc +0 -302
  108. data/License.txt +0 -33
  109. data/Manifest.txt +0 -165
  110. data/README.rdoc +0 -45
  111. data/Rakefile +0 -72
  112. data/TODO.txt +0 -17
  113. data/Upgrade.rdoc +0 -148
  114. data/generators/integration_spec/integration_spec_generator.rb +0 -10
  115. data/generators/integration_spec/templates/integration_spec.rb +0 -4
  116. data/generators/rspec/CHANGES +0 -1
  117. data/generators/rspec/rspec_generator.rb +0 -72
  118. data/generators/rspec/templates/previous_failures.txt +0 -0
  119. data/generators/rspec/templates/rcov.opts +0 -2
  120. data/generators/rspec/templates/rspec.rake +0 -144
  121. data/generators/rspec/templates/script/autospec +0 -6
  122. data/generators/rspec/templates/script/spec +0 -10
  123. data/generators/rspec/templates/spec.opts +0 -4
  124. data/generators/rspec/templates/spec_helper.rb +0 -54
  125. data/generators/rspec_controller/USAGE +0 -33
  126. data/generators/rspec_controller/rspec_controller_generator.rb +0 -47
  127. data/generators/rspec_controller/templates/controller_spec.rb +0 -25
  128. data/generators/rspec_controller/templates/helper_spec.rb +0 -11
  129. data/generators/rspec_controller/templates/view_spec.rb +0 -12
  130. data/generators/rspec_default_values.rb +0 -28
  131. data/generators/rspec_model/USAGE +0 -18
  132. data/generators/rspec_model/rspec_model_generator.rb +0 -35
  133. data/generators/rspec_model/templates/model_spec.rb +0 -13
  134. data/generators/rspec_scaffold/rspec_scaffold_generator.rb +0 -154
  135. data/generators/rspec_scaffold/templates/controller_spec.rb +0 -131
  136. data/generators/rspec_scaffold/templates/edit_erb_spec.rb +0 -25
  137. data/generators/rspec_scaffold/templates/helper_spec.rb +0 -11
  138. data/generators/rspec_scaffold/templates/index_erb_spec.rb +0 -27
  139. data/generators/rspec_scaffold/templates/new_erb_spec.rb +0 -25
  140. data/generators/rspec_scaffold/templates/routing_spec.rb +0 -33
  141. data/generators/rspec_scaffold/templates/show_erb_spec.rb +0 -22
  142. data/init.rb +0 -9
  143. data/lib/autotest/discover.rb +0 -5
  144. data/lib/autotest/rails_rspec.rb +0 -76
  145. data/lib/spec/rails/example/assigns_hash_proxy.rb +0 -39
  146. data/lib/spec/rails/example/controller_example_group.rb +0 -285
  147. data/lib/spec/rails/example/cookies_proxy.rb +0 -29
  148. data/lib/spec/rails/example/functional_example_group.rb +0 -106
  149. data/lib/spec/rails/example/helper_example_group.rb +0 -153
  150. data/lib/spec/rails/example/integration_example_group.rb +0 -16
  151. data/lib/spec/rails/example/model_example_group.rb +0 -15
  152. data/lib/spec/rails/example/render_observer.rb +0 -80
  153. data/lib/spec/rails/example/routing_example_group.rb +0 -13
  154. data/lib/spec/rails/example/routing_helpers.rb +0 -66
  155. data/lib/spec/rails/example/view_example_group.rb +0 -199
  156. data/lib/spec/rails/example.rb +0 -48
  157. data/lib/spec/rails/extensions/action_controller/rescue.rb +0 -42
  158. data/lib/spec/rails/extensions/action_controller/test_case.rb +0 -16
  159. data/lib/spec/rails/extensions/action_controller/test_response.rb +0 -21
  160. data/lib/spec/rails/extensions/action_view/base.rb +0 -33
  161. data/lib/spec/rails/extensions/active_record/base.rb +0 -45
  162. data/lib/spec/rails/extensions/active_support/test_case.rb +0 -7
  163. data/lib/spec/rails/extensions/spec/matchers/have.rb +0 -23
  164. data/lib/spec/rails/extensions/spec/runner/configuration.rb +0 -44
  165. data/lib/spec/rails/extensions.rb +0 -11
  166. data/lib/spec/rails/interop/testcase.rb +0 -14
  167. data/lib/spec/rails/matchers/ar_be_valid.rb +0 -27
  168. data/lib/spec/rails/matchers/assert_select.rb +0 -180
  169. data/lib/spec/rails/matchers/change.rb +0 -13
  170. data/lib/spec/rails/matchers/have_text.rb +0 -57
  171. data/lib/spec/rails/matchers/include_text.rb +0 -54
  172. data/lib/spec/rails/matchers/redirect_to.rb +0 -126
  173. data/lib/spec/rails/matchers/render_template.rb +0 -129
  174. data/lib/spec/rails/matchers/route_to.rb +0 -149
  175. data/lib/spec/rails/matchers.rb +0 -32
  176. data/lib/spec/rails/mocks.rb +0 -136
  177. data/lib/spec/rails/version.rb +0 -16
  178. data/lib/spec/rails.rb +0 -26
  179. data/spec/autotest/mappings_spec.rb +0 -86
  180. data/spec/rails_suite.rb +0 -7
  181. data/spec/resources/controllers/action_view_base_spec_controller.rb +0 -2
  182. data/spec/resources/controllers/application.rb +0 -9
  183. data/spec/resources/controllers/controller_spec_controller.rb +0 -127
  184. data/spec/resources/controllers/example.txt +0 -1
  185. data/spec/resources/controllers/redirect_spec_controller.rb +0 -70
  186. data/spec/resources/controllers/render_spec_controller.rb +0 -34
  187. data/spec/resources/controllers/rjs_spec_controller.rb +0 -58
  188. data/spec/resources/helpers/addition_helper.rb +0 -5
  189. data/spec/resources/helpers/explicit_helper.rb +0 -46
  190. data/spec/resources/helpers/more_explicit_helper.rb +0 -5
  191. data/spec/resources/helpers/plugin_application_helper.rb +0 -6
  192. data/spec/resources/helpers/view_spec_helper.rb +0 -13
  193. data/spec/resources/models/animal.rb +0 -4
  194. data/spec/resources/models/person.rb +0 -18
  195. data/spec/resources/models/thing.rb +0 -3
  196. data/spec/resources/views/controller_spec/_partial.html.erb +0 -0
  197. data/spec/resources/views/controller_spec/action_setting_flash_after_session_reset.html.erb +0 -1
  198. data/spec/resources/views/controller_spec/action_setting_flash_before_session_reset.html.erb +0 -1
  199. data/spec/resources/views/controller_spec/action_setting_the_assigns_hash.html.erb +0 -0
  200. data/spec/resources/views/controller_spec/action_with_errors_in_template.html.erb +0 -1
  201. data/spec/resources/views/controller_spec/action_with_template.html.erb +0 -1
  202. data/spec/resources/views/layouts/application.html.erb +0 -0
  203. data/spec/resources/views/layouts/simple.html.erb +0 -0
  204. data/spec/resources/views/objects/_object.html.erb +0 -1
  205. data/spec/resources/views/render_spec/_a_partial.html.erb +0 -0
  206. data/spec/resources/views/render_spec/action_with_alternate_layout.html.erb +0 -0
  207. data/spec/resources/views/render_spec/some_action.html.erb +0 -0
  208. data/spec/resources/views/render_spec/some_action.js.rjs +0 -1
  209. data/spec/resources/views/rjs_spec/_replacement_partial.html.erb +0 -1
  210. data/spec/resources/views/rjs_spec/hide_div.js.rjs +0 -1
  211. data/spec/resources/views/rjs_spec/hide_page_element.js.rjs +0 -1
  212. data/spec/resources/views/rjs_spec/insert_html.js.rjs +0 -1
  213. data/spec/resources/views/rjs_spec/replace.js.rjs +0 -1
  214. data/spec/resources/views/rjs_spec/replace_html.js.rjs +0 -1
  215. data/spec/resources/views/rjs_spec/replace_html_with_partial.js.rjs +0 -1
  216. data/spec/resources/views/rjs_spec/visual_effect.js.rjs +0 -1
  217. data/spec/resources/views/rjs_spec/visual_toggle_effect.js.rjs +0 -1
  218. data/spec/resources/views/tag_spec/no_tags.html.erb +0 -1
  219. data/spec/resources/views/tag_spec/single_div_with_no_attributes.html.erb +0 -1
  220. data/spec/resources/views/tag_spec/single_div_with_one_attribute.html.erb +0 -1
  221. data/spec/resources/views/view_spec/_partial.html.erb +0 -2
  222. data/spec/resources/views/view_spec/_partial_used_twice.html.erb +0 -0
  223. data/spec/resources/views/view_spec/_partial_with_local_variable.html.erb +0 -1
  224. data/spec/resources/views/view_spec/_partial_with_sub_partial.html.erb +0 -1
  225. data/spec/resources/views/view_spec/_spacer.html.erb +0 -1
  226. data/spec/resources/views/view_spec/accessor.html.erb +0 -6
  227. data/spec/resources/views/view_spec/block_helper.html.erb +0 -3
  228. data/spec/resources/views/view_spec/entry_form.html.erb +0 -2
  229. data/spec/resources/views/view_spec/explicit_helper.html.erb +0 -2
  230. data/spec/resources/views/view_spec/foo/show.html.erb +0 -1
  231. data/spec/resources/views/view_spec/implicit_helper.html.erb +0 -2
  232. data/spec/resources/views/view_spec/multiple_helpers.html.erb +0 -3
  233. data/spec/resources/views/view_spec/path_params.html.erb +0 -1
  234. data/spec/resources/views/view_spec/should_not_receive.html.erb +0 -3
  235. data/spec/resources/views/view_spec/template_with_partial.html.erb +0 -5
  236. data/spec/resources/views/view_spec/template_with_partial_using_collection.html.erb +0 -3
  237. data/spec/resources/views/view_spec/template_with_partial_with_array.html.erb +0 -1
  238. data/spec/resources/views/view_spec/view_helpers.html.erb +0 -1
  239. data/spec/spec/rails/example/assigns_hash_proxy_spec.rb +0 -109
  240. data/spec/spec/rails/example/configuration_spec.rb +0 -65
  241. data/spec/spec/rails/example/controller_example_group_spec.rb +0 -307
  242. data/spec/spec/rails/example/controller_isolation_spec.rb +0 -75
  243. data/spec/spec/rails/example/cookies_proxy_spec.rb +0 -87
  244. data/spec/spec/rails/example/error_handling_spec.rb +0 -90
  245. data/spec/spec/rails/example/example_group_factory_spec.rb +0 -112
  246. data/spec/spec/rails/example/helper_example_group_spec.rb +0 -233
  247. data/spec/spec/rails/example/model_example_group_spec.rb +0 -32
  248. data/spec/spec/rails/example/routing_example_group_spec.rb +0 -10
  249. data/spec/spec/rails/example/shared_routing_example_group_examples.rb +0 -237
  250. data/spec/spec/rails/example/test_unit_assertion_accessibility_spec.rb +0 -33
  251. data/spec/spec/rails/example/view_example_group_spec.rb +0 -346
  252. data/spec/spec/rails/extensions/action_view_base_spec.rb +0 -74
  253. data/spec/spec/rails/extensions/active_record_spec.rb +0 -14
  254. data/spec/spec/rails/interop/testcase_spec.rb +0 -70
  255. data/spec/spec/rails/matchers/ar_be_valid_spec.rb +0 -19
  256. data/spec/spec/rails/matchers/assert_select_spec.rb +0 -835
  257. data/spec/spec/rails/matchers/errors_on_spec.rb +0 -37
  258. data/spec/spec/rails/matchers/have_text_spec.rb +0 -69
  259. data/spec/spec/rails/matchers/include_text_spec.rb +0 -62
  260. data/spec/spec/rails/matchers/redirect_to_spec.rb +0 -253
  261. data/spec/spec/rails/matchers/render_template_spec.rb +0 -208
  262. data/spec/spec/rails/matchers/should_change_spec.rb +0 -15
  263. data/spec/spec/rails/mocks/ar_classes.rb +0 -10
  264. data/spec/spec/rails/mocks/mock_model_spec.rb +0 -109
  265. data/spec/spec/rails/mocks/stub_model_spec.rb +0 -80
  266. data/spec/spec/rails/sample_modified_fixture.rb +0 -8
  267. data/spec/spec/rails/sample_spec.rb +0 -8
  268. data/spec/spec/rails/spec_spec.rb +0 -11
  269. data/spec/spec_helper.rb +0 -78
@@ -1,307 +0,0 @@
1
- require 'spec_helper'
2
- require 'controller_spec_controller'
3
- require File.join(File.dirname(__FILE__), "/shared_routing_example_group_examples.rb")
4
-
5
- ['integration', 'isolation'].each do |mode|
6
- describe "A controller example running in #{mode} mode", :type => :controller do
7
- controller_name :controller_spec
8
- integrate_views if mode == 'integration'
9
-
10
- accesses_configured_helper_methods
11
- include RoutingExampleGroupSpec
12
-
13
- describe "with an implicit subject" do
14
- it "uses the controller" do
15
- subject.should == controller
16
- end
17
- end
18
-
19
- describe "with a specified subject" do
20
- subject { 'specified' }
21
-
22
- it "uses the specified subject" do
23
- subject.should == 'specified'
24
- end
25
- end
26
-
27
- it "should provide controller.session as session" do
28
- get 'action_with_template'
29
- session.should equal(controller.session)
30
- end
31
-
32
- it "should provide the same session object before and after the action" do
33
- session_before = session
34
- get 'action_with_template'
35
- session.should equal(session_before)
36
- end
37
-
38
- it "should keep the same data in the session before and after the action" do
39
- session[:foo] = :bar
40
- get 'action_with_template'
41
- session[:foo].should == :bar
42
- end
43
-
44
- it "should ensure controller.session is NOT nil before the action" do
45
- controller.session.should_not be_nil
46
- get 'action_with_template'
47
- end
48
-
49
- it "should ensure controller.session is NOT nil after the action" do
50
- get 'action_with_template'
51
- controller.session.should_not be_nil
52
- end
53
-
54
- it "should allow specifying a partial with partial name only" do
55
- get 'action_with_partial'
56
- response.should render_template("_partial")
57
- end
58
-
59
- it "should allow specifying a partial with should_receive(:render)" do
60
- controller.should_receive(:render).with(:partial => "controller_spec/partial")
61
- get 'action_with_partial'
62
- end
63
-
64
- it "should allow specifying a partial with should_receive(:render) with object" do
65
- controller.should_receive(:render).with(:partial => "controller_spec/partial", :object => "something")
66
- get 'action_with_partial_with_object', :thing => "something"
67
- end
68
-
69
- it "should allow specifying a partial with should_receive(:render) with locals" do
70
- controller.should_receive(:render).with(:partial => "controller_spec/partial", :locals => {:thing => "something"})
71
- get 'action_with_partial_with_locals', :thing => "something"
72
- end
73
-
74
- it "should yield to render :update" do
75
- template = stub("template")
76
- controller.should_receive(:render).with(:update).and_yield(template)
77
- template.should_receive(:replace).with(:bottom, "replace_me", :partial => "non_existent_partial")
78
- get 'action_with_render_update'
79
- end
80
-
81
- it "should allow a path relative to RAILS_ROOT/app/views/ when specifying a partial" do
82
- get 'action_with_partial'
83
- response.should render_template("controller_spec/_partial")
84
- end
85
-
86
- it "should provide access to flash" do
87
- get 'action_which_sets_flash'
88
- flash[:flash_key].should == "flash value"
89
- end
90
-
91
- it "should provide access to flash values set after a session reset" do
92
- get 'action_setting_flash_after_session_reset'
93
- flash[:after_reset].should == "available"
94
- end
95
-
96
- it "should not provide access to flash values set before a session reset" do
97
- get 'action_setting_flash_before_session_reset'
98
- flash[:before_reset].should_not == "available"
99
- end
100
-
101
- it "should provide access to session" do
102
- session[:session_key] = "session value"
103
- lambda do
104
- get 'action_which_gets_session', :expected => "session value"
105
- end.should_not raise_error
106
- end
107
-
108
- it "allows inline rendering" do
109
- get 'action_that_renders_inline'
110
- response.body.should == "inline code"
111
- end
112
-
113
- describe "handling should_receive(:render)" do
114
- it "should warn" do
115
- controller.should_receive(:render).with(:template => "controller_spec/action_with_template")
116
- get :action_with_template
117
- end
118
- end
119
-
120
- describe "handling should_not_receive(:render)" do
121
- it "should warn" do
122
- controller.should_not_receive(:render).with(:template => "the/wrong/template")
123
- get :action_with_template
124
- end
125
- end
126
-
127
- describe "setting cookies in the request" do
128
-
129
- it "should support a String key" do
130
- cookies['cookie_key'] = 'cookie value'
131
- get 'action_which_gets_cookie', :expected => "cookie value"
132
- end
133
-
134
- it "should support a Symbol key" do
135
- cookies[:cookie_key] = 'cookie value'
136
- get 'action_which_gets_cookie', :expected => "cookie value"
137
- end
138
-
139
- it "should support a Hash value" do
140
- cookies[:cookie_key] = {'value' => 'cookie value', 'path' => '/not/default'}
141
- get 'action_which_gets_cookie', :expected => {'value' => 'cookie value', 'path' => '/not/default'}
142
- end
143
-
144
- end
145
-
146
- describe "reading cookies from the response" do
147
-
148
- it "should support a Symbol key" do
149
- get 'action_which_sets_cookie', :value => "cookie value"
150
- if ::Rails::VERSION::STRING >= "2.3"
151
- cookies[:cookie_key].should match("cookie[\+ ]value")
152
- else
153
- cookies[:cookie_key].should == ["cookie value"]
154
- end
155
- end
156
-
157
- it "should support a String key" do
158
- get 'action_which_sets_cookie', :value => "cookie value"
159
- if ::Rails::VERSION::STRING >= "2.3"
160
- cookies['cookie_key'].should match("cookie[\+ ]value")
161
- else
162
- cookies['cookie_key'].should == ["cookie value"]
163
- end
164
- end
165
-
166
- end
167
-
168
- it "should expose instance vars through the assigns hash" do
169
- get 'action_setting_the_assigns_hash'
170
- assigns[:indirect_assigns_key].should == :indirect_assigns_key_value
171
- end
172
-
173
- it "should expose instance vars through the assigns hash that are set to false" do
174
- get 'action_that_assigns_false_to_a_variable'
175
- assigns[:a_variable].should be_false
176
- end
177
-
178
- it "should NOT complain when calling should_receive with arguments other than :render" do
179
- controller.should_receive(:anything_besides_render)
180
- lambda {
181
- controller.rspec_verify
182
- }.should raise_error(Exception, /expected :anything_besides_render/)
183
- end
184
-
185
- it "should not run a skipped before_filter" do
186
- lambda {
187
- get 'action_with_skipped_before_filter'
188
- }.should_not raise_error
189
- end
190
-
191
- if ::Rails::VERSION::STRING > '2.1'
192
- describe "extending #render on a controller" do
193
- it "supports two arguments (as with rails 2.1)" do
194
- get 'action_with_two_arg_render'
195
- response.body.should =~ /new Effect\.Highlight/
196
- end
197
- end
198
- end
199
-
200
- it "should access headers" do
201
- request.env['ACCEPT'] = "application/json"
202
- get 'action_that_returns_headers', :header => 'ACCEPT'
203
- response.body.should == "application/json"
204
- end
205
- end
206
-
207
- describe "Given a controller spec for RedirectSpecController running in #{mode} mode", :type => :controller do
208
- controller_name :redirect_spec
209
- integrate_views if mode == 'integration'
210
-
211
- it "a redirect should ignore the absence of a template" do
212
- get 'action_with_redirect_to_somewhere'
213
- response.should be_redirect
214
- response.redirect_url.should == "http://test.host/redirect_spec/somewhere"
215
- response.should redirect_to("http://test.host/redirect_spec/somewhere")
216
- end
217
-
218
- it "a call to response.should redirect_to should fail if no redirect" do
219
- get 'action_with_no_redirect'
220
- lambda {
221
- response.redirect?.should be_true
222
- }.should fail
223
- lambda {
224
- response.should redirect_to("http://test.host/redirect_spec/somewhere")
225
- }.should fail_with("expected redirect to \"http://test.host/redirect_spec/somewhere\", got no redirect")
226
- end
227
- end
228
-
229
- describe "Given a controller spec running in #{mode} mode" do
230
- example_group = describe "A controller spec"
231
- # , :type => :controller do
232
- # integrate_views if mode == 'integration'
233
- it "a spec in a context without controller_name set should fail with a useful warning" do
234
- pending("need a new way to deal with examples that should_raise")
235
- # ,
236
- # :should_raise => [
237
- # Spec::Expectations::ExpectationNotMetError,
238
- # /You have to declare the controller name in controller specs/
239
- # ] do
240
- end
241
- end
242
-
243
- end
244
-
245
- ['integration', 'isolation'].each do |mode|
246
- describe "A controller example running in #{mode} mode", :type => :controller do
247
- controller_name :controller_inheriting_from_application_controller
248
- integrate_views if mode == 'integration'
249
-
250
- it "should only have a before filter inherited from ApplicationController run once..." do
251
- controller.should_receive(:i_should_only_be_run_once).once
252
- get :action_with_inherited_before_filter
253
- end
254
- end
255
- end
256
-
257
- describe ControllerSpecController, :type => :controller do
258
- it "should use the controller passed to #describe" do
259
- end
260
- end
261
-
262
- describe "A controller spec with controller_name set", :type => :controller do
263
- controller_name :controller_spec
264
-
265
- describe "nested" do
266
- it "should inherit the controller name" do
267
- get 'action_with_template'
268
- response.should be_success
269
- end
270
- end
271
- end
272
-
273
- module Spec
274
- module Rails
275
- module Example
276
- describe ApplicationController, :type => :controller do
277
- describe "controller_name" do
278
- controller_name :controller_spec
279
- it "overrides the controller class submitted to the outermost group" do
280
- subject.should be_an_instance_of(ControllerSpecController)
281
- end
282
- describe "in a nested group" do
283
- it "overrides the controller class submitted to the outermost group" do
284
- subject.should be_an_instance_of(ControllerSpecController)
285
- end
286
- describe "(doubly nested)" do
287
- it "overrides the controller class submitted to the outermost group" do
288
- subject.should be_an_instance_of(ControllerSpecController)
289
- end
290
- end
291
- end
292
- end
293
- end
294
-
295
- describe ControllerExampleGroup do
296
- it "should clear its name from the description" do
297
- group = describe("foo", :type => :controller) do
298
- $nested_group = describe("bar") do
299
- end
300
- end
301
- group.description.to_s.should == "foo"
302
- $nested_group.description.to_s.should == "foo bar"
303
- end
304
- end
305
- end
306
- end
307
- end
@@ -1,75 +0,0 @@
1
- require 'spec_helper'
2
- require 'controller_spec_controller'
3
-
4
- describe "a controller spec running in isolation mode", :type => :controller do
5
- controller_name :controller_spec
6
-
7
- it "does not care if the specified template doesn't exist" do
8
- get 'some_action'
9
- response.should be_success
10
- response.should render_template("template/that/does/not/actually/exist")
11
- end
12
-
13
- it "does not care if the implied template doesn't exist" do
14
- get 'some_action_with_implied_template'
15
- response.should be_success
16
- response.should render_template("some_action_with_implied_template")
17
- end
18
-
19
- it "does not care if the template has errors" do
20
- get 'action_with_errors_in_template'
21
- response.should be_success
22
- response.should render_template("action_with_errors_in_template")
23
- end
24
-
25
- it "does not care if the template exists but the action doesn't" do
26
- get 'non_existent_action_with_existent_template'
27
- response.should be_success
28
- end
29
-
30
- it "fails if the neither the action nor the template exist" do
31
- expect {get 'non_existent_action'}.to raise_error(ActionController::UnknownAction)
32
- end
33
- end
34
-
35
- describe "a controller spec running in integration mode", :type => :controller do
36
- controller_name :controller_spec
37
- integrate_views
38
-
39
- it "renders a template" do
40
- get 'action_with_template'
41
- response.should be_success
42
- response.should have_tag('div', 'This is action_with_template.rhtml')
43
- end
44
-
45
- it "fails if the template doesn't exist" do
46
- error = defined?(ActionController::MissingTemplate) ? ActionController::MissingTemplate : ActionView::MissingTemplate
47
- lambda { get 'some_action' }.should raise_error(error)
48
- end
49
-
50
- it "fails if the template has errors" do
51
- lambda { get 'action_with_errors_in_template' }.should raise_error(ActionView::TemplateError)
52
- end
53
-
54
- it "fails if the action doesn't exist" do
55
- expect {get 'non_existent_action'}.to raise_error(ActionController::UnknownAction)
56
- end
57
-
58
- describe "nested" do
59
- it "should render a template" do
60
- get 'action_with_template'
61
- response.should be_success
62
- response.should have_tag('div', 'This is action_with_template.rhtml')
63
- end
64
-
65
- describe "with integrate_views turned off" do
66
- integrate_views false
67
-
68
- it "should not care if the template doesn't exist" do
69
- get 'some_action'
70
- response.should be_success
71
- response.should render_template("template/that/does/not/actually/exist")
72
- end
73
- end
74
- end
75
- end
@@ -1,87 +0,0 @@
1
- require 'spec_helper'
2
-
3
- class CookiesProxyExamplesController < ActionController::Base
4
- def index
5
- cookies[:key] = cookies[:key]
6
- render :text => ""
7
- end
8
- end
9
-
10
- module Spec
11
- module Rails
12
- module Example
13
- describe CookiesProxy, :type => :controller do
14
- controller_name :cookies_proxy_examples
15
-
16
- describe "with a String key" do
17
-
18
- it "should accept a String value" do
19
- proxy = CookiesProxy.new(self)
20
- proxy['key'] = 'value'
21
- get :index
22
- if ::Rails::VERSION::STRING >= "2.3"
23
- proxy['key'].should == 'value'
24
- else
25
- proxy['key'].should == ['value']
26
- end
27
- end
28
-
29
- it "should accept a Hash value" do
30
- proxy = CookiesProxy.new(self)
31
- proxy['key'] = { :value => 'value', :expires => expiration = 1.hour.from_now, :path => path = '/path' }
32
- get :index
33
- if ::Rails::VERSION::STRING >= "2.3"
34
- proxy['key'].should == 'value'
35
- else
36
- proxy['key'].should == ['value']
37
- proxy['key'].value.should == ['value']
38
- proxy['key'].expires.should == expiration
39
- proxy['key'].path.should == path
40
- end
41
- end
42
-
43
- end
44
-
45
- describe "with a Symbol key" do
46
-
47
- it "should accept a String value" do
48
- proxy = CookiesProxy.new(self)
49
- proxy[:key] = 'value'
50
- get :index
51
- if ::Rails::VERSION::STRING >= "2.3"
52
- proxy[:key].should == 'value'
53
- else
54
- proxy[:key].should == ['value']
55
- end
56
- end
57
-
58
- it "should accept a Hash value" do
59
- proxy = CookiesProxy.new(self)
60
- proxy[:key] = { :value => 'value', :expires => expiration = 1.hour.from_now, :path => path = '/path' }
61
- get :index
62
- if ::Rails::VERSION::STRING >= "2.3"
63
- proxy[:key].should == 'value'
64
- else
65
- proxy[:key].should == ['value']
66
- proxy[:key].value.should == ['value']
67
- proxy[:key].expires.should == expiration
68
- proxy[:key].path.should == path
69
- end
70
- end
71
-
72
- end
73
-
74
- describe "#delete" do
75
- it "should delete from the response cookies" do
76
- proxy = CookiesProxy.new(self)
77
- response_cookies = mock('cookies')
78
- response.should_receive(:cookies).and_return(response_cookies)
79
- response_cookies.should_receive(:delete).with('key')
80
- proxy.delete :key
81
- end
82
- end
83
- end
84
-
85
- end
86
- end
87
- end
@@ -1,90 +0,0 @@
1
- require 'spec_helper'
2
- require 'controller_spec_controller'
3
-
4
- ['integration', 'isolation'].each do |mode|
5
- describe "A controller example running in #{mode} mode", :type => :controller do
6
- controller_name :controller_spec
7
- integrate_views if mode == 'integration'
8
-
9
- describe "without use_rails_error_handling!" do
10
- describe "with an error that is *not* rescued" do
11
- it "raises the error" do
12
- lambda do
13
- get 'un_rescued_error_action'
14
- end.should raise_error(ControllerSpecController::UnRescuedError)
15
- end
16
- end
17
- describe "with an error that *is* rescued" do
18
- it "returns a 200" do
19
- get 'rescued_error_action'
20
- response.response_code.should == 200
21
- end
22
- end
23
- end
24
-
25
- describe "with deprecated use_rails_error_handling!" do
26
- before(:each) do
27
- Kernel.stub!(:warn)
28
- end
29
-
30
- it "warns of deprecation" do
31
- Kernel.should_receive(:warn).with(/DEPRECATION NOTICE/)
32
- controller.use_rails_error_handling!
33
- end
34
-
35
- describe "with an error that is *not* rescued" do
36
- it "returns the error code" do
37
- controller.use_rails_error_handling!
38
- get 'un_rescued_error_action'
39
- response.response_code.should == 500
40
- end
41
- end
42
-
43
- describe "with an error that *is* rescued" do
44
- it "returns a 200" do
45
- controller.use_rails_error_handling!
46
- get 'rescued_error_action'
47
- response.response_code.should == 200
48
- end
49
- end
50
- end
51
-
52
- describe "with rescue_action_in_public!" do
53
- describe "with an error that is *not* rescued" do
54
- it "returns the error code" do
55
- rescue_action_in_public!
56
- get 'un_rescued_error_action'
57
- response.response_code.should == 500
58
- end
59
- end
60
-
61
- describe "with an error that *is* rescued" do
62
- it "returns a 200" do
63
- rescue_action_in_public!
64
- get 'rescued_error_action'
65
- response.response_code.should == 200
66
- end
67
- end
68
- end
69
-
70
- describe "with bypass_rescue" do
71
- describe "with an error that is *not* rescued" do
72
- it "raises the error" do
73
- bypass_rescue
74
- lambda do
75
- get 'un_rescued_error_action'
76
- end.should raise_error(ControllerSpecController::UnRescuedError)
77
- end
78
- end
79
-
80
- describe "with an error that *is* rescued" do
81
- it "raises the error" do
82
- bypass_rescue
83
- lambda do
84
- get 'rescued_error_action'
85
- end.should raise_error(ControllerSpecController::RescuedError)
86
- end
87
- end
88
- end
89
- end
90
- end
@@ -1,112 +0,0 @@
1
- require 'spec_helper'
2
-
3
- module Spec
4
- module Example
5
- describe ExampleGroupFactory do
6
- it "should return a ModelExampleGroup when given :type => :model" do
7
- example_group = Spec::Example::ExampleGroupFactory.create_example_group(
8
- "name", :type => :model
9
- ) {}
10
- example_group.superclass.should == Spec::Rails::Example::ModelExampleGroup
11
- end
12
-
13
- it "should return a ModelExampleGroup when given :location => '/blah/spec/models/'" do
14
- example_group = Spec::Example::ExampleGroupFactory.create_example_group(
15
- "name", :location => '/blah/spec/models/blah.rb'
16
- ) {}
17
- example_group.superclass.should == Spec::Rails::Example::ModelExampleGroup
18
- end
19
-
20
- it "should return a ModelExampleGroup when given :location => '\\blah\\spec\\models\\' (windows format)" do
21
- example_group = Spec::Example::ExampleGroupFactory.create_example_group(
22
- "name", :location => '\\blah\\spec\\models\\blah.rb'
23
- ) {}
24
- example_group.superclass.should == Spec::Rails::Example::ModelExampleGroup
25
- end
26
-
27
- it "should return an ActiveSupport::TestCase when given :location => '/blah/spec/foo/' (anything other than controllers, views and helpers)" do
28
- example_group = Spec::Example::ExampleGroupFactory.create_example_group(
29
- "name", :location => '/blah/spec/foo/blah.rb'
30
- ) {}
31
- example_group.superclass.should == ActiveSupport::TestCase
32
- end
33
-
34
- it "should return an ActiveSupport::TestCase when given :location => '\\blah\\spec\\foo\\' (windows format) (anything other than controllers, views and helpers)" do
35
- example_group = Spec::Example::ExampleGroupFactory.create_example_group(
36
- "name", :location => '\\blah\\spec\\foo\\blah.rb'
37
- ) {}
38
- example_group.superclass.should == ActiveSupport::TestCase
39
- end
40
-
41
- it "should return a ViewExampleGroup when given :type => :view" do
42
- example_group = Spec::Example::ExampleGroupFactory.create_example_group(
43
- "name", :type => :view
44
- ) {}
45
- example_group.superclass.should == Spec::Rails::Example::ViewExampleGroup
46
- end
47
-
48
- it "should return a ViewExampleGroup when given :location => '/blah/spec/views/'" do
49
- example_group = Spec::Example::ExampleGroupFactory.create_example_group(
50
- "name", :location => '/blah/spec/views/blah.rb'
51
- ) {}
52
- example_group.superclass.should == Spec::Rails::Example::ViewExampleGroup
53
- end
54
-
55
- it "should return a ModelExampleGroup when given :location => '\\blah\\spec\\views\\' (windows format)" do
56
- example_group = Spec::Example::ExampleGroupFactory.create_example_group(
57
- "name", :location => '\\blah\\spec\\views\\blah.rb'
58
- ) {}
59
- example_group.superclass.should == Spec::Rails::Example::ViewExampleGroup
60
- end
61
-
62
- it "should return a HelperExampleGroup when given :type => :helper" do
63
- example_group = Spec::Example::ExampleGroupFactory.create_example_group(
64
- "name", :type => :helper
65
- ) {}
66
- example_group.superclass.should == Spec::Rails::Example::HelperExampleGroup
67
- end
68
-
69
- it "should return a HelperExampleGroup when given :location => '/blah/spec/helpers/'" do
70
- example_group = Spec::Example::ExampleGroupFactory.create_example_group(
71
- "name", :location => '/blah/spec/helpers/blah.rb'
72
- ) {}
73
- example_group.superclass.should == Spec::Rails::Example::HelperExampleGroup
74
- end
75
-
76
- it "should return a ModelExampleGroup when given :location => '\\blah\\spec\\helpers\\' (windows format)" do
77
- example_group = Spec::Example::ExampleGroupFactory.create_example_group(
78
- "name", :location => '\\blah\\spec\\helpers\\blah.rb'
79
- ) {}
80
- example_group.superclass.should == Spec::Rails::Example::HelperExampleGroup
81
- end
82
-
83
- it "should return a ControllerExampleGroup when given :type => :controller" do
84
- example_group = Spec::Example::ExampleGroupFactory.create_example_group(
85
- "name", :type => :controller
86
- ) {}
87
- example_group.superclass.should == Spec::Rails::Example::ControllerExampleGroup
88
- end
89
-
90
- it "should return a ControllerExampleGroup when given :location => '/blah/spec/controllers/'" do
91
- example_group = Spec::Example::ExampleGroupFactory.create_example_group(
92
- "name", :location => '/blah/spec/controllers/blah.rb'
93
- ) {}
94
- example_group.superclass.should == Spec::Rails::Example::ControllerExampleGroup
95
- end
96
-
97
- it "should return a ModelExampleGroup when given :location => '\\blah\\spec\\controllers\\' (windows format)" do
98
- example_group = Spec::Example::ExampleGroupFactory.create_example_group(
99
- "name", :location => '\\blah\\spec\\controllers\\blah.rb'
100
- ) {}
101
- example_group.superclass.should == Spec::Rails::Example::ControllerExampleGroup
102
- end
103
-
104
- it "should favor the :type over the :location" do
105
- example_group = Spec::Example::ExampleGroupFactory.create_example_group(
106
- "name", :location => '/blah/spec/models/blah.rb', :type => :controller
107
- ) {}
108
- example_group.superclass.should == Spec::Rails::Example::ControllerExampleGroup
109
- end
110
- end
111
- end
112
- end