> Hey Ben, thanks a lot.
>
> The problem I am experiencing now is that information stored in the
> session does not seem to be retained between steps (again, only in the
> case of selenium sessions, plain sesssion work fine). So the login
> function works fine now but when I go to another page afterwards it
> throws a big error because the action tries to render something based on
> the current user.
>
> Is the session store I am using relevant? I used the default
> cookie-based storage and then tried to change to the active-record based
> one to no avail. My config is at http://gist.github.com/83635
>
> Thank you,
> Balint
Ok, I think I have the problem and it has nothing to do with session
storage. I intend to explain it below so others might benefit from it.
Scenario: Successfully sharing album with group via the "Share with
group" link
Given I am logged in as "pepito"
When I go to my photosets page
I used some existing step definitions I wrote for non-selenium features
to log in the user like so:
Given /^I log in as "(.*)"$/ do |login_name|
@user = User.find_by_login(login_name)
post "/session", :login => @user.login, :password => 'secret' # !!!
end
Given /^I am logged in as "(.*)"$/ do |login_name|
Given %(the user "#{login_name}" exists)
Given %(the user "#{login_name}" is active)
Given %(I log in as "#{login_name}")
end
When the feature gets to "When I go to my photosets page", the selenium
browser is launched but there is no user logged in here, there is no
session, so that step will fail miserably. That's because the line
denoted by !!! does not log in the user in the selenium session but in
the "test session" (I know this is not the proper definition but I
cannot precisely name it).
So if I need a logged in user in a selenium feature I should go the
"hard way" and start from scratch:
Given the user "pepito" exists
And the user "pepito" is active
When I go to the login page
And I fill in "login" with "pepito"
And I fill in "password" with "secret"
And I press "entrar"
And I go to my photosets page
...
It takes some time to get one's head around realizing there is a test
world and a selenium world and keep in mind which action modifies which
world and learn how they can interact with each other (through the
database I guess if they use the same environment).
Please correct me if I am wrong in anything I say above,
Balint
--
Posted via http://www.ruby-forum.com/.
_______________________________________________
rspec-users mailing list
[email protected]
http://rubyforge.org/mailman/listinfo/rspec-users