{ :path => "/user_blocks/1", :method => :delete },
{ :controller => "user_blocks", :action => "destroy", :id => "1" }
)
- assert_routing(
- { :path => "/blocks/1/revoke", :method => :get },
- { :controller => "user_blocks", :action => "revoke", :id => "1" }
- )
- assert_routing(
- { :path => "/blocks/1/revoke", :method => :post },
- { :controller => "user_blocks", :action => "revoke", :id => "1" }
- )
assert_routing(
{ :path => "/user/username/blocks", :method => :get },
block = create(:user_block, :creator => creator_user)
session_for(other_moderator_user)
- check_block_buttons block, :edit => 1, :revoke => 1
+ check_block_buttons block, :edit => 1
session_for(creator_user)
- check_block_buttons block, :edit => 1, :revoke => 1
+ check_block_buttons block, :edit => 1
end
##
assert_equal other_moderator_user, block.revoker
end
- ##
- # test the revoke action
- def test_revoke
- active_block = create(:user_block)
-
- # Check that the block revoke page requires us to login
- get revoke_user_block_path(:id => active_block)
- assert_redirected_to login_path(:referer => revoke_user_block_path(:id => active_block))
-
- # Login as a normal user
- session_for(create(:user))
-
- # Check that normal users can't load the block revoke page
- get revoke_user_block_path(:id => active_block)
- assert_redirected_to :controller => "errors", :action => "forbidden"
-
- # Login as a moderator
- session_for(create(:moderator_user))
-
- # Check that the block revoke page loads for moderators
- get revoke_user_block_path(:id => active_block)
- assert_response :success
- assert_template "revoke"
- assert_select "h1 a[href='#{user_path active_block.user}']", :text => active_block.user.display_name
- assert_select "form", :count => 1 do
- assert_select "input#confirm[type='checkbox']", :count => 1
- assert_select "input[type='submit'][value='Revoke!']", :count => 1
- end
-
- # Check that revoking a block using GET should fail
- get revoke_user_block_path(:id => active_block, :confirm => true)
- assert_response :success
- assert_template "revoke"
- b = UserBlock.find(active_block.id)
- assert_operator b.ends_at - Time.now.utc, :>, 100
-
- # Check that revoking a block works using POST
- post revoke_user_block_path(:id => active_block, :confirm => true)
- assert_redirected_to user_block_path(active_block)
- b = UserBlock.find(active_block.id)
- assert_in_delta Time.now.utc, b.ends_at, 1
-
- # We should get an error if the block doesn't exist
- get revoke_user_block_path(:id => 99999)
- assert_response :not_found
- assert_template "not_found"
- assert_select "p", "Sorry, the user block with ID 99999 could not be found."
- end
-
##
# test the revoke all page
def test_revoke_all_page
private
- def check_block_buttons(block, edit: 0, revoke: 0)
+ def check_block_buttons(block, edit: 0)
[user_blocks_path, user_block_path(block)].each do |path|
get path
assert_response :success
assert_select "a[href='#{edit_user_block_path block}']", :count => edit
- assert_select "a[href='#{revoke_user_block_path block}']", :count => revoke
end
end