diff --git a/test/functional/moderator/post/posts_controller_test.rb b/test/functional/moderator/post/posts_controller_test.rb index 6357740d2..9d76fce77 100644 --- a/test/functional/moderator/post/posts_controller_test.rb +++ b/test/functional/moderator/post/posts_controller_test.rb @@ -3,42 +3,98 @@ require 'test_helper' module Moderator module Post class PostsControllerTest < ActionController::TestCase - context "The moderator post disapprovals controller" do + context "The moderator posts controller" do setup do @admin = FactoryGirl.create(:admin_user) CurrentUser.user = @admin CurrentUser.ip_addr = "127.0.0.1" + @post = FactoryGirl.create(:post) + end + + context "confirm_delete action" do + should "render" do + get :confirm_delete, { id: @post.id }, { user_id: @admin.id } + assert_response :success + end end context "delete action" do - setup do - @post = FactoryGirl.create(:post) - end - should "render" do post :delete, {:id => @post.id, :reason => "xxx", :format => "js", :commit => "Delete"}, {:user_id => @admin.id} - @post.reload - assert(@post.is_deleted?) + assert(@post.reload.is_deleted?) end should "work even if the deleter has flagged the post previously" do PostFlag.create(:post => @post, :reason => "aaa", :is_resolved => false) post :delete, {:id => @post.id, :reason => "xxx", :format => "js", :commit => "Delete"}, {:user_id => @admin.id} - @post.reload - assert(@post.is_deleted?) + assert(@post.reload.is_deleted?) end end context "undelete action" do - setup do - @post = FactoryGirl.create(:post, :is_deleted => true) - end - should "render" do + @post.update(is_deleted: true) post :undelete, {:id => @post.id, :format => "js"}, {:user_id => @admin.id} + assert_response :success - @post.reload - assert(!@post.is_deleted?) + assert(!@post.reload.is_deleted?) + end + end + + context "confirm_move_favorites action" do + should "render" do + get :confirm_move_favorites, { id: @post.id }, { user_id: @admin.id } + assert_response :success + end + end + + context "move_favorites action" do + should "render" do + parent = FactoryGirl.create(:post) + child = FactoryGirl.create(:post, parent: parent) + users = FactoryGirl.create_list(:user, 2) + users.each { |u| child.add_favorite!(u) } + + put :move_favorites, { id: child.id, commit: "Submit" }, { user_id: @admin.id } + + assert_redirected_to(child) + assert_equal(users, parent.reload.favorited_users) + assert_equal([], child.reload.favorited_users) + end + end + + context "expunge action" do + should "render" do + put :expunge, { id: @post.id, format: "js" }, { user_id: @admin.id } + + assert_response :success + assert_equal(false, ::Post.exists?(@post.id)) + end + end + + context "confirm_ban action" do + should "render" do + get :confirm_ban, { id: @post.id }, { user_id: @admin.id } + assert_response :success + end + end + + context "ban action" do + should "render" do + put :ban, { id: @post.id, commit: "Ban", format: "js" }, { user_id: @admin.id } + + assert_response :success + assert_equal(true, @post.reload.is_banned?) + end + end + + context "unban action" do + should "render" do + @post.ban! + put :unban, { id: @post.id, format: "js" }, { user_id: @admin.id } + + assert_redirected_to(@post) + assert_equal(false, @post.reload.is_banned?) end end end