aboutsummaryrefslogtreecommitdiffstats
path: root/actionpack
diff options
context:
space:
mode:
authorAaron Patterson <aaron.patterson@gmail.com>2014-02-27 11:25:15 -0800
committerAaron Patterson <aaron.patterson@gmail.com>2014-02-27 11:25:15 -0800
commit26306420a6f483f23172d84176bf6aa57548651f (patch)
treef3968bf35da8e33ae98d2b63eaa2cc0e401fe794 /actionpack
parentbf3ddfa28da8ca837ddce8c6744a6c1fd9a51243 (diff)
parent14e697cf2a1f2a4d223463839f6748fca4658bcf (diff)
downloadrails-26306420a6f483f23172d84176bf6aa57548651f.tar.gz
rails-26306420a6f483f23172d84176bf6aa57548651f.tar.bz2
rails-26306420a6f483f23172d84176bf6aa57548651f.zip
Merge branch 'master' into adequaterecord
* master: modify model generator warning message. refs [#174c9f0] Replace "data store" with database [ci skip] Return a hash rather than array from fetch_multi Fix concerning module reference [ci skip] Fixes docs typo in nested resource path helpers [skip ci] Fix some validators when used on model instance Pass strings to demodulize method pass strings to the underscore method speed up `underscore` in cases that don't need to do anything pass the class name to `tableize` [ci skip] Update list of files extensions in rake notes guide Fix controller test not resetting @_url_options
Diffstat (limited to 'actionpack')
-rw-r--r--actionpack/CHANGELOG.md5
-rw-r--r--actionpack/lib/action_controller/metal/testing.rb1
-rw-r--r--actionpack/lib/action_controller/test_case.rb1
-rw-r--r--actionpack/test/controller/test_case_test.rb23
4 files changed, 29 insertions, 1 deletions
diff --git a/actionpack/CHANGELOG.md b/actionpack/CHANGELOG.md
index 68b5213bfc..66cef08b1b 100644
--- a/actionpack/CHANGELOG.md
+++ b/actionpack/CHANGELOG.md
@@ -1 +1,6 @@
+* Fix URL generation in controller tests with request-dependent
+ `default_url_options` methods.
+
+ *Tony Wooster*
+
Please check [4-1-stable](https://github.com/rails/rails/blob/4-1-stable/actionpack/CHANGELOG.md) for previous changes.
diff --git a/actionpack/lib/action_controller/metal/testing.rb b/actionpack/lib/action_controller/metal/testing.rb
index 0377b8c4cf..dd8da4b5dc 100644
--- a/actionpack/lib/action_controller/metal/testing.rb
+++ b/actionpack/lib/action_controller/metal/testing.rb
@@ -17,7 +17,6 @@ module ActionController
def recycle!
@_url_options = nil
- self.response_body = nil
self.formats = nil
self.params = nil
end
diff --git a/actionpack/lib/action_controller/test_case.rb b/actionpack/lib/action_controller/test_case.rb
index cf11ce1a9b..8650b75400 100644
--- a/actionpack/lib/action_controller/test_case.rb
+++ b/actionpack/lib/action_controller/test_case.rb
@@ -568,6 +568,7 @@ module ActionController
name = @request.parameters[:action]
+ @controller.recycle!
@controller.process(name)
if cookies = @request.env['action_dispatch.cookies']
diff --git a/actionpack/test/controller/test_case_test.rb b/actionpack/test/controller/test_case_test.rb
index 5ff4a383ec..fbc10baf21 100644
--- a/actionpack/test/controller/test_case_test.rb
+++ b/actionpack/test/controller/test_case_test.rb
@@ -163,6 +163,29 @@ XML
end
end
+ class DefaultUrlOptionsCachingController < ActionController::Base
+ before_filter { @dynamic_opt = 'opt' }
+
+ def test_url_options_reset
+ render text: url_for(params)
+ end
+
+ def default_url_options
+ if defined?(@dynamic_opt)
+ super.merge dynamic_opt: @dynamic_opt
+ else
+ super
+ end
+ end
+ end
+
+ def test_url_options_reset
+ @controller = DefaultUrlOptionsCachingController.new
+ get :test_url_options_reset
+ assert_nil @request.params['dynamic_opt']
+ assert_match(/dynamic_opt=opt/, @response.body)
+ end
+
def test_raw_post_handling
params = Hash[:page, {:name => 'page name'}, 'some key', 123]
post :render_raw_post, params.dup