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,233 +0,0 @@
1
- require 'spec_helper'
2
- Spec::Runner.configuration.global_fixtures = :people
3
-
4
- describe ExplicitHelper, :type => :helper do
5
- include ExplicitHelper
6
-
7
- it "should not require naming the helper if describe is passed a type" do
8
- method_in_explicit_helper.should match(/text from a method/)
9
- helper.method_in_explicit_helper.should match(/text from a method/)
10
- end
11
- end
12
-
13
- module Spec
14
- module Rails
15
- module Example
16
- describe HelperExampleGroup, :type => :helper do
17
- helper_name :explicit
18
-
19
- accesses_configured_helper_methods
20
-
21
- it "DEPRECATED should have direct access to methods defined in helpers" do
22
- method_in_explicit_helper.should =~ /text from a method/
23
- end
24
-
25
- it "should expose the helper with the #helper method" do
26
- helper.method_in_explicit_helper.should =~ /text from a method/
27
- end
28
-
29
- it "should have access to named routes" do
30
- rspec_on_rails_specs_url.should == "http://test.host/rspec_on_rails_specs"
31
- rspec_on_rails_specs_path.should == "/rspec_on_rails_specs"
32
-
33
- helper.named_url.should == "http://test.host/rspec_on_rails_specs"
34
- helper.named_path.should == "/rspec_on_rails_specs"
35
- end
36
-
37
- it "should fail if the helper method deson't exist" do
38
- lambda { non_existent_helper_method }.should raise_error(NameError)
39
- lambda { helper.non_existent_helper_method }.should raise_error(NameError)
40
- end
41
-
42
- it "should have access to session" do
43
- session[:foo] = 'bar'
44
- session_foo.should == 'bar'
45
- helper.session_foo.should == 'bar'
46
- end
47
-
48
- it "should have access to params" do
49
- params[:foo] = 'bar'
50
- params_foo.should == 'bar'
51
- helper.params_foo.should == 'bar'
52
- end
53
-
54
- it "should have access to request" do
55
- request.stub!(:thing).and_return('bar')
56
- request_thing.should == 'bar'
57
- helper.request_thing.should == 'bar'
58
- end
59
-
60
- it "should have access to flash" do
61
- flash[:thing] = 'camera'
62
- flash_thing.should == 'camera'
63
- helper.flash_thing.should == 'camera'
64
- end
65
- end
66
-
67
- describe HelperExampleGroup, "#eval_erb", :type => :helper do
68
- helper_name :explicit
69
-
70
- it "should support methods that accept blocks" do
71
- eval_erb("<% prepend 'foo' do %>bar<% end %>").should == "foobar"
72
- end
73
- end
74
-
75
- describe HelperExampleGroup, ".fixtures", :type => :helper do
76
- helper_name :explicit
77
- fixtures :animals
78
-
79
- it "should load fixtures" do
80
- pig = animals(:pig)
81
- pig.class.should == Animal
82
- end
83
-
84
- it "should load global fixtures" do
85
- lachie = people(:lachie)
86
- lachie.class.should == Person
87
- end
88
- end
89
-
90
- describe "methods from standard helpers", :type => :helper do
91
- helper_name :explicit
92
- it "should be exposed to the helper" do
93
- helper.link_to("Foo","http://bar").should have_tag("a")
94
- end
95
- end
96
-
97
- describe HelperExampleGroup, "included modules", :type => :helper do
98
- helpers = [
99
- ActionView::Helpers::ActiveRecordHelper,
100
- ActionView::Helpers::AssetTagHelper,
101
- ActionView::Helpers::BenchmarkHelper,
102
- ActionView::Helpers::CacheHelper,
103
- ActionView::Helpers::CaptureHelper,
104
- ActionView::Helpers::DateHelper,
105
- ActionView::Helpers::DebugHelper,
106
- ActionView::Helpers::FormHelper,
107
- ActionView::Helpers::FormOptionsHelper,
108
- ActionView::Helpers::FormTagHelper,
109
- ActionView::Helpers::JavaScriptHelper,
110
- ActionView::Helpers::NumberHelper,
111
- ActionView::Helpers::PrototypeHelper,
112
- ActionView::Helpers::ScriptaculousHelper,
113
- ActionView::Helpers::TagHelper,
114
- ActionView::Helpers::TextHelper,
115
- ActionView::Helpers::UrlHelper
116
- ]
117
- helpers.each do |helper_module|
118
- it "should include #{helper_module}" do
119
- self.class.ancestors.should include(helper_module)
120
- helper.class.ancestors.should include(helper_module)
121
- end
122
- end
123
- end
124
-
125
- # TODO: BT - Helper Examples should proxy method_missing to a Rails View instance.
126
- # When that is done, remove this method
127
- describe HelperExampleGroup, "#protect_against_forgery?", :type => :helper do
128
- it "should return false" do
129
- protect_against_forgery?.should be_false
130
- helper.protect_against_forgery?.should be_false
131
- end
132
- end
133
-
134
- describe HelperExampleGroup, "#assigns", :type => :helper do
135
- helper_name :addition
136
- it "should expose variables to helper" do
137
- assigns[:addend] = 3
138
- helper.plus(4).should == 7
139
- end
140
-
141
- it "should make helper ivars available in example" do
142
- assigns[:addend] = 3
143
- assigns[:addend].should == 3
144
- end
145
- end
146
-
147
- describe HelperExampleGroup, "using a helper that uses output_buffer inside helper", :type => :helper do
148
- helper_name :explicit
149
-
150
- before(:each) do
151
- if ::Rails::VERSION::STRING < "2.2"
152
- pending("need to get this new feature working against pre 2.2 versions of rails")
153
- end
154
- end
155
-
156
- it "should not raise an error" do
157
- lambda { method_using_output_buffer }.should_not raise_error
158
- end
159
-
160
- it "should put the output in the output_buffer" do
161
- method_using_output_buffer
162
- output_buffer.should == "the_text_from_concat"
163
- end
164
- end
165
-
166
- describe HelperExampleGroup, "using a helper that tries to access @template", :type => :helper do
167
- helper_name :explicit
168
-
169
- it "should not raise an error" do
170
- lambda { method_using_template }.should_not raise_error
171
- end
172
-
173
- it "should have the correct output" do
174
- method_using_template.should have_text(/#some_id/)
175
- end
176
- end
177
-
178
- end
179
- end
180
- end
181
-
182
- module Bug11223
183
- # see http://rubyforge.org/tracker/index.php?func=detail&aid=11223&group_id=797&atid=3149
184
- describe 'Accessing flash from helper spec', :type => :helper do
185
- it 'should not raise an error' do
186
- lambda { flash['test'] }.should_not raise_error
187
- end
188
- end
189
- end
190
-
191
- module Spec
192
- module Rails
193
- module Example
194
- describe HelperExampleGroup do
195
- it "should clear its name from the description" do
196
- group = describe("foo", :type => :helper) do
197
- $nested_group = describe("bar") do
198
- end
199
- end
200
- group.description.to_s.should == "foo"
201
- $nested_group.description.to_s.should == "foo bar"
202
- end
203
- end
204
- end
205
- end
206
- end
207
-
208
- module Bug719
209
- # see http://rspec.lighthouseapp.com/projects/5645/tickets/719
210
- # FIXME - helper and example provided in ticket. The example did
211
- # fail initially, so running it now shows that the bug is fixed,
212
- # but this doesn't serve as a good internal example.
213
- module ImagesHelper
214
- def hide_images_button
215
- content_tag :div, :class => :hide_images_button do
216
- button_to_function "Hide Images", :id => :hide_images_button do |page|
217
- page[:more_images_button].toggle
218
- page[:image_browser].toggle
219
- end
220
- end
221
- end
222
- end
223
-
224
- describe ImagesHelper, :type => :helper do
225
- it "should render a hide_images_button" do
226
- helper.hide_images_button.should have_tag('div[class=?]','hide_images_button') do
227
- with_tag('input[id=?][type=?][value=?][onclick^=?]',
228
- 'hide_images_button', 'button', 'Hide Images',
229
- "$(&quot;more_images_button&quot;).toggle();\n$(&quot;image_browser&quot;).toggle();;")
230
- end
231
- end
232
- end
233
- end
@@ -1,32 +0,0 @@
1
- require 'spec_helper'
2
-
3
- module Spec
4
- module Rails
5
- module Example
6
- describe ModelExampleGroup do
7
- accesses_configured_helper_methods
8
-
9
- if defined?(ActiveRecord::TestCase)
10
- it "derives from ActiveRecord::TestCase" do
11
- group = describe("foo", :type => :model) do; end
12
- group.ancestors.should include(ActiveRecord::TestCase)
13
- end
14
- else
15
- it "derives from ActiveSupport::TestCase" do
16
- group = describe("foo", :type => :model) do; end
17
- group.ancestors.should include(ActiveSupport::TestCase)
18
- end
19
- end
20
-
21
- it "clears its name from the description" do
22
- group = describe("foo", :type => :model) do
23
- $nested_group = describe("bar") do
24
- end
25
- end
26
- group.description.to_s.should == "foo"
27
- $nested_group.description.to_s.should == "foo bar"
28
- end
29
- end
30
- end
31
- end
32
- end
@@ -1,10 +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
- describe "Routing Examples", :type => :routing do
6
-
7
- include RoutingExampleGroupSpec
8
- include RouteToExampleGroupSpec
9
- include BeRoutableExampleGroupSpec
10
- end
@@ -1,237 +0,0 @@
1
- class CustomRouteSpecController < ActionController::Base; end
2
- class RspecOnRailsSpecsController < ActionController::Base; end
3
-
4
- share_as :RoutingExampleGroupSpec do
5
- describe "using backward compatible route_for()" do
6
- it "translates GET-only paths to be explicit" do
7
- self.should_receive(:assert_routing).with(hash_including(:method => :get), anything, {}, anything)
8
- route_for(:controller => "controller_spec", :action => "some_action").
9
- should == "/controller_spec/some_action"
10
- end
11
-
12
- it "uses assert_routing to specify that the :controller and :action are involved" do
13
- @route = { :controller => "controller_spec", :action => "some_action" }
14
- self.should_receive(:assert_routing).with(anything, @route, {}, anything)
15
- route_for(@route).
16
- should == "/controller_spec/some_action"
17
- end
18
-
19
- it "passes extra args through to assert_routing" do
20
- @route = { :controller => "controller_spec", :action => "some_action" }
21
- self.should_receive(:assert_routing).with(anything, anything, {}, { :a => "1", :b => "2" } )
22
- route_for(@route).
23
- should == "/controller_spec/some_action?a=1&b=2"
24
- end
25
-
26
- it "passes with an existing route" do
27
- route_for(:controller => "controller_spec", :action => "some_action").
28
- should == "/controller_spec/some_action"
29
- end
30
-
31
- it "passes with an existing route with additional parameters" do
32
- route_for(:controller => "controller_spec", :action => "some_action", :param => '1').
33
- should == "/controller_spec/some_action?param=1"
34
- end
35
-
36
- it "recognizes routes with methods besides :get" do
37
- should_receive(:assert_routing).with(hash_including(:method => :put), anything, {}, anything)
38
-
39
- route_for(:controller => "rspec_on_rails_specs", :action => "update", :id => "37").
40
- should == {:path => "/rspec_on_rails_specs/37", :method => :put}
41
- end
42
-
43
- describe "failing due to bad path:" do
44
- it "raises routing error and suggests should_not be_routeable()" do
45
- lambda {
46
- route_for(:controller => "rspec_on_rails_specs", :action => "nonexistent", :id => "37") ==
47
- {:path => "/rspec_on_rails_specs/bad_route/37", :method => :put}
48
- }.should raise_error( ActionController::RoutingError, /suggest.*should_not be_routable/ )
49
- end
50
- end
51
-
52
- describe "failing due to params mismatch:" do
53
- it "re-raises assertion and suggests should_not be_routeable()" do
54
- lambda {
55
- route_for(:controller => "rspec_on_rails_specs", :action => "nonexistent", :id => "37") ==
56
- {:path => "/rspec_on_rails_specs/37", :method => :put}
57
- }.should raise_error( ::Test::Unit::AssertionFailedError, /suggest.*should_not be_routable/ )
58
- end
59
- end
60
-
61
- describe "failing due to wrong HTTP method" do
62
- it "raises method error and suggest should_not be_routable()" do
63
- lambda {
64
- route_for(:controller => "rspec_on_rails_specs", :action => "update", :id => "37").
65
- should == {:path => "/rspec_on_rails_specs/37", :method => :post}
66
- }.should raise_error(ActionController::MethodNotAllowed) { |error| error.should_not =~ /should_not be_routable/ }
67
- end
68
- end
69
-
70
- it "generates params for custom routes" do
71
- # redundant, deprecated
72
- params_from(:get, '/custom_route').
73
- should == {:controller => "custom_route_spec", :action => "custom_route"}
74
- end
75
-
76
- it "generates params for existing routes" do
77
- # redundant, deprecated
78
- params_from(:get, '/controller_spec/some_action').
79
- should == {:controller => "controller_spec", :action => "some_action"}
80
- end
81
-
82
- it "generates params for existing routes with a query parameters" do
83
- # redundant, deprecated
84
- params_from(:get, '/controller_spec/some_action?param=1').
85
- should == {:controller => "controller_spec", :action => "some_action", :param => '1'}
86
- end
87
-
88
- it "generates params for existing routes with multiple query parameters" do
89
- # redundant, deprecated
90
- params_from(:get, '/controller_spec/some_action?param1=1&param2=2').
91
- should == {:controller => "controller_spec", :action => "some_action", :param1 => '1', :param2 => '2' }
92
- end
93
- end
94
- end
95
-
96
- share_as :BeRoutableExampleGroupSpec do
97
- describe "using should_not be_routable()" do
98
- it "passes for a bad route" do
99
- { :put => "/rspec_on_rails_specs/bad_route/37" }.
100
- should_not be_routable
101
- end
102
- it "passes for a bad route having an arg" do
103
- { :put => "/rspec_on_rails_specs/bad_route/37?some_arg=1" }.
104
- should_not be_routable
105
- end
106
- describe "when assert_recognizes throws exceptions:" do
107
- [ ActionController::RoutingError, ActionController::MethodNotAllowed ].each do |e|
108
- it "passes on #{e}" do
109
- self.stub!( :assert_recognizes ).and_return { raise e, "stubbed exception" }
110
- { :get => "/rspec_on_rails_spec/bad_route/37" }.should_not be_routable
111
- end
112
- it "should be_routable on usual Test::Unit::AssertionFailedError" do
113
- # <{}> is predictable because of the way we call assert_recognizes during be_routable().
114
- self.stub!( :assert_recognizes ).and_return { raise ::Test::Unit::AssertionFailedError, "<{a}> did not match <{}>" }
115
- { :get => "/rspec_on_rails_spec/arguably_bad_route" }.should be_routable
116
- end
117
- it "should re-raise on unusual Test::Unit::AssertionFailedError" do
118
- self.stub!( :assert_recognizes ).and_return { raise ::Test::Unit::AssertionFailedError, "some other message" }
119
- expect { { :get => "/rspec_on_rails_spec/weird_case_route/" }.should be_routable }.
120
- to raise_error
121
- end
122
- end
123
- end
124
- it "test should be_routable" do
125
- { :get => "/custom_route" }.
126
- should be_routable
127
- end
128
-
129
- it "recommends route_to() on failure with should()" do
130
- lambda {
131
- { :get => "/nonexisting_route" }.
132
- should be_routable
133
- }.should raise_error( /route_to\(/)
134
- end
135
-
136
- it "shows actual route that was generated on failure with should_not()" do
137
- begin
138
- { :get => "/custom_route" }.should_not be_routable
139
- rescue Exception => e
140
- ensure
141
- # Different versions of ruby order these differently
142
- e.message.should =~ /"action"=>"custom_route"/
143
- e.message.should =~ /"controller"=>"custom_route_spec"/
144
- end
145
- end
146
-
147
- it "works with routeable (alternate spelling)" do
148
- { :put => "/nonexisting_route" }.
149
- should_not be_routeable
150
- end
151
- end
152
- end
153
-
154
- share_as :RouteToExampleGroupSpec do
155
- describe "using should[_not] route_to()" do
156
- it "supports existing routes" do
157
- { :get => "/controller_spec/some_action" }.
158
- should route_to( :controller => "controller_spec", :action => "some_action" )
159
- end
160
-
161
- it "translates GET-only paths to be explicit, when matching against a string (for parity with route_for().should == '/path')" do
162
- self.should_receive(:assert_routing).with(hash_including(:method => :get), anything, {}, anything)
163
- "/controller_spec/some_action".
164
- should route_to({})
165
- end
166
-
167
- it "asserts, using assert_routing, that the :controller and :action are involved" do
168
- @route = { :controller => "controller_spec", :action => "some_action" }
169
- self.should_receive(:assert_routing).with(anything, @route, {}, anything)
170
- "/controller_spec/some_action".
171
- should route_to(@route)
172
- end
173
-
174
- it "sends extra args through" do
175
- @route = { :controller => "controller_spec", :action => "some_action" }
176
- self.should_receive(:assert_routing).with(anything, anything, {}, { :a => "1", :b => "2" } )
177
- "/controller_spec/some_action?a=1&b=2".
178
- should route_to( @route )
179
- end
180
-
181
- it "supports routes with additional parameters" do
182
- { :get => "/controller_spec/some_action?param=1" }.
183
- should route_to( :controller => "controller_spec", :action => "some_action", :param => '1' )
184
- end
185
-
186
- it "recognizes routes with methods besides :get" do
187
- self.should_receive(:assert_routing).with(hash_including(:method => :put), anything, {}, anything)
188
- { :put => "/rspec_on_rails_specs/37" }.
189
- should route_to(:controller => "rspec_on_rails_specs", :action => "update", :id => "37")
190
- end
191
-
192
- it "allows only one key/value in the path - :method => path" do
193
- lambda {
194
- { :a => "b" ,:c => "d" }.
195
- should route_to("anything")
196
- }.should raise_error( ArgumentError, /usage/ )
197
- end
198
-
199
- describe "failing due to bad path" do
200
- it "raises routing error, and suggests should_not be_routeable()" do
201
- lambda {
202
- { :put => "/rspec_on_rails_specs/nonexistent/37" }.
203
- should route_to(:controller => "rspec_on_rails_specs", :action => "nonexistent", :id => "37")
204
- }.should raise_error( ActionController::RoutingError, /suggest.*nonexistent.*should_not be_routable/ )
205
- end
206
- end
207
-
208
- describe "failing due to params mismatch" do
209
- it "raises assertion, and suggests should_not be_routeable()" do
210
- lambda {
211
- { :put => "/rspec_on_rails_specs/37" }.
212
- should route_to(:controller => "rspec_on_rails_specs", :action => "nonexistent", :id => "37")
213
- }.should raise_error( ::Test::Unit::AssertionFailedError, /suggest.*rspec_on_rails_specs\/37.*should_not be_routable/ )
214
- end
215
- end
216
-
217
- describe "passing when expected failure" do
218
- it "suggests should_not be_routable()" do
219
- self.stub!(:assert_routing).and_return true
220
- lambda {
221
- { :put => "/rspec_on_rails_specs/37" }.
222
- should_not route_to(:controller => "rspec_on_rails_specs", :action => "update", :id => "37")
223
- }.should raise_error( /expected a routing error.*be_routable/im )
224
- end
225
- end
226
-
227
- describe "failing due to wrong HTTP method" do
228
- it "raises method error and suggests should_not be_routable()" do
229
- self.stub!(:assert_routing) { raise ActionController::MethodNotAllowed }
230
- lambda {
231
- { :post => "/rspec_on_rails_specs/37" }.
232
- should route_to(:controller => "rspec_on_rails_specs", :action => "update", :id => "37" )
233
- }.should raise_error(ActionController::MethodNotAllowed, /rspec_on_rails_specs\/37.*should_not be_routable/ )
234
- end
235
- end
236
- end
237
- end
@@ -1,33 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe "assert_equal", :shared => true do
4
- it "like assert_equal" do
5
- assert_equal 1, 1
6
- lambda {
7
- assert_equal 1, 2
8
- }.should raise_error(::Test::Unit::AssertionFailedError)
9
- end
10
- end
11
-
12
- describe "A model spec should be able to access 'test/unit' assertions", :type => :model do
13
- it_should_behave_like "assert_equal"
14
- end
15
-
16
- describe "A view spec should be able to access 'test/unit' assertions", :type => :view do
17
- it_should_behave_like "assert_equal"
18
- end
19
-
20
- describe "A helper spec should be able to access 'test/unit' assertions", :type => :helper do
21
- it_should_behave_like "assert_equal"
22
- end
23
-
24
- describe "A controller spec with integrated views should be able to access 'test/unit' assertions", :type => :controller do
25
- controller_name :controller_spec
26
- integrate_views
27
- it_should_behave_like "assert_equal"
28
- end
29
-
30
- describe "A controller spec should be able to access 'test/unit' assertions", :type => :controller do
31
- controller_name :controller_spec
32
- it_should_behave_like "assert_equal"
33
- end