Guest User

Untitled

a guest
Feb 28th, 2018
74
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.39 KB | None | 0 0
  1. require File.expand_path(File.dirname(__FILE__) + '/../spec_helper')
  2.  
  3. describe SessionsController do
  4. before do
  5. @user = User.new
  6. @user.id = 10
  7. @user.stub!(:save).and_return(true)
  8. User.stub!(:authenticate).and_return(@user)
  9. end
  10.  
  11. it 'should login and redirect' do
  12. post :create, :login => 'quentin', :password => 'password'
  13. session[:user_id].should == 10
  14. response.should be_redirect
  15. end
  16.  
  17. it 'should fail login and not redirect' do
  18. User.stub!(:authenticate).and_return(nil)
  19. post :create, :login => 'quentin', :password => 'bad password'
  20. session[:user_id].should be_nil
  21. response.should be_success
  22. end
  23.  
  24. it 'should should logout' do
  25. login_as @user
  26. delete :destroy
  27. session[:user_id].should be_nil
  28. response.should be_redirect
  29. end
  30.  
  31. it 'should should remember me' do
  32. @request.cookies["auth_token"] = nil
  33. post :create, :login => 'quentin', :password => 'password', :remember_me => "1"
  34. @response.cookies["auth_token"].should_not be_nil
  35. end
  36.  
  37. it 'should not remember me' do
  38. @request.cookies["auth_token"] = nil
  39. post :create, :login => 'quentin', :password => 'password', :remember_me => "0"
  40. @response.cookies["auth_token"].should be_blank
  41. end
  42.  
  43. it 'should delete token on logout' do
  44. login_as @user
  45. delete :destroy
  46. @response.cookies["auth_token"].should be_blank
  47. end
  48.  
  49. it 'should login with cookie' do
  50. cookie = cookie_for(@user)
  51. User.should_receive(:find_by_remember_token).with(cookie).and_return(@user)
  52. @user.remember_me
  53. @request.cookies["auth_token"] = cookie
  54. get :new
  55. @controller.should be_logged_in
  56. end
  57.  
  58. it 'should fail expired cookie login' do
  59. cookie = cookie_for(@user)
  60. User.should_receive(:find_by_remember_token).with(cookie).and_return(@user)
  61. @user.remember_me
  62. @user.remember_token_expires_at = 5.minutes.ago
  63. @request.cookies["auth_token"] = cookie
  64. get :new
  65. @controller.should_not be_logged_in
  66. end
  67.  
  68. it 'should fail cookie login' do
  69. @user.remember_me
  70. @request.cookies["auth_token"] = auth_token('invalid_auth_token')
  71. get :new
  72. @controller.should_not be_logged_in
  73. end
  74.  
  75. protected
  76. def auth_token(token)
  77. CGI::Cookie.new('name' => 'auth_token', 'value' => token)
  78. end
  79.  
  80. def cookie_for(user)
  81. auth_token user.remember_token
  82. end
  83. end
Add Comment
Please, Sign In to add comment