From 2db97cf2277f7ca8a54027eac0a71d589dfeacb4 Mon Sep 17 00:00:00 2001 From: Rhys Powell Date: Tue, 22 Nov 2011 15:47:00 +1100 Subject: [PATCH] Removed web_steps.rb references from step definitions --- Gemfile | 1 + Gemfile.lock | 1 + features/step_definitions/user_steps.rb | 32 ++-- features/step_definitions/web_steps.rb | 211 ------------------------ 4 files changed, 18 insertions(+), 227 deletions(-) delete mode 100644 features/step_definitions/web_steps.rb diff --git a/Gemfile b/Gemfile index 7cdb7648..f69d5b6e 100644 --- a/Gemfile +++ b/Gemfile @@ -49,6 +49,7 @@ group :production do end group :test do + gem "capybara" gem "mocha" gem "database_cleaner" end diff --git a/Gemfile.lock b/Gemfile.lock index 94dbbe34..d48b0c28 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -234,6 +234,7 @@ PLATFORMS DEPENDENCIES bson_ext cancan + capybara coffee-rails (~> 3.1.0) cucumber-rails database_cleaner diff --git a/features/step_definitions/user_steps.rb b/features/step_definitions/user_steps.rb index e893fb1b..c81d47f2 100644 --- a/features/step_definitions/user_steps.rb +++ b/features/step_definitions/user_steps.rb @@ -16,13 +16,13 @@ Given /^I am signed up as "(.*)\/(.*)"$/ do |username, password| step %{I am not logged in} - step %{I go to the sign up page} - step %{I fill in "Username" with "#{username}"} - step %{I fill in "Email" with "#{username}@example.com"} - step %{I fill in "Password" with "#{password}"} - step %{I fill in "Password confirmation" with "#{password}"} - step %{I press "Sign up"} - step %{I should see "You have signed up successfully. If enabled, a confirmation was sent to your e-mail."} + visit(signup_path) + fill_in("Username", :with => username) + fill_in("Email", :with => "#{username}@example.com") + fill_in("Password", :with => password) + fill_in("Password confirmation", :with => password) + click_button("Sign up") + BROWSER.html.should include('signed up succesfully') step %{I am logout} end @@ -40,22 +40,22 @@ When /^I sign in as "(.*)\/(.*)"$/ do |username, password| step %{I am not logged in} - step %{I go to the sign in page} - step %{I fill in "Username" with "#{username}"} - step %{I fill in "Password" with "#{password}"} - step %{I press "Sign in"} + visit(login_path) + fill_in("Username", :with => username) + fill_in("Password", :with => password) + click_button("Sign in") end Then /^I should be signed in$/ do - step %{I should see "Signed in successfully."} + BROWSER.html.should include("Signed in") end When /^I return next time$/ do - step %{I go to the home page} + visit(root) end Then /^I should be signed out$/ do - step %{I should see "Sign up"} - step %{I should see "Login"} - step %{I should not see "Logout"} + BROWSER.html.should include("Sign up") + BROWSER.html.should include("Login") + BROWSER.html.should_not include("Logout") end diff --git a/features/step_definitions/web_steps.rb b/features/step_definitions/web_steps.rb deleted file mode 100644 index 456f5d29..00000000 --- a/features/step_definitions/web_steps.rb +++ /dev/null @@ -1,211 +0,0 @@ -# TL;DR: YOU SHOULD DELETE THIS FILE -# -# This file was generated by Cucumber-Rails and is only here to get you a head start -# These step definitions are thin wrappers around the Capybara/Webrat API that lets you -# visit pages, interact with widgets and make assertions about page content. -# -# If you use these step definitions as basis for your features you will quickly end up -# with features that are: -# -# * Hard to maintain -# * Verbose to read -# -# A much better approach is to write your own higher level step definitions, following -# the advice in the following blog posts: -# -# * http://benmabey.com/2008/05/19/imperative-vs-declarative-scenarios-in-user-stories.html -# * http://dannorth.net/2011/01/31/whose-domain-is-it-anyway/ -# * http://elabs.se/blog/15-you-re-cuking-it-wrong -# - - -require 'uri' -require 'cgi' -require File.expand_path(File.join(File.dirname(__FILE__), "..", "support", "paths")) -require File.expand_path(File.join(File.dirname(__FILE__), "..", "support", "selectors")) - -module WithinHelpers - def with_scope(locator) - locator ? within(*selector_for(locator)) { yield } : yield - end -end -World(WithinHelpers) - -# Single-line step scoper -When /^(.*) within (.*[^:])$/ do |step, parent| - with_scope(parent) { When step } -end - -# Multi-line step scoper -When /^(.*) within (.*[^:]):$/ do |step, parent, table_or_string| - with_scope(parent) { When "#{step}:", table_or_string } -end - -Given /^(?:|I )am on (.+)$/ do |page_name| - visit path_to(page_name) -end - -When /^(?:|I )go to (.+)$/ do |page_name| - visit path_to(page_name) -end - -When /^(?:|I )press "([^"]*)"$/ do |button| - click_button(button) -end - -When /^(?:|I )follow "([^"]*)"$/ do |link| - click_link(link) -end - -When /^(?:|I )fill in "([^"]*)" with "([^"]*)"$/ do |field, value| - fill_in(field, :with => value) -end - -When /^(?:|I )fill in "([^"]*)" for "([^"]*)"$/ do |value, field| - fill_in(field, :with => value) -end - -# Use this to fill in an entire form with data from a table. Example: -# -# When I fill in the following: -# | Account Number | 5002 | -# | Expiry date | 2009-11-01 | -# | Note | Nice guy | -# | Wants Email? | | -# -# TODO: Add support for checkbox, select og option -# based on naming conventions. -# -When /^(?:|I )fill in the following:$/ do |fields| - fields.rows_hash.each do |name, value| - When %{I fill in "#{name}" with "#{value}"} - end -end - -When /^(?:|I )select "([^"]*)" from "([^"]*)"$/ do |value, field| - select(value, :from => field) -end - -When /^(?:|I )check "([^"]*)"$/ do |field| - check(field) -end - -When /^(?:|I )uncheck "([^"]*)"$/ do |field| - uncheck(field) -end - -When /^(?:|I )choose "([^"]*)"$/ do |field| - choose(field) -end - -When /^(?:|I )attach the file "([^"]*)" to "([^"]*)"$/ do |path, field| - attach_file(field, File.expand_path(path)) -end - -Then /^(?:|I )should see "([^"]*)"$/ do |text| - if page.respond_to? :should - page.should have_content(text) - else - assert page.has_content?(text) - end -end - -Then /^(?:|I )should see \/([^\/]*)\/$/ do |regexp| - regexp = Regexp.new(regexp) - - if page.respond_to? :should - page.should have_xpath('//*', :text => regexp) - else - assert page.has_xpath?('//*', :text => regexp) - end -end - -Then /^(?:|I )should not see "([^"]*)"$/ do |text| - if page.respond_to? :should - page.should have_no_content(text) - else - assert page.has_no_content?(text) - end -end - -Then /^(?:|I )should not see \/([^\/]*)\/$/ do |regexp| - regexp = Regexp.new(regexp) - - if page.respond_to? :should - page.should have_no_xpath('//*', :text => regexp) - else - assert page.has_no_xpath?('//*', :text => regexp) - end -end - -Then /^the "([^"]*)" field(?: within (.*))? should contain "([^"]*)"$/ do |field, parent, value| - with_scope(parent) do - field = find_field(field) - field_value = (field.tag_name == 'textarea') ? field.text : field.value - if field_value.respond_to? :should - field_value.should =~ /#{value}/ - else - assert_match(/#{value}/, field_value) - end - end -end - -Then /^the "([^"]*)" field(?: within (.*))? should not contain "([^"]*)"$/ do |field, parent, value| - with_scope(parent) do - field = find_field(field) - field_value = (field.tag_name == 'textarea') ? field.text : field.value - if field_value.respond_to? :should_not - field_value.should_not =~ /#{value}/ - else - assert_no_match(/#{value}/, field_value) - end - end -end - -Then /^the "([^"]*)" checkbox(?: within (.*))? should be checked$/ do |label, parent| - with_scope(parent) do - field_checked = find_field(label)['checked'] - if field_checked.respond_to? :should - field_checked.should be_true - else - assert field_checked - end - end -end - -Then /^the "([^"]*)" checkbox(?: within (.*))? should not be checked$/ do |label, parent| - with_scope(parent) do - field_checked = find_field(label)['checked'] - if field_checked.respond_to? :should - field_checked.should be_false - else - assert !field_checked - end - end -end - -Then /^(?:|I )should be on (.+)$/ do |page_name| - current_path = URI.parse(current_url).path - if current_path.respond_to? :should - current_path.should == path_to(page_name) - else - assert_equal path_to(page_name), current_path - end -end - -Then /^(?:|I )should have the following query string:$/ do |expected_pairs| - query = URI.parse(current_url).query - actual_params = query ? CGI.parse(query) : {} - expected_params = {} - expected_pairs.rows_hash.each_pair{|k,v| expected_params[k] = v.split(',')} - - if actual_params.respond_to? :should - actual_params.should == expected_params - else - assert_equal expected_params, actual_params - end -end - -Then /^show me the page$/ do - save_and_open_page -end