提交 5f3265c4 编写于 作者: T thoefer 提交者: Xavier Noria

Fix the issue where default_url_options is being cached on test cases. Closes #1872. Closes #2031.

Signed-off-by: NJosé Valim <jose.valim@gmail.com>
上级 b6b6e81a
...@@ -4,6 +4,11 @@ module Testing ...@@ -4,6 +4,11 @@ module Testing
include RackDelegation include RackDelegation
def recycle!
@_url_options = nil
end
# TODO: Clean this up # TODO: Clean this up
def process_with_new_base_test(request, response) def process_with_new_base_test(request, response)
@_request = request @_request = request
......
...@@ -450,6 +450,7 @@ def process(action, parameters = nil, session = nil, flash = nil, http_method = ...@@ -450,6 +450,7 @@ def process(action, parameters = nil, session = nil, flash = nil, http_method =
@controller.params.merge!(parameters) @controller.params.merge!(parameters)
build_request_uri(action, parameters) build_request_uri(action, parameters)
@controller.class.class_eval { include Testing } @controller.class.class_eval { include Testing }
@controller.recycle!
@controller.process_with_new_base_test(@request, @response) @controller.process_with_new_base_test(@request, @response)
@assigns = @controller.respond_to?(:view_assigns) ? @controller.view_assigns : {} @assigns = @controller.respond_to?(:view_assigns) ? @controller.view_assigns : {}
@request.session.delete('flash') if @request.session['flash'].blank? @request.session.delete('flash') if @request.session['flash'].blank?
......
require 'abstract_unit'
class ControllerWithBeforeFilterAndDefaultUrlOptions < ActionController::Base
before_filter { I18n.locale = params[:locale] }
after_filter { I18n.locale = "en" }
def target
render :text => "final response"
end
def redirect
redirect_to :action => "target"
end
def default_url_options
{:locale => "de"}
end
end
class ControllerWithBeforeFilterAndDefaultUrlOptionsTest < ActionController::TestCase
# This test has it´s roots in issue #1872
test "should redirect with correct locale :de" do
get :redirect, :locale => "de"
assert_redirected_to "/controller_with_before_filter_and_default_url_options/target?locale=de"
end
end
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册