Skip to content

Instantly share code, notes, and snippets.

@RichGuk
Created September 18, 2008 09:39
Show Gist options
  • Save RichGuk/11407 to your computer and use it in GitHub Desktop.
Save RichGuk/11407 to your computer and use it in GitHub Desktop.
require File.join(File.dirname(__FILE__), '..', 'spec_helper.rb')
describe Sessions, "create action" do
before(:each) do
User.auto_migrate!
end
it "should login valid user and redirect" do
user = User.make
user.id = rand(1000)
User.should_receive(:authenticate).with(user.login, user.password).and_return(user)
controller = dispatch_to(Sessions, :create, {:login => user.login, :password => user.password})
controller.session[:user].should_not be_nil
controller.session[:user].should == user.id
controller.should redirect_to('/')
end
it "should raise Unauthenticated on failed login" do
lambda {
dispatch_to(Sessions, :create, {:login => 'wrong_foo', :password => 'bad'})
}.should raise_error(Merb::Controller::Unauthenticated)
end
it "should only remember me if remember_me parameter is 1" do
user = User.make
User.stub!(:authenticate).and_return(user)
user.should_receive(:remember_me)
dispatch_to(Sessions, :create, {:login => user.login, :password => user.password, :remember_me => 1})
user.should_not_receive(:remember_me)
dispatch_to(Sessions, :create, {:login => user.login, :password => user.password, :remember_me => 0})
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment