Let all moderators revoke blocks by editing
This commit is contained in:
parent
67a5809c8a
commit
5e7ab68721
3 changed files with 37 additions and 18 deletions
|
@ -391,7 +391,6 @@ class UserBlocksControllerTest < ActionDispatch::IntegrationTest
|
|||
# test the update action
|
||||
def test_update
|
||||
moderator_user = create(:moderator_user)
|
||||
second_moderator_user = create(:moderator_user)
|
||||
active_block = create(:user_block, :creator => moderator_user)
|
||||
|
||||
# Not logged in yet, so updating a block should fail
|
||||
|
@ -405,19 +404,7 @@ class UserBlocksControllerTest < ActionDispatch::IntegrationTest
|
|||
put user_block_path(:id => active_block)
|
||||
assert_redirected_to :controller => "errors", :action => "forbidden"
|
||||
|
||||
# Login as the wrong moderator
|
||||
session_for(second_moderator_user)
|
||||
|
||||
# Check that only the person who created a block can update it
|
||||
assert_no_difference "UserBlock.count" do
|
||||
put user_block_path(:id => active_block,
|
||||
:user_block_period => "12",
|
||||
:user_block => { :needs_view => true, :reason => "Vandalism" })
|
||||
end
|
||||
assert_redirected_to edit_user_block_path(active_block)
|
||||
assert_equal "Only the moderator who created this block can edit it.", flash[:error]
|
||||
|
||||
# Login as the correct moderator
|
||||
# Login as the moderator
|
||||
session_for(moderator_user)
|
||||
|
||||
# A bogus block period should result in an error
|
||||
|
@ -495,7 +482,7 @@ class UserBlocksControllerTest < ActionDispatch::IntegrationTest
|
|||
|
||||
##
|
||||
# test the update action revoking the block
|
||||
def test_revoke_using_update
|
||||
def test_revoke_using_update_by_creator
|
||||
moderator_user = create(:moderator_user)
|
||||
block = create(:user_block, :creator => moderator_user)
|
||||
|
||||
|
@ -503,6 +490,8 @@ class UserBlocksControllerTest < ActionDispatch::IntegrationTest
|
|||
put user_block_path(block,
|
||||
:user_block_period => "24",
|
||||
:user_block => { :needs_view => false, :reason => "Updated Reason" })
|
||||
assert_redirected_to user_block_path(block)
|
||||
assert_equal "Block updated.", flash[:notice]
|
||||
block.reload
|
||||
assert_predicate block, :active?
|
||||
assert_nil block.revoker
|
||||
|
@ -510,11 +499,38 @@ class UserBlocksControllerTest < ActionDispatch::IntegrationTest
|
|||
put user_block_path(block,
|
||||
:user_block_period => "0",
|
||||
:user_block => { :needs_view => false, :reason => "Updated Reason" })
|
||||
assert_redirected_to user_block_path(block)
|
||||
assert_equal "Block updated.", flash[:notice]
|
||||
block.reload
|
||||
assert_not_predicate block, :active?
|
||||
assert_equal moderator_user, block.revoker
|
||||
end
|
||||
|
||||
def test_revoke_using_update_by_other_moderator
|
||||
creator_user = create(:moderator_user)
|
||||
other_moderator_user = create(:moderator_user)
|
||||
block = create(:user_block, :creator => creator_user)
|
||||
|
||||
session_for(other_moderator_user)
|
||||
put user_block_path(block,
|
||||
:user_block_period => "24",
|
||||
:user_block => { :needs_view => false, :reason => "Updated Reason" })
|
||||
assert_response :success
|
||||
assert_equal "Only the moderator who created this block can edit it without revoking.", flash[:error]
|
||||
block.reload
|
||||
assert_predicate block, :active?
|
||||
assert_nil block.revoker
|
||||
|
||||
put user_block_path(block,
|
||||
:user_block_period => "0",
|
||||
:user_block => { :needs_view => false, :reason => "Updated Reason" })
|
||||
assert_redirected_to user_block_path(block)
|
||||
assert_equal "Block updated.", flash[:notice]
|
||||
block.reload
|
||||
assert_not_predicate block, :active?
|
||||
assert_equal other_moderator_user, block.revoker
|
||||
end
|
||||
|
||||
##
|
||||
# test the revoke action
|
||||
def test_revoke
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue