I found it a little confusing to stub my authentication filters as well, but
figured it out with a little help from the interwebs:
in spec_helper i have this:
describe "a controller requiring login", :shared => true do
it "should have login_required set in the before filter" do
controller.class.before_filters.should include(:login_required)
end
end
def mock_login_required(allow_user_to_pass=true)
controller.stub!(:login_required).and_return(allow_user_to_pass)
end
Then, in any spec where i want to mock that filter, i just write
it_should_behave_like "a controller requiring login"
at the top of the describe block.
Sorry, i can't remember the web page where i found this solution but respect
to whoever posted it :)
On 06/03/2008, Bastien <[EMAIL PROTECTED]> wrote:
>
> Thanks for your help.
> I tried the controller.stub!(...) as well, and it doesn't work.
>
> Ivo I totally agree with you and I'll follow your recommendations,
> thanks.
>
> (Would still be nice to know if the stubbing could work or if it's
> intended not to)
>
>
> On Mar 6, 4:27 pm, Ivo Dancet <[EMAIL PROTECTED]> wrote:
> > You should not stub the authentication method in a story. The story
> > should test the whole application framework, that way your story might
> > look like this:
> >
> > Given a user from company x
> > When logging in
> > And requesting some page
> > Then the application should do all the stuff it should
> >
> > In the given step you set your host, user name and password and you
> > create that user.
> > In the when steps you make the login request and then you can start
> > doing the stuff you really want to test here as you'll have the
> > session you want at that moment.
> >
> > Regards
> > Ivo Dancet
> >
> > Op 6-mrt-08, om 16:12 heeft Bastien het volgende geschreven:
> >
> >
> >
> > > Thanks David, this works just fine. I would rather do some stubbing
> > > there if it's possible though. I tried :
> >
> > > ApplicationController.stub!
> > > (:user_authentication_required).and_return(true)
> >
> > > (which is the filter called before each action that checks whether the
> > > user is logged in or not)
> > > But it doesn't work. When I do this :
> >
> > > class ApplicationController
> > > def user_authentication_required
> > > return true
> > > end
> > > end
> >
> > > it works fine (but I find it quite dirty to redefine my method that
> > > way). Aren't this two solutions supposed to give me the same result ?
> > > Is something wrong with my stubbing ?
> >
> > > On Mar 6, 3:33 pm, Ivo Dancet <[EMAIL PROTECTED]> wrote:
> > >> I think you can also use:
> >
> > >> post "/authentication/login",
> > >> { :login => user_email,
> > >> :password => password },
> > >> :host => "company.example.com"
> >
> > >> Op 5-mrt-08, om 23:30 heeft Bastien het volgende geschreven:
> >
> > >>> I've just begin using rspec stories, and i m encountering some
> > >>> problems. In my application i have different subdomains in which
> > >>> specific users can log in, for example an admin will go to
> > >>> admin.myapp.com/authenticate/login, and an user belonging to a
> > >>> specific company will log in company.myapp.com/authenticate/login,
> > >>> and
> > >>> of course both have a different login process.
> >
> > >>> To perform some actions the user has to be logged in, and this is
> > >>> where the problem comes, how to test these actions ?
> >
> > >>> - Is there a way to set a user as logged in ? (that would definitely
> > >>> be very convenient)
> >
> > >>> So far I have tried to do the following :
> >
> > >>> post "/authenticate/login",
> > >>> {:login => user_email,
> > >>> :password => password }
> >
> > >>> but the problem is that it doesn't use the correct subdomain and the
> > >>> login, as expected in that case, fails, so how to define the correct
> > >>> subdomain ?
> >
> > >>> Thank you in advance for your help.
> > >>> _______________________________________________
> > >>> rspec-users mailing list
> > >>> [EMAIL PROTECTED]
> > >>>http://rubyforge.org/mailman/listinfo/rspec-users
> >
> > >> _______________________________________________
> > >> rspec-users mailing list
> > >> [EMAIL PROTECTED]
> .orghttp://rubyforge.org/mailman/listinfo/rspec-users
> > > _______________________________________________
> > > rspec-users mailing list
> > > [EMAIL PROTECTED]
> > >http://rubyforge.org/mailman/listinfo/rspec-users
> >
> > _______________________________________________
> > rspec-users mailing list
> > [EMAIL PROTECTED]
> .orghttp://rubyforge.org/mailman/listinfo/rspec-users
> _______________________________________________
> rspec-users mailing list
> [email protected]
> http://rubyforge.org/mailman/listinfo/rspec-users
>
_______________________________________________
rspec-users mailing list
[email protected]
http://rubyforge.org/mailman/listinfo/rspec-users