X-Git-Url: https://git.openstreetmap.org./rails.git/blobdiff_plain/fd6f00b069af5a7b87227ea4c3401dc461d7311a..3e9b6845d34f9cd80f9eb1099f76f7801bfae76f:/test/functional/changeset_controller_test.rb?ds=inline diff --git a/test/functional/changeset_controller_test.rb b/test/functional/changeset_controller_test.rb index 932d685bb..b50e1b54a 100644 --- a/test/functional/changeset_controller_test.rb +++ b/test/functional/changeset_controller_test.rb @@ -573,6 +573,114 @@ EOF "shouldn't be able to re-use placeholder IDs" end + ## + # test that uploading a way referencing invalid placeholders gives a + # proper error, not a 500. + def test_upload_placeholder_invalid_way + basic_authorization "test@example.com", "test" + + diff = < + + + + + + + + + + + + +EOF + + # upload it + content diff + post :upload, :id => 2 + assert_response :bad_request, + "shouldn't be able to use invalid placeholder IDs" + assert_equal "Placeholder node not found for reference -4 in way -1", @response.body + + # the same again, but this time use an existing way + diff = < + + + + + + + + + + + + +EOF + + # upload it + content diff + post :upload, :id => 2 + assert_response :bad_request, + "shouldn't be able to use invalid placeholder IDs" + assert_equal "Placeholder node not found for reference -4 in way 1", @response.body + end + + ## + # test that uploading a relation referencing invalid placeholders gives a + # proper error, not a 500. + def test_upload_placeholder_invalid_relation + basic_authorization "test@example.com", "test" + + diff = < + + + + + + + + + + + + +EOF + + # upload it + content diff + post :upload, :id => 2 + assert_response :bad_request, + "shouldn't be able to use invalid placeholder IDs" + assert_equal "Placeholder Node not found for reference -4 in relation -1.", @response.body + + # the same again, but this time use an existing way + diff = < + + + + + + + + + + + + +EOF + + # upload it + content diff + post :upload, :id => 2 + assert_response :bad_request, + "shouldn't be able to use invalid placeholder IDs" + assert_equal "Placeholder Way not found for reference -1 in relation 1.", @response.body + end + ## # test what happens if a diff is uploaded containing only a node # move.