[rspec-users] Getting past my login system

Ryan Tucker rctucker at u.washington.edu
Mon Jul 16 22:21:04 EDT 2007


Ryan Tucker wrote:
> Thank you in advance for your help.  I am relatively new to both Rails 
> and Rspec and I am hoping for some insight from some experienced veterans.
>
> Right now I am using Rspec for code that has already been written so 
> that additional functionality can be developed using the BDD method. My 
> problem shows up when I try to spec controllers that are behind the 
> login system.  Each page checks for the session[:user], and if they do 
> not exists, requires them to login.  Logging in is handled by one 
> controller (the Admin controller) and I want to access a page under 
> another controller (say a Students controller).
>
> In my students_controller_spec.rb, I want want to make sure 
> http://test.host/students is successfully displayed, so I wrote 
> something like:
>
>   it "should be successful" do
>     get :index
>     response.should be_success
>   end
>
> The problem is that is keeps redirecting to my login page at 
> http://test.host/login.  I tried then setting session[:user] and doing a 
> post to my login page to simulate a login so that I could access the 
> correct page, but that does not seem to work.  I tried a number of 
> things, including the following:
>
> def do_login
>   @user = User.find(:first, :conditions => ['username = ?' , 'ryan'] )
>   session[:user] = @user.id
>   post :login, :path => []
> end
>
> describe StudentsController do
>   it "should be successful" do
>     do_login
>     get :index
>     response.should be_success
>   end
> end
>
> This still results in being redirected to the login page at 
> http://test.host/login when I want to go to http://test.host/students.  
> Also, I realize I am actually doing a call on my test database for 
> this.  Part of the reason is that code that called during login checks 
> fields of a user.  The other reason is I could not get it to work using 
> stubs, but that might just have been because I was not using them properly.
>
> Any insight will be helpful, thanks!
>
> -Ryan
> _______________________________________________
> rspec-users mailing list
> rspec-users at rubyforge.org
> http://rubyforge.org/mailman/listinfo/rspec-users
>   
Forgot one thing.

In trying to do the post, I get the error that "No action responded to 
login" suggesting that I am not properly accessing the login function in 
my Admin controller.

Thanks again,
Ryan


More information about the rspec-users mailing list