]> git.openstreetmap.org Git - rails.git/blobdiff - test/functional/node_controller_test.rb
Rationalise API error classes by getting of the render_opts method which
[rails.git] / test / functional / node_controller_test.rb
index 396a667107ab2ce661792302b761fbf37aec5c95..42311c38fdbbd4a3fea8a10d62f943189812b8ca 100644 (file)
@@ -91,6 +91,12 @@ class NodeControllerTest < ActionController::TestCase
     assert_response :bad_request, "node upload did not return bad_request status"
     assert_equal "Cannot parse valid node from xml string <node lat=\"3.434\" changeset=\"#{changeset.id}\"/>. lon missing", @response.body
 
     assert_response :bad_request, "node upload did not return bad_request status"
     assert_equal "Cannot parse valid node from xml string <node lat=\"3.434\" changeset=\"#{changeset.id}\"/>. lon missing", @response.body
 
+    # test that the upload is rejected when we have a tag which is too long
+    content("<osm><node lat='#{lat}' lon='#{lon}' changeset='#{changeset.id}'><tag k='foo' v='#{'x'*256}'/></node></osm>")
+    put :create
+    assert_response :bad_request, "node upload did not return bad_request status"
+    assert_equal ["NodeTag ", " v: is too long (maximum is 255 characters) (\"#{'x'*256}\")"], @response.body.split(/[0-9]+:/)
+
   end
 
   def test_read
   end
 
   def test_read
@@ -204,7 +210,7 @@ class NodeControllerTest < ActionController::TestCase
     delete :delete, :id => current_nodes(:node_used_by_relationship).id
     assert_response :precondition_failed,
        "shouldn't be able to delete a node used in a relation (#{@response.body})"
     delete :delete, :id => current_nodes(:node_used_by_relationship).id
     assert_response :precondition_failed,
        "shouldn't be able to delete a node used in a relation (#{@response.body})"
-    assert_equal "Precondition failed: Node 5 is still used by relation 3.", @response.body
+    assert_match /Precondition failed: Node 5 is still used by relation [13]./, @response.body
   end
 
   ##
   end
 
   ##
@@ -364,7 +370,7 @@ class NodeControllerTest < ActionController::TestCase
     put :update, :id => current_nodes(:public_visible_node).id
     assert_response :bad_request, 
       "adding duplicate tags to a node should fail with 'bad request'"
     put :update, :id => current_nodes(:public_visible_node).id
     assert_response :bad_request, 
       "adding duplicate tags to a node should fail with 'bad request'"
-    assert_equal "Element node/#{current_nodes(:public_visible_node).id} has duplicate tags with key #{current_node_tags(:t1).k}.", @response.body
+    assert_equal "Element node/#{current_nodes(:public_visible_node).id} has duplicate tags with key #{current_node_tags(:t1).k}", @response.body
   end
 
   # test whether string injection is possible
   end
 
   # test whether string injection is possible