Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ===== /spec/controllers/sessions_controller_spec.rb =======
- require File.expand_path(File.dirname(__FILE__) + '/../spec_helper')
- describe SessionsController do
- #Delete this example and add some real ones
- # it "should use SessionsController" do
- # controller.should be_an_instance_of(SessionsController)
- # end
- def mock_user(stubs={})
- @mock_user ||= mock_model(User, stubs)
- end
- describe "create" do
- # before do
- # @params = {:username => 'username', :password => 'password'}
- # end
- # it "should authenticate user" do
- # User.stub!(:authenticate).with(params[:username],params[:password]).and_return(mock_user)
- # post :create
- # assigns[:user].should eql(mock_user)
- # end
- describe "with authenticated user" do
- before do
- @params = {:username => 'username', :password => 'password'}
- @usertype = mock("User")
- User.stub!(:new).and_return(@usertype)
- end
- it "session should contain athenticate user id,usertype,username and status" do
- user = mock_model(User,{:id=>'1', :usertype=>'usertype', :login=>params[:username], :status => 'status'})
- User.stub!(:authenticate).with(params[:username],params[:password]).and_return(user)
- User.should_receive(:authenticate).and_return(user)
- post :create
- session[:id].should eql(user.id)
- session[:usertype].should eql(user.usertype)
- session[:login].should eql(params[:username])
- session[:paypalstatus].should eql(user.status)
- end
- it "should create new usertpye object for User" do
- User.should_receive(:new).with(no_args()).and_return(@usertype)
- post :create
- end
- end
- end
- end
- =============== sessions_controller.rb ==========
- # This controller handles the login/logout function of the site.
- class SessionsController < ApplicationController
- layout 'home'
- before_filter :profilestatus
- # before_filter :contestdetails #need to write spec for the filters
- # render new.rhtml
- def new
- end
- def create
- user = User.authenticate(params[:username], params[:password])
- if user
- session[:id] = user.id
- session[:usertype] = user.usertype
- session[:paypalstatus] = user.status
- session[:login] = params[:username]
- @usertype = User.new
- @usertype = User.find(:all, :select => :usertype, :conditions => "id='#{user.id}'") # original statement
- # @usertype = User.find(:all, :select => :usertype, :conditions => "id='1'") # original statement
- end
- end
- def destroy
- end
- end
Add Comment
Please, Sign In to add comment