On Mon, Jul 25, 2011 at 9:49 PM, Brian Jakovich <[email protected]> wrote:
> Hi Everyone,
>
> I've been working with cucumber trying to tests links using the scenario
> outline feature of cucumber. What I want to do is have it visit the
> starting_page and then click on the specified link. It should then check to
> make sure the title is correct on that page to ensure it's on the expected
> page. Spent quite a bit of time googling without any luck.
>
> Error I've been receiving:
>
>> expected css "title" to return something
>> (RSpec::Expectations::ExpectationNotMetError)
>> ./features/step_definitions/managing_pages_steps.rb:11:in `/^I
>> should be able to change pages by clicking "([^"]*)" and the title is
>> "([^"]*)"$/'
>> features/managing_pages.feature:12:in `Then I should be able to
>> change pages by clicking "<link>" and the title is "<title>"'
>
>
> My code is below:
>
> managing_pages.feature
>
>>
>> Scenario Outline: As a user I need links in order to navigate the site
>> Given I am an anonymous user
>> When I am at the "<starting_page>" page
>> Then I should be able to change pages by clicking "<link>" and the
>> title is "<title>"
>>
>> Scenarios: As a user that is not logged in
>> | starting_page | link | title |
>> | / | Contact | Contact |
>> | / | Home | Home |
>
> managing_pages_steps.rb
>
>> Given /^I am an anonymous user$/ do
>> @user = nil
>> end
>>
>> When /^I am at the "([^"]*)" page$/ do |starting_page|
>> visit starting_page
>> end
>>
>> Then /^I should be able to change pages by clicking "([^"]*)" and the
>> title is "([^"]*)"$/ do |page_name, title|
>> click_link page_name
>> response.should have_selector('title', :content => "Contact")
>> end
>
>
> application_helper.rb
>
>> module ApplicationHelper
>>
>> def title
>> base_title = "Provisioner"
>> if @title.nil?
>> base_title
>> else
>> "#{base_title} | #{@title}"
>> end
>> end
>> end
>
> pages_controller.rb
>
>>
>> class PagesController < ApplicationController
>> def home
>> @title = "Home"
>> end
>>
>> def contact
>> @title = "Contact"
>> end
>> end
>
> layouts/application.html.erb
>
>> <!DOCTYPE html>
>> <html>
>> <head>
>> <title><%= title %></title>
>> <%= stylesheet_link_tag :all %>
>> <%= javascript_include_tag :defaults %>
>> <%= csrf_meta_tag %>
>> <%= link_to "Contact", contact_path %>
>> <%= link_to "Home", root_path %>
>> </head>
>> <body>
>>
>> <%= yield %>
>>
>> </body>
>> </html>
>
>
>
> Any help is much appreciated!
You're getting this error
>> expected css "title" to return something
>> (RSpec::Expectations::ExpectationNotMetError)
Webrat is expecting a <title> html tag. You're usign have_selector and
you're specifying a tagname. Do you have something like
<title>Contact</title> in that page?
>>response.should have_selector('title', :content => "Contact")
>
> --
> You received this message because you are subscribed to the Google Groups
> "Ruby on Rails: Talk" group.
> To post to this group, send email to [email protected].
> To unsubscribe from this group, send email to
> [email protected].
> For more options, visit this group at
> http://groups.google.com/group/rubyonrails-talk?hl=en.
>
--
Leonardo Mateo.
There's no place like ~
--
You received this message because you are subscribed to the Google Groups "Ruby
on Rails: Talk" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/rubyonrails-talk?hl=en.