diff options
author | Samuel Cochran <sj26@sj26.com> | 2015-01-29 23:00:44 +1100 |
---|---|---|
committer | Samuel Cochran <sj26@sj26.com> | 2015-01-29 23:00:44 +1100 |
commit | 3a102d052803f7f066e648454297301310d69906 (patch) | |
tree | 704c61e698e9b69b1034b2d93333580b9c166bde /actionpack | |
parent | 74c2961bd864f633c79c03e62c2cb142642201c5 (diff) | |
download | rails-3a102d052803f7f066e648454297301310d69906.tar.gz rails-3a102d052803f7f066e648454297301310d69906.tar.bz2 rails-3a102d052803f7f066e648454297301310d69906.zip |
Fix flash remaining after last flash deleted
Inside a controller functional test after the last flash is deleted it
still persists the flash because to_session_value is nil. We should
delete it from the session when the serialized version is nil, same as
the flash middleware.
Diffstat (limited to 'actionpack')
-rw-r--r-- | actionpack/lib/action_controller/test_case.rb | 2 | ||||
-rw-r--r-- | actionpack/test/controller/test_case_test.rb | 12 |
2 files changed, 14 insertions, 0 deletions
diff --git a/actionpack/lib/action_controller/test_case.rb b/actionpack/lib/action_controller/test_case.rb index d30615fade..10ad80d22c 100644 --- a/actionpack/lib/action_controller/test_case.rb +++ b/actionpack/lib/action_controller/test_case.rb @@ -643,6 +643,8 @@ module ActionController if flash_value = @request.flash.to_session_value @request.session['flash'] = flash_value + else + @request.session.delete('flash') end @response diff --git a/actionpack/test/controller/test_case_test.rb b/actionpack/test/controller/test_case_test.rb index 2e1f21c645..ee4e9d2ec2 100644 --- a/actionpack/test/controller/test_case_test.rb +++ b/actionpack/test/controller/test_case_test.rb @@ -14,6 +14,11 @@ class TestCaseTest < ActionController::TestCase render :text => 'ignore me' end + def delete_flash + flash.delete("test") + render :text => 'ignore me' + end + def set_flash_now flash.now["test_now"] = ">#{flash["test_now"]}<" render :text => 'ignore me' @@ -262,6 +267,13 @@ XML assert_equal '>value_now<', flash['test_now'] end + def test_process_delete_flash + process :set_flash + process :delete_flash + assert_empty flash + assert_empty session + end + def test_process_with_session process :set_session assert_equal 'A wonder', session['string'], "A value stored in the session should be available by string key" |