X-Git-Url: https://git.openstreetmap.org./rails.git/blobdiff_plain/9a87412d2af3e6bb0c43e3827f1c5c299b9c7215..b4146947ad17f11c963ee8ea161cfe33948b67c9:/test/controllers/api/permissions_controller_test.rb diff --git a/test/controllers/api/permissions_controller_test.rb b/test/controllers/api/permissions_controller_test.rb index b927ca703..3bc13cc04 100644 --- a/test/controllers/api/permissions_controller_test.rb +++ b/test/controllers/api/permissions_controller_test.rb @@ -9,6 +9,10 @@ module Api { :path => "/api/0.6/permissions", :method => :get }, { :controller => "api/permissions", :action => "show" } ) + assert_routing( + { :path => "/api/0.6/permissions.json", :method => :get }, + { :controller => "api/permissions", :action => "show", :format => "json" } + ) end def test_permissions_anonymous @@ -17,6 +21,15 @@ module Api assert_select "osm > permissions", :count => 1 do assert_select "permission", :count => 0 end + + # Test json + get permissions_path(:format => "json") + assert_response :success + assert_equal "application/json", @response.media_type + + js = ActiveSupport::JSON.decode(@response.body) + assert_not_nil js + assert_equal 0, js["permissions"].count end def test_permissions_basic_auth @@ -24,19 +37,31 @@ module Api get permissions_path, :headers => auth_header 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 + assert_select "permission", :count => Oauth.scopes.size + Oauth.scopes.each do |p| + assert_select "permission[name='allow_#{p.name}']", :count => 1 end end + + # Test json + get permissions_path(:format => "json"), :headers => auth_header + assert_response :success + assert_equal "application/json", @response.media_type + + js = ActiveSupport::JSON.decode(@response.body) + assert_not_nil js + assert_equal Oauth.scopes.size, js["permissions"].count + Oauth.scopes.each do |p| + assert_includes js["permissions"], "allow_#{p.name}" + end end - def test_permissions_oauth - token = create(:access_token, - :allow_read_prefs => true, - :allow_write_api => true, - :allow_read_gpx => false) - signed_get permissions_path, :oauth => { :token => token } + def test_permissions_oauth2 + user = create(:user) + token = create(:oauth_access_token, + :resource_owner_id => user.id, + :scopes => %w[read_prefs write_api]) + get permissions_path, :headers => bearer_authorization_header(token.token) assert_response :success assert_select "osm > permissions", :count => 1 do assert_select "permission", :count => 2