X-Git-Url: https://git.openstreetmap.org/rails.git/blobdiff_plain/b63a7cb447b149a499141d0b9e40a7dbf4e838aa..a949f98ced96734e087a040e1b4fb836001a0da6:/test/functional/user_blocks_controller_test.rb diff --git a/test/functional/user_blocks_controller_test.rb b/test/functional/user_blocks_controller_test.rb index 4029fca26..d52ff68c4 100644 --- a/test/functional/user_blocks_controller_test.rb +++ b/test/functional/user_blocks_controller_test.rb @@ -76,10 +76,9 @@ class UserBlocksControllerTest < ActionController::TestCase # test the show action def test_show # Viewing a block should fail when no ID is given - get :show - assert_response :not_found - assert_template "not_found" - assert_select "p", "Sorry, the user block with ID could not be found." + assert_raise ActionController::UrlGenerationError do + get :show + end # Viewing a block should fail when a bogus ID is given get :show, :id => 99999 @@ -87,10 +86,6 @@ class UserBlocksControllerTest < ActionController::TestCase assert_template "not_found" assert_select "p", "Sorry, the user block with ID 99999 could not be found." - # Viewing an active block should work - get :show, :id => user_blocks(:active_block) - assert_response :success - # Viewing an expired block should work get :show, :id => user_blocks(:expired_block) assert_response :success @@ -98,6 +93,19 @@ class UserBlocksControllerTest < ActionController::TestCase # Viewing a revoked block should work get :show, :id => user_blocks(:revoked_block) assert_response :success + + # Viewing an active block should work, but shouldn't mark it as seen + get :show, :id => user_blocks(:active_block) + assert_response :success + assert_equal true, UserBlock.find(user_blocks(:active_block).id).needs_view + + # Login as the blocked user + session[:user] = users(:blocked_user).id + + # Now viewing it should mark it as seen + get :show, :id => user_blocks(:active_block) + assert_response :success + assert_equal false, UserBlock.find(user_blocks(:active_block).id).needs_view end ## @@ -109,7 +117,6 @@ class UserBlocksControllerTest < ActionController::TestCase # Login as a normal user session[:user] = users(:public_user).id - cookies["_osm_username"] = users(:public_user).display_name # Check that normal users can't load the block creation page get :new, :display_name => users(:normal_user).display_name @@ -118,7 +125,6 @@ class UserBlocksControllerTest < ActionController::TestCase # Login as a moderator session[:user] = users(:moderator_user).id - cookies["_osm_username"] = users(:moderator_user).display_name # Check that the block creation page loads for moderators get :new, :display_name => users(:normal_user).display_name @@ -135,13 +141,13 @@ class UserBlocksControllerTest < ActionController::TestCase get :new assert_response :not_found assert_template "user/no_such_user" - assert_select "h2", "The user does not exist" + assert_select "h1", "The user does not exist" # We should get an error if the user doesn't exist get :new, :display_name => "non_existent_user" assert_response :not_found assert_template "user/no_such_user" - assert_select "h2", "The user non_existent_user does not exist" + assert_select "h1", "The user non_existent_user does not exist" end ## @@ -153,7 +159,6 @@ class UserBlocksControllerTest < ActionController::TestCase # Login as a normal user session[:user] = users(:public_user).id - cookies["_osm_username"] = users(:public_user).display_name # Check that normal users can't load the block edit page get :edit, :id => user_blocks(:active_block).id @@ -162,7 +167,6 @@ class UserBlocksControllerTest < ActionController::TestCase # Login as a moderator session[:user] = users(:moderator_user).id - cookies["_osm_username"] = users(:moderator_user).display_name # Check that the block edit page loads for moderators get :edit, :id => user_blocks(:active_block).id @@ -175,10 +179,9 @@ class UserBlocksControllerTest < ActionController::TestCase end # We should get an error if no user is specified - get :edit - assert_response :not_found - assert_template "not_found" - assert_select "p", "Sorry, the user block with ID could not be found." + assert_raise ActionController::UrlGenerationError do + get :edit + end # We should get an error if the user doesn't exist get :edit, :id => 99999 @@ -196,7 +199,6 @@ class UserBlocksControllerTest < ActionController::TestCase # Login as a normal user session[:user] = users(:public_user).id - cookies["_osm_username"] = users(:public_user).display_name # Check that normal users can't create blocks post :create @@ -204,7 +206,6 @@ class UserBlocksControllerTest < ActionController::TestCase # Login as a moderator session[:user] = users(:moderator_user).id - cookies["_osm_username"] = users(:moderator_user).display_name # A bogus block period should result in an error assert_no_difference "UserBlock.count" do @@ -237,33 +238,31 @@ class UserBlocksControllerTest < ActionController::TestCase post :create assert_response :not_found assert_template "user/no_such_user" - assert_select "h2", "The user does not exist" + assert_select "h1", "The user does not exist" # We should get an error if the user doesn't exist post :create, :display_name => "non_existent_user" assert_response :not_found assert_template "user/no_such_user" - assert_select "h2", "The user non_existent_user does not exist" + assert_select "h1", "The user non_existent_user does not exist" end ## # test the update action def test_update # Not logged in yet, so updating a block should fail - put :update + put :update, :id => user_blocks(:active_block).id assert_response :forbidden # Login as a normal user session[:user] = users(:public_user).id - cookies["_osm_username"] = users(:public_user).display_name # Check that normal users can't update blocks - put :update + put :update, :id => user_blocks(:active_block).id assert_response :forbidden # Login as the wrong moderator session[:user] = users(:second_moderator_user).id - cookies["_osm_username"] = users(:second_moderator_user).display_name # Check that only the person who created a block can update it assert_no_difference "UserBlock.count" do @@ -277,7 +276,6 @@ class UserBlocksControllerTest < ActionController::TestCase # Login as the correct moderator session[:user] = users(:moderator_user).id - cookies["_osm_username"] = users(:moderator_user).display_name # A bogus block period should result in an error assert_no_difference "UserBlock.count" do @@ -303,10 +301,9 @@ class UserBlocksControllerTest < ActionController::TestCase assert_equal "Vandalism", b.reason # We should get an error if no block ID is specified - put :update - assert_response :not_found - assert_template "not_found" - assert_select "p", "Sorry, the user block with ID could not be found." + assert_raise ActionController::UrlGenerationError do + put :update + end # We should get an error if the block doesn't exist put :update, :id => 99999 @@ -324,7 +321,6 @@ class UserBlocksControllerTest < ActionController::TestCase # Login as a normal user session[:user] = users(:public_user).id - cookies["_osm_username"] = users(:public_user).display_name # Check that normal users can't load the block revoke page get :revoke, :id => user_blocks(:active_block).id @@ -333,7 +329,6 @@ class UserBlocksControllerTest < ActionController::TestCase # Login as a moderator session[:user] = users(:moderator_user).id - cookies["_osm_username"] = users(:moderator_user).display_name # Check that the block revoke page loads for moderators get :revoke, :id => user_blocks(:active_block).id @@ -351,10 +346,9 @@ class UserBlocksControllerTest < ActionController::TestCase assert_in_delta Time.now, b.ends_at, 1 # We should get an error if no block ID is specified - get :revoke - assert_response :not_found - assert_template "not_found" - assert_select "p", "Sorry, the user block with ID could not be found." + assert_raise ActionController::UrlGenerationError do + get :revoke + end # We should get an error if the block doesn't exist get :revoke, :id => 99999 @@ -367,16 +361,15 @@ class UserBlocksControllerTest < ActionController::TestCase # test the blocks_on action def test_blocks_on # Asking for a list of blocks with no user name should fail - get :blocks_on - assert_response :not_found - assert_template "user/no_such_user" - assert_select "h2", "The user does not exist" + assert_raise ActionController::UrlGenerationError do + get :blocks_on + end # Asking for a list of blocks with a bogus user name should fail get :blocks_on, :display_name => "non_existent_user" assert_response :not_found assert_template "user/no_such_user" - assert_select "h2", "The user non_existent_user does not exist" + assert_select "h1", "The user non_existent_user does not exist" # Check the list of blocks for a user that has never been blocked get :blocks_on, :display_name => users(:normal_user).display_name @@ -406,16 +399,15 @@ class UserBlocksControllerTest < ActionController::TestCase # test the blocks_by action def test_blocks_by # Asking for a list of blocks with no user name should fail - get :blocks_by - assert_response :not_found - assert_template "user/no_such_user" - assert_select "h2", "The user does not exist" + assert_raise ActionController::UrlGenerationError do + get :blocks_by + end # Asking for a list of blocks with a bogus user name should fail get :blocks_by, :display_name => "non_existent_user" assert_response :not_found assert_template "user/no_such_user" - assert_select "h2", "The user non_existent_user does not exist" + assert_select "h1", "The user non_existent_user does not exist" # Check the list of blocks given by one moderator get :blocks_by, :display_name => users(:moderator_user).display_name