]> git.openstreetmap.org Git - rails.git/blobdiff - test/controllers/api/ways_controller_test.rb
JSON: added clarification for non-supported Accept header formats
[rails.git] / test / controllers / api / ways_controller_test.rb
index 433b43f27cbea7d63e10306f03573ab54dfe31cf..e4b9f36632952ac32839296dd5ff90fe5135a157 100644 (file)
@@ -13,10 +13,18 @@ module Api
         { :path => "/api/0.6/way/1/full", :method => :get },
         { :controller => "api/ways", :action => "full", :id => "1" }
       )
+      assert_routing(
+        { :path => "/api/0.6/way/1/full.json", :method => :get },
+        { :controller => "api/ways", :action => "full", :id => "1", :format => "json" }
+      )
       assert_routing(
         { :path => "/api/0.6/way/1", :method => :get },
         { :controller => "api/ways", :action => "show", :id => "1" }
       )
+      assert_routing(
+        { :path => "/api/0.6/way/1.json", :method => :get },
+        { :controller => "api/ways", :action => "show", :id => "1", :format => "json" }
+      )
       assert_routing(
         { :path => "/api/0.6/way/1", :method => :put },
         { :controller => "api/ways", :action => "update", :id => "1" }
@@ -29,6 +37,10 @@ module Api
         { :path => "/api/0.6/ways", :method => :get },
         { :controller => "api/ways", :action => "index" }
       )
+      assert_routing(
+        { :path => "/api/0.6/ways.json", :method => :get },
+        { :controller => "api/ways", :action => "index", :format => "json" }
+      )
     end
 
     # -------------------------------------
@@ -104,6 +116,18 @@ module Api
         assert_select "way[id='#{way4.id}'][visible='true']", :count => 1
       end
 
+      # test a working call with json format
+      get :index, :params => { :ways => "#{way1.id},#{way2.id},#{way3.id},#{way4.id}", :format => "json" }
+
+      js = ActiveSupport::JSON.decode(@response.body)
+      assert_not_nil js
+      assert_equal 4, js["elements"].count
+      assert_equal 4, (js["elements"].count { |a| a["type"] == "way" })
+      assert_equal 1, (js["elements"].count { |a| a["id"] == way1.id && a["visible"].nil? })
+      assert_equal 1, (js["elements"].count { |a| a["id"] == way2.id && a["visible"] == false })
+      assert_equal 1, (js["elements"].count { |a| a["id"] == way3.id && a["visible"].nil? })
+      assert_equal 1, (js["elements"].count { |a| a["id"] == way4.id && a["visible"].nil? })
+
       # check error when a non-existent way is included
       get :index, :params => { :ways => "#{way1.id},#{way2.id},#{way3.id},#{way4.id},0" }
       assert_response :not_found