mirror of
https://github.com/TracksApp/tracks.git
synced 2025-12-16 15:20:13 +01:00
Merge pull request #183 from mattr-/cucumber-login-backdoor
Add login backdoor to speed up the cucumber test suite
This commit is contained in:
commit
0a10a2050b
3 changed files with 43 additions and 10 deletions
|
|
@ -1,13 +1,7 @@
|
|||
Given /^I have logged in as "(.*)" with password "(.*)"$/ do |username, password|
|
||||
step "I go to the login page"
|
||||
fill_in "user_login", :with => username
|
||||
fill_in "user_password", :with => password
|
||||
uncheck "user_noexpiry"
|
||||
click_button "Sign in"
|
||||
|
||||
logout_regexp = @mobile_interface ? "Logout" : "Logout \(#{username}\)"
|
||||
page.should have_content(logout_regexp)
|
||||
@current_user = User.where(:login => username).first
|
||||
user = User.where(:login => username).first
|
||||
request_signin_as(user)
|
||||
@current_user = user
|
||||
end
|
||||
|
||||
When /^I submit the login form as user "([^\"]*)" with password "([^\"]*)"$/ do |username, password|
|
||||
|
|
|
|||
38
features/support/tracks_login_helper.rb
Normal file
38
features/support/tracks_login_helper.rb
Normal file
|
|
@ -0,0 +1,38 @@
|
|||
class SessionBackdoorController < ::ApplicationController
|
||||
skip_before_filter :login_required
|
||||
|
||||
def create
|
||||
session['user_id'] = params[:user_id]
|
||||
user = User.find(params[:user_id])
|
||||
set_current_user(user)
|
||||
user.remember_me
|
||||
cookies[:auth_token] = { :value => user.remember_token, :expires => user.remember_token_expires_at }
|
||||
redirect_to root_path
|
||||
end
|
||||
end
|
||||
|
||||
module TracksLoginHelper
|
||||
begin
|
||||
_routes = Rails.application.routes
|
||||
_routes.disable_clear_and_finalize = true
|
||||
_routes.clear!
|
||||
Rails.application.routes_reloader.paths.each{ |path| load(path) }
|
||||
_routes.draw do
|
||||
# here you can add any route you want
|
||||
match "/test_login_backdoor", to: "session_backdoor#create"
|
||||
end
|
||||
ActiveSupport.on_load(:action_controller) { _routes.finalize! }
|
||||
ensure
|
||||
_routes.disable_clear_and_finalize = false
|
||||
end
|
||||
|
||||
def request_signin_as(user)
|
||||
visit "/test_login_backdoor?user_id=#{user.id}"
|
||||
end
|
||||
|
||||
def signin_as(user)
|
||||
session[:user_id] = user.id
|
||||
@current_user = user
|
||||
end
|
||||
|
||||
end
|
||||
|
|
@ -1,3 +1,4 @@
|
|||
World(TracksLoginHelper)
|
||||
World(TracksStepHelper)
|
||||
World(TracksFormHelper)
|
||||
World(TracksIdHelper)
|
||||
World(TracksIdHelper)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue