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
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
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
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
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
# 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
# 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
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
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
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