Files
danbooru/test/functional/user_name_change_requests_controller_test.rb
2013-04-28 00:04:52 -07:00

74 lines
2.2 KiB
Ruby

require 'test_helper'
class UserNameChangeRequestsControllerTest < ActionController::TestCase
context "The user name change requests controller" do
setup do
@user = FactoryGirl.create(:gold_user)
@admin = FactoryGirl.create(:admin_user)
CurrentUser.user = @user
CurrentUser.ip_addr = "127.0.0.1"
@change_request = UserNameChangeRequest.create!(
:user_id => @user.id,
:original_name => @user.name,
:desired_name => "abc",
:change_reason => "hello"
)
end
context "new action" do
should "render" do
get :new, {}, {:user_id => @user.id}
assert_response :success
end
end
context "show action" do
should "render" do
get :show, {:id => @change_request.id}, {:user_id => @user.id}
assert_response :success
end
context "when the current user is not an admin and does not own the request" do
setup do
CurrentUser.user = FactoryGirl.create(:user)
end
should "fail" do
get :show, {:id => @change_request.id}
assert_redirected_to(new_session_path(:url => user_name_change_request_path(@change_request)))
end
end
end
context "for actions restricted to admins" do
context "index action" do
should "render" do
get :index, {}, {:user_id => @admin.id}
assert_response :success
end
end
context "approve action" do
should "succeed" do
post :approve, {:id => @change_request.id}, {:user_id => @admin.id}
assert_redirected_to(user_name_change_request_path(@change_request))
end
end
context "reject action" do
should "succeed" do
post :reject, {:id => @change_request.id}, {:user_id => @admin.id}
assert_redirected_to(user_name_change_request_path(@change_request))
end
end
context "destroy action" do
should "destroy" do
post :destroy, {:id => @change_request.id}, {:user_id => @admin.id}
assert_redirected_to(user_name_change_requests_path)
end
end
end
end
end