X-Git-Url: https://git.openstreetmap.org/rails.git/blobdiff_plain/2c67c079ac39cefd3b096524fc0b7364b0eb21d7..cea0cccc6d73d7543d80d659b0f221f0d3196c0e:/test/functional/node_controller_test.rb diff --git a/test/functional/node_controller_test.rb b/test/functional/node_controller_test.rb index 6903dd60b..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 @@ -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