X-Git-Url: https://git.openstreetmap.org/rails.git/blobdiff_plain/6c66507427961a22a8f282b5b2f4ab7fda1dad6f..4a4d89138c440c7f68369fac12447002cf0cadd5:/test/functional/relation_controller_test.rb diff --git a/test/functional/relation_controller_test.rb b/test/functional/relation_controller_test.rb index 994235399..bb562b24b 100644 --- a/test/functional/relation_controller_test.rb +++ b/test/functional/relation_controller_test.rb @@ -269,6 +269,7 @@ class RelationControllerTest < ActionController::TestCase # happen to the correct tables and the API gives sensible results. # this is to test a case that gregory marler noticed and posted to # josm-dev. + ## FIXME Move this to an integration test def test_update_relation_tags basic_authorization "test@example.com", "test" rel_id = current_relations(:multi_tag_relation).id @@ -299,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 @@ -327,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 "" + @@ -340,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 "" + @@ -368,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... @@ -422,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... @@ -463,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) @@ -478,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.