X-Git-Url: https://git.openstreetmap.org./rails.git/blobdiff_plain/e660e609661edadc1ed5ad49d6e83e936b2f91cd..618b09a8ab6aa12b86e9702185740a9be6260e18:/test/functional/way_controller_test.rb?ds=sidebyside diff --git a/test/functional/way_controller_test.rb b/test/functional/way_controller_test.rb index bba13062c..a69612350 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. # ------------------------------------- @@ -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. # -------------------------------------