From 8750291b301a0bd10ecc6578d9b534c5c0dcb08a Mon Sep 17 00:00:00 2001 From: Jacob Burkhart Date: Mon, 28 Jun 2010 15:15:37 -0400 Subject: [PATCH] fix ActionController::Integration to be compatible with session store when other cookies are present --- actionpack/lib/action_controller/integration.rb | 2 +- .../controller/session/mem_cache_store_test.rb | 19 +++++++++++++++++++ 2 files changed, 20 insertions(+), 1 deletions(-) diff --git a/actionpack/lib/action_controller/integration.rb b/actionpack/lib/action_controller/integration.rb index 241b2c2..ff0b092 100644 --- a/actionpack/lib/action_controller/integration.rb +++ b/actionpack/lib/action_controller/integration.rb @@ -326,7 +326,7 @@ module ActionController cookies = @headers['Set-Cookie'] cookies = cookies.to_s.split("\n") unless cookies.is_a?(Array) cookies.each do |cookie| - name, value = cookie.match(/^([^=]*)=([^;]*);/)[1,2] + name, value = cookie.match(/^[\n]?([^=]*)=([^;]*);/)[1,2] @cookies[name] = value end diff --git a/actionpack/test/controller/session/mem_cache_store_test.rb b/actionpack/test/controller/session/mem_cache_store_test.rb index 2f80a3c..ec955a8 100644 --- a/actionpack/test/controller/session/mem_cache_store_test.rb +++ b/actionpack/test/controller/session/mem_cache_store_test.rb @@ -6,6 +6,12 @@ class MemCacheStoreTest < ActionController::IntegrationTest def no_session_access head :ok end + + def set_session_value_and_a_cookie + cookies[:foo] = "cookie bar" + session[:foo] = "session bar" + head :ok + end def set_session_value session[:foo] = "bar" @@ -81,6 +87,19 @@ class MemCacheStoreTest < ActionController::IntegrationTest assert_not_equal session_id, response.body end end + + def test_setting_and_getting_session_value_and_also_a_cookie + with_test_route_set do + get '/set_session_value_and_a_cookie' + assert_response :success + assert cookies['_session_id'], + "Expected to have a '_session_id' cookie, but got #{cookies.inspect}" + + get '/get_session_value' + assert_response :success + assert_equal 'foo: "session bar"', response.body + end + end def test_getting_session_id with_test_route_set do -- 1.6.4.2