more testing of the api. Changing the generator so that it is a constant to come in line with the server url and the api version. Adding tracepoints per page to the capabilities api call. Better error message for api call.
This commit is contained in:
parent
654470b896
commit
3e9ceb0c38
5 changed files with 75 additions and 7 deletions
|
@ -23,12 +23,71 @@ class ApiControllerTest < Test::Unit::TestCase
|
|||
|
||||
def test_map
|
||||
node = current_nodes(:used_node_1)
|
||||
bbox = "#{node.lat-0.1},#{node.lon-0.1},#{node.lat+0.1},#{node.lon+0.1}"
|
||||
# Need to split the min/max lat/lon out into their own variables here
|
||||
# so that we can test they are returned later.
|
||||
minlon = node.lon-0.1
|
||||
minlat = node.lat-0.1
|
||||
maxlon = node.lon+0.1
|
||||
maxlat = node.lat+0.1
|
||||
bbox = "#{minlon},#{minlat},#{maxlon},#{maxlat}"
|
||||
get :map, :bbox => bbox
|
||||
if $VERBOSE
|
||||
print @response.body
|
||||
print @request.to_yaml
|
||||
print @response.body
|
||||
end
|
||||
assert_response :success
|
||||
assert_select "osm[version='#{API_VERSION}'][generator='#{GENERATOR}']:root", :count => 1 do
|
||||
assert_select "bounds[minlon=#{minlon}][minlat=#{minlat}][maxlon=#{maxlon}][maxlat=#{maxlat}]", :count => 1
|
||||
assert_select "node[id=#{node.id}][lat=#{node.lat}][lon=#{node.lon}][version=#{node.version}][changeset=#{node.changeset_id}][visible=#{node.visible}][timestamp=#{node.timestamp.xmlschema}]", :count => 1 do
|
||||
# This should really be more generic
|
||||
assert_select "tag[k=test][v=1]"
|
||||
end
|
||||
# Should also test for the ways and relation
|
||||
end
|
||||
end
|
||||
|
||||
def test_map_without_bbox
|
||||
get :map
|
||||
assert_response :bad_request
|
||||
assert_equal "The parameter bbox is required, and must be of the form min_lon,min_lat,max_lon,max_lat", @response.body
|
||||
end
|
||||
|
||||
def test_traces_without_bbox
|
||||
get :trackpoints
|
||||
assert_response :bad_request
|
||||
assert_equal "The parameter bbox is required, and must be of the form min_lon,min_lat,max_lon,max_lat", @response.body
|
||||
end
|
||||
|
||||
def test_traces_page_less_than_0
|
||||
-10.upto(-1) do |i|
|
||||
get :trackpoints, :page => i, :bbox => "-0.1,-0.1,0.1,0.1"
|
||||
assert_response :bad_request
|
||||
assert_equal "Page number must be greater than or equal to 0", @response.body
|
||||
end
|
||||
0.upto(10) do |i|
|
||||
get :trackpoints, :page => i, :bbox => "-0.1,-0.1,0.1,0.1"
|
||||
assert_response :success
|
||||
end
|
||||
end
|
||||
|
||||
def test_traces_bbox_too_big
|
||||
bad = %w{ -0.1,-0.1,1.1,1.1 10,10,11,11 }
|
||||
bad.each do |bbox|
|
||||
get :trackpoints, :bbox => bbox
|
||||
assert_response :bad_request
|
||||
assert_equal "The maximum bbox size is #{APP_CONFIG['max_request_area']}, and your request was too large. Either request a smaller area, or use planet.osm", @response.body
|
||||
end
|
||||
end
|
||||
|
||||
def test_capabilities
|
||||
get :capabilities
|
||||
assert_response :success
|
||||
assert_select "osm:root[version='#{API_VERSION}'][generator='#{GENERATOR}']", :count => 1 do
|
||||
assert_select "api", :count => 1 do
|
||||
assert_select "version[minimum=#{API_VERSION}][maximum=#{API_VERSION}]", :count => 1
|
||||
assert_select "area[maximum=#{APP_CONFIG['max_request_area']}]", :count => 1
|
||||
assert_select "tracepoints[per_page=#{APP_CONFIG['tracepoints_per_page']}]", :count => 1
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
end
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue