Skip to content

Commit

Permalink
Modernize cookie testing code, and increase coverage (Heckle++) rails…
Browse files Browse the repository at this point in the history
…#7101 [Kevin Clark]

git-svn-id: http://svn-commit.rubyonrails.org/rails/branches/1-2-pre-release@5978 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
  • Loading branch information
technoweenie committed Jan 17, 2007
1 parent e9e86fd commit 025f895
Show file tree
Hide file tree
Showing 2 changed files with 34 additions and 24 deletions.
2 changes: 2 additions & 0 deletions actionpack/CHANGELOG
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
*1.13.0* (January 16th, 2007)

* Modernize cookie testing code, and increase coverage (Heckle++) #7101 [Kevin Clark]

* Heckling ActionController::Resources::Resource revealed that set_prefixes didn't break when :name_prefix was munged. #7081 [Kevin Clark]

* Update to Prototype 1.5.0. [Sam Stephenson]
Expand Down
56 changes: 32 additions & 24 deletions actionpack/test/controller/cookie_test.rb
Original file line number Diff line number Diff line change
Expand Up @@ -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

0 comments on commit 025f895

Please sign in to comment.