X-Git-Url: https://git.openstreetmap.org./rails.git/blobdiff_plain/898731ed8162eb9d61a461d353249b5ca3e65177..fb854652ea47d7b3fa1657722f1da768eaba4f25:/test/controllers/user_blocks_controller_test.rb?ds=sidebyside diff --git a/test/controllers/user_blocks_controller_test.rb b/test/controllers/user_blocks_controller_test.rb index 2e9d79ef7..e6782a64d 100644 --- a/test/controllers/user_blocks_controller_test.rb +++ b/test/controllers/user_blocks_controller_test.rb @@ -13,10 +13,6 @@ class UserBlocksControllerTest < ActionDispatch::IntegrationTest { :path => "/user_blocks", :method => :get }, { :controller => "user_blocks", :action => "index" } ) - assert_routing( - { :path => "/user_blocks/new", :method => :get }, - { :controller => "user_blocks", :action => "new" } - ) assert_routing( { :path => "/user_blocks", :method => :post }, { :controller => "user_blocks", :action => "create" } @@ -352,10 +348,9 @@ class UserBlocksControllerTest < ActionDispatch::IntegrationTest :user_block_period => "12", :user_block => { :needs_view => false, :reason => "Vandalism" }) end - id = UserBlock.order(:id).ids.last - assert_redirected_to user_block_path(:id => id) + b = UserBlock.last + assert_redirected_to user_block_path(:id => b.id) assert_equal "Created a block on user #{target_user.display_name}.", flash[:notice] - b = UserBlock.find(id) assert_in_delta Time.now.utc, b.created_at, 1 assert_in_delta Time.now.utc, b.updated_at, 1 assert_in_delta Time.now.utc + 12.hours, b.ends_at, 1 @@ -388,7 +383,7 @@ class UserBlocksControllerTest < ActionDispatch::IntegrationTest :user_block_period => "336", :user_block => { :needs_view => false, :reason => "Vandalism" }) - block = UserBlock.order(:id).last + block = UserBlock.last assert_equal 1209600, block.ends_at - block.created_at end @@ -470,7 +465,7 @@ class UserBlocksControllerTest < ActionDispatch::IntegrationTest assert_equal "Original Reason", block.reason session_for(creator_user) - check_block_updates(block) + check_inactive_block_updates(block) end ## @@ -492,10 +487,10 @@ class UserBlocksControllerTest < ActionDispatch::IntegrationTest assert_equal "Original Reason", block.reason session_for(creator_user) - check_block_updates(block) + check_inactive_block_updates(block) session_for(revoker_user) - check_block_updates(block) + check_inactive_block_updates(block) end ## @@ -799,7 +794,9 @@ class UserBlocksControllerTest < ActionDispatch::IntegrationTest end end - def check_block_updates(block) + def check_inactive_block_updates(block) + original_ends_at = block.ends_at + put user_block_path(block, :user_block_period => "0", :user_block => { :needs_view => false, :reason => "Updated Reason" }) @@ -808,15 +805,37 @@ class UserBlocksControllerTest < ActionDispatch::IntegrationTest block.reload assert_not_predicate block, :active? assert_equal "Updated Reason", block.reason + assert_equal original_ends_at, block.ends_at put user_block_path(block, :user_block_period => "0", - :user_block => { :needs_view => true, :reason => "Updated Reason 2" }) + :user_block => { :needs_view => true, :reason => "Updated Reason Needs View" }) + assert_response :success + assert_equal "This block is inactive and cannot be reactivated.", flash[:error] + block.reload + assert_not_predicate block, :active? + assert_equal "Updated Reason", block.reason + assert_equal original_ends_at, block.ends_at + + put user_block_path(block, + :user_block_period => "1", + :user_block => { :needs_view => false, :reason => "Updated Reason Duration Extended" }) + assert_response :success + assert_equal "This block is inactive and cannot be reactivated.", flash[:error] + block.reload + assert_not_predicate block, :active? + assert_equal "Updated Reason", block.reason + assert_equal original_ends_at, block.ends_at + + put user_block_path(block, + :user_block_period => "0", + :user_block => { :needs_view => false, :reason => "Updated Reason Again" }) assert_redirected_to user_block_path(block) assert_equal "Block updated.", flash[:notice] block.reload - assert_predicate block, :active? - assert_equal "Updated Reason 2", block.reason + assert_not_predicate block, :active? + assert_equal "Updated Reason Again", block.reason + assert_equal original_ends_at, block.ends_at end def check_user_blocks_table(user_blocks)