Created
March 23, 2010 02:34
-
-
Save meddulla/340795 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
require File.expand_path(File.join(File.dirname(__FILE__), "..", "support", "paths")) | |
# Commonly used webrat steps | |
# http://github.com/brynary/webrat | |
Given /^Debug$/ do | |
puts response_body | |
filepath = '/tmp/webrat_debug.html' | |
File.open(filepath, "w") do |file| | |
file.puts response_body | |
end | |
raise "Debugged! Current URL: #{current_url}\nResponse saved: #{filepath}" | |
end | |
Given /^I am on(?: the)* (.+)$/ do |page_name| # assign the variable in second parenthesis to page_name | |
visit path_to(page_name) | |
end | |
When /^I press "([^\"]*)"$/ do |button| | |
click_button(button) | |
end | |
# ?: makes parenthesis group without saving the result (don't create a backreference) | |
When /^I follow|click(?: the)* "([^\"]*)"(?: link)*$/ do |link| | |
click_link(link) | |
end | |
When /^I fill in "([^\"]*)" with "([^\"]*)"$/ do |field, value| | |
fill_in(field, :with => value) | |
end | |
When /^I select "([^\"]*)" from "([^\"]*)"$/ do |value, field| | |
select(value, :from => field) | |
end | |
# Use this step in conjunction with Rail's datetime_select helper. For example: | |
# When I select "December 25, 2008 10:00" as the date and time | |
When /^I select "([^\"]*)" as the date and time$/ do |time| | |
select_datetime(time) | |
end | |
# Use this step when using multiple datetime_select helpers on a page or | |
# you want to specify which datetime to select. Given the following view: | |
# <%= f.label :preferred %><br /> | |
# <%= f.datetime_select :preferred %> | |
# <%= f.label :alternative %><br /> | |
# <%= f.datetime_select :alternative %> | |
# The following steps would fill out the form: | |
# When I select "November 23, 2004 11:20" as the "Preferred" date and time | |
# And I select "November 25, 2004 10:30" as the "Alternative" date and time | |
When /^I select "([^\"]*)" as the "([^\"]*)" date and time$/ do |datetime, datetime_label| | |
select_datetime(datetime, :from => datetime_label) | |
end | |
# Use this step in conjunction with Rail's time_select helper. For example: | |
# When I select "2:20PM" as the time | |
# Note: Rail's default time helper provides 24-hour time-- not 12 hour time. Webrat | |
# will convert the 2:20PM to 14:20 and then select it. | |
When /^I select "([^\"]*)" as the time$/ do |time| | |
select_time(time) | |
end | |
# Use this step when using multiple time_select helpers on a page or you want to | |
# specify the name of the time on the form. For example: | |
# When I select "7:30AM" as the "Gym" time | |
When /^I select "([^\"]*)" as the "([^\"]*)" time$/ do |time, time_label| | |
select_time(time, :from => time_label) | |
end | |
# Use this step in conjunction with Rail's date_select helper. For example: | |
# When I select "February 20, 1981" as the date | |
When /^I select "([^\"]*)" as the date$/ do |date| | |
select_date(date) | |
end | |
# Use this step when using multiple date_select helpers on one page or | |
# you want to specify the name of the date on the form. For example: | |
# When I select "April 26, 1982" as the "Date of Birth" date | |
When /^I select "([^\"]*)" as the "([^\"]*)" date$/ do |date, date_label| | |
select_date(date, :from => date_label) | |
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 at "([^\"]*)" to "([^\"]*)"$/ do |path, field| | |
attach_file(field, path) | |
end | |
Then /^I should see "(.*)"$/ do |text| | |
assert !!(response_body =~ /#{Regexp.escape text}/m), response_body | |
end | |
Then /^I should not see "(.*)"$/ do |text| | |
assert !!(response_body !~ /#{Regexp.escape text}/m), response_body | |
end | |
Then /^the "(.*)" checkbox should not be checked$/ do |label| | |
assert !field_labeled(label).checked? | |
end | |
Then /^the "(.*)" checkbox should be checked$/ do |label| | |
assert field_labeled(label).checked? | |
end | |
Then /^I should be redirected to "(.*)"$/ do |path| | |
assert_template path | |
end | |
Then /^the "([^\"]*)" field should contain "([^\"]*)"$/ do |field, value| | |
assert field_labeled(field).value =~ /#{value}/ | |
end | |
Then /^the "([^\"]*)" field should not contain "([^\"]*)"$/ do |field, value| | |
assert !(field_labeled(field).value =~ /#{value}/) | |
end | |
Then /^I should be on (.+)$/ do |page_name| | |
assert_equal path_to(page_name), URI.parse(current_url).path | |
end | |
Then /^the (.*) tag should be "(.*)"$/ do |tag, content| | |
response_body.should have_authorized_tag(tag, content) | |
end |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment