X-Git-Url: https://git.openstreetmap.org/rails.git/blobdiff_plain/10fdeb2021af554ee818ab6a47e06700f78f68c1..4ab495f5db90c687574d4e4cee59cf73f79c31c6:/test/functional/relation_controller_test.rb diff --git a/test/functional/relation_controller_test.rb b/test/functional/relation_controller_test.rb index c7e9ca6be..bb562b24b 100644 --- a/test/functional/relation_controller_test.rb +++ b/test/functional/relation_controller_test.rb @@ -300,7 +300,7 @@ class RelationControllerTest < ActionController::TestCase # and the API gives sensible results. this is to test a case that # gregory marler noticed and posted to josm-dev. def test_update_relation_tags_via_upload - basic_authorization "test@example.com", "test" + basic_authorization users(:public_user).email, "test" rel_id = current_relations(:multi_tag_relation).id cs_id = changesets(:public_user_first_change).id @@ -328,10 +328,10 @@ class RelationControllerTest < ActionController::TestCase # ------------------------------------- def test_create_invalid - basic_authorization "test@openstreetmap.org", "test" + basic_authorization users(:public_user).email, "test" # put the relation in a dummy fixture changset - changeset_id = changesets(:normal_user_first_change).id + changeset_id = changesets(:public_user_first_change).id # create a relation with non-existing node as member content "" + @@ -341,16 +341,17 @@ class RelationControllerTest < ActionController::TestCase # expect failure assert_response :precondition_failed, "relation upload with invalid node did not return 'precondition failed'" + assert_equal "Precondition failed: Relation with id cannot be saved due to Node with id 0", @response.body end # ------------------------------------- # Test creating a relation, with some invalid XML # ------------------------------------- def test_create_invalid_xml - basic_authorization "test@openstreetmap.org", "test" + basic_authorization users(:public_user).email, "test" # put the relation in a dummy fixture changeset that works - changeset_id = changesets(:normal_user_first_change).id + changeset_id = changesets(:public_user_first_change).id # create some xml that should return an error content "" + @@ -369,11 +370,12 @@ class RelationControllerTest < ActionController::TestCase # ------------------------------------- def test_delete - # first try to delete relation without auth + ## First try to delete relation without auth delete :delete, :id => current_relations(:visible_relation).id assert_response :unauthorized - ## First try with the private user, to make sure that you get a forbidden + + ## Then try with the private user, to make sure that you get a forbidden basic_authorization(users(:normal_user).email, "test") # this shouldn't work, as we should need the payload... @@ -423,7 +425,7 @@ class RelationControllerTest < ActionController::TestCase - # now set auth for the private user + ## now set auth for the public user basic_authorization(users(:public_user).email, "test"); # this shouldn't work, as we should need the payload... @@ -464,6 +466,7 @@ class RelationControllerTest < ActionController::TestCase delete :delete, :id => current_relations(:public_used_relation).id assert_response :precondition_failed, "shouldn't be able to delete a relation used in a relation (#{@response.body})" + assert_equal "Precondition failed: The relation 5 is used in relation 6.", @response.body # this should work when we provide the appropriate payload... content(relations(:multi_tag_relation).to_xml) @@ -479,6 +482,11 @@ class RelationControllerTest < ActionController::TestCase content(relations(:invisible_relation).to_xml) delete :delete, :id => current_relations(:invisible_relation).id assert_response :gone + + # Public visible relation needs to be deleted + content(relations(:public_visible_relation).to_xml) + delete :delete, :id => current_relations(:public_visible_relation).id + assert_response :success # this works now because the relation which was using this one # has been deleted.