Rails - Functional Test with Cookie
WED, 2 AUG 2006
When doing functional test, sooner or later you will need to do some testing with cookie, for example when you need to test the infamous ‘Remember me’ functionality.
It is easy to do that in Rails with some points to take note:
To set a cookie in a request:
@request.cookies['name'] = CGI::Cookie.new('name', 'cookie value')
To retrieve a cookie after a response:
cookies['name']Note: Use a string for cookie name, symbol somehow returns nil in functional test.
And a sample of Remember Me functional test:
def test_login_with_remember_me
post :login, :username => 'herry', :password => 'passwd',
:rememberme => '1'
assert session[:user]
assert cookies['auth_token']
assert_response :redirect
assert_tag :tag => 'div',
:child => /[replace with your error message]/
# reset user session and set request cookie
session[:user] = nil
@request.cookies['auth_token'] = cookies['auth_token']
get :protected_page
assert_response :success
assert session[:user]
end

Add Your Comment