On Jan 3, 2009, at 9:12 PM, Ben Mabey wrote:

The downside with this approach is that it only works with the rails webrat adapter. One solution which I have been meaning to do is to create a UsersSessionManager. The manager would be responsible for logging in all the various roles you use in your app with different webrat sessions (and then caching them.) You could then swap out which session you would be using in your steps...

So you could then do something like:

logged_in_as 'Admin' do |session|
session.click_link 'Foo'
...
end

Or..

Given /^I am logged in as an '(.+)'$/ |role|
 login_as role
end

The 'login_as' would swap out the session that the World object uses so the next steps would be using the appropriate session.

WDYT?

In general I like the idea, Ben. At weplay, we use webrat to drive rails and selenium, and logged_in_as method has the following implementation in the Selenium world:

  def logged_in_as(user)
    visit login_for_test_path(user)
  end

where login_for_test_path is is a named route defined only for the selenium environment that provides a "quick" login of a given user.

Would the solution you're thinking of help with this? I'm not sure how you would "cache" a selenium session.

--
Luke Melia
l...@lukemelia.com
http://www.lukemelia.com/

_______________________________________________
rspec-users mailing list
rspec-users@rubyforge.org
http://rubyforge.org/mailman/listinfo/rspec-users

Reply via email to