]> git.openstreetmap.org Git - rails.git/blobdiff - test/controllers/api/nodes_controller_test.rb
JSON: added clarification for non-supported Accept header formats
[rails.git] / test / controllers / api / nodes_controller_test.rb
index aee41d51548e788bc6d6f389750f891025f8510f..e2174a12603c2400c2a248c3d407bf34ef938430 100644 (file)
@@ -13,6 +13,10 @@ module Api
         { :path => "/api/0.6/node/1", :method => :get },
         { :controller => "api/nodes", :action => "show", :id => "1" }
       )
+      assert_routing(
+        { :path => "/api/0.6/node/1.json", :method => :get },
+        { :controller => "api/nodes", :action => "show", :id => "1", :format => "json" }
+      )
       assert_routing(
         { :path => "/api/0.6/node/1", :method => :put },
         { :controller => "api/nodes", :action => "update", :id => "1" }
@@ -25,6 +29,10 @@ module Api
         { :path => "/api/0.6/nodes", :method => :get },
         { :controller => "api/nodes", :action => "index" }
       )
+      assert_routing(
+        { :path => "/api/0.6/nodes.json", :method => :get },
+        { :controller => "api/nodes", :action => "index", :format => "json" }
+      )
     end
 
     def test_create
@@ -464,6 +472,19 @@ module Api
         assert_select "node[id='#{node5.id}'][visible='false']", :count => 1
       end
 
+      # test a working call with json format
+      get :index, :params => { :nodes => "#{node1.id},#{node2.id},#{node3.id},#{node4.id},#{node5.id}", :format => "json" }
+
+      js = ActiveSupport::JSON.decode(@response.body)
+      assert_not_nil js
+      assert_equal 5, js["elements"].count
+      assert_equal 5, (js["elements"].count { |a| a["type"] == "node" })
+      assert_equal 1, (js["elements"].count { |a| a["id"] == node1.id && a["visible"].nil? })
+      assert_equal 1, (js["elements"].count { |a| a["id"] == node2.id && a["visible"] == false })
+      assert_equal 1, (js["elements"].count { |a| a["id"] == node3.id && a["visible"].nil? })
+      assert_equal 1, (js["elements"].count { |a| a["id"] == node4.id && a["visible"].nil? })
+      assert_equal 1, (js["elements"].count { |a| a["id"] == node5.id && a["visible"] == false })
+
       # check error when a non-existent node is included
       get :index, :params => { :nodes => "#{node1.id},#{node2.id},#{node3.id},#{node4.id},#{node5.id},0" }
       assert_response :not_found