Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Fetching contributors…

Cannot retrieve contributors at this time

125 lines (95 sloc) 3.169 kB
# Existing users
require 'factory_girl_rails'
Given /^(?:I am|I have|I) signed up (?:as|with) "(.*)"$/ do |email|
FactoryGirl.create(:user, :email => email)
end
Given /^a user "([^"]*)" exists without a salt, remember token, or password$/ do |email|
user = FactoryGirl.create(:user, :email => email)
sql = "update users set salt = NULL, encrypted_password = NULL, remember_token = NULL where id = #{user.id}"
ActiveRecord::Base.connection.update(sql)
end
# Sign up
When /^I sign up (?:with|as) "(.*)" and "(.*)"$/ do |email, password|
visit sign_up_path
page.should have_css("input[type='email']")
fill_in "Email", :with => email
fill_in "Password", :with => password
click_button "Sign up"
end
# Sign in
Given /^I sign in$/ do
email = FactoryGirl.generate(:email)
steps %{
Given I have signed up with "#{email}"
And I sign in with "#{email}"
}
end
When /^I sign in (?:with|as) "([^"]*)"$/ do |email|
step %{I sign in with "#{email}" and "password"}
end
When /^I sign in (?:with|as) "([^"]*)" and "([^"]*)"$/ do |email, password|
visit sign_in_path
page.should have_css("input[type='email']")
fill_in "Email", :with => email
fill_in "Password", :with => password
click_button "Sign in"
end
# Sign out
When "I sign out" do
visit "/"
click_link "Sign out"
end
# Reset password
When /^I reset the password for "(.*)"$/ do |email|
visit new_password_path
page.should have_css("input[type='email']")
fill_in "Email address", :with => email
click_button "Reset password"
end
Then /^instructions for changing my password are emailed to "(.*)"$/ do |email|
page.should have_content("instructions for changing your password")
user = User.find_by_email!(email)
assert !user.confirmation_token.blank?
assert !ActionMailer::Base.deliveries.empty?
result = ActionMailer::Base.deliveries.any? do |email|
email.to == [user.email] &&
email.subject =~ /password/i &&
email.body =~ /#{user.confirmation_token}/
end
assert result
end
When /^I follow the password reset link sent to "(.*)"$/ do |email|
user = User.find_by_email!(email)
visit edit_user_password_path(:user_id => user,
:token => user.confirmation_token)
end
When /^I change the password of "(.*)" without token$/ do |email|
user = User.find_by_email!(email)
visit edit_user_password_path(:user_id => user)
end
When /^I update my password with "(.*)"$/ do |password|
fill_in "Choose password", :with => password
click_button "Save this password"
end
# Flashes
Then /^I am told email or password is bad$/ do
page.should have_content("Bad email or password")
end
Then /^I am told email is unknown$/ do
page.should have_content("Unknown email")
end
Then /^I am told to enter a valid email address$/ do
page.should have_content("Must be a valid email address")
end
Then /^I am told to enter a password$/ do
page.should have_content("Password can't be blank")
end
# Verification
Then /^I should be signed in$/ do
visit "/"
page.should have_content "Sign out"
end
Then /^I should be signed out$/ do
visit "/"
page.should have_content "Sign in"
end
Jump to Line
Something went wrong with that request. Please try again.