We do something very very similar but rather then
it_should_behave_like we wrap it in a it_requires_login method...

describe SomeController do
  it_requires_login
end

Zach

On Fri, Mar 7, 2008 at 11:53 AM, Max Williams
<[EMAIL PROTECTED]> wrote:
> 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]://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]://rubyforge.org/mailman/listinfo/rspec-users
> > _______________________________________________
> > rspec-users mailing list
> > rspec-users@rubyforge.org
> > http://rubyforge.org/mailman/listinfo/rspec-users
> >
>
>
> _______________________________________________
>  rspec-users mailing list
>  rspec-users@rubyforge.org
>  http://rubyforge.org/mailman/listinfo/rspec-users
>



-- 
Zach Dennis
http://www.continuousthinking.com
_______________________________________________
rspec-users mailing list
rspec-users@rubyforge.org
http://rubyforge.org/mailman/listinfo/rspec-users

Reply via email to