rspec-rails 1.3.4 → 2.0.0.a2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (202) hide show
  1. data/.gitignore +1 -7
  2. data/README.markdown +58 -0
  3. data/Rakefile +51 -9
  4. data/example_app_template.rb +33 -0
  5. data/lib/generators/rspec.rb +25 -0
  6. data/lib/generators/rspec/controller/controller_generator.rb +26 -0
  7. data/lib/generators/rspec/controller/templates/controller_spec.rb +15 -0
  8. data/lib/generators/rspec/controller/templates/view_spec.rb +12 -0
  9. data/lib/generators/rspec/helper/helper_generator.rb +11 -0
  10. data/lib/generators/rspec/helper/templates/helper_spec.rb +14 -0
  11. data/lib/generators/rspec/install/install_generator.rb +29 -0
  12. data/lib/generators/rspec/install/templates/lib/tasks/rspec.rake +119 -0
  13. data/lib/generators/rspec/install/templates/script/rspec.tt +4 -0
  14. data/{generators/rspec/templates → lib/generators/rspec/install/templates/spec}/rcov.opts +0 -0
  15. data/{generators/rspec/templates → lib/generators/rspec/install/templates/spec}/spec.opts +0 -0
  16. data/{generators/rspec/templates → lib/generators/rspec/install/templates/spec}/spec_helper.rb +14 -12
  17. data/lib/generators/rspec/integration/integration_generator.rb +12 -0
  18. data/{generators/integration_spec/templates/integration_spec.rb → lib/generators/rspec/integration/templates/request_spec.rb} +0 -0
  19. data/lib/generators/rspec/mailer/mailer_generator.rb +21 -0
  20. data/lib/generators/rspec/mailer/templates/fixture +3 -0
  21. data/lib/generators/rspec/mailer/templates/mailer_spec.rb +14 -0
  22. data/lib/generators/rspec/model/model_generator.rb +22 -0
  23. data/lib/generators/rspec/model/templates/fixtures.yml +19 -0
  24. data/{generators/rspec_model → lib/generators/rspec/model}/templates/model_spec.rb +1 -1
  25. data/lib/generators/rspec/observer/observer_generator.rb +12 -0
  26. data/lib/generators/rspec/observer/templates/observer_spec.rb +5 -0
  27. data/lib/generators/rspec/plugin/plugin_generator.rb +11 -0
  28. data/lib/generators/rspec/plugin/templates/%file_name%_spec.rb.tt +5 -0
  29. data/lib/generators/rspec/plugin/templates/test_helper.rb +5 -0
  30. data/lib/generators/rspec/scaffold/scaffold_generator.rb +112 -0
  31. data/lib/generators/rspec/scaffold/templates/controller_spec.rb +127 -0
  32. data/{generators/rspec_scaffold/templates/edit_erb_spec.rb → lib/generators/rspec/scaffold/templates/edit_spec.rb} +3 -3
  33. data/{generators/rspec_scaffold/templates/index_erb_spec.rb → lib/generators/rspec/scaffold/templates/index_spec.rb} +4 -4
  34. data/{generators/rspec_scaffold/templates/new_erb_spec.rb → lib/generators/rspec/scaffold/templates/new_spec.rb} +3 -3
  35. data/{generators/rspec_scaffold → lib/generators/rspec/scaffold}/templates/routing_spec.rb +4 -0
  36. data/{generators/rspec_scaffold/templates/show_erb_spec.rb → lib/generators/rspec/scaffold/templates/show_spec.rb} +4 -4
  37. data/lib/rspec/rails.rb +2 -0
  38. data/lib/rspec/rails/example.rb +2 -0
  39. data/lib/rspec/rails/example/controller_example_group.rb +31 -0
  40. data/lib/rspec/rails/example/request_example_group.rb +26 -0
  41. data/lib/rspec/rails/matchers.rb +14 -0
  42. data/lib/rspec/rails/transactional_database_support.rb +38 -0
  43. data/lib/rspec/rails/version.rb +16 -0
  44. data/rspec-rails.gemspec +78 -18
  45. metadata +97 -321
  46. data/.document +0 -7
  47. data/Contribute.rdoc +0 -4
  48. data/Gemfile +0 -4
  49. data/Gemfile.lock +0 -27
  50. data/History.rdoc +0 -321
  51. data/License.txt +0 -33
  52. data/Manifest.txt +0 -165
  53. data/README.rdoc +0 -48
  54. data/TODO.txt +0 -17
  55. data/Upgrade.rdoc +0 -148
  56. data/generators/integration_spec/integration_spec_generator.rb +0 -10
  57. data/generators/rspec/CHANGES +0 -1
  58. data/generators/rspec/rspec_generator.rb +0 -72
  59. data/generators/rspec/templates/previous_failures.txt +0 -0
  60. data/generators/rspec/templates/rspec.rake +0 -144
  61. data/generators/rspec/templates/script/autospec +0 -6
  62. data/generators/rspec/templates/script/spec +0 -10
  63. data/generators/rspec_controller/USAGE +0 -33
  64. data/generators/rspec_controller/rspec_controller_generator.rb +0 -47
  65. data/generators/rspec_controller/templates/controller_spec.rb +0 -25
  66. data/generators/rspec_controller/templates/helper_spec.rb +0 -11
  67. data/generators/rspec_controller/templates/view_spec.rb +0 -12
  68. data/generators/rspec_default_values.rb +0 -28
  69. data/generators/rspec_model/USAGE +0 -18
  70. data/generators/rspec_model/rspec_model_generator.rb +0 -35
  71. data/generators/rspec_scaffold/rspec_scaffold_generator.rb +0 -154
  72. data/generators/rspec_scaffold/templates/controller_spec.rb +0 -131
  73. data/generators/rspec_scaffold/templates/helper_spec.rb +0 -11
  74. data/init.rb +0 -9
  75. data/lib/autotest/discover.rb +0 -5
  76. data/lib/autotest/rails_rspec.rb +0 -76
  77. data/lib/spec/rails.rb +0 -26
  78. data/lib/spec/rails/example.rb +0 -48
  79. data/lib/spec/rails/example/assigns_hash_proxy.rb +0 -39
  80. data/lib/spec/rails/example/controller_example_group.rb +0 -285
  81. data/lib/spec/rails/example/cookies_proxy.rb +0 -29
  82. data/lib/spec/rails/example/functional_example_group.rb +0 -106
  83. data/lib/spec/rails/example/helper_example_group.rb +0 -153
  84. data/lib/spec/rails/example/integration_example_group.rb +0 -16
  85. data/lib/spec/rails/example/model_example_group.rb +0 -15
  86. data/lib/spec/rails/example/render_observer.rb +0 -80
  87. data/lib/spec/rails/example/routing_example_group.rb +0 -16
  88. data/lib/spec/rails/example/routing_helpers.rb +0 -66
  89. data/lib/spec/rails/example/view_example_group.rb +0 -203
  90. data/lib/spec/rails/extensions.rb +0 -11
  91. data/lib/spec/rails/extensions/action_controller/rescue.rb +0 -42
  92. data/lib/spec/rails/extensions/action_controller/test_case.rb +0 -16
  93. data/lib/spec/rails/extensions/action_controller/test_response.rb +0 -21
  94. data/lib/spec/rails/extensions/action_view/base.rb +0 -35
  95. data/lib/spec/rails/extensions/active_record/base.rb +0 -45
  96. data/lib/spec/rails/extensions/active_support/test_case.rb +0 -7
  97. data/lib/spec/rails/extensions/spec/matchers/have.rb +0 -23
  98. data/lib/spec/rails/extensions/spec/runner/configuration.rb +0 -45
  99. data/lib/spec/rails/interop/testcase.rb +0 -14
  100. data/lib/spec/rails/matchers.rb +0 -32
  101. data/lib/spec/rails/matchers/ar_be_valid.rb +0 -27
  102. data/lib/spec/rails/matchers/assert_select.rb +0 -180
  103. data/lib/spec/rails/matchers/change.rb +0 -13
  104. data/lib/spec/rails/matchers/have_text.rb +0 -57
  105. data/lib/spec/rails/matchers/include_text.rb +0 -54
  106. data/lib/spec/rails/matchers/redirect_to.rb +0 -126
  107. data/lib/spec/rails/matchers/render_template.rb +0 -129
  108. data/lib/spec/rails/matchers/route_to.rb +0 -149
  109. data/lib/spec/rails/mocks.rb +0 -140
  110. data/lib/spec/rails/version.rb +0 -16
  111. data/spec/autotest/mappings_spec.rb +0 -86
  112. data/spec/rails_suite.rb +0 -7
  113. data/spec/resources/controllers/action_view_base_spec_controller.rb +0 -2
  114. data/spec/resources/controllers/application.rb +0 -9
  115. data/spec/resources/controllers/controller_spec_controller.rb +0 -127
  116. data/spec/resources/controllers/example.txt +0 -1
  117. data/spec/resources/controllers/redirect_spec_controller.rb +0 -70
  118. data/spec/resources/controllers/render_spec_controller.rb +0 -34
  119. data/spec/resources/controllers/rjs_spec_controller.rb +0 -58
  120. data/spec/resources/helpers/addition_helper.rb +0 -5
  121. data/spec/resources/helpers/explicit_helper.rb +0 -46
  122. data/spec/resources/helpers/more_explicit_helper.rb +0 -5
  123. data/spec/resources/helpers/plugin_application_helper.rb +0 -6
  124. data/spec/resources/helpers/view_spec_helper.rb +0 -13
  125. data/spec/resources/models/animal.rb +0 -4
  126. data/spec/resources/models/person.rb +0 -18
  127. data/spec/resources/models/thing.rb +0 -3
  128. data/spec/resources/views/controller_spec/_partial.html.erb +0 -0
  129. data/spec/resources/views/controller_spec/action_setting_flash_after_session_reset.html.erb +0 -1
  130. data/spec/resources/views/controller_spec/action_setting_flash_before_session_reset.html.erb +0 -1
  131. data/spec/resources/views/controller_spec/action_setting_the_assigns_hash.html.erb +0 -0
  132. data/spec/resources/views/controller_spec/action_with_errors_in_template.html.erb +0 -1
  133. data/spec/resources/views/controller_spec/action_with_template.html.erb +0 -1
  134. data/spec/resources/views/controller_spec/non_existent_action_with_existent_template.html.erb +0 -1
  135. data/spec/resources/views/layouts/application.html.erb +0 -0
  136. data/spec/resources/views/layouts/simple.html.erb +0 -0
  137. data/spec/resources/views/objects/_object.html.erb +0 -1
  138. data/spec/resources/views/render_spec/_a_partial.html.erb +0 -0
  139. data/spec/resources/views/render_spec/action_with_alternate_layout.html.erb +0 -0
  140. data/spec/resources/views/render_spec/some_action.html.erb +0 -0
  141. data/spec/resources/views/render_spec/some_action.js.rjs +0 -1
  142. data/spec/resources/views/rjs_spec/_replacement_partial.html.erb +0 -1
  143. data/spec/resources/views/rjs_spec/hide_div.js.rjs +0 -1
  144. data/spec/resources/views/rjs_spec/hide_page_element.js.rjs +0 -1
  145. data/spec/resources/views/rjs_spec/insert_html.js.rjs +0 -1
  146. data/spec/resources/views/rjs_spec/replace.js.rjs +0 -1
  147. data/spec/resources/views/rjs_spec/replace_html.js.rjs +0 -1
  148. data/spec/resources/views/rjs_spec/replace_html_with_partial.js.rjs +0 -1
  149. data/spec/resources/views/rjs_spec/visual_effect.js.rjs +0 -1
  150. data/spec/resources/views/rjs_spec/visual_toggle_effect.js.rjs +0 -1
  151. data/spec/resources/views/tag_spec/no_tags.html.erb +0 -1
  152. data/spec/resources/views/tag_spec/single_div_with_no_attributes.html.erb +0 -1
  153. data/spec/resources/views/tag_spec/single_div_with_one_attribute.html.erb +0 -1
  154. data/spec/resources/views/view_spec/_partial.html.erb +0 -2
  155. data/spec/resources/views/view_spec/_partial_used_twice.html.erb +0 -0
  156. data/spec/resources/views/view_spec/_partial_with_local_variable.html.erb +0 -1
  157. data/spec/resources/views/view_spec/_partial_with_sub_partial.html.erb +0 -1
  158. data/spec/resources/views/view_spec/_spacer.html.erb +0 -1
  159. data/spec/resources/views/view_spec/accessor.html.erb +0 -6
  160. data/spec/resources/views/view_spec/block_helper.html.erb +0 -3
  161. data/spec/resources/views/view_spec/entry_form.html.erb +0 -2
  162. data/spec/resources/views/view_spec/explicit_helper.html.erb +0 -2
  163. data/spec/resources/views/view_spec/foo/show.html.erb +0 -1
  164. data/spec/resources/views/view_spec/implicit_helper.html.erb +0 -2
  165. data/spec/resources/views/view_spec/multiple_helpers.html.erb +0 -3
  166. data/spec/resources/views/view_spec/path_params.html.erb +0 -1
  167. data/spec/resources/views/view_spec/should_not_receive.html.erb +0 -3
  168. data/spec/resources/views/view_spec/template_with_partial.html.erb +0 -5
  169. data/spec/resources/views/view_spec/template_with_partial_using_collection.html.erb +0 -3
  170. data/spec/resources/views/view_spec/template_with_partial_with_array.html.erb +0 -1
  171. data/spec/resources/views/view_spec/view_helpers.html.erb +0 -1
  172. data/spec/spec/rails/example/assigns_hash_proxy_spec.rb +0 -109
  173. data/spec/spec/rails/example/configuration_spec.rb +0 -67
  174. data/spec/spec/rails/example/controller_example_group_spec.rb +0 -307
  175. data/spec/spec/rails/example/controller_isolation_spec.rb +0 -75
  176. data/spec/spec/rails/example/cookies_proxy_spec.rb +0 -87
  177. data/spec/spec/rails/example/error_handling_spec.rb +0 -90
  178. data/spec/spec/rails/example/example_group_factory_spec.rb +0 -112
  179. data/spec/spec/rails/example/helper_example_group_spec.rb +0 -247
  180. data/spec/spec/rails/example/model_example_group_spec.rb +0 -32
  181. data/spec/spec/rails/example/routing_example_group_spec.rb +0 -9
  182. data/spec/spec/rails/example/shared_routing_example_group_examples.rb +0 -237
  183. data/spec/spec/rails/example/test_unit_assertion_accessibility_spec.rb +0 -33
  184. data/spec/spec/rails/example/view_example_group_spec.rb +0 -346
  185. data/spec/spec/rails/extensions/action_view_base_spec.rb +0 -79
  186. data/spec/spec/rails/extensions/active_record_spec.rb +0 -14
  187. data/spec/spec/rails/interop/testcase_spec.rb +0 -70
  188. data/spec/spec/rails/matchers/ar_be_valid_spec.rb +0 -19
  189. data/spec/spec/rails/matchers/assert_select_spec.rb +0 -835
  190. data/spec/spec/rails/matchers/errors_on_spec.rb +0 -37
  191. data/spec/spec/rails/matchers/have_text_spec.rb +0 -69
  192. data/spec/spec/rails/matchers/include_text_spec.rb +0 -62
  193. data/spec/spec/rails/matchers/redirect_to_spec.rb +0 -253
  194. data/spec/spec/rails/matchers/render_template_spec.rb +0 -208
  195. data/spec/spec/rails/matchers/should_change_spec.rb +0 -15
  196. data/spec/spec/rails/mocks/ar_classes.rb +0 -10
  197. data/spec/spec/rails/mocks/mock_model_spec.rb +0 -112
  198. data/spec/spec/rails/mocks/stub_model_spec.rb +0 -80
  199. data/spec/spec/rails/sample_modified_fixture.rb +0 -8
  200. data/spec/spec/rails/sample_spec.rb +0 -8
  201. data/spec/spec/rails/spec_spec.rb +0 -11
  202. data/spec/spec_helper.rb +0 -78
@@ -1,37 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe "error_on" do
4
- it "should provide a description including the name of what the error is on" do
5
- have(1).error_on(:whatever).description.should == "have 1 error on :whatever"
6
- end
7
-
8
- it "should provide a failure message including the number actually given" do
9
- lambda {
10
- [].should have(1).error_on(:whatever)
11
- }.should fail_with("expected 1 error on :whatever, got 0")
12
- end
13
- end
14
-
15
- describe "errors_on" do
16
- it "should provide a description including the name of what the error is on" do
17
- have(2).errors_on(:whatever).description.should == "have 2 errors on :whatever"
18
- end
19
-
20
- it "should provide a failure message including the number actually given" do
21
- lambda {
22
- [1].should have(3).errors_on(:whatever)
23
- }.should fail_with("expected 3 errors on :whatever, got 1")
24
- end
25
- end
26
-
27
- describe "have something other than error_on or errors_on" do
28
- it "has a standard rspec failure message" do
29
- lambda {
30
- [1,2,3].should have(2).elements
31
- }.should fail_with("expected 2 elements, got 3")
32
- end
33
-
34
- it "has a standard rspec description" do
35
- have(2).elements.description.should == "have 2 elements"
36
- end
37
- end
@@ -1,69 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe "have_text" do
4
-
5
- it "should have a helpful description" do
6
- matcher = have_text("foo bar")
7
- matcher.description.should == 'have text "foo bar"'
8
- end
9
-
10
- describe "where target is a Regexp" do
11
- it 'should should match submitted text using a regexp' do
12
- matcher = have_text(/fo*/)
13
- matcher.matches?('foo').should be_true
14
- matcher.matches?('bar').should be_nil
15
- end
16
- end
17
-
18
- describe "where target is a String" do
19
- it 'should match submitted text using a string' do
20
- matcher = have_text('foo')
21
- matcher.matches?('foo').should be_true
22
- matcher.matches?('foo bar').should be_false
23
- end
24
- end
25
-
26
- end
27
-
28
- describe "have_text",
29
- :type => :controller do
30
- ['isolation','integration'].each do |mode|
31
- if mode == 'integration'
32
- integrate_views
33
- end
34
-
35
- describe "where target is a response (in #{mode} mode)" do
36
- controller_name :render_spec
37
-
38
- it "should pass with exactly matching text" do
39
- post 'text_action'
40
- response.should have_text("this is the text for this action")
41
- end
42
-
43
- it "should pass with matching text (using Regexp)" do
44
- post 'text_action'
45
- response.should have_text(/is the text/)
46
- end
47
-
48
- it "should fail with matching text" do
49
- post 'text_action'
50
- lambda {
51
- response.should have_text("this is NOT the text for this action")
52
- }.should fail_with("expected \"this is NOT the text for this action\", got \"this is the text for this action\"")
53
- end
54
-
55
- it "should fail when a template is rendered" do
56
- post 'some_action'
57
- lambda {
58
- response.should have_text("this is the text for this action")
59
- }.should fail_with(/expected \"this is the text for this action\", got .*/)
60
- end
61
-
62
- it "should pass using should_not with incorrect text" do
63
- post 'text_action'
64
- response.should_not have_text("the accordian guy")
65
- end
66
- end
67
- end
68
- end
69
-
@@ -1,62 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe "include_text" do
4
-
5
- it "should have a helpful description" do
6
- matcher = include_text("foo bar")
7
- matcher.description.should == 'include text "foo bar"'
8
- end
9
-
10
- it 'should match if the text is contained' do
11
- matcher = include_text('big piece')
12
- matcher.matches?('I am a big piece of text').should be_true
13
- end
14
-
15
- it 'should not match if text is not contained' do
16
- matcher = include_text('foo bar')
17
- matcher.matches?('hello world').should be_false
18
- end
19
-
20
- end
21
-
22
- describe "include_text", :type => :controller do
23
- ['isolation','integration'].each do |mode|
24
- if mode == 'integration'
25
- integrate_views
26
- end
27
-
28
- describe "where target is a response (in #{mode} mode)" do
29
- controller_name :render_spec
30
-
31
- it "should pass with exactly matching text" do
32
- post 'text_action'
33
- response.should include_text("this is the text for this action")
34
- end
35
-
36
- it 'should pass with substring matching text' do
37
- post 'text_action'
38
- response.should include_text('text for this')
39
- end
40
-
41
- it "should fail with incorrect text" do
42
- post 'text_action'
43
- lambda {
44
- response.should include_text("the accordian guy")
45
- }.should fail_with("expected to find \"the accordian guy\" in \"this is the text for this action\"")
46
- end
47
-
48
- it "should pass using should_not with incorrect text" do
49
- post 'text_action'
50
- response.should_not include_text("the accordian guy")
51
- end
52
-
53
- it "should fail when a template is rendered" do
54
- get 'some_action'
55
- lambda {
56
- response.should include_text("this is the text for this action")
57
- }.should fail_with(/expected to find \"this is the text for this action\"/)
58
- end
59
- end
60
- end
61
- end
62
-
@@ -1,253 +0,0 @@
1
- require 'spec_helper'
2
-
3
- [:response, :controller].each do |subject_method|
4
- ['isolation','integration'].each do |mode|
5
- describe "redirect_to behaviour", :type => :controller do
6
- if mode == 'integration'
7
- integrate_views
8
- end
9
- controller_name :redirect_spec
10
-
11
- subject { send(subject_method) }
12
-
13
- it "redirected to another action" do
14
- get 'action_with_redirect_to_somewhere'
15
- should redirect_to(:action => 'somewhere')
16
- end
17
-
18
- it "redirected to another controller and action" do
19
- get 'action_with_redirect_to_other_somewhere'
20
- should redirect_to(:controller => 'render_spec', :action => 'text_action')
21
- end
22
-
23
- it "redirected to another action (with 'and return')" do
24
- get 'action_with_redirect_to_somewhere_and_return'
25
- should redirect_to(:action => 'somewhere')
26
- end
27
-
28
- it "redirected from an SSL action to a non-SSL action" do
29
- request.stub!(:ssl?).and_return true
30
- get 'action_with_redirect_to_somewhere'
31
- should redirect_to(:action => 'somewhere')
32
- end
33
-
34
- it "redirected to correct path with leading /" do
35
- get 'action_with_redirect_to_somewhere'
36
- should redirect_to('/redirect_spec/somewhere')
37
- end
38
-
39
- it "redirected to correct path without leading /" do
40
- get 'action_with_redirect_to_somewhere'
41
- should redirect_to('redirect_spec/somewhere')
42
- end
43
-
44
- it "redirected to correct internal URL" do
45
- get 'action_with_redirect_to_somewhere'
46
- should redirect_to("http://test.host/redirect_spec/somewhere")
47
- end
48
-
49
- it "redirected to correct external URL" do
50
- get 'action_with_redirect_to_rspec_site'
51
- should redirect_to("http://rspec.rubyforge.org")
52
- end
53
-
54
- it "redirected :back" do
55
- request.env['HTTP_REFERER'] = "http://test.host/previous/page"
56
- get 'action_with_redirect_back'
57
- should redirect_to(:back)
58
- end
59
-
60
- it "redirected :back and should redirect_to URL matches" do
61
- request.env['HTTP_REFERER'] = "http://test.host/previous/page"
62
- get 'action_with_redirect_back'
63
- should redirect_to("http://test.host/previous/page")
64
- end
65
-
66
- it "redirected from within a respond_to block" do
67
- get 'action_with_redirect_in_respond_to'
68
- should redirect_to('redirect_spec/somewhere')
69
- end
70
-
71
- params_as_hash = {:action => "somewhere", :id => 1111, :param1 => "value1", :param2 => "value2"}
72
-
73
- it "redirected to an internal URL containing a query string" do
74
- get "action_with_redirect_which_creates_query_string"
75
- should redirect_to(params_as_hash)
76
- end
77
-
78
- it "redirected to an internal URL containing a query string, one way it might be generated" do
79
- get "action_with_redirect_with_query_string_order1"
80
- should redirect_to(params_as_hash)
81
- end
82
-
83
- it "redirected to an internal URL containing a query string, another way it might be generated" do
84
- get "action_with_redirect_with_query_string_order2"
85
- should redirect_to(params_as_hash)
86
- end
87
-
88
- it "redirected to an internal URL which is unroutable but matched via a string" do
89
- get "action_with_redirect_to_unroutable_url_inside_app"
90
- should redirect_to("http://test.host/nonexistant/none")
91
- end
92
-
93
- it "redirected to a URL with a specific status code" do
94
- get "action_with_redirect_to_somewhere_with_status"
95
- should redirect_to(:action => 'somewhere').with(:status => 301)
96
- end
97
-
98
- it "redirected to a URL with a specific status code (using names)" do
99
- get "action_with_redirect_to_somewhere_with_status"
100
- should redirect_to(:action => 'somewhere').with(:status => :moved_permanently)
101
- end
102
-
103
- end
104
-
105
-
106
- describe "redirect_to with a controller spec in #{mode} mode and a custom request.host", :type => :controller do
107
- if mode == 'integration'
108
- integrate_views
109
- end
110
- controller_name :redirect_spec
111
-
112
- subject { send(subject_method) }
113
-
114
- before do
115
- request.host = "some.custom.host"
116
- end
117
-
118
- it "should pass when redirected to another action" do
119
- get 'action_with_redirect_to_somewhere'
120
- should redirect_to(:action => 'somewhere')
121
- end
122
- end
123
-
124
- describe "Given a controller spec in #{mode} mode", :type => :controller do
125
- if mode == 'integration'
126
- integrate_views
127
- end
128
- controller_name :redirect_spec
129
-
130
- subject { send(subject_method) }
131
-
132
- it "an action that redirects should not result in an error if no should redirect_to expectation is called" do
133
- get 'action_with_redirect_to_somewhere'
134
- end
135
-
136
- it "an action that redirects should not result in an error if should_not redirect_to expectation was called, but not to that action" do
137
- get 'action_with_redirect_to_somewhere'
138
- should_not redirect_to(:action => 'another_destination')
139
- end
140
-
141
- it "an action that redirects should result in an error if should_not redirect_to expectation was called to that action" do
142
- get 'action_with_redirect_to_somewhere'
143
- lambda {
144
- should_not redirect_to(:action => 'somewhere')
145
- }.should fail_with("expected not to be redirected to {:action=>\"somewhere\"}, but was")
146
- end
147
-
148
- it "an action that does not redirects should not result in an error if should_not redirect_to expectation was called" do
149
- get 'action_with_no_redirect'
150
- should_not redirect_to(:action => 'any_destination')
151
- end
152
-
153
-
154
- end
155
-
156
- describe "Given a controller spec in #{mode} mode, should redirect_to should fail when", :type => :controller do
157
- if mode == 'integration'
158
- integrate_views
159
- end
160
- controller_name :redirect_spec
161
-
162
- subject { send(subject_method) }
163
-
164
- it "redirected to wrong action" do
165
- get 'action_with_redirect_to_somewhere'
166
- lambda {
167
- should redirect_to(:action => 'somewhere_else')
168
- }.should fail_with("expected redirect to {:action=>\"somewhere_else\"}, got redirect to \"http://test.host/redirect_spec/somewhere\"")
169
- end
170
-
171
- it "redirected with wrong status code" do
172
- get 'action_with_redirect_to_somewhere_with_status'
173
- lambda {
174
- should redirect_to(:action => 'somewhere').with(:status => 302)
175
- }.should fail_with("expected redirect to {:action=>\"somewhere\"} with status 302 Found, got 301 Moved Permanently")
176
- end
177
-
178
- it "redirected with wrong status code (using names)" do
179
- get 'action_with_redirect_to_somewhere_with_status'
180
- lambda {
181
- should redirect_to(:action => 'somewhere').with(:status => :found)
182
- }.should fail_with("expected redirect to {:action=>\"somewhere\"} with status 302 Found, got 301 Moved Permanently")
183
- end
184
-
185
- it "redirected to incorrect path with leading /" do
186
- get 'action_with_redirect_to_somewhere'
187
- lambda {
188
- should redirect_to('/redirect_spec/somewhere_else')
189
- }.should fail_with('expected redirect to "/redirect_spec/somewhere_else", got redirect to "http://test.host/redirect_spec/somewhere"')
190
- end
191
-
192
- it "redirected to incorrect path without leading /" do
193
- get 'action_with_redirect_to_somewhere'
194
- lambda {
195
- should redirect_to('redirect_spec/somewhere_else')
196
- }.should fail_with('expected redirect to "redirect_spec/somewhere_else", got redirect to "http://test.host/redirect_spec/somewhere"')
197
- end
198
-
199
- it "redirected to incorrect internal URL (based on the action)" do
200
- get 'action_with_redirect_to_somewhere'
201
- lambda {
202
- should redirect_to("http://test.host/redirect_spec/somewhere_else")
203
- }.should fail_with('expected redirect to "http://test.host/redirect_spec/somewhere_else", got redirect to "http://test.host/redirect_spec/somewhere"')
204
- end
205
-
206
- it "redirected to wrong external URL" do
207
- get 'action_with_redirect_to_rspec_site'
208
- lambda {
209
- should redirect_to("http://test.unit.rubyforge.org")
210
- }.should fail_with('expected redirect to "http://test.unit.rubyforge.org", got redirect to "http://rspec.rubyforge.org"')
211
- end
212
-
213
- it "redirected to incorrect internal URL (based on the directory path)" do
214
- get 'action_with_redirect_to_somewhere'
215
- lambda {
216
- should redirect_to("http://test.host/non_existent_controller/somewhere")
217
- }.should fail_with('expected redirect to "http://test.host/non_existent_controller/somewhere", got redirect to "http://test.host/redirect_spec/somewhere"')
218
- end
219
-
220
- it "expected redirect :back, but redirected to a new URL" do
221
- get 'action_with_no_redirect'
222
- lambda {
223
- should redirect_to(:back)
224
- }.should fail_with('expected redirect to :back, got no redirect')
225
- end
226
-
227
- it "no redirect at all" do
228
- get 'action_with_no_redirect'
229
- lambda {
230
- should redirect_to(:action => 'nowhere')
231
- }.should fail_with("expected redirect to {:action=>\"nowhere\"}, got no redirect")
232
- end
233
-
234
- it "redirected to an internal URL which is unroutable and matched via a hash" do
235
- get "action_with_redirect_to_unroutable_url_inside_app"
236
- route = {:controller => "nonexistant", :action => "none"}
237
- lambda {
238
- should redirect_to(route)
239
- }.should raise_error(ActionController::RoutingError, /(no route found to match|No route matches) \"\/nonexistant\/none\" with \{.*\}/)
240
- end
241
-
242
- it "provides a description" do
243
- redirect_to("foo/bar").description.should == %q|redirect to "foo/bar"|
244
- end
245
-
246
- it "redirects to action with http method restriction" do
247
- post 'action_to_redirect_to_action_with_method_restriction'
248
- should redirect_to(:action => 'action_with_method_restriction')
249
- end
250
-
251
- end
252
- end
253
- end
@@ -1,208 +0,0 @@
1
- require 'spec_helper'
2
-
3
- [:response, :controller].each do |subject_method|
4
- ['isolation','integration'].each do |mode|
5
- describe "#{subject_method}.should render_template (in #{mode} mode)",
6
- :type => :controller do
7
- controller_name :render_spec
8
- if mode == 'integration'
9
- integrate_views
10
- end
11
-
12
- subject { send(subject_method) }
13
-
14
- it "matches an action (using a string)" do
15
- post 'some_action'
16
- should render_template('some_action')
17
- end
18
-
19
- it "does not match an action that is a truncated version of the actual action" do
20
- post 'some_action'
21
- should_not render_template('some_actio')
22
- end
23
-
24
- if ::Rails::VERSION::STRING >= '2.3'
25
- it "matches an action with specified extenstions (implicit format)" do
26
- post 'some_action'
27
- should render_template('some_action.html.erb')
28
- end
29
-
30
- it "matches an action with specified extenstions (explicit format)" do
31
- post 'some_action', :format => 'js'
32
- should render_template('some_action.js.rjs')
33
- end
34
- end
35
-
36
- it "matches an action (using a symbol)" do
37
- post 'some_action'
38
- should render_template(:some_action)
39
- end
40
-
41
- it "matches an action on a specific controller" do
42
- post 'some_action'
43
- should render_template('render_spec/some_action')
44
- end
45
-
46
- it "matches an action on a non-default specific controller" do
47
- post 'action_which_renders_template_from_other_controller'
48
- should render_template('controller_spec/action_with_template')
49
- end
50
-
51
- it "matches an rjs template" do
52
- xhr :post, 'some_action'
53
- should render_template('render_spec/some_action')
54
- end
55
-
56
- it "matches a partial template (simple path)" do
57
- get 'action_with_partial'
58
- should render_template("_a_partial")
59
- end
60
-
61
- it "matches a partial template (complex path)" do
62
- get 'action_with_partial'
63
- should render_template("render_spec/_a_partial")
64
- end
65
-
66
- it "fails when the wrong template is rendered" do
67
- post 'some_action'
68
- lambda do
69
- should render_template('non_existent_template')
70
- end.should fail_with(/expected \"non_existent_template\", got \"render_spec\/some_action(\.html\.erb)?\"/)
71
- end
72
-
73
- it "fails when redirected" do
74
- post :action_with_redirect
75
- lambda do
76
- should render_template(:some_action)
77
- end.should fail_with(/expected \"some_action\", got redirected to \"http:\/\/test.host\/render_spec\/some_action\"/)
78
- end
79
-
80
- it "fails when template is associated with a different controller but controller is not specified" do
81
- post 'action_which_renders_template_from_other_controller'
82
- lambda do
83
- should render_template('action_with_template')
84
- end.should fail_with(/expected \"action_with_template\", got \"controller_spec\/action_with_template(\.html\.erb)?\"/)
85
- end
86
-
87
- it "fails with incorrect full path when template is associated with a different controller" do
88
- post 'action_which_renders_template_from_other_controller'
89
- lambda do
90
- should render_template('render_spec/action_with_template')
91
- end.should fail_with(/expected \"render_spec\/action_with_template\", got \"controller_spec\/action_with_template(\.html\.erb)?\"/)
92
- end
93
-
94
- it "fails on the wrong extension" do
95
- get 'some_action'
96
- lambda {
97
- should render_template('render_spec/some_action.js.rjs')
98
- }.should fail_with(/expected \"render_spec\/some_action\.js\.rjs\", got \"render_spec\/some_action(\.html\.erb)?\"/)
99
- end
100
-
101
- it "faild when TEXT is rendered" do
102
- post 'text_action'
103
- lambda do
104
- should render_template('some_action')
105
- end.should fail_with(/expected \"some_action\", got (nil|\"\")/)
106
- end
107
-
108
- describe "with an alternate layout" do
109
- it "says it rendered the action's layout" do
110
- pending("record rendering of layouts") do
111
- get 'action_with_alternate_layout'
112
- should render_template('layouts/simple')
113
- end
114
- end
115
- end
116
-
117
- it "provides a description" do
118
- render_template("foo/bar").description.should == %q|render template "foo/bar"|
119
- end
120
- end
121
-
122
- describe "#{subject_method}.should_not render_template (in #{mode} mode)",
123
- :type => :controller do
124
- controller_name :render_spec
125
- if mode == 'integration'
126
- integrate_views
127
- end
128
-
129
- subject { send(subject_method) }
130
-
131
- it "passes when the action renders nothing" do
132
- post 'action_that_renders_nothing'
133
- should_not render_template('action_that_renders_nothing')
134
- end
135
-
136
- it "passes when the action renders nothing (symbol)" do
137
- post 'action_that_renders_nothing'
138
- should_not render_template(:action_that_renders_nothing)
139
- end
140
-
141
- it "passes when the action does not render the template" do
142
- post 'some_action'
143
- should_not render_template('some_other_template')
144
- end
145
-
146
- it "passes when the action does not render the template (symbol)" do
147
- post 'some_action'
148
- should_not render_template(:some_other_template)
149
- end
150
-
151
- it "passes when the action does not render the template (named with controller)" do
152
- post 'some_action'
153
- should_not render_template('render_spec/some_other_template')
154
- end
155
-
156
- it "passes when the action renders the template with a different controller" do
157
- post 'action_which_renders_template_from_other_controller'
158
- should_not render_template('action_with_template')
159
- end
160
-
161
- it "passes when the action renders the template (named with controller) with a different controller" do
162
- post 'action_which_renders_template_from_other_controller'
163
- should_not render_template('render_spec/action_with_template')
164
- end
165
-
166
- it "passes when TEXT is rendered" do
167
- post 'text_action'
168
- should_not render_template('some_action')
169
- end
170
-
171
- it "fails when the action renders the template" do
172
- post 'some_action'
173
- lambda do
174
- should_not render_template('some_action')
175
- end.should fail_with("expected not to render \"some_action\", but did")
176
- end
177
-
178
- it "fails when the action renders the template (symbol)" do
179
- post 'some_action'
180
- lambda do
181
- should_not render_template(:some_action)
182
- end.should fail_with("expected not to render \"some_action\", but did")
183
- end
184
-
185
- it "fails when the action renders the template (named with controller)" do
186
- post 'some_action'
187
- lambda do
188
- should_not render_template('render_spec/some_action')
189
- end.should fail_with("expected not to render \"render_spec/some_action\", but did")
190
- end
191
-
192
- it "fails when the action renders the partial" do
193
- post 'action_with_partial'
194
- lambda do
195
- should_not render_template('_a_partial')
196
- end.should fail_with("expected not to render \"_a_partial\", but did")
197
- end
198
-
199
- it "fails when the action renders the partial (named with controller)" do
200
- post 'action_with_partial'
201
- lambda do
202
- should_not render_template('render_spec/_a_partial')
203
- end.should fail_with("expected not to render \"render_spec/_a_partial\", but did")
204
- end
205
-
206
- end
207
- end
208
- end