diff options
Diffstat (limited to 'actionpack/test/controller')
-rw-r--r-- | actionpack/test/controller/cookie_test.rb | 56 |
1 files changed, 32 insertions, 24 deletions
diff --git a/actionpack/test/controller/cookie_test.rb b/actionpack/test/controller/cookie_test.rb index 2e1c7f0eb0..5bab99fdca 100644 --- a/actionpack/test/controller/cookie_test.rb +++ b/actionpack/test/controller/cookie_test.rb @@ -4,77 +4,85 @@ class CookieTest < Test::Unit::TestCase class TestController < ActionController::Base def authenticate_with_deprecated_writer cookie "name" => "user_name", "value" => "david" - render_text "hello world" end def authenticate cookies["user_name"] = "david" - render_text "hello world" end def authenticate_for_fourten_days cookies["user_name"] = { "value" => "david", "expires" => Time.local(2005, 10, 10) } - render_text "hello world" end def authenticate_for_fourten_days_with_symbols cookies[:user_name] = { :value => "david", :expires => Time.local(2005, 10, 10) } - render_text "hello world" end def set_multiple_cookies cookies["user_name"] = { "value" => "david", "expires" => Time.local(2005, 10, 10) } cookies["login"] = "XJ-122" - render_text "hello world" end def access_frozen_cookies cookies["will"] = "work" - render_text "hello world" end - def rescue_action(e) raise end + def logout + cookies.delete("user_name") + end + + def rescue_action(e) + raise unless ActionController::MissingTemplate # No templates here, and we don't care about the output + end end def setup @request = ActionController::TestRequest.new @response = ActionController::TestResponse.new + @controller = TestController.new @request.host = "www.nextangle.com" end def test_setting_cookie_with_deprecated_writer - @request.action = "authenticate_with_deprecated_writer" - assert_equal [ CGI::Cookie::new("name" => "user_name", "value" => "david") ], process_request.headers["cookie"] + get :authenticate_with_deprecated_writer + assert_equal [ CGI::Cookie::new("name" => "user_name", "value" => "david") ], @response.headers["cookie"] end def test_setting_cookie - @request.action = "authenticate" - assert_equal [ CGI::Cookie::new("name" => "user_name", "value" => "david") ], process_request.headers["cookie"] + get :authenticate + assert_equal [ CGI::Cookie::new("name" => "user_name", "value" => "david") ], @response.headers["cookie"] end def test_setting_cookie_for_fourteen_days - @request.action = "authenticate_for_fourten_days" - assert_equal [ CGI::Cookie::new("name" => "user_name", "value" => "david", "expires" => Time.local(2005, 10, 10)) ], process_request.headers["cookie"] + get :authenticate_for_fourten_days + assert_equal [ CGI::Cookie::new("name" => "user_name", "value" => "david", "expires" => Time.local(2005, 10, 10)) ], @response.headers["cookie"] end def test_setting_cookie_for_fourteen_days_with_symbols - @request.action = "authenticate_for_fourten_days" - assert_equal [ CGI::Cookie::new("name" => "user_name", "value" => "david", "expires" => Time.local(2005, 10, 10)) ], process_request.headers["cookie"] + get :authenticate_for_fourten_days + assert_equal [ CGI::Cookie::new("name" => "user_name", "value" => "david", "expires" => Time.local(2005, 10, 10)) ], @response.headers["cookie"] end def test_multiple_cookies - @request.action = "set_multiple_cookies" - assert_equal 2, process_request.headers["cookie"].size + get :set_multiple_cookies + assert_equal 2, @response.cookies.size end def test_setting_test_cookie - @request.action = "access_frozen_cookies" - assert_nothing_raised { process_request } + assert_nothing_raised { get :access_frozen_cookies } + end + + def test_expiring_cookie + get :logout + assert_equal [ CGI::Cookie::new("name" => "user_name", "value" => "", "expires" => Time.at(0)) ], @response.headers["cookie"] + end + + def test_cookiejar_accessor + @request.cookies["user_name"] = CGI::Cookie.new("name" => "user_name", "value" => "david", "expires" => Time.local(2025, 10, 10)) + @controller.request = @request + jar = ActionController::CookieJar.new(@controller) + assert_equal "david", jar["user_name"] + assert_equal nil, jar["something_else"] end - - private - def process_request - TestController.process(@request, @response) - end end |