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,203 +0,0 @@
1
- module Spec
2
- module Rails
3
- module Example
4
- class ViewExampleGroupController < ApplicationController #:nodoc:
5
- include Spec::Rails::Example::RenderObserver
6
- attr_reader :template
7
-
8
- def add_helper_for(template_path)
9
- add_helper(template_path.split('/')[0])
10
- end
11
-
12
- def add_helper(name)
13
- begin
14
- helper_module = "#{name}_helper".camelize.constantize
15
- rescue
16
- return
17
- end
18
- (class << template; self; end).class_eval do
19
- include helper_module
20
- end
21
- end
22
-
23
- def forget_variables_added_to_assigns
24
- end
25
- end
26
-
27
- # View Examples live in $RAILS_ROOT/spec/views/.
28
- #
29
- # View Specs use Spec::Rails::Example::ViewExampleGroup,
30
- # which provides access to views without invoking any of your controllers.
31
- # See Spec::Rails::Expectations::Matchers for information about specific
32
- # expectations that you can set on views.
33
- #
34
- # == Example
35
- #
36
- # describe "login/login" do
37
- # before do
38
- # render 'login/login'
39
- # end
40
- #
41
- # it "should display login form" do
42
- # response.should have_tag("form[action=/login]") do
43
- # with_tag("input[type=text][name=email]")
44
- # with_tag("input[type=password][name=password]")
45
- # with_tag("input[type=submit][value=Login]")
46
- # end
47
- # end
48
- # end
49
- class ViewExampleGroup < FunctionalExampleGroup
50
- if ActionView::Base.respond_to?(:load_helpers) # Rails 2.0.x
51
- ActionView::Helpers.constants.each do |name|
52
- const = ActionView::Helpers.const_get(name)
53
- include const if name.include?("Helper") && Module === const
54
- end
55
- elsif ActionView::Base.respond_to?(:helper_modules) # Rails 2.1.x
56
- ActionView::Base.helper_modules.each do |helper_module|
57
- include helper_module
58
- end
59
- else # Rails 2.2.x
60
- include ActionView::Helpers
61
- end
62
-
63
- tests ViewExampleGroupController
64
- class << self
65
- def inherited(klass) # :nodoc:
66
- klass.subject { template }
67
- super
68
- end
69
- end
70
-
71
- before {ensure_that_flash_and_session_work_properly}
72
- after {ensure_that_base_view_path_is_not_set_across_example_groups}
73
-
74
- def ensure_that_flash_and_session_work_properly #:nodoc:
75
- # For some reason which I do not yet understand, when running
76
- # examples with rake on ruby-1.9.2, the @controller is not defined.
77
- @controller ||= ViewExampleGroupController.new
78
-
79
- @controller.class.__send__ :public, :flash
80
- @controller.__send__ :initialize_template_class, @response
81
- @controller.__send__ :assign_shortcuts, @request, @response
82
- @controller.__send__ :initialize_current_url
83
- @session = @controller.session
84
- end
85
-
86
- def ensure_that_base_view_path_is_not_set_across_example_groups #:nodoc:
87
- ActionView::Base.base_view_path = nil
88
- end
89
-
90
- def set_base_view_path(options) #:nodoc:
91
- ActionView::Base.base_view_path = base_view_path(options)
92
- end
93
-
94
- def base_view_path(options) #:nodoc:
95
- "/#{derived_controller_name(options)}/"
96
- end
97
-
98
- def derived_controller_name(options) #:nodoc:
99
- parts = subject_of_render(options).split('/').reject { |part| part.empty? }
100
- "#{parts[0..-2].join('/')}"
101
- end
102
-
103
- def derived_action_name(options) #:nodoc:
104
- parts = subject_of_render(options).split('/').reject { |part| part.empty? }
105
- "#{parts.last}".split('.').first
106
- end
107
-
108
- def subject_of_render(options) #:nodoc:
109
- [:template, :partial, :file].each do |render_type|
110
- if options.has_key?(render_type)
111
- return options[render_type]
112
- end
113
- end
114
- return ""
115
- end
116
-
117
- def add_helpers(options) #:nodoc:
118
- @controller.add_helper("application")
119
- @controller.add_helper(derived_controller_name(options))
120
- @controller.add_helper(options[:helper]) if options[:helper]
121
- options[:helpers].each { |helper| @controller.add_helper(helper) } if options[:helpers]
122
- end
123
-
124
- # Renders a template for a View Spec, which then provides access to the result
125
- # through the +response+. Also supports render with :inline, which you can
126
- # use to spec custom form builders, helpers, etc, in the context of a view.
127
- #
128
- # == Examples
129
- #
130
- # render('/people/list')
131
- # render('/people/list', :helper => MyHelper)
132
- # render('/people/list', :helpers => [MyHelper, MyOtherHelper])
133
- # render(:partial => '/people/_address')
134
- # render(:inline => "<% custom_helper 'argument', 'another argument' %>")
135
- #
136
- # See Spec::Rails::Example::ViewExampleGroup for more information.
137
- def render(*args)
138
- options = Hash === args.last ? args.pop : {}
139
-
140
- if args.empty?
141
- unless [:partial, :inline, :file, :template, :xml, :json, :update].any? {|k| options.has_key? k}
142
- args << self.class.description_parts.first
143
- end
144
- end
145
-
146
- options[:template] = args.first.to_s.sub(/^\//,'') unless args.empty?
147
-
148
- set_base_view_path(options)
149
- add_helpers(options)
150
-
151
- assigns[:action_name] = @action_name
152
-
153
- @request.path_parameters = @request.path_parameters.merge(
154
- :controller => derived_controller_name(options),
155
- :action => derived_action_name(options)
156
- ).merge(options[:path_parameters] || {})
157
-
158
- defaults = { :layout => false }
159
- options = defaults.merge options
160
-
161
- @controller.__send__(:params).reverse_merge! @request.parameters
162
-
163
- @controller.class.instance_eval %{
164
- def controller_path
165
- "#{derived_controller_name(options)}"
166
- end
167
-
168
- def controller_name
169
- "#{derived_controller_name(options).split('/').last}"
170
- end
171
- }
172
-
173
- @controller.__send__ :forget_variables_added_to_assigns
174
- @controller.__send__ :render, options
175
- @controller.__send__ :process_cleanup
176
- end
177
-
178
- # This provides the template. Use this to set mock
179
- # expectations for dealing with partials
180
- #
181
- # == Example
182
- #
183
- # describe "/person/new" do
184
- # it "should use the form partial" do
185
- # template.should_receive(:render).with(:partial => 'form')
186
- # render "/person/new"
187
- # end
188
- # end
189
- def template
190
- @controller.template
191
- end
192
-
193
- Spec::Example::ExampleGroupFactory.register(:view, self)
194
-
195
- protected
196
- def _assigns_hash_proxy
197
- @_assigns_hash_proxy ||= AssignsHashProxy.new(self) {@response.template}
198
- end
199
- end
200
-
201
- end
202
- end
203
- end
@@ -1,11 +0,0 @@
1
- require 'spec'
2
-
3
- require 'spec/rails/extensions/spec/runner/configuration'
4
- require 'spec/rails/extensions/spec/matchers/have'
5
-
6
- require 'spec/rails/extensions/active_support/test_case'
7
- require 'spec/rails/extensions/active_record/base'
8
- require 'spec/rails/extensions/action_controller/rescue'
9
- require 'spec/rails/extensions/action_controller/test_case'
10
- require 'spec/rails/extensions/action_controller/test_response'
11
- require 'spec/rails/extensions/action_view/base'
@@ -1,42 +0,0 @@
1
- module ActionController
2
- module Rescue
3
- def use_rails_error_handling!
4
- Kernel.warn <<-WARNING
5
- DEPRECATION NOTICE: controller.use_rails_error_handling! is
6
- deprecated and will be removed from a future version of
7
- rspec-rails.
8
-
9
- Use rescue_action_in_public!, which is defined directly in
10
- rails' testing framework, instead.
11
- WARNING
12
- if ::Rails::VERSION::STRING =~ /^2\.0/
13
- @use_rails_error_handling = true
14
- else
15
- # anything but 0.0.0.0 - borrowed from rails own rescue_action_in_public!
16
- request.remote_addr = '208.77.188.166'
17
- end
18
- end
19
-
20
- def use_rails_error_handling?
21
- @use_rails_error_handling ||= false
22
- end
23
-
24
- protected
25
-
26
- if ::Rails::VERSION::STRING =~ /^2\.0/
27
- def rescue_action_in_public?
28
- request.respond_to?(:rescue_action_in_public?) and request.rescue_action_in_public?
29
- end
30
-
31
- def rescue_action_with_handler_with_fast_errors(exception)
32
- if (use_rails_error_handling? || rescue_action_in_public?) & !handler_for_rescue(exception)
33
- rescue_action_in_public(exception)
34
- else
35
- rescue_action_with_handler_without_fast_errors(exception)
36
- end
37
- end
38
- alias_method_chain :rescue_action_with_handler, :fast_errors
39
- end
40
-
41
- end
42
- end
@@ -1,16 +0,0 @@
1
- module ActionController
2
- class TestCase
3
- include ::Spec::Rails::Example::RoutingHelpers
4
-
5
- if ::Rails::VERSION::STRING =~ /2\.0/
6
- # Introduced in Rails 2.1, but we need it for 2.0
7
- def rescue_action_in_public!
8
- # See rescue.rb in this same directory
9
- def request.rescue_action_in_public?
10
- true
11
- end
12
- end
13
-
14
- end
15
- end
16
- end
@@ -1,21 +0,0 @@
1
- module ActionController #:nodoc:
2
- class TestResponse #:nodoc:
3
- attr_writer :controller_path
4
-
5
- def capture(name)
6
- template.instance_variable_get "@content_for_#{name.to_s}"
7
- end
8
-
9
- if ::Rails::VERSION::STRING < "2.3"
10
- def [](name)
11
- Kernel.warn <<-WARNING
12
- DEPRECATION NOTICE: [](name) as an alias for capture(name) (TestResponse
13
- extension in rspec-rails) is deprecated and will not be defined by rspec-rails
14
- when working with rails >= 2.3.0. It will also be removed entirely from
15
- a future version of rspec-rails.
16
- WARNING
17
- capture(name)
18
- end
19
- end
20
- end
21
- end
@@ -1,35 +0,0 @@
1
- module ActionView #:nodoc:
2
- class Base #:nodoc:
3
- include Spec::Rails::Example::RenderObserver
4
- cattr_accessor :base_view_path
5
-
6
- def render_partial_with_base_view_path_handling(partial_path, local_assigns = nil, deprecated_local_assigns = nil) #:nodoc:
7
- if partial_path.is_a?(String)
8
- unless partial_path.include?("/")
9
- unless self.class.base_view_path.nil?
10
- partial_path = "#{self.class.base_view_path}/#{partial_path}"
11
- end
12
- end
13
- end
14
- begin
15
- render_partial_without_base_view_path_handling(partial_path, local_assigns, deprecated_local_assigns)
16
- rescue ArgumentError # edge rails > 2.1 changed render_partial to accept only one arg
17
- render_partial_without_base_view_path_handling(partial_path)
18
- end
19
- end
20
- alias_method_chain :render_partial, :base_view_path_handling
21
-
22
- def render_with_mock_proxy(options = {}, old_local_assigns = {}, &block)
23
- if render_proxy.__send__(:__mock_proxy).__send__(:find_matching_expectation, :render, options, old_local_assigns)
24
- render_proxy.render(options, old_local_assigns)
25
- elsif render_proxy.__send__(:__mock_proxy).__send__(:find_matching_expectation, :render, options)
26
- render_proxy.render(options)
27
- else
28
- unless render_proxy.__send__(:__mock_proxy).__send__(:find_matching_method_stub, :render, options)
29
- render_without_mock_proxy(options, old_local_assigns, &block)
30
- end
31
- end
32
- end
33
- alias_method_chain :render, :mock_proxy
34
- end
35
- end
@@ -1,45 +0,0 @@
1
- if defined?(ActiveRecord::Base)
2
- module Spec
3
- module Rails
4
- module Extensions
5
- module ActiveRecord
6
- module ClassMethods
7
- # :call-seq:
8
- # ModelClass.should have(:no).records
9
- # ModelClass.should have(1).record
10
- # ModelClass.should have(n).records
11
- #
12
- # Extension to enhance <tt>should have</tt> on AR Model classes
13
- def records
14
- find(:all)
15
- end
16
- alias :record :records
17
- end
18
-
19
- module InstanceMethods
20
- # :call-seq:
21
- # model.should have(:no).errors_on(:attribute)
22
- # model.should have(1).error_on(:attribute)
23
- # model.should have(n).errors_on(:attribute)
24
- #
25
- # Extension to enhance <tt>should have</tt> on AR Model instances.
26
- # Calls model.valid? in order to prepare the object's errors
27
- # object.
28
- def errors_on(attribute)
29
- self.valid?
30
- [self.errors.on(attribute)].flatten.compact
31
- end
32
- alias :error_on :errors_on
33
- end
34
- end
35
- end
36
- end
37
- end
38
-
39
- module ActiveRecord #:nodoc:
40
- class Base
41
- extend Spec::Rails::Extensions::ActiveRecord::ClassMethods
42
- include Spec::Rails::Extensions::ActiveRecord::InstanceMethods
43
- end
44
- end
45
- end
@@ -1,7 +0,0 @@
1
- module ActiveSupport
2
- class TestCase
3
- include ::Spec::Rails::Matchers
4
- include ::Spec::Rails::Mocks
5
- end
6
- end
7
-
@@ -1,23 +0,0 @@
1
- require 'spec/matchers/have'
2
-
3
- module Spec #:nodoc:
4
- module Matchers #:nodoc:
5
- class Have #:nodoc:
6
-
7
- def failure_message_for_should_with_errors_on_extensions
8
- return "expected #{relativities[@relativity]}#{@expected} errors on :#{@args[0]}, got #{@actual}" if @collection_name == :errors_on
9
- return "expected #{relativities[@relativity]}#{@expected} error on :#{@args[0]}, got #{@actual}" if @collection_name == :error_on
10
- return failure_message_for_should_without_errors_on_extensions
11
- end
12
- alias_method_chain :failure_message_for_should, :errors_on_extensions
13
-
14
- def description_with_errors_on_extensions
15
- return "have #{relativities[@relativity]}#{@expected} errors on :#{@args[0]}" if @collection_name == :errors_on
16
- return "have #{relativities[@relativity]}#{@expected} error on :#{@args[0]}" if @collection_name == :error_on
17
- return description_without_errors_on_extensions
18
- end
19
- alias_method_chain :description, :errors_on_extensions
20
-
21
- end
22
- end
23
- end
@@ -1,45 +0,0 @@
1
- require 'spec/runner/configuration'
2
- require 'test_help'
3
-
4
- if defined?(ActiveRecord::Base)
5
- module Spec
6
- module Runner
7
- class Configuration
8
-
9
- def initialize
10
- super
11
- self.fixture_path = RAILS_ROOT + '/spec/fixtures'
12
- end
13
-
14
- def use_transactional_fixtures
15
- ActiveSupport::TestCase.use_transactional_fixtures
16
- end
17
- def use_transactional_fixtures=(value)
18
- ActiveSupport::TestCase.use_transactional_fixtures = value
19
- end
20
-
21
- def use_instantiated_fixtures
22
- ActiveSupport::TestCase.use_instantiated_fixtures
23
- end
24
- def use_instantiated_fixtures=(value)
25
- ActiveSupport::TestCase.use_instantiated_fixtures = value
26
- end
27
-
28
- def fixture_path
29
- ActiveSupport::TestCase.fixture_path
30
- end
31
- def fixture_path=(path)
32
- ActiveSupport::TestCase.fixture_path = path
33
- ActionController::IntegrationTest.fixture_path = path
34
- end
35
-
36
- def global_fixtures
37
- ActiveSupport::TestCase.fixture_table_names
38
- end
39
- def global_fixtures=(fixtures)
40
- ActiveSupport::TestCase.fixtures(*fixtures)
41
- end
42
- end
43
- end
44
- end
45
- end