]> git.openstreetmap.org Git - rails.git/blobdiff - test/functional/api_controller_test.rb
Move vagrant provisioning script to a better location.
[rails.git] / test / functional / api_controller_test.rb
index adc433fe07b44c7663b44ab4cc4bde07ab7d930b..c92e1132e3786760ea2278df679818229df4246c 100644 (file)
@@ -29,6 +29,10 @@ class ApiControllerTest < ActionController::TestCase
       { :controller => "api", :action => "capabilities" }, 
       { :path => "/api/0.6/capabilities", :method => :get }
     )
+    assert_routing(
+      { :path => "/api/0.6/permissions", :method => :get },
+      { :controller => "api", :action => "permissions" }
+    )
     assert_routing(
       { :path => "/api/0.6/map", :method => :get },
       { :controller => "api", :action => "map" }
@@ -262,14 +266,6 @@ class ApiControllerTest < ActionController::TestCase
     end
   end
   
-  def test_start_end_time_invalid
-    
-  end
-  
-  def test_start_end_time_invalid
-    
-  end
-  
   def test_hours_invalid
     invalid = %w{ -21 335 -1 0 25 26 100 one two three ping pong : }
     invalid.each do |hour|
@@ -295,7 +291,47 @@ class ApiControllerTest < ActionController::TestCase
         assert_select "area[maximum=#{MAX_REQUEST_AREA}]", :count => 1
         assert_select "tracepoints[per_page=#{TRACEPOINTS_PER_PAGE}]", :count => 1
         assert_select "changesets[maximum_elements=#{Changeset::MAX_ELEMENTS}]", :count => 1
+        assert_select "status[database=online]", :count => 1
+        assert_select "status[api=online]", :count => 1
+        assert_select "status[gpx=online]", :count => 1
+      end
+    end
+  end
+
+  def test_permissions_anonymous
+    get :permissions
+    assert_response :success
+    assert_select "osm > permissions", :count => 1 do
+      assert_select "permission", :count => 0
+    end
+  end
+
+  def test_permissions_basic_auth
+    basic_authorization(users(:normal_user).email, "test")
+    get :permissions
+    assert_response :success
+    assert_select "osm > permissions", :count => 1 do
+      assert_select "permission", :count => ClientApplication.all_permissions.size
+      ClientApplication.all_permissions.each do |p|
+        assert_select "permission[name=#{p}]", :count => 1
       end
     end
   end
+
+  def test_permissions_oauth
+    @request.env["oauth.token"] =  AccessToken.new do |token|
+      # Just to test a few
+      token.allow_read_prefs = true
+      token.allow_write_api = true
+      token.allow_read_gpx = false
+    end
+    get :permissions
+    assert_response :success
+    assert_select "osm > permissions", :count => 1 do
+      assert_select "permission", :count => 2
+      assert_select "permission[name=allow_read_prefs]", :count => 1
+      assert_select "permission[name=allow_write_api]", :count => 1
+      assert_select "permission[name=allow_read_gpx]", :count => 0
+    end
+  end
 end