Commit 0c8621fa authored by Florian Staudacher's avatar Florian Staudacher
Browse files

Merge pull request #3386 from diaspora/nicer-cukes

cleanup session cukes
parents 0fb0bf00 b184415c
......@@ -15,8 +15,7 @@ Feature: Close Account
When I try to sign in manually
Then I should be on the new user session page
When I wait for the ajax to finish
Then I should see "Invalid email or password"
And I should see a flash message containing "Invalid email or password"
Scenario: post display should not throw error when mention is removed for the user whose account is closed
Given a user named "Bob Jones" with email "bob@bob.bob"
......
......@@ -6,7 +6,7 @@ end
When /^I wait for (\d+) seconds?$/ do |seconds|
sleep seconds.to_i
warn "DELETEME - this step is for debugging only"
warn "DELETEME - this step is for debugging only\n"
end
When /^I open the error console$/ do
......
Given /^(?:I am signed in|I sign in)$/ do
step %(I try to sign in)
wait_until { page.has_content?("#{@me.first_name} #{@me.last_name}") }
automatic_login
confirm_login
end
When /^I try to sign in$/ do
@me ||= Factory(:user_with_aspect, :getting_started => false)
page.driver.visit(new_integration_sessions_path(:user_id => @me.id))
click_button "Login"
# To save time as compared to:
#step %(I go to the new user session page)
#step %(I fill in "Username" with "#{@me.username}")
#step %(I fill in "Password" with "#{@me.password}")
#step %(I press "Sign in")
automatic_login
end
When /^I try to sign in manually$/ do
visit login_page
login_as @me.username, @me.password
manual_login
end
When /^I (?:sign|log) in manually as "([^"]*)" with password "([^"]*)"$/ do |username, password|
visit login_page
login_as username, password
@me = User.find_by_username(username)
@me.password ||= password
manual_login
confirm_login
end
When /^I (?:sign|log) in as "([^"]*)"$/ do |email|
@me = User.find_by_email(email)
@me.password ||= 'password'
step 'I am signed in'
automatic_login
confirm_login
end
When /^I (?:sign|log) in with password "([^"]*)"$/ do |password|
@me.password = password
step 'I am signed in'
automatic_login
confirm_login
end
When /^I put in my password in "([^"]*)"$/ do |field|
......@@ -40,6 +37,5 @@ When /^I put in my password in "([^"]*)"$/ do |field|
end
When /^I (?:log|sign) out$/ do
$browser.delete_cookie('_session', 'path=/') if $browser
$browser.delete_all_visible_cookies if $browser
logout
end
module UserCukeHelpers
# creates a new user object from the factory with some default attributes
# and the given override attributes, adds the standard aspects to it
# and returns it
def create_user(overrides={})
default_attrs = {
:password => 'password',
......@@ -11,16 +15,42 @@ module UserCukeHelpers
user
end
# create the default testing aspects for a given user
def add_standard_aspects(user)
user.aspects.create(:name => "Besties")
user.aspects.create(:name => "Unicorns")
end
# fill out the fields on the sign_in page and press submit
def login_as(user, pass)
fill_in 'user_username', :with=>user
fill_in 'user_password', :with=>pass
click_button :submit
end
# create a new @me user, if not present, and log in using the
# integration_sessions controller (automatic)
def automatic_login
@me ||= Factory(:user_with_aspect, :getting_started => false)
page.driver.visit(new_integration_sessions_path(:user_id => @me.id))
click_button "Login"
end
# use the @me user to perform a manual login via the sign_in page
def manual_login
visit login_page
login_as @me.username, @me.password
end
def confirm_login
wait_until { page.has_content?("#{@me.first_name} #{@me.last_name}") }
end
# delete all cookies, destroying the current session
def logout
$browser.delete_cookie('_session', 'path=/') if $browser
$browser.delete_all_visible_cookies if $browser
end
end
World(UserCukeHelpers)
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment