Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- require File.dirname(__FILE__) + '/../spec_helper'
- context "Requesting /session/new using GET" do
- controller_name :session
- setup do
- @user = mock_model(User)
- User.stub!(:new).and_return(@user)
- end
- specify "should be successful" do
- get :new
- response.should be_success
- end
- specify "should create a new, unsaved user" do
- User.should_receive(:new).and_return(@user)
- get :new
- end
- specify "should assign the new user to the view" do
- get :new
- assigns[:user].should == @user
- end
- end
- context "Requesting /session using POST" do
- controller_name :session
- setup do
- @logged_in_user = mock_model(User, :increment! => nil, :login_counter => 1)
- @user = mock_model(User, :try_to_login => @logged_in_user)
- User.stub!(:new).and_return(@user)
- end
- specify "should tell the User model to create a new user" do
- User.should_receive(:new).with('name' => 'Arthur', 'password' => 'schreiber').and_return(@user)
- post :create, :user => { :name => 'Arthur', :password => 'schreiber' }
- end
- specify "should try to log in with the new user" do
- @user.should_receive(:try_to_login)
- post :create
- end
- specify "should increment the logged in user's login counter" do
- @logged_in_user.should_receive(:increment!).with('login_counter')
- post :create
- end
- specify "should save the login token in session" do
- @logged_in_user.should_receive(:login_counter).and_return(2)
- post :create
- session[:login_token].should == 2
- end
- specify "should save the user_id in session" do
- post :create
- session[:user_id].should == @logged_in_user.id
- end
- specify "should redirect to the account_url" do
- post :create
- response.should be_redirect
- response.should redirect_to(account_url(@logged_in_user))
- end
- end
Add Comment
Please, Sign In to add comment