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 +0,0 @@
1
- <div>This is action_with_template.rhtml</div>
@@ -1 +0,0 @@
1
- <%- raise "THIS TEMPLATE SHOULD NOT BE RENDERED" -%>
@@ -1 +0,0 @@
1
- <%= object.name %>
@@ -1 +0,0 @@
1
- # This is used for rails > 1.2.3
@@ -1 +0,0 @@
1
- This is the text in the replacement partial.
@@ -1 +0,0 @@
1
- page.hide 'mydiv'
@@ -1 +0,0 @@
1
- page['mydiv'].hide
@@ -1 +0,0 @@
1
- page.insert_html 'mydiv', 'replacement text'
@@ -1 +0,0 @@
1
- page.replace 'mydiv', 'replacement text'
@@ -1 +0,0 @@
1
- page.replace_html 'mydiv', 'replacement text'
@@ -1 +0,0 @@
1
- page.replace_html 'mydiv', :partial => 'rjs_spec/replacement_partial'
@@ -1 +0,0 @@
1
- page.visual_effect :fade, 'mydiv'
@@ -1 +0,0 @@
1
- page.visual_effect :toggle_blind, 'mydiv'
@@ -1 +0,0 @@
1
- <!-THIS FILE HAS NO TAGS->
@@ -1,2 +0,0 @@
1
- <%= method_in_plugin_application_helper %>
2
- <%= method_in_partial %>
@@ -1 +0,0 @@
1
- <%= render :partial => 'partial', :object => partial %>
@@ -1 +0,0 @@
1
- <hr id="spacer" />
@@ -1,6 +0,0 @@
1
- <div id="session"><%= session[:key] %></div>
2
- <div id="params"><%= params[:key] %></div>
3
- <div id="flash"><%= flash[:key] %></div>
4
- <div id="flash_now"><%= flash[:now_key] %></div>
5
- <div id="controller"><%= params[:controller] %></div>
6
- <div id="action"><%= params[:action] %></div>
@@ -1,3 +0,0 @@
1
- <% if_allowed do %>
2
- <div>block helper was rendered</div>
3
- <% end %>
@@ -1,2 +0,0 @@
1
- <% form_tag do %>
2
- <% end %>
@@ -1,2 +0,0 @@
1
- <%= method_in_plugin_application_helper %>
2
- <%= method_in_explicit_helper %>
@@ -1 +0,0 @@
1
- <%= method_in_plugin_application_helper %>
@@ -1,2 +0,0 @@
1
- <%= method_in_plugin_application_helper %>
2
- <%= method_in_helper %>
@@ -1,3 +0,0 @@
1
- <%= method_in_plugin_application_helper %>
2
- <%= method_in_explicit_helper %>
3
- <%= method_in_more_explicit_helper %>
@@ -1 +0,0 @@
1
- <%= params[:controller] %>
@@ -1,3 +0,0 @@
1
- <% if @obj.render_partial? %>
2
- <%= render :partial => 'some_partial' %>
3
- <% end %>
@@ -1,5 +0,0 @@
1
- <%= method_in_template_with_partial %>
2
- <%= render :partial => 'partial' %>
3
-
4
- <%= render :partial => 'partial_used_twice' %>
5
- <%= render :partial => 'partial_used_twice' %>
@@ -1,3 +0,0 @@
1
- <%= render :partial => 'partial',
2
- :collection => ['Alice', 'Bob'],
3
- :spacer_template => 'spacer' %>
@@ -1 +0,0 @@
1
- <%= render :partial => @array %>
@@ -1 +0,0 @@
1
- <span><%= link_to "edit", "this_is_the_link" %></span>
@@ -1,109 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe "AssignsHashProxy" do
4
- def orig_assigns
5
- @object.assigns
6
- end
7
-
8
- class Foo
9
- def initialize(bar)
10
- @bar = bar
11
- end
12
- attr_reader :bar
13
-
14
- def ==(other)
15
- self.bar == other.bar
16
- end
17
- end
18
-
19
- before(:each) do
20
- @object = Class.new do
21
- def assigns; @assigns ||= Hash.new; end
22
- end.new
23
- @proxy = Spec::Rails::Example::AssignsHashProxy.new(self) {@object}
24
- end
25
-
26
- it "doesn't wig out on objects that define their own == method" do
27
- @object.assigns['foo'] = Foo.new(1)
28
- @proxy['foo'].should == Foo.new(1)
29
- end
30
-
31
- it "should set ivars on object using string" do
32
- @proxy['foo'] = 'bar'
33
- @object.instance_eval{@foo}.should == 'bar'
34
- end
35
-
36
- it "should set ivars on object using symbol" do
37
- @proxy[:foo] = 'bar'
38
- @object.instance_eval{@foo}.should == 'bar'
39
- end
40
-
41
- it "should access object's assigns with a string" do
42
- @object.assigns['foo'] = 'bar'
43
- @proxy['foo'].should == 'bar'
44
- end
45
-
46
- it "should access object's assigns with a symbol" do
47
- @object.assigns['foo'] = 'bar'
48
- @proxy[:foo].should == 'bar'
49
- end
50
-
51
- it "should access object's ivars with a string" do
52
- @object.instance_variable_set('@foo', 'bar')
53
- @proxy['foo'].should == 'bar'
54
- end
55
-
56
- it "should access object's ivars with a symbol" do
57
- @object.instance_variable_set('@foo', 'bar')
58
- @proxy[:foo].should == 'bar'
59
- end
60
-
61
- it "should iterate through each element like a Hash" do
62
- values = {
63
- 'foo' => 1,
64
- 'bar' => 2,
65
- 'baz' => 3
66
- }
67
- @proxy['foo'] = values['foo']
68
- @proxy['bar'] = values['bar']
69
- @proxy['baz'] = values['baz']
70
-
71
- @proxy.each do |key, value|
72
- key.should == key
73
- value.should == values[key]
74
- end
75
- end
76
-
77
- it "should delete the ivar of passed in key" do
78
- @object.instance_variable_set('@foo', 'bar')
79
- @proxy.delete('foo')
80
- @proxy['foo'].should be_nil
81
- end
82
-
83
- it "should delete the assigned element of passed in key" do
84
- @object.assigns['foo'] = 'bar'
85
- @proxy.delete('foo')
86
- @proxy['foo'].should be_nil
87
- end
88
-
89
- it "should detect the presence of a key in assigns" do
90
- @object.assigns['foo'] = 'bar'
91
- @proxy.has_key?('foo').should == true
92
- @proxy.has_key?('bar').should == false
93
- end
94
-
95
- it "should expose values set in example back to the example" do
96
- @proxy[:foo] = 'bar'
97
- @proxy[:foo].should == 'bar'
98
- end
99
-
100
- it "should allow assignment of false via proxy" do
101
- @proxy['foo'] = false
102
- @proxy['foo'].should be_false
103
- end
104
-
105
- it "should allow assignment of false" do
106
- @object.instance_variable_set('@foo',false)
107
- @proxy['foo'].should be_false
108
- end
109
- end
@@ -1,67 +0,0 @@
1
- require 'spec_helper'
2
-
3
- module Spec
4
- module Runner
5
- describe Configuration do
6
-
7
- def config
8
- @config ||= Configuration.new
9
- end
10
-
11
- describe "#use_transactional_fixtures" do
12
- it "should return ActiveSupport::TestCase.use_transactional_fixtures" do
13
- config.use_transactional_fixtures.should == ActiveSupport::TestCase.use_transactional_fixtures
14
- end
15
-
16
- it "should set ActiveSupport::TestCase.use_transactional_fixtures to false" do
17
- ActiveSupport::TestCase.should_receive(:use_transactional_fixtures=).with(false)
18
- config.use_transactional_fixtures = false
19
- end
20
-
21
- it "should set ActiveSupport::TestCase.use_transactional_fixtures to true" do
22
- ActiveSupport::TestCase.should_receive(:use_transactional_fixtures=).with(true)
23
- config.use_transactional_fixtures = true
24
- end
25
- end
26
-
27
- describe "#use_instantiated_fixtures" do
28
- it "should return ActiveSupport::TestCase.use_transactional_fixtures" do
29
- config.use_instantiated_fixtures.should == ActiveSupport::TestCase.use_instantiated_fixtures
30
- end
31
-
32
- it "should set ActiveSupport::TestCase.use_instantiated_fixtures to false" do
33
- ActiveSupport::TestCase.should_receive(:use_instantiated_fixtures=).with(false)
34
- config.use_instantiated_fixtures = false
35
- end
36
-
37
- it "should set ActiveSupport::TestCase.use_instantiated_fixtures to true" do
38
- ActiveSupport::TestCase.should_receive(:use_instantiated_fixtures=).with(true)
39
- config.use_instantiated_fixtures = true
40
- end
41
- end
42
-
43
- describe "#fixture_path" do
44
- it "should default to RAILS_ROOT + '/spec/fixtures'" do
45
- config.fixture_path.should == RAILS_ROOT + '/spec/fixtures'
46
- ActiveSupport::TestCase.fixture_path.should == RAILS_ROOT + '/spec/fixtures'
47
- ActionController::IntegrationTest.fixture_path.should == RAILS_ROOT + '/spec/fixtures'
48
- end
49
-
50
- it "should set fixture_path" do
51
- config.fixture_path = "/new/path"
52
- config.fixture_path.should == "/new/path"
53
- ActiveSupport::TestCase.fixture_path.should == "/new/path"
54
- ActionController::IntegrationTest.fixture_path.should == "/new/path"
55
- end
56
- end
57
-
58
- describe "#global_fixtures" do
59
- it "should set fixtures on TestCase" do
60
- ActiveSupport::TestCase.should_receive(:fixtures).with(:blah)
61
- config.global_fixtures = [:blah]
62
- end
63
- end
64
-
65
- end
66
- end
67
- end
@@ -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
- it_should_behave_like "a routing example"
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