aboutsummaryrefslogtreecommitdiffstats
path: root/actionpack
diff options
context:
space:
mode:
authorSamuel Cochran <sj26@sj26.com>2015-01-29 23:00:44 +1100
committerSamuel Cochran <sj26@sj26.com>2015-01-29 23:00:44 +1100
commit3a102d052803f7f066e648454297301310d69906 (patch)
tree704c61e698e9b69b1034b2d93333580b9c166bde /actionpack
parent74c2961bd864f633c79c03e62c2cb142642201c5 (diff)
downloadrails-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.rb2
-rw-r--r--actionpack/test/controller/test_case_test.rb12
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"