+<% end %>
\ No newline at end of file
diff --git a/app/views/users/edit.html.erb b/app/views/users/edit.html.erb
index c25b2806d..3575ccc02 100644
--- a/app/views/users/edit.html.erb
+++ b/app/views/users/edit.html.erb
@@ -25,8 +25,6 @@
<%= f.input :per_page, :label => "Posts per page", :as => :select, :collection => (1..100), :include_blank => false %>
<% end %>
- <%= f.input :style_usernames, :as => :select, :label => "Colored usernames", :hint => "Color each user's name depending on their rank", :include_blank => false, :collection => [["Yes", "true"], ["No", "false"]] %>
-
<%= f.input :blacklisted_tags, :hint => "Put any tag combinations you never want to see here. Each combination should go on a separate line.", :input_html => {:size => "40x5"} %>
diff --git a/test/functional/maintenance/user/deletions_controller_test.rb b/test/functional/maintenance/user/deletions_controller_test.rb
new file mode 100644
index 000000000..e092a268b
--- /dev/null
+++ b/test/functional/maintenance/user/deletions_controller_test.rb
@@ -0,0 +1,29 @@
+require "test_helper"
+
+module Maintenance
+ module User
+ class DeletionsControllerTest < ActionController::TestCase
+ context "in all cases" do
+ setup do
+ @user = FactoryGirl.create(:user)
+ CurrentUser.user = @user
+ CurrentUser.ip_addr = "127.0.0.1"
+ end
+
+ context "#show" do
+ should "render" do
+ get :show, {}, {:user_id => @user.id}
+ assert_response :success
+ end
+ end
+
+ context "#destroy" do
+ should "render" do
+ post :destroy, {:password => "password"}, {:user_id => @user.id}
+ assert_redirected_to(posts_path)
+ end
+ end
+ end
+ end
+ end
+end
\ No newline at end of file
diff --git a/test/unit/user_deletion_test.rb b/test/unit/user_deletion_test.rb
new file mode 100644
index 000000000..3fd9b2bda
--- /dev/null
+++ b/test/unit/user_deletion_test.rb
@@ -0,0 +1,71 @@
+require 'test_helper'
+
+class UserDeletionTest < ActiveSupport::TestCase
+ context "an invalid user deletion" do
+ context "for an invalid password" do
+ setup do
+ @user = FactoryGirl.create(:user)
+ CurrentUser.user = @user
+ CurrentUser.ip_addr = "127.0.0.1"
+ @deletion = UserDeletion.new(@user, "wrongpassword")
+ end
+
+ should "fail" do
+ assert_raise(UserDeletion::ValidationError) do
+ @deletion.delete!
+ end
+ end
+ end
+
+ context "for an admin" do
+ setup do
+ @user = FactoryGirl.create(:admin_user)
+ CurrentUser.user = @user
+ CurrentUser.ip_addr = "127.0.0.1"
+ @deletion = UserDeletion.new(@user, "password")
+ end
+
+ should "fail" do
+ assert_raise(UserDeletion::ValidationError) do
+ @deletion.delete!
+ end
+ end
+ end
+ end
+
+ context "a valid user deletion" do
+ setup do
+ @user = FactoryGirl.create(:user)
+ CurrentUser.user = @user
+ CurrentUser.ip_addr = "127.0.0.1"
+
+ @post = FactoryGirl.create(:post)
+ Favorite.add(@post, @user)
+
+ @user.update_attributes(:email => "ted@danbooru.com")
+
+ @deletion = UserDeletion.new(@user, "password")
+ @deletion.delete!
+ @user.reload
+ end
+
+ should "blank out the email" do
+ assert_nil(@user.email)
+ end
+
+ should "rename the user" do
+ assert_equal("user_#{@user.id}", @user.name)
+ end
+
+ should "reset the password" do
+ assert_nil(User.authenticate(@user.name, "password"))
+ end
+
+ should "remove any favorites" do
+ @post.reload
+ assert_equal(0, Favorite.count)
+ assert_equal("", @post.fav_string)
+ assert_equal(0, @post.fav_count)
+ end
+ end
+end