dchelimsky-rspec-rails 1.1.11.7 → 1.1.12

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
data/History.txt CHANGED
@@ -1,5 +1,13 @@
1
1
  === Maintenance
2
2
 
3
+ IMPORTANT: rspec-rails supports rails 2.0.2, 2.1.2 and 2.2.2. We are no longer supporting 1.x versions of rails.
4
+
5
+ * 1 enhancement
6
+
7
+ * Adding status codes to redirect_to matcher (Damian Janowski). Closes #570.
8
+
9
+ === Version 1.1.12 / 2009-01-11
10
+
3
11
  * 2 deprecations
4
12
 
5
13
  * TestResponse#[] is deprecated if you're using Rails <= 2.2.x and removed if you're using Rails 2.3
@@ -9,6 +17,7 @@
9
17
 
10
18
  * support controller and action path params in view specs (Mike Vincent).
11
19
  * use ActiveSupport::TestCase when available, else Test::Unit::TestCase - supports Rails 1.2.6 (Brandon Keepers). Closes #620.
20
+ * support form tag helpers in helpers (Ivo Dancet). Closes #641.
12
21
 
13
22
  * 3 minor enhancements
14
23
 
@@ -16,7 +25,7 @@
16
25
  * use more liberal globs to allow for specs in symlinked dirs (Martin Luder). Closes #361.
17
26
  * Enable loading fixtures from arbitrary locations (Jacek Becela). Closes #464.
18
27
 
19
- * 6 bug fixes
28
+ * 7 bug fixes
20
29
 
21
30
  * Attempt to load application_controller before falling back to application (Geoff Garside). Closes #626.
22
31
  * Include _id and reduce quoting of default values in view specs (Steen Lehmann). Closes #598.
@@ -24,6 +33,7 @@
24
33
  * config.gem 'rspec' can't be unpacked. Closes #629.
25
34
  * spec_server not working with Rails 2.2.2 (Andreas Wolff). Closes #631.
26
35
  * redirect_to doesn't work with http method constrained urls (Maxim Kulkin). Closes #648.
36
+ * rescue_with declarations are no longer by-passed (Brandon Keepers). #85
27
37
 
28
38
  === Version 1.1.11 / 2008-10-24
29
39
 
data/Rakefile CHANGED
@@ -20,7 +20,7 @@ Hoe.new('rspec-rails', Spec::Rails::VERSION::STRING) do |p|
20
20
  p.description = "Behaviour Driven Development for Ruby on Rails."
21
21
  p.rubyforge_name = 'rspec'
22
22
  p.developer('RSpec Development Team', 'rspec-devel@rubyforge.org')
23
- p.extra_deps = [["rspec","1.1.11.7"]]
23
+ p.extra_deps = [["rspec","1.1.12"]]
24
24
  p.extra_dev_deps = [["cucumber",">= 0.1.13"]]
25
25
  p.remote_rdoc_dir = "rspec-rails/#{Spec::Rails::VERSION::STRING}"
26
26
  end
@@ -38,29 +38,9 @@ module Spec
38
38
  #
39
39
  # == Expecting Errors
40
40
  #
41
- # Rspec on Rails will raise errors that occur in controller actions.
42
- # In contrast, Rails will swallow errors that are raised in controller
43
- # actions and return an error code in the header. If you wish to override
44
- # Rspec and have Rail's default behaviour,tell the controller to use
45
- # rails error handling ...
41
+ # Rspec on Rails will raise errors that occur in controller actions and
42
+ # are not rescued or handeled with rescue_from.
46
43
  #
47
- # before(:each) do
48
- # controller.use_rails_error_handling!
49
- # end
50
- #
51
- # When using Rail's error handling, you can expect error codes in headers ...
52
- #
53
- # it "should return an error in the header" do
54
- # response.should be_error
55
- # end
56
- #
57
- # it "should return a 501" do
58
- # response.response_code.should == 501
59
- # end
60
- #
61
- # it "should return a 501" do
62
- # response.code.should == "501"
63
- # end
64
44
  class ControllerExampleGroup < FunctionalExampleGroup
65
45
  class << self
66
46
 
@@ -176,10 +156,7 @@ module Spec
176
156
  # This gets added to the controller's singleton meta class,
177
157
  # allowing Controller Examples to run in two modes, freely switching
178
158
  # from context to context.
179
- def render(options=nil, deprecated_status_or_extra_options=nil, &block)
180
- if ::Rails::VERSION::STRING >= '2.0.0' && deprecated_status_or_extra_options.nil?
181
- deprecated_status_or_extra_options = {}
182
- end
159
+ def render(options=nil, &block)
183
160
 
184
161
  unless block_given?
185
162
  unless integrate_views?
@@ -223,7 +200,7 @@ module Spec
223
200
  if matching_stub_exists(options)
224
201
  @performed_render = true
225
202
  else
226
- super(options, deprecated_status_or_extra_options, &block)
203
+ super(options, &block)
227
204
  end
228
205
  end
229
206
  end
@@ -26,6 +26,8 @@ module Spec
26
26
  # end
27
27
  # end
28
28
  class HelperExampleGroup < FunctionalExampleGroup
29
+ attr_accessor :output_buffer
30
+
29
31
  class HelperObject < ActionView::Base
30
32
  def protect_against_forgery?
31
33
  false
@@ -117,7 +119,9 @@ module Spec
117
119
 
118
120
  @flash = ActionController::Flash::FlashHash.new
119
121
  session['flash'] = @flash
120
-
122
+
123
+ @output_buffer = ""
124
+ @template = helper
121
125
  ActionView::Helpers::AssetTagHelper::reset_javascript_include_default
122
126
 
123
127
  helper.session = session
@@ -161,9 +165,6 @@ module Spec
161
165
 
162
166
  class HelperExampleGroupController < ApplicationController #:nodoc:
163
167
  attr_accessor :request, :url
164
-
165
- # Re-raise errors
166
- def rescue_action(e); raise e; end
167
168
  end
168
169
  end
169
170
  end
@@ -8,14 +8,18 @@ module ActionController
8
8
  @use_rails_error_handling ||= false
9
9
  end
10
10
 
11
- protected
11
+ protected
12
+
12
13
  def rescue_action_with_fast_errors(exception)
13
- if use_rails_error_handling?
14
- rescue_action_without_fast_errors exception
15
- else
16
- raise exception
14
+ unless respond_to?(:rescue_with_handler) and rescue_with_handler(exception)
15
+ if use_rails_error_handling?
16
+ rescue_action_without_fast_errors exception
17
+ else
18
+ raise exception
19
+ end
17
20
  end
18
21
  end
19
22
  alias_method_chain :rescue_action, :fast_errors
23
+
20
24
  end
21
25
  end
@@ -4,6 +4,8 @@ module Spec
4
4
 
5
5
  class RedirectTo #:nodoc:
6
6
 
7
+ include ActionController::StatusCodes
8
+
7
9
  def initialize(request, expected)
8
10
  @expected = expected
9
11
  @request = request
@@ -13,12 +15,20 @@ module Spec
13
15
  @redirected = response.redirect?
14
16
  @actual = response.redirect_url
15
17
  return false unless @redirected
18
+
19
+ if @expected_status
20
+ @actual_status = interpret_status(response.code.to_i)
21
+ @status_matched = @expected_status == @actual_status
22
+ else
23
+ @status_matched = true
24
+ end
25
+
16
26
  if @expected.instance_of? Hash
17
27
  return false unless @actual =~ %r{^\w+://#{@request.host}}
18
28
  return false unless actual_redirect_to_valid_route
19
- return actual_hash == expected_hash
29
+ return actual_hash == expected_hash && @status_matched
20
30
  else
21
- return @actual == expected_url
31
+ return @actual == expected_url && @status_matched
22
32
  end
23
33
  end
24
34
 
@@ -48,6 +58,11 @@ module Spec
48
58
  QueryParameterParser.parse_query_parameters(query, @request)
49
59
  end
50
60
 
61
+ def with(options)
62
+ @expected_status = interpret_status(options[:status])
63
+ self
64
+ end
65
+
51
66
  def expected_url
52
67
  case @expected
53
68
  when Hash
@@ -63,7 +78,11 @@ module Spec
63
78
 
64
79
  def failure_message
65
80
  if @redirected
66
- return %Q{expected redirect to #{@expected.inspect}, got redirect to #{@actual.inspect}}
81
+ if @status_matched
82
+ return %Q{expected redirect to #{@expected.inspect}, got redirect to #{@actual.inspect}}
83
+ else
84
+ return %Q{expected redirect to #{@expected.inspect} with status #{@expected_status}, got #{@actual_status}}
85
+ end
67
86
  else
68
87
  return %Q{expected redirect to #{@expected.inspect}, got no redirect}
69
88
  end
@@ -4,8 +4,8 @@ module Spec
4
4
  unless defined? MAJOR
5
5
  MAJOR = 1
6
6
  MINOR = 1
7
- TINY = 11
8
- MINESCULE = 7
7
+ TINY = 12
8
+ MINESCULE = nil
9
9
 
10
10
  STRING = [MAJOR, MINOR, TINY, MINESCULE].compact.join('.')
11
11
 
data/rspec-rails.gemspec CHANGED
@@ -2,35 +2,35 @@
2
2
 
3
3
  Gem::Specification.new do |s|
4
4
  s.name = %q{rspec-rails}
5
- s.version = "1.1.11.7"
5
+ s.version = "1.1.12"
6
6
 
7
7
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
8
8
  s.authors = ["RSpec Development Team"]
9
- s.date = %q{2009-01-09}
9
+ s.date = %q{2009-01-11}
10
10
  s.description = %q{Behaviour Driven Development for Ruby on Rails.}
11
11
  s.email = ["rspec-devel@rubyforge.org"]
12
12
  s.extra_rdoc_files = ["History.txt", "License.txt", "Manifest.txt", "README.txt", "TODO.txt", "generators/rspec/templates/previous_failures.txt"]
13
- s.files = ["History.txt", "License.txt", "Manifest.txt", "README.txt", "Rakefile", "TODO.txt", "features/step_definitions/people.rb", "features/support/env.rb", "features/transactions/transactions_should_rollback.feature", "generators/rspec/CHANGES", "generators/rspec/rspec_generator.rb", "generators/rspec/templates/previous_failures.txt", "generators/rspec/templates/rcov.opts", "generators/rspec/templates/rspec.rake", "generators/rspec/templates/script/autospec", "generators/rspec/templates/script/spec", "generators/rspec/templates/script/spec_server", "generators/rspec/templates/spec.opts", "generators/rspec/templates/spec_helper.rb", "generators/rspec_controller/USAGE", "generators/rspec_controller/rspec_controller_generator.rb", "generators/rspec_controller/templates/controller_spec.rb", "generators/rspec_controller/templates/helper_spec.rb", "generators/rspec_controller/templates/view_spec.rb", "generators/rspec_default_values.rb", "generators/rspec_model/USAGE", "generators/rspec_model/rspec_model_generator.rb", "generators/rspec_model/templates/model_spec.rb", "generators/rspec_scaffold/rspec_scaffold_generator.rb", "generators/rspec_scaffold/templates/controller_spec.rb", "generators/rspec_scaffold/templates/edit_erb_spec.rb", "generators/rspec_scaffold/templates/helper_spec.rb", "generators/rspec_scaffold/templates/index_erb_spec.rb", "generators/rspec_scaffold/templates/new_erb_spec.rb", "generators/rspec_scaffold/templates/routing_spec.rb", "generators/rspec_scaffold/templates/show_erb_spec.rb", "init.rb", "lib/autotest/discover.rb", "lib/autotest/rails_rspec.rb", "lib/spec/rails.rb", "lib/spec/rails/example.rb", "lib/spec/rails/example/assigns_hash_proxy.rb", "lib/spec/rails/example/controller_example_group.rb", "lib/spec/rails/example/cookies_proxy.rb", "lib/spec/rails/example/functional_example_group.rb", "lib/spec/rails/example/helper_example_group.rb", "lib/spec/rails/example/mailer_example_group.rb", "lib/spec/rails/example/model_example_group.rb", "lib/spec/rails/example/rails_example_group.rb", "lib/spec/rails/example/render_observer.rb", "lib/spec/rails/example/view_example_group.rb", "lib/spec/rails/extensions.rb", "lib/spec/rails/extensions/action_controller/base.rb", "lib/spec/rails/extensions/action_controller/rescue.rb", "lib/spec/rails/extensions/action_controller/test_response.rb", "lib/spec/rails/extensions/action_view/base.rb", "lib/spec/rails/extensions/active_record/base.rb", "lib/spec/rails/extensions/spec/matchers/have.rb", "lib/spec/rails/extensions/spec/runner/configuration.rb", "lib/spec/rails/interop/testcase.rb", "lib/spec/rails/matchers.rb", "lib/spec/rails/matchers/ar_be_valid.rb", "lib/spec/rails/matchers/assert_select.rb", "lib/spec/rails/matchers/change.rb", "lib/spec/rails/matchers/have_text.rb", "lib/spec/rails/matchers/include_text.rb", "lib/spec/rails/matchers/redirect_to.rb", "lib/spec/rails/matchers/render_template.rb", "lib/spec/rails/mocks.rb", "lib/spec/rails/story_adapter.rb", "lib/spec/rails/version.rb", "rspec-rails.gemspec", "spec/autotest/mappings_spec.rb", "spec/rails_suite.rb", "spec/resources/controllers/action_view_base_spec_controller.rb", "spec/resources/controllers/application.rb", "spec/resources/controllers/controller_spec_controller.rb", "spec/resources/controllers/redirect_spec_controller.rb", "spec/resources/controllers/render_spec_controller.rb", "spec/resources/controllers/rjs_spec_controller.rb", "spec/resources/helpers/addition_helper.rb", "spec/resources/helpers/explicit_helper.rb", "spec/resources/helpers/more_explicit_helper.rb", "spec/resources/helpers/plugin_application_helper.rb", "spec/resources/helpers/view_spec_helper.rb", "spec/resources/models/animal.rb", "spec/resources/models/person.rb", "spec/resources/models/thing.rb", "spec/resources/views/controller_spec/_partial.rhtml", "spec/resources/views/controller_spec/action_setting_flash_after_session_reset.rhtml", "spec/resources/views/controller_spec/action_setting_flash_before_session_reset.rhtml", "spec/resources/views/controller_spec/action_setting_the_assigns_hash.rhtml", "spec/resources/views/controller_spec/action_with_errors_in_template.rhtml", "spec/resources/views/controller_spec/action_with_template.rhtml", "spec/resources/views/layouts/application.rhtml", "spec/resources/views/layouts/simple.rhtml", "spec/resources/views/objects/_object.html.erb", "spec/resources/views/render_spec/_a_partial.rhtml", "spec/resources/views/render_spec/action_with_alternate_layout.rhtml", "spec/resources/views/render_spec/some_action.html.erb", "spec/resources/views/render_spec/some_action.js.rjs", "spec/resources/views/render_spec/some_action.rjs", "spec/resources/views/rjs_spec/_replacement_partial.rhtml", "spec/resources/views/rjs_spec/hide_div.rjs", "spec/resources/views/rjs_spec/hide_page_element.rjs", "spec/resources/views/rjs_spec/insert_html.rjs", "spec/resources/views/rjs_spec/replace.rjs", "spec/resources/views/rjs_spec/replace_html.rjs", "spec/resources/views/rjs_spec/replace_html_with_partial.rjs", "spec/resources/views/rjs_spec/visual_effect.rjs", "spec/resources/views/rjs_spec/visual_toggle_effect.rjs", "spec/resources/views/tag_spec/no_tags.rhtml", "spec/resources/views/tag_spec/single_div_with_no_attributes.rhtml", "spec/resources/views/tag_spec/single_div_with_one_attribute.rhtml", "spec/resources/views/view_spec/_partial.rhtml", "spec/resources/views/view_spec/_partial_used_twice.rhtml", "spec/resources/views/view_spec/_partial_with_local_variable.rhtml", "spec/resources/views/view_spec/_partial_with_sub_partial.rhtml", "spec/resources/views/view_spec/_spacer.rhtml", "spec/resources/views/view_spec/accessor.rhtml", "spec/resources/views/view_spec/block_helper.rhtml", "spec/resources/views/view_spec/entry_form.rhtml", "spec/resources/views/view_spec/explicit_helper.rhtml", "spec/resources/views/view_spec/foo/show.rhtml", "spec/resources/views/view_spec/implicit_helper.rhtml", "spec/resources/views/view_spec/multiple_helpers.rhtml", "spec/resources/views/view_spec/path_params.html.erb", "spec/resources/views/view_spec/should_not_receive.rhtml", "spec/resources/views/view_spec/template_with_partial.rhtml", "spec/resources/views/view_spec/template_with_partial_using_collection.rhtml", "spec/resources/views/view_spec/template_with_partial_with_array.rhtml", "spec/spec/rails/example/assigns_hash_proxy_spec.rb", "spec/spec/rails/example/configuration_spec.rb", "spec/spec/rails/example/controller_isolation_spec.rb", "spec/spec/rails/example/controller_spec_spec.rb", "spec/spec/rails/example/cookies_proxy_spec.rb", "spec/spec/rails/example/example_group_factory_spec.rb", "spec/spec/rails/example/helper_spec_spec.rb", "spec/spec/rails/example/model_spec_spec.rb", "spec/spec/rails/example/shared_behaviour_spec.rb", "spec/spec/rails/example/test_unit_assertion_accessibility_spec.rb", "spec/spec/rails/example/view_spec_spec.rb", "spec/spec/rails/extensions/action_controller_rescue_action_spec.rb", "spec/spec/rails/extensions/action_view_base_spec.rb", "spec/spec/rails/extensions/active_record_spec.rb", "spec/spec/rails/interop/testcase_spec.rb", "spec/spec/rails/matchers/ar_be_valid_spec.rb", "spec/spec/rails/matchers/assert_select_spec.rb", "spec/spec/rails/matchers/errors_on_spec.rb", "spec/spec/rails/matchers/have_text_spec.rb", "spec/spec/rails/matchers/include_text_spec.rb", "spec/spec/rails/matchers/redirect_to_spec.rb", "spec/spec/rails/matchers/render_template_spec.rb", "spec/spec/rails/matchers/should_change_spec.rb", "spec/spec/rails/mocks/ar_classes.rb", "spec/spec/rails/mocks/mock_model_spec.rb", "spec/spec/rails/mocks/stub_model_spec.rb", "spec/spec/rails/sample_modified_fixture.rb", "spec/spec/rails/sample_spec.rb", "spec/spec/rails/spec_server_spec.rb", "spec/spec/rails/spec_spec.rb", "spec/spec_helper.rb"]
13
+ s.files = ["History.txt", "License.txt", "Manifest.txt", "README.txt", "Rakefile", "TODO.txt", "features/step_definitions/people.rb", "features/support/env.rb", "features/transactions/transactions_should_rollback.feature", "generators/rspec/CHANGES", "generators/rspec/rspec_generator.rb", "generators/rspec/templates/previous_failures.txt", "generators/rspec/templates/rcov.opts", "generators/rspec/templates/rspec.rake", "generators/rspec/templates/script/autospec", "generators/rspec/templates/script/spec", "generators/rspec/templates/script/spec_server", "generators/rspec/templates/spec.opts", "generators/rspec/templates/spec_helper.rb", "generators/rspec_controller/USAGE", "generators/rspec_controller/rspec_controller_generator.rb", "generators/rspec_controller/templates/controller_spec.rb", "generators/rspec_controller/templates/helper_spec.rb", "generators/rspec_controller/templates/view_spec.rb", "generators/rspec_default_values.rb", "generators/rspec_model/USAGE", "generators/rspec_model/rspec_model_generator.rb", "generators/rspec_model/templates/model_spec.rb", "generators/rspec_scaffold/rspec_scaffold_generator.rb", "generators/rspec_scaffold/templates/controller_spec.rb", "generators/rspec_scaffold/templates/edit_erb_spec.rb", "generators/rspec_scaffold/templates/helper_spec.rb", "generators/rspec_scaffold/templates/index_erb_spec.rb", "generators/rspec_scaffold/templates/new_erb_spec.rb", "generators/rspec_scaffold/templates/routing_spec.rb", "generators/rspec_scaffold/templates/show_erb_spec.rb", "init.rb", "lib/autotest/discover.rb", "lib/autotest/rails_rspec.rb", "lib/spec/rails.rb", "lib/spec/rails/example.rb", "lib/spec/rails/example/assigns_hash_proxy.rb", "lib/spec/rails/example/controller_example_group.rb", "lib/spec/rails/example/cookies_proxy.rb", "lib/spec/rails/example/functional_example_group.rb", "lib/spec/rails/example/helper_example_group.rb", "lib/spec/rails/example/model_example_group.rb", "lib/spec/rails/example/rails_example_group.rb", "lib/spec/rails/example/render_observer.rb", "lib/spec/rails/example/view_example_group.rb", "lib/spec/rails/extensions.rb", "lib/spec/rails/extensions/action_controller/base.rb", "lib/spec/rails/extensions/action_controller/rescue.rb", "lib/spec/rails/extensions/action_controller/test_response.rb", "lib/spec/rails/extensions/action_view/base.rb", "lib/spec/rails/extensions/active_record/base.rb", "lib/spec/rails/extensions/spec/matchers/have.rb", "lib/spec/rails/extensions/spec/runner/configuration.rb", "lib/spec/rails/interop/testcase.rb", "lib/spec/rails/matchers.rb", "lib/spec/rails/matchers/ar_be_valid.rb", "lib/spec/rails/matchers/assert_select.rb", "lib/spec/rails/matchers/change.rb", "lib/spec/rails/matchers/have_text.rb", "lib/spec/rails/matchers/include_text.rb", "lib/spec/rails/matchers/redirect_to.rb", "lib/spec/rails/matchers/render_template.rb", "lib/spec/rails/mocks.rb", "lib/spec/rails/story_adapter.rb", "lib/spec/rails/version.rb", "rspec-rails.gemspec", "spec/autotest/mappings_spec.rb", "spec/rails_suite.rb", "spec/resources/controllers/action_view_base_spec_controller.rb", "spec/resources/controllers/application.rb", "spec/resources/controllers/controller_spec_controller.rb", "spec/resources/controllers/redirect_spec_controller.rb", "spec/resources/controllers/render_spec_controller.rb", "spec/resources/controllers/rjs_spec_controller.rb", "spec/resources/helpers/addition_helper.rb", "spec/resources/helpers/explicit_helper.rb", "spec/resources/helpers/more_explicit_helper.rb", "spec/resources/helpers/plugin_application_helper.rb", "spec/resources/helpers/view_spec_helper.rb", "spec/resources/models/animal.rb", "spec/resources/models/person.rb", "spec/resources/models/thing.rb", "spec/resources/views/controller_spec/_partial.rhtml", "spec/resources/views/controller_spec/action_setting_flash_after_session_reset.rhtml", "spec/resources/views/controller_spec/action_setting_flash_before_session_reset.rhtml", "spec/resources/views/controller_spec/action_setting_the_assigns_hash.rhtml", "spec/resources/views/controller_spec/action_with_errors_in_template.rhtml", "spec/resources/views/controller_spec/action_with_template.rhtml", "spec/resources/views/layouts/application.rhtml", "spec/resources/views/layouts/simple.rhtml", "spec/resources/views/objects/_object.html.erb", "spec/resources/views/render_spec/_a_partial.rhtml", "spec/resources/views/render_spec/action_with_alternate_layout.rhtml", "spec/resources/views/render_spec/some_action.html.erb", "spec/resources/views/render_spec/some_action.js.rjs", "spec/resources/views/render_spec/some_action.rjs", "spec/resources/views/rjs_spec/_replacement_partial.rhtml", "spec/resources/views/rjs_spec/hide_div.rjs", "spec/resources/views/rjs_spec/hide_page_element.rjs", "spec/resources/views/rjs_spec/insert_html.rjs", "spec/resources/views/rjs_spec/replace.rjs", "spec/resources/views/rjs_spec/replace_html.rjs", "spec/resources/views/rjs_spec/replace_html_with_partial.rjs", "spec/resources/views/rjs_spec/visual_effect.rjs", "spec/resources/views/rjs_spec/visual_toggle_effect.rjs", "spec/resources/views/tag_spec/no_tags.rhtml", "spec/resources/views/tag_spec/single_div_with_no_attributes.rhtml", "spec/resources/views/tag_spec/single_div_with_one_attribute.rhtml", "spec/resources/views/view_spec/_partial.rhtml", "spec/resources/views/view_spec/_partial_used_twice.rhtml", "spec/resources/views/view_spec/_partial_with_local_variable.rhtml", "spec/resources/views/view_spec/_partial_with_sub_partial.rhtml", "spec/resources/views/view_spec/_spacer.rhtml", "spec/resources/views/view_spec/accessor.rhtml", "spec/resources/views/view_spec/block_helper.rhtml", "spec/resources/views/view_spec/entry_form.rhtml", "spec/resources/views/view_spec/explicit_helper.rhtml", "spec/resources/views/view_spec/foo/show.rhtml", "spec/resources/views/view_spec/implicit_helper.rhtml", "spec/resources/views/view_spec/multiple_helpers.rhtml", "spec/resources/views/view_spec/path_params.html.erb", "spec/resources/views/view_spec/should_not_receive.rhtml", "spec/resources/views/view_spec/template_with_partial.rhtml", "spec/resources/views/view_spec/template_with_partial_using_collection.rhtml", "spec/resources/views/view_spec/template_with_partial_with_array.rhtml", "spec/spec/rails/example/assigns_hash_proxy_spec.rb", "spec/spec/rails/example/configuration_spec.rb", "spec/spec/rails/example/controller_isolation_spec.rb", "spec/spec/rails/example/controller_spec_spec.rb", "spec/spec/rails/example/cookies_proxy_spec.rb", "spec/spec/rails/example/example_group_factory_spec.rb", "spec/spec/rails/example/helper_spec_spec.rb", "spec/spec/rails/example/model_spec_spec.rb", "spec/spec/rails/example/shared_behaviour_spec.rb", "spec/spec/rails/example/test_unit_assertion_accessibility_spec.rb", "spec/spec/rails/example/view_spec_spec.rb", "spec/spec/rails/extensions/action_controller_rescue_action_spec.rb", "spec/spec/rails/extensions/action_view_base_spec.rb", "spec/spec/rails/extensions/active_record_spec.rb", "spec/spec/rails/interop/testcase_spec.rb", "spec/spec/rails/matchers/ar_be_valid_spec.rb", "spec/spec/rails/matchers/assert_select_spec.rb", "spec/spec/rails/matchers/errors_on_spec.rb", "spec/spec/rails/matchers/have_text_spec.rb", "spec/spec/rails/matchers/include_text_spec.rb", "spec/spec/rails/matchers/redirect_to_spec.rb", "spec/spec/rails/matchers/render_template_spec.rb", "spec/spec/rails/matchers/should_change_spec.rb", "spec/spec/rails/mocks/ar_classes.rb", "spec/spec/rails/mocks/mock_model_spec.rb", "spec/spec/rails/mocks/stub_model_spec.rb", "spec/spec/rails/sample_modified_fixture.rb", "spec/spec/rails/sample_spec.rb", "spec/spec/rails/spec_server_spec.rb", "spec/spec/rails/spec_spec.rb", "spec/spec_helper.rb"]
14
14
  s.has_rdoc = true
15
15
  s.homepage = %q{http://rspec.info/}
16
16
  s.rdoc_options = ["--main", "README.txt"]
17
17
  s.require_paths = ["lib"]
18
18
  s.rubyforge_project = %q{rspec}
19
19
  s.rubygems_version = %q{1.3.1}
20
- s.summary = %q{rspec-rails 1.1.11.7}
20
+ s.summary = %q{rspec-rails 1.1.12}
21
21
 
22
22
  if s.respond_to? :specification_version then
23
23
  current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
24
24
  s.specification_version = 2
25
25
 
26
26
  if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
27
- s.add_runtime_dependency(%q<dchelimsky-rspec>, ["= 1.1.11.7"])
27
+ s.add_runtime_dependency(%q<rspec>, ["= 1.1.12"])
28
28
  s.add_development_dependency(%q<cucumber>, [">= 0.1.13"])
29
29
  s.add_development_dependency(%q<hoe>, [">= 1.8.2"])
30
30
  else
31
- s.add_dependency(%q<rspec>, ["= 1.1.11.7"])
31
+ s.add_dependency(%q<rspec>, ["= 1.1.12"])
32
32
  end
33
33
  else
34
- s.add_dependency(%q<rspec>, ["= 1.1.11.7"])
34
+ s.add_dependency(%q<rspec>, ["= 1.1.12"])
35
35
  end
36
36
  end
@@ -86,6 +86,21 @@ class ControllerSpecController < ActionController::Base
86
86
  @a_variable = false
87
87
  render :text => ""
88
88
  end
89
+
90
+ class RescuedError < Exception; end
91
+ class UnRescuedError < Exception; end
92
+
93
+ rescue_from RescuedError do |e|
94
+ render :text => 'Rescued!'
95
+ end
96
+
97
+ def rescued_error_action
98
+ raise RescuedError
99
+ end
100
+
101
+ def other_error_action
102
+ raise UnRescuedError
103
+ end
89
104
  end
90
105
 
91
106
  class ControllerInheritingFromApplicationControllerController < ApplicationController
@@ -62,5 +62,9 @@ class RedirectSpecController < ApplicationController
62
62
  def action_to_redirect_to_action_with_method_restriction
63
63
  redirect_to :action => 'action_with_method_restriction'
64
64
  end
65
+
66
+ def action_with_redirect_to_somewhere_with_status
67
+ redirect_to :action => 'somewhere', :status => 301
68
+ end
65
69
  end
66
70
 
@@ -35,4 +35,12 @@ module ExplicitHelper
35
35
  def flash_thing
36
36
  flash[:thing]
37
37
  end
38
+
39
+ def method_using_output_buffer
40
+ concat("the_text_from_concat")
41
+ end
42
+
43
+ def method_using_template
44
+ update_page { |p| p["#some_id"].replace_html "" }
45
+ end
38
46
  end
@@ -21,10 +21,6 @@ describe "a controller spec running in integration mode", :type => :controller d
21
21
  controller_name :controller_spec
22
22
  integrate_views
23
23
 
24
- before(:each) do
25
- controller.class.send(:define_method, :rescue_action) { |e| raise e }
26
- end
27
-
28
24
  it "should render a template" do
29
25
  get 'action_with_template'
30
26
  response.should be_success
@@ -6,8 +6,6 @@ require 'controller_spec_controller'
6
6
  controller_name :controller_spec
7
7
  integrate_views if mode == 'integration'
8
8
 
9
- specify "this example should be pending, not an error"
10
-
11
9
  it "should provide controller.session as session" do
12
10
  get 'action_with_template'
13
11
  session.should equal(controller.session)
@@ -161,6 +159,57 @@ require 'controller_spec_controller'
161
159
  end
162
160
 
163
161
  end
162
+
163
+ describe "with an error that is not rescued in the controller" do
164
+ context "without rails' error handling" do
165
+ it "raises the error" do
166
+ lambda do
167
+ get 'other_error_action'
168
+ end.should raise_error(ControllerSpecController::UnRescuedError)
169
+ end
170
+ end
171
+ context "with rails' error handling" do
172
+ it "does not raise the error" do
173
+ controller.use_rails_error_handling!
174
+ lambda do
175
+ get 'other_error_action'
176
+ end.should_not raise_error
177
+ end
178
+ end
179
+ end
180
+
181
+ if Rails::VERSION::MAJOR >= 2
182
+ describe "with an error that is rescued in the controller" do
183
+ context "without rails' error handling" do
184
+ it "does not raise error" do
185
+ lambda do
186
+ get 'rescued_error_action'
187
+ end.should_not raise_error
188
+ end
189
+
190
+ it "executes rescue_from" do
191
+ get 'rescued_error_action'
192
+ response.body.should == 'Rescued!'
193
+ end
194
+ end
195
+
196
+ context "with rails' error handling" do
197
+ before(:each) do
198
+ controller.use_rails_error_handling!
199
+ end
200
+ it "does not raise error" do
201
+ lambda do
202
+ get 'rescued_error_action'
203
+ end.should_not raise_error
204
+ end
205
+
206
+ it "executes rescue_from" do
207
+ get 'rescued_error_action'
208
+ response.body.should == 'Rescued!'
209
+ end
210
+ end
211
+ end
212
+ end
164
213
 
165
214
  it "should support custom routes" do
166
215
  route_for(:controller => "custom_route_spec", :action => "custom_route").should == "/custom_route"
@@ -143,6 +143,32 @@ module Spec
143
143
  assigns[:addend].should == 3
144
144
  end
145
145
  end
146
+
147
+ describe HelperExampleGroup, "using a helper that uses output_buffer inside helper", :type => :helper do
148
+ helper_name :explicit
149
+
150
+ it "should not raise an error" do
151
+ lambda { method_using_output_buffer }.should_not raise_error
152
+ end
153
+
154
+ it "should put the output in the output_buffer" do
155
+ method_using_output_buffer
156
+ output_buffer.should == "the_text_from_concat"
157
+ end
158
+ end
159
+
160
+ describe HelperExampleGroup, "using a helper that tries to access @template", :type => :helper do
161
+ helper_name :explicit
162
+
163
+ it "should not raise an error" do
164
+ lambda { method_using_template }.should_not raise_error
165
+ end
166
+
167
+ it "should have the correct output" do
168
+ method_using_template.should have_text(/#some_id/)
169
+ end
170
+ end
171
+
146
172
  end
147
173
  end
148
174
  end
@@ -5,6 +5,9 @@ module ActionController
5
5
  before(:each) do
6
6
  @fixture = Object.new
7
7
  @fixture.extend ActionController::Rescue
8
+ def @fixture.rescue_with_handler(exception)
9
+ false
10
+ end
8
11
  class << @fixture
9
12
  public :rescue_action
10
13
  end
@@ -35,10 +35,6 @@ class AssertSelectController < ActionController::Base
35
35
  @content = nil
36
36
  end
37
37
 
38
- def rescue_action(e)
39
- raise e
40
- end
41
-
42
38
  end
43
39
 
44
40
  class AssertSelectMailer < ActionMailer::Base
@@ -87,6 +87,16 @@ require File.dirname(__FILE__) + '/../../../spec_helper'
87
87
  response.should redirect_to("http://test.host/nonexistant/none")
88
88
  end
89
89
 
90
+ it "redirected to a URL with a specific status code" do
91
+ get "action_with_redirect_to_somewhere_with_status"
92
+ response.should redirect_to(:action => 'somewhere').with(:status => 301)
93
+ end
94
+
95
+ it "redirected to a URL with a specific status code (using names)" do
96
+ get "action_with_redirect_to_somewhere_with_status"
97
+ response.should redirect_to(:action => 'somewhere').with(:status => :moved_permanently)
98
+ end
99
+
90
100
  end
91
101
 
92
102
 
@@ -147,6 +157,20 @@ require File.dirname(__FILE__) + '/../../../spec_helper'
147
157
  response.should redirect_to(:action => 'somewhere_else')
148
158
  }.should fail_with("expected redirect to {:action=>\"somewhere_else\"}, got redirect to \"http://test.host/redirect_spec/somewhere\"")
149
159
  end
160
+
161
+ it "redirected with wrong status code" do
162
+ get 'action_with_redirect_to_somewhere_with_status'
163
+ lambda {
164
+ response.should redirect_to(:action => 'somewhere').with(:status => 302)
165
+ }.should fail_with("expected redirect to {:action=>\"somewhere\"} with status 302 Found, got 301 Moved Permanently")
166
+ end
167
+
168
+ it "redirected with wrong status code (using names)" do
169
+ get 'action_with_redirect_to_somewhere_with_status'
170
+ lambda {
171
+ response.should redirect_to(:action => 'somewhere').with(:status => :found)
172
+ }.should fail_with("expected redirect to {:action=>\"somewhere\"} with status 302 Found, got 301 Moved Permanently")
173
+ end
150
174
 
151
175
  it "redirected to incorrect path with leading /" do
152
176
  get 'action_with_redirect_to_somewhere'
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dchelimsky-rspec-rails
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.11.7
4
+ version: 1.1.12
5
5
  platform: ruby
6
6
  authors:
7
7
  - RSpec Development Team
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2009-01-09 00:00:00 -08:00
12
+ date: 2009-01-11 00:00:00 -08:00
13
13
  default_executable:
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
@@ -19,7 +19,7 @@ dependencies:
19
19
  requirements:
20
20
  - - "="
21
21
  - !ruby/object:Gem::Version
22
- version: 1.1.11.7
22
+ version: 1.1.12
23
23
  version:
24
24
  description: Behaviour Driven Development for Ruby on Rails.
25
25
  email:
@@ -82,7 +82,6 @@ files:
82
82
  - lib/spec/rails/example/cookies_proxy.rb
83
83
  - lib/spec/rails/example/functional_example_group.rb
84
84
  - lib/spec/rails/example/helper_example_group.rb
85
- - lib/spec/rails/example/mailer_example_group.rb
86
85
  - lib/spec/rails/example/model_example_group.rb
87
86
  - lib/spec/rails/example/rails_example_group.rb
88
87
  - lib/spec/rails/example/render_observer.rb
@@ -224,6 +223,6 @@ rubyforge_project: rspec
224
223
  rubygems_version: 1.2.0
225
224
  signing_key:
226
225
  specification_version: 2
227
- summary: rspec-rails 1.1.11.7
226
+ summary: rspec-rails 1.1.12
228
227
  test_files: []
229
228