X-Git-Url: https://git.openstreetmap.org/rails.git/blobdiff_plain/39c5d8caa71b29d70bb136d6e0a560426e089112..317b8f9d45b25c4060bda337edfb73594834d275:/test/controllers/api_controller_test.rb diff --git a/test/controllers/api_controller_test.rb b/test/controllers/api_controller_test.rb index 11d850ac3..9fc0c1567 100644 --- a/test/controllers/api_controller_test.rb +++ b/test/controllers/api_controller_test.rb @@ -1,5 +1,4 @@ require "test_helper" -require "api_controller" class ApiControllerTest < ActionController::TestCase def setup @@ -19,14 +18,6 @@ class ApiControllerTest < ActionController::TestCase ## # test all routes which lead to this controller def test_routes - assert_routing( - { :path => "/api/capabilities", :method => :get }, - { :controller => "api", :action => "capabilities" } - ) - assert_recognizes( - { :controller => "api", :action => "capabilities" }, - { :path => "/api/0.6/capabilities", :method => :get } - ) assert_routing( { :path => "/api/0.6/permissions", :method => :get }, { :controller => "api", :action => "permissions" } @@ -35,10 +26,6 @@ class ApiControllerTest < ActionController::TestCase { :path => "/api/0.6/map", :method => :get }, { :controller => "api", :action => "map" } ) - assert_routing( - { :path => "/api/0.6/trackpoints", :method => :get }, - { :controller => "api", :action => "trackpoints" } - ) assert_routing( { :path => "/api/0.6/changes", :method => :get }, { :controller => "api", :action => "changes" } @@ -148,131 +135,41 @@ class ApiControllerTest < ActionController::TestCase end end - def test_tracepoints - point = create(:trace, :visibility => "public", :latitude => 1, :longitude => 1) do |trace| - create(:tracepoint, :trace => trace, :latitude => 1 * GeoRecord::SCALE, :longitude => 1 * GeoRecord::SCALE) - end - minlon = point.longitude - 0.001 - minlat = point.latitude - 0.001 - maxlon = point.longitude + 0.001 - maxlat = point.latitude + 0.001 - bbox = "#{minlon},#{minlat},#{maxlon},#{maxlat}" - get :trackpoints, :params => { :bbox => bbox } - assert_response :success - assert_select "gpx[version='1.0'][creator='OpenStreetMap.org']", :count => 1 do - assert_select "trk" do - assert_select "trkseg" - end - end - end - - def test_tracepoints_trackable - point = create(:trace, :visibility => "trackable", :latitude => 51.51, :longitude => -0.14) do |trace| - create(:tracepoint, :trace => trace, :trackid => 1, :latitude => (51.510 * GeoRecord::SCALE).to_i, :longitude => (-0.140 * GeoRecord::SCALE).to_i) - create(:tracepoint, :trace => trace, :trackid => 2, :latitude => (51.511 * GeoRecord::SCALE).to_i, :longitude => (-0.141 * GeoRecord::SCALE).to_i) - end - minlon = point.longitude - 0.002 - minlat = point.latitude - 0.002 - maxlon = point.longitude + 0.002 - maxlat = point.latitude + 0.002 - bbox = "#{minlon},#{minlat},#{maxlon},#{maxlat}" - get :trackpoints, :params => { :bbox => bbox } - assert_response :success - assert_select "gpx[version='1.0'][creator='OpenStreetMap.org']", :count => 1 do - assert_select "trk", :count => 1 do - assert_select "trk > trkseg", :count => 2 do |trksegs| - trksegs.each do |trkseg| - assert_select trkseg, "trkpt", :count => 1 do |trkpt| - assert_select trkpt[0], "time", :count => 1 - end - end - end - end - end - end - - def test_tracepoints_identifiable - point = create(:trace, :visibility => "identifiable", :latitude => 51.512, :longitude => 0.142) do |trace| - create(:tracepoint, :trace => trace, :latitude => (51.512 * GeoRecord::SCALE).to_i, :longitude => (0.142 * GeoRecord::SCALE).to_i) - end - minlon = point.longitude - 0.002 - minlat = point.latitude - 0.002 - maxlon = point.longitude + 0.002 - maxlat = point.latitude + 0.002 - bbox = "#{minlon},#{minlat},#{maxlon},#{maxlat}" - get :trackpoints, :params => { :bbox => bbox } - assert_response :success - assert_select "gpx[version='1.0'][creator='OpenStreetMap.org']", :count => 1 do - assert_select "trk", :count => 1 do - assert_select "trk>name", :count => 1 - assert_select "trk>desc", :count => 1 - assert_select "trk>url", :count => 1 - assert_select "trkseg", :count => 1 do - assert_select "trkpt", :count => 1 do - assert_select "time", :count => 1 - end - end - end - end - end - def test_map_without_bbox - %w[trackpoints map].each do |tq| - get tq - 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, "A bbox param was expected" - end - end - - def test_traces_page_less_than_0 - -10.upto(-1) do |i| - get :trackpoints, :params => { :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, "The page number was #{i}" - end - 0.upto(10) do |i| - get :trackpoints, :params => { :page => i, :bbox => "-0.1,-0.1,0.1,0.1" } - assert_response :success, "The page number was #{i} and should have been accepted" - end + 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, "A bbox param was expected" end def test_bbox_too_big @badbigbbox.each do |bbox| - %w[trackpoints map].each do |tq| - get tq, :params => { :bbox => bbox } - assert_response :bad_request, "The bbox:#{bbox} was expected to be too big" - assert_equal "The maximum bbox size is #{MAX_REQUEST_AREA}, and your request was too large. Either request a smaller area, or use planet.osm", @response.body, "bbox: #{bbox}" - end + get :map, :params => { :bbox => bbox } + assert_response :bad_request, "The bbox:#{bbox} was expected to be too big" + assert_equal "The maximum bbox size is #{MAX_REQUEST_AREA}, and your request was too large. Either request a smaller area, or use planet.osm", @response.body, "bbox: #{bbox}" end end def test_bbox_malformed @badmalformedbbox.each do |bbox| - %w[trackpoints map].each do |tq| - get tq, :params => { :bbox => bbox } - assert_response :bad_request, "The bbox:#{bbox} was expected to be malformed" - assert_equal "The parameter bbox is required, and must be of the form min_lon,min_lat,max_lon,max_lat", @response.body, "bbox: #{bbox}" - end + get :map, :params => { :bbox => bbox } + assert_response :bad_request, "The bbox:#{bbox} was expected to be malformed" + assert_equal "The parameter bbox is required, and must be of the form min_lon,min_lat,max_lon,max_lat", @response.body, "bbox: #{bbox}" end end def test_bbox_lon_mixedup @badlonmixedbbox.each do |bbox| - %w[trackpoints map].each do |tq| - get tq, :params => { :bbox => bbox } - assert_response :bad_request, "The bbox:#{bbox} was expected to have the longitude mixed up" - assert_equal "The minimum longitude must be less than the maximum longitude, but it wasn't", @response.body, "bbox: #{bbox}" - end + get :map, :params => { :bbox => bbox } + assert_response :bad_request, "The bbox:#{bbox} was expected to have the longitude mixed up" + assert_equal "The minimum longitude must be less than the maximum longitude, but it wasn't", @response.body, "bbox: #{bbox}" end end def test_bbox_lat_mixedup @badlatmixedbbox.each do |bbox| - %w[trackpoints map].each do |tq| - get tq, :params => { :bbox => bbox } - assert_response :bad_request, "The bbox:#{bbox} was expected to have the latitude mixed up" - assert_equal "The minimum latitude must be less than the maximum latitude, but it wasn't", @response.body, "bbox: #{bbox}" - end + get :map, :params => { :bbox => bbox } + assert_response :bad_request, "The bbox:#{bbox} was expected to have the latitude mixed up" + assert_equal "The minimum latitude must be less than the maximum latitude, but it wasn't", @response.body, "bbox: #{bbox}" end end @@ -380,23 +277,6 @@ class ApiControllerTest < ActionController::TestCase assert_response :success end - def test_capabilities - get :capabilities - assert_response :success - assert_select "osm[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='#{MAX_REQUEST_AREA}']", :count => 1 - assert_select "note_area[maximum='#{MAX_NOTE_REQUEST_AREA}']", :count => 1 - assert_select "tracepoints[per_page='#{TRACEPOINTS_PER_PAGE}']", :count => 1 - assert_select "changesets[maximum_elements='#{Changeset::MAX_ELEMENTS}']", :count => 1 - assert_select "status[database='online']", :count => 1 - assert_select "status[api='online']", :count => 1 - assert_select "status[gpx='online']", :count => 1 - end - end - end - def test_permissions_anonymous get :permissions assert_response :success