summaryrefslogtreecommitdiffstats
path: root/test/functional/my_controller_test.rb
diff options
context:
space:
mode:
authorJean-Philippe Lang <jp_lang@yahoo.fr>2012-04-15 14:31:54 +0000
committerJean-Philippe Lang <jp_lang@yahoo.fr>2012-04-15 14:31:54 +0000
commit28f0c4f131b02ab67bd9c254f9853168ec6a5b65 (patch)
treefeedcef78913a173d5f8776c3f13e0f8990c317b /test/functional/my_controller_test.rb
parent638583012ae165e5cb197fb3b4d7a0fe54318217 (diff)
downloadredmine-28f0c4f131b02ab67bd9c254f9853168ec6a5b65.tar.gz
redmine-28f0c4f131b02ab67bd9c254f9853168ec6a5b65.zip
Adds the ability for users to delete their own account (#10664). Can be disabled in application settings.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@9417 e93f8b46-1217-0410-a6f0-8f06a7374b81
Diffstat (limited to 'test/functional/my_controller_test.rb')
-rw-r--r--test/functional/my_controller_test.rb39
1 files changed, 39 insertions, 0 deletions
diff --git a/test/functional/my_controller_test.rb b/test/functional/my_controller_test.rb
index a89af91a2..644ecb792 100644
--- a/test/functional/my_controller_test.rb
+++ b/test/functional/my_controller_test.rb
@@ -84,6 +84,45 @@ class MyControllerTest < ActionController::TestCase
assert user.groups.empty?
end
+ def test_my_account_should_show_destroy_link
+ get :account
+ assert_select 'a[href=/my/account/destroy]'
+ end
+
+ def test_get_destroy_should_display_the_destroy_confirmation
+ get :destroy
+ assert_response :success
+ assert_template 'destroy'
+ assert_select 'form[action=/my/account/destroy]' do
+ assert_select 'input[name=confirm]'
+ end
+ end
+
+ def test_post_destroy_without_confirmation_should_not_destroy_account
+ assert_no_difference 'User.count' do
+ post :destroy
+ end
+ assert_response :success
+ assert_template 'destroy'
+ end
+
+ def test_post_destroy_without_confirmation_should_destroy_account
+ assert_difference 'User.count', -1 do
+ post :destroy, :confirm => '1'
+ end
+ assert_redirected_to '/'
+ assert_match /deleted/i, flash[:notice]
+ end
+
+ def test_post_destroy_with_unsubscribe_not_allowed_should_not_destroy_account
+ User.any_instance.stubs(:own_account_deletable?).returns(false)
+
+ assert_no_difference 'User.count' do
+ post :destroy, :confirm => '1'
+ end
+ assert_redirected_to '/my/account'
+ end
+
def test_change_password
get :password
assert_response :success