]> git.openstreetmap.org Git - rails.git/blobdiff - test/controllers/api/versions_controller_test.rb
Enforce rate limit for API calls which make changes
[rails.git] / test / controllers / api / versions_controller_test.rb
index f7f51403539ba5a9969163c184ebf2590317fba9..1c70831c93c9b65293cb107ac1f04b059f4fd90c 100644 (file)
@@ -1,7 +1,7 @@
 require "test_helper"
 
 module Api
-  class VersionsControllerTest < ActionController::TestCase
+  class VersionsControllerTest < ActionDispatch::IntegrationTest
     ##
     # test all routes which lead to this controller
     def test_routes
@@ -9,14 +9,22 @@ module Api
         { :path => "/api/versions", :method => :get },
         { :controller => "api/versions", :action => "show" }
       )
+      assert_routing(
+        { :path => "/api/versions.json", :method => :get },
+        { :controller => "api/versions", :action => "show", :format => "json" }
+      )
       assert_recognizes(
         { :controller => "api/versions", :action => "show" },
         { :path => "/api/versions", :method => :get }
       )
+      assert_recognizes(
+        { :controller => "api/versions", :action => "show", :format => "json" },
+        { :path => "/api/versions.json", :method => :get }
+      )
     end
 
     def test_versions
-      get :show
+      get api_versions_path
       assert_response :success
       assert_select "osm[generator='#{Settings.generator}']", :count => 1 do
         assert_select "api", :count => 1 do
@@ -25,8 +33,16 @@ module Api
       end
     end
 
+    def test_versions_json
+      get api_versions_path, :params => { :format => "json" }
+      assert_response :success
+      js = ActiveSupport::JSON.decode(@response.body)
+      assert_not_nil js
+      assert_equal [Settings.api_version], js["api"]["versions"]
+    end
+
     def test_no_version_in_root_element
-      get :show
+      get api_versions_path
       assert_response :success
       assert_select "osm[version]", :count => 0
     end