X-Git-Url: https://git.openstreetmap.org/rails.git/blobdiff_plain/5449cf4adcc1fad4b9f43426e6d3e4a8f65e6fbb..d23d2c9d05267b76a53058a5ee694a9fc677eb5a:/test/functional/amf_controller_test.rb diff --git a/test/functional/amf_controller_test.rb b/test/functional/amf_controller_test.rb index 08f3effe9..06aa3ad5c 100644 --- a/test/functional/amf_controller_test.rb +++ b/test/functional/amf_controller_test.rb @@ -5,10 +5,6 @@ include Potlatch class AmfControllerTest < ActionController::TestCase api_fixtures - # this should be what AMF controller returns when the bbox of a request - # is invalid or too large. - BOUNDARY_ERROR = [-2,"Sorry - I can't get the map for that area."] - def test_getway # check a visible way id = current_ways(:visible_way).id @@ -99,7 +95,7 @@ class AmfControllerTest < ActionController::TestCase def test_whichways_toobig bbox = [-0.1,-0.1,1.1,1.1] check_bboxes_are_bad [bbox] do |map,bbox| - assert_equal BOUNDARY_ERROR, map, "AMF controller should have returned an error." + assert_boundary_error map, " The server said: The maximum bbox size is 0.25, and your request was too large. Either request a smaller area, or use planet.osm" end end @@ -111,7 +107,7 @@ class AmfControllerTest < ActionController::TestCase def test_whichways_badlat bboxes = [[0,0.1,0.1,0], [-0.1,80,0.1,70], [0.24,54.35,0.25,54.33]] check_bboxes_are_bad bboxes do |map, bbox| - assert_equal BOUNDARY_ERROR, map, "AMF controller should have returned an error #{bbox.inspect}." + assert_boundary_error map, " The server said: The minimum latitude must be less than the maximum latitude, but it wasn't", bbox.inspect end end @@ -122,7 +118,7 @@ class AmfControllerTest < ActionController::TestCase def test_whichways_badlon bboxes = [[80,-0.1,70,0.1], [54.35,0.24,54.33,0.25]] check_bboxes_are_bad bboxes do |map, bbox| - assert_equal BOUNDARY_ERROR, map, "AMF controller should have returned an error #{bbox.inspect}." + assert_boundary_error map, " The server said: The minimum longitude must be less than the maximum longitude, but it wasn't", bbox.inspect end end @@ -157,7 +153,7 @@ class AmfControllerTest < ActionController::TestCase amf_parse_response map = amf_result "/1" - assert_equal BOUNDARY_ERROR, map, "AMF controller should have returned an error." + assert_boundary_error map, " The server said: The maximum bbox size is 0.25, and your request was too large. Either request a smaller area, or use planet.osm" end def test_getrelation @@ -329,7 +325,8 @@ class AmfControllerTest < ActionController::TestCase # AMF Write tests def test_putpoi_update_valid nd = current_nodes(:visible_node) - amf_content "putpoi", "/1", ["test@openstreetmap.org:test", nd.changeset_id, nd.version, nd.id, nd.lon, nd.lat, nd.tags, nd.visible] + cs_id = changesets(:public_user_first_change).id + amf_content "putpoi", "/1", ["test@example.com:test", cs_id, nd.version, nd.id, nd.lon, nd.lat, nd.tags, nd.visible] post :amf_write assert_response :success amf_parse_response @@ -343,7 +340,7 @@ class AmfControllerTest < ActionController::TestCase # Now try to update again, with a different lat/lon, using the updated version number lat = nd.lat+0.1 lon = nd.lon-0.1 - amf_content "putpoi", "/2", ["test@openstreetmap.org:test", nd.changeset_id, nd.version+1, nd.id, lon, lat, nd.tags, nd.visible] + amf_content "putpoi", "/2", ["test@example.com:test", cs_id, nd.version+1, nd.id, lon, lat, nd.tags, nd.visible] post :amf_write assert_response :success amf_parse_response @@ -364,9 +361,9 @@ class AmfControllerTest < ActionController::TestCase lat = rand(100)-50 + rand lon = rand(100)-50 + rand # normal user has a changeset open - changeset = changesets(:normal_user_first_change) + changeset = changesets(:public_user_first_change) - amf_content "putpoi", "/1", ["test@openstreetmap.org:test", changeset.id, nil, nil, lon, lat, {}, nil] + amf_content "putpoi", "/1", ["test@example.com:test", changeset.id, nil, nil, lon, lat, {}, nil] post :amf_write assert_response :success amf_parse_response @@ -403,9 +400,9 @@ class AmfControllerTest < ActionController::TestCase lat = rand(100)-50 + rand lon = rand(100)-50 + rand # normal user has a changeset open - changeset = changesets(:normal_user_first_change) + changeset = changesets(:public_user_first_change) - amf_content "putpoi", "/2", ["test@openstreetmap.org:test", changeset.id, nil, nil, lon, lat, { "key" => "value", "ping" => "pong" }, nil] + amf_content "putpoi", "/2", ["test@example.com:test", changeset.id, nil, nil, lon, lat, { "key" => "value", "ping" => "pong" }, nil] post :amf_write assert_response :success amf_parse_response @@ -532,4 +529,11 @@ class AmfControllerTest < ActionController::TestCase yield map, bbox end end + + # this should be what AMF controller returns when the bbox of a request + # is invalid or too large. + def assert_boundary_error(map, msg=nil, error_hint=nil) + expected_map = [-2, "Sorry - I can't get the map for that area.#{msg}"] + assert_equal expected_map, map, "AMF controller should have returned an error. (#{error_hint})" + end end