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

Ensure after hooks are called on registrations controller, closes #852

This commit is contained in:
José Valim 2011-02-15 09:41:35 +01:00
parent f964ea526b
commit aac9c40cba
2 changed files with 32 additions and 2 deletions

View file

@ -78,8 +78,8 @@ class Devise::RegistrationsController < ApplicationController
end end
# Overwrite redirect_for_sign_in so it takes uses after_sign_up_path_for. # Overwrite redirect_for_sign_in so it takes uses after_sign_up_path_for.
def redirect_for_sign_in(scope, resource) #:nodoc: def redirect_location(scope, resource) #:nodoc:
redirect_to stored_location_for(scope) || after_sign_up_path_for(resource) stored_location_for(scope) || after_sign_up_path_for(resource)
end end
# The path used after sign up for inactive accounts. You need to overwrite # The path used after sign up for inactive accounts. You need to overwrite

View file

@ -15,11 +15,27 @@ class RegistrationTest < ActionController::IntegrationTest
assert_contain 'Welcome! You have signed up successfully.' assert_contain 'Welcome! You have signed up successfully.'
assert warden.authenticated?(:admin) assert warden.authenticated?(:admin)
assert_current_url "/admin_area/home"
admin = Admin.last :order => "id" admin = Admin.last :order => "id"
assert_equal admin.email, 'new_user@test.com' assert_equal admin.email, 'new_user@test.com'
end end
test 'a guest admin should be able to sign in and be redirected to a custom location' do
Devise::RegistrationsController.any_instance.stubs(:after_sign_up_path_for).returns("/?custom=1")
get new_admin_session_path
click_link 'Sign up'
fill_in 'email', :with => 'new_user@test.com'
fill_in 'password', :with => 'new_user123'
fill_in 'password confirmation', :with => 'new_user123'
click_button 'Sign up'
assert_contain 'Welcome! You have signed up successfully.'
assert warden.authenticated?(:admin)
assert_current_url "/?custom=1"
end
test 'a guest user should be able to sign up successfully and be blocked by confirmation' do test 'a guest user should be able to sign up successfully and be blocked by confirmation' do
get new_user_registration_path get new_user_registration_path
@ -30,6 +46,7 @@ class RegistrationTest < ActionController::IntegrationTest
assert_contain 'You have signed up successfully. However, we could not sign you in because your account is unconfirmed.' assert_contain 'You have signed up successfully. However, we could not sign you in because your account is unconfirmed.'
assert_not_contain 'You have to confirm your account before continuing' assert_not_contain 'You have to confirm your account before continuing'
assert_current_url "/"
assert_not warden.authenticated?(:user) assert_not warden.authenticated?(:user)
@ -38,6 +55,19 @@ class RegistrationTest < ActionController::IntegrationTest
assert_not user.confirmed? assert_not user.confirmed?
end end
test 'a guest user should be blocked by confirmation and redirected to a custom path' do
Devise::RegistrationsController.any_instance.stubs(:after_inactive_sign_up_path_for).returns("/?custom=1")
get new_user_registration_path
fill_in 'email', :with => 'new_user@test.com'
fill_in 'password', :with => 'new_user123'
fill_in 'password confirmation', :with => 'new_user123'
click_button 'Sign up'
assert_current_url "/?custom=1"
assert_not warden.authenticated?(:user)
end
test 'a guest user cannot sign up with invalid information' do test 'a guest user cannot sign up with invalid information' do
get new_user_registration_path get new_user_registration_path