X-Git-Url: https://git.openstreetmap.org./rails.git/blobdiff_plain/6ffee1cf4be9b90bd8e807805ad59371c343de0d..c78853a97e6bcc7c742602867deb70e8da39523e:/test/functional/way_controller_test.rb diff --git a/test/functional/way_controller_test.rb b/test/functional/way_controller_test.rb index bba13062c..332f92dc7 100644 --- a/test/functional/way_controller_test.rb +++ b/test/functional/way_controller_test.rb @@ -4,6 +4,35 @@ require 'way_controller' class WayControllerTest < ActionController::TestCase api_fixtures + ## + # test all routes which lead to this controller + def test_routes + assert_routing( + { :path => "/api/0.6/way/create", :method => :put }, + { :controller => "way", :action => "create" } + ) + assert_routing( + { :path => "/api/0.6/way/1/full", :method => :get }, + { :controller => "way", :action => "full", :id => "1" } + ) + assert_routing( + { :path => "/api/0.6/way/1", :method => :get }, + { :controller => "way", :action => "read", :id => "1" } + ) + assert_routing( + { :path => "/api/0.6/way/1", :method => :put }, + { :controller => "way", :action => "update", :id => "1" } + ) + assert_routing( + { :path => "/api/0.6/way/1", :method => :delete }, + { :controller => "way", :action => "delete", :id => "1" } + ) + assert_routing( + { :path => "/api/0.6/ways", :method => :get }, + { :controller => "way", :action => "ways" } + ) + end + # ------------------------------------- # Test reading ways. # ------------------------------------- @@ -25,7 +54,7 @@ class WayControllerTest < ActionController::TestCase ## # check the "full" mode def test_full - Way.find(:all).each do |way| + Way.all.each do |way| get :full, :id => way.id # full call should say "gone" for non-visible ways... @@ -50,6 +79,33 @@ class WayControllerTest < ActionController::TestCase end end + ## + # test fetching multiple ways + def test_ways + # check error when no parameter provided + get :ways + assert_response :bad_request + + # check error when no parameter value provided + get :ways, :ways => "" + assert_response :bad_request + + # test a working call + get :ways, :ways => "1,2,4,6" + assert_response :success + assert_select "osm" do + assert_select "way", :count => 4 + assert_select "way[id=1][visible=true]", :count => 1 + assert_select "way[id=2][visible=false]", :count => 1 + assert_select "way[id=4][visible=true]", :count => 1 + assert_select "way[id=6][visible=true]", :count => 1 + end + + # check error when a non-existent way is included + get :ways, :ways => "1,2,4,6,400" + assert_response :not_found + end + # ------------------------------------- # Test simple way creation. # -------------------------------------