1
0
Fork 0
mirror of https://github.com/heartcombo/devise.git synced 2022-11-09 12:18:31 -05:00
heartcombo--devise/test/test_helpers_test.rb

135 lines
3 KiB
Ruby
Raw Normal View History

require 'test_helper'
2009-11-16 11:58:14 -05:00
class TestHelpersTest < ActionController::TestCase
tests UsersController
include Devise::TestHelpers
class CustomFailureApp < Devise::FailureApp
def redirect
self.status = 306
end
end
2009-11-16 11:58:14 -05:00
test "redirects if attempting to access a page unauthenticated" do
get :index
assert_redirected_to new_user_session_path
assert_equal "You need to sign in or sign up before continuing.", flash[:alert]
2009-11-16 11:58:14 -05:00
end
test "redirects if attempting to access a page with an unconfirmed account" do
2009-11-16 11:58:14 -05:00
swap Devise, :confirm_within => 0 do
user = create_user
assert !user.active_for_authentication?
sign_in user
get :index
assert_redirected_to new_user_session_path
2009-11-16 11:58:14 -05:00
end
end
test "returns nil if accessing current_user with an unconfirmed account" do
swap Devise, :confirm_within => 0 do
user = create_user
assert !user.active_for_authentication?
sign_in user
2010-06-29 15:41:34 -04:00
get :accept, :id => user
assert_nil assigns(:current_user)
end
end
2009-11-16 11:58:14 -05:00
test "does not redirect with valid user" do
user = create_user
user.confirm!
sign_in user
get :index
2009-11-16 11:58:14 -05:00
assert_response :success
end
test "redirects if valid user signed out" do
user = create_user
user.confirm!
sign_in user
get :index
2009-11-16 11:58:14 -05:00
sign_out user
get :index
assert_redirected_to new_user_session_path
2009-11-16 11:58:14 -05:00
end
test "respects custom failure app" do
begin
Devise.warden_config.failure_app = CustomFailureApp
get :index
assert_response 306
ensure
Devise.warden_config.failure_app = Devise::FailureApp
end
end
2009-11-16 11:58:14 -05:00
test "defined Warden after_authentication callback should not be called when sign_in is called" do
begin
Warden::Manager.after_authentication do |user, auth, opts|
flunk "callback was called while it should not"
end
user = create_user
user.confirm!
sign_in user
ensure
Warden::Manager._after_set_user.pop
end
end
test "defined Warden before_logout callback should not be called when sign_out is called" do
begin
Warden::Manager.before_logout do |user, auth, opts|
flunk "callback was called while it should not"
end
user = create_user
user.confirm!
sign_in user
sign_out user
ensure
Warden::Manager._before_logout.pop
end
end
2010-12-25 05:41:14 -05:00
test "before_failure call should work" do
begin
executed = false
Warden::Manager.before_failure do |env,opts|
executed = true
end
user = create_user
sign_in user
get :index
assert executed
ensure
Warden::Manager._before_failure.pop
end
end
test "allows to sign in with different users" do
first_user = create_user
first_user.confirm!
sign_in first_user
get :index
assert_match /User ##{first_user.id}/, @response.body
sign_out first_user
second_user = create_user
second_user.confirm!
sign_in second_user
get :index
assert_match /User ##{second_user.id}/, @response.body
end
2009-11-16 11:58:14 -05:00
end