]> git.openstreetmap.org Git - rails.git/blobdiff - test/functional/relation_controller_test.rb
Tests for PreconditionFailed error messages.
[rails.git] / test / functional / relation_controller_test.rb
index fa49bd98b9081be14f07e5fdd61ace09fc1ad7d6..e51db0b756b23e30f64a4ad611496e28b43316a9 100644 (file)
@@ -341,6 +341,7 @@ class RelationControllerTest < ActionController::TestCase
     # expect failure
     assert_response :precondition_failed, 
         "relation upload with invalid node did not return 'precondition failed'"
+    assert_equal "Precondition failed: Cannot create relation: data or member data is invalid.", @response.body
   end
 
   # -------------------------------------
@@ -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.