Guest User

Untitled

a guest
Mar 2nd, 2018
99
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.86 KB | None | 0 0
  1. require File.dirname(__FILE__) + '/../spec_helper'
  2.  
  3. context "Requesting /session/new using GET" do
  4. controller_name :session
  5.  
  6. setup do
  7. @user = mock_model(User)
  8.  
  9. User.stub!(:new).and_return(@user)
  10. end
  11.  
  12. specify "should be successful" do
  13. get :new
  14. response.should be_success
  15. end
  16.  
  17. specify "should create a new, unsaved user" do
  18. User.should_receive(:new).and_return(@user)
  19. get :new
  20. end
  21.  
  22. specify "should assign the new user to the view" do
  23. get :new
  24. assigns[:user].should == @user
  25. end
  26. end
  27.  
  28. context "Requesting /session using POST" do
  29. controller_name :session
  30.  
  31. setup do
  32. @logged_in_user = mock_model(User, :increment! => nil, :login_counter => 1)
  33. @user = mock_model(User, :try_to_login => @logged_in_user)
  34.  
  35. User.stub!(:new).and_return(@user)
  36. end
  37.  
  38. specify "should tell the User model to create a new user" do
  39. User.should_receive(:new).with('name' => 'Arthur', 'password' => 'schreiber').and_return(@user)
  40. post :create, :user => { :name => 'Arthur', :password => 'schreiber' }
  41. end
  42.  
  43. specify "should try to log in with the new user" do
  44. @user.should_receive(:try_to_login)
  45. post :create
  46. end
  47.  
  48. specify "should increment the logged in user's login counter" do
  49. @logged_in_user.should_receive(:increment!).with('login_counter')
  50. post :create
  51. end
  52.  
  53. specify "should save the login token in session" do
  54. @logged_in_user.should_receive(:login_counter).and_return(2)
  55. post :create
  56. session[:login_token].should == 2
  57. end
  58.  
  59. specify "should save the user_id in session" do
  60. post :create
  61. session[:user_id].should == @logged_in_user.id
  62. end
  63.  
  64. specify "should redirect to the account_url" do
  65. post :create
  66. response.should be_redirect
  67. response.should redirect_to(account_url(@logged_in_user))
  68. end
  69. end
Add Comment
Please, Sign In to add comment