@@ -61,12 +61,12 class ApplicationController < ActionController::Base | |||
|
61 | 61 | |
|
62 | 62 | # Sets the logged in user |
|
63 | 63 | def logged_user=(user) |
|
64 | reset_session | |
|
64 | 65 | if user && user.is_a?(User) |
|
65 | 66 | User.current = user |
|
66 | 67 | session[:user_id] = user.id |
|
67 | 68 | else |
|
68 | 69 | User.current = User.anonymous |
|
69 | session[:user_id] = nil | |
|
70 | 70 | end |
|
71 | 71 | end |
|
72 | 72 |
@@ -182,6 +182,24 class AccountTest < ActionController::IntegrationTest | |||
|
182 | 182 | assert user.hashed_password.blank? |
|
183 | 183 | end |
|
184 | 184 | |
|
185 | def test_login_and_logout_should_clear_session | |
|
186 | get '/login' | |
|
187 | sid = session[:session_id] | |
|
188 | ||
|
189 | post '/login', :username => 'admin', :password => 'admin' | |
|
190 | assert_redirected_to 'my/page' | |
|
191 | assert_not_equal sid, session[:session_id], "login should reset session" | |
|
192 | assert_equal 1, session[:user_id] | |
|
193 | sid = session[:session_id] | |
|
194 | ||
|
195 | get '/' | |
|
196 | assert_equal sid, session[:session_id] | |
|
197 | ||
|
198 | get '/logout' | |
|
199 | assert_not_equal sid, session[:session_id], "logout should reset session" | |
|
200 | assert_nil session[:user_id] | |
|
201 | end | |
|
202 | ||
|
185 | 203 | else |
|
186 | 204 | puts 'Mocha is missing. Skipping tests.' |
|
187 | 205 | end |
General Comments 0
You need to be logged in to leave comments.
Login now