X-Git-Url: https://git.openstreetmap.org/rails.git/blobdiff_plain/6aca6cfabf21da48567e8197457dae8785b7324d..cea0cccc6d73d7543d80d659b0f221f0d3196c0e:/test/functional/node_controller_test.rb diff --git a/test/functional/node_controller_test.rb b/test/functional/node_controller_test.rb index 5544728f1..5c01cba3d 100644 --- a/test/functional/node_controller_test.rb +++ b/test/functional/node_controller_test.rb @@ -122,6 +122,22 @@ 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 . lon missing", @response.body + # test that the upload is rejected when lat is non-numeric + # create a minimal xml file + content("") + put :create + # hope for success + assert_response :bad_request, "node upload did not return bad_request status" + assert_equal "Cannot parse valid node from xml string . lat not a number", @response.body + + # test that the upload is rejected when lon is non-numeric + # create a minimal xml file + content("") + put :create + # hope for success + assert_response :bad_request, "node upload did not return bad_request status" + assert_equal "Cannot parse valid node from xml string . lon not a number", @response.body + # test that the upload is rejected when we have a tag which is too long content("") put :create @@ -231,9 +247,9 @@ class NodeControllerTest < ActionController::TestCase assert @response.body.to_i > current_nodes(:public_visible_node).version, "delete request should return a new version number for node" - # this won't work since the node is already deleted - content(nodes(:invisible_node).to_xml) - delete :delete, :id => current_nodes(:invisible_node).id + # deleting the same node twice doesn't work + content(nodes(:public_visible_node).to_xml) + delete :delete, :id => current_nodes(:public_visible_node).id assert_response :gone # this won't work since the node never existed @@ -402,6 +418,34 @@ class NodeControllerTest < ActionController::TestCase assert_response :success, "a valid update request failed" end + ## + # test fetching multiple nodes + def test_nodes + # check error when no parameter provided + get :nodes + assert_response :bad_request + + # check error when no parameter value provided + get :nodes, :nodes => "" + assert_response :bad_request + + # test a working call + get :nodes, :nodes => "1,2,4,15,17" + assert_response :success + assert_select "osm" do + assert_select "node", :count => 5 + assert_select "node[id=1][visible=true]", :count => 1 + assert_select "node[id=2][visible=false]", :count => 1 + assert_select "node[id=4][visible=true]", :count => 1 + assert_select "node[id=15][visible=true]", :count => 1 + assert_select "node[id=17][visible=false]", :count => 1 + end + + # check error when a non-existent node is included + get :nodes, :nodes => "1,2,4,15,17,400" + assert_response :not_found + end + ## # test adding tags to a node def test_duplicate_tags