clauer
August 7, 2008, 8:44pm
1
I’m trying to verify that data entered in a form has been saved in the
database.
Scenario: User enters a bookmark URL
Given a bookmark ‘http://www.gotapi.com/rubyrails ’
When the user adds the bookmark
Then should redirect to ‘/’
And the page should contain ‘http://www.gotapi.com/rubyrails ’
The first test (should redirect) passes. The second fails. I understand
why: the page that is analysed is a dummy page “You are being
redirected.”
Is it possible to check data in the second page?
Cheers
Xtian
clauer
August 7, 2008, 11:07pm
2
Thanks! I will try this tomorrow.
Xtian
clauer
August 7, 2008, 8:56pm
3
On Thu, Aug 7, 2008 at 2:44 PM, Christian L.
[email protected] wrote:
why: the page that is analysed is a dummy page “You are being
redirected.”
Is it possible to check data in the second page?
What about something like:
Scenario: User enters a bookmark URL
Given I log in as a user
When I add ‘http://www.gotapi.com/rubyrails ’ as a bookmark
Then I should see that has the ‘http://www.gotapi.com/rubyrails ’
has been added to my bookmarks
I’d imagine the steps to look something like:
Given "I log in as a user" do
# do whatever to login
end
When I add $url as a bookmark do |url|
# fill out the new bookmmark form with the given url
# after submitting form handle redirects
follow_all_redirects
end
Then "I should see that has the $url has been added to my
bookmarks" do |url|
# response should have url somewhere on page
end
follow_all_redirects looks like:
def follow_all_redirects
if response.content_type == "text/html"
follow_redirect! while response.redirect?
elsif response.content_type == "text/javascript"
if md=response.body.match(/window.location.href = "([^"]+)"/)
get md.captures.first
end
end
true
end
–
Zach D.
http://www.continuousthinking.com
Technology Made for Humans by humans Data Analytics Data Analytics Data has become a critical part of business for most organizations. We work with you to ensure you have confidence in your data, can properly access it, and present it in a way that...
Est. reading time: 13 minutes
clauer
August 8, 2008, 7:29pm
4
Thanks Zach! It worked like a charm.
Finally I used:
Scenario: User enters a bookmark URL
When the user adds ‘http://www.gotapi.com/rubyrails ’ as a bookmark
Then the database should have a bookmark with url
‘http://www.gotapi.com/rubyrails ’
And the page should contain ‘http://www.gotapi.com/rubyrails ’
and in bookmark_steps.rb:
When “the user adds ‘$string’ as a bookmark” do |string|
post “/bookmarks/create”, :bookmark => { :url => string }
follow_all_redirects
end
Then “the database should have a bookmark with url ‘$url’” do |url|
Bookmark.find_by_url(url).should_not be_nil
end
Then “the page should contain ‘$stuff’” do |stuff|
response.should have_text(/#{stuff}/)
end
end
def follow_all_redirects
if response.content_type == “text/html”
follow_redirect! while response.redirect?
end
true
end
I skipped the Javascript right now, I’ll add it when the time comes.
Xtian