1
0
Fork 0
mirror of https://github.com/heartcombo/devise.git synced 2022-11-09 12:18:31 -05:00
heartcombo--devise/test/support/integration_tests_helper.rb
2009-10-11 23:24:57 -03:00

64 lines
1.6 KiB
Ruby

class ActionController::IntegrationTest
def warden
request.env['warden']
end
def create_user(options={})
@user ||= begin
user = User.create!(
:email => 'user@test.com', :password => '123456', :password_confirmation => '123456'
)
user.confirm! unless options[:confirm] == false
user
end
end
def create_admin(options={})
@admin ||= begin
admin = Admin.create!(
:email => 'admin@test.com', :password => '123456', :password_confirmation => '123456'
)
admin.confirm! unless options[:confirm] == false
admin
end
end
def sign_in_as_user(options={}, &block)
create_user(options)
visit new_user_session_path
fill_in 'email', :with => 'user@test.com'
fill_in 'password', :with => '123456'
yield if block_given?
click_button 'Sign In'
end
def sign_in_as_admin(options={}, &block)
create_admin(options)
visit new_admin_session_path
fill_in 'email', :with => 'admin@test.com'
fill_in 'password', :with => '123456'
yield if block_given?
click_button 'Sign In'
end
# Fix assert_redirect_to in integration sessions because they don't take into
# account Middleware redirects.
#
def assert_redirected_to(url)
assert [301, 302].include?(@integration_session.status),
"Expected status to be 301 or 302, got #{@integration_session.status}"
url = prepend_host(url)
location = prepend_host(@integration_session.headers["Location"])
assert_equal url, location
end
protected
def prepend_host(url)
url = "http://#{request.host}#{url}" if url[0] == ?/
url
end
end