RichGuk (owner)

Revisions

gist: 11407 Download_button fork
public
Public Clone URL: git://gist.github.com/11407.git
Embed All Files: show embed
Text #
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
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