]> git.openstreetmap.org Git - rails.git/blobdiff - test/functional/api_controller_test.rb
Test that closing and deleting notes require authentication
[rails.git] / test / functional / api_controller_test.rb
index adc433fe07b44c7663b44ab4cc4bde07ab7d930b..01a227b37d62ce83b71357db6c2c727daccbae0c 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" }
@@ -298,4 +302,41 @@ class ApiControllerTest < ActionController::TestCase
       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