[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