diff options
author | Aaron Patterson <aaron.patterson@gmail.com> | 2014-02-27 11:25:15 -0800 |
---|---|---|
committer | Aaron Patterson <aaron.patterson@gmail.com> | 2014-02-27 11:25:15 -0800 |
commit | 26306420a6f483f23172d84176bf6aa57548651f (patch) | |
tree | f3968bf35da8e33ae98d2b63eaa2cc0e401fe794 /actionpack | |
parent | bf3ddfa28da8ca837ddce8c6744a6c1fd9a51243 (diff) | |
parent | 14e697cf2a1f2a4d223463839f6748fca4658bcf (diff) | |
download | rails-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.md | 5 | ||||
-rw-r--r-- | actionpack/lib/action_controller/metal/testing.rb | 1 | ||||
-rw-r--r-- | actionpack/lib/action_controller/test_case.rb | 1 | ||||
-rw-r--r-- | actionpack/test/controller/test_case_test.rb | 23 |
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 |