X-Git-Url: https://git.openstreetmap.org./rails.git/blobdiff_plain/dbbbd62ef1982e905ceb23f1278e9b4bfdb49d5b..06d03c8acccfadfe7e2bf441c9fbd0044e7a2fcf:/test/abilities/api_capability_test.rb diff --git a/test/abilities/api_capability_test.rb b/test/abilities/api_capability_test.rb index 8d0e682f6..5e8396c67 100644 --- a/test/abilities/api_capability_test.rb +++ b/test/abilities/api_capability_test.rb @@ -2,19 +2,9 @@ require "test_helper" -class ApiCapabilityTest < ActiveSupport::TestCase - def tokens(*toks) - AccessToken.new do |token| - toks.each do |t| - token.public_send("#{t}=", true) - end - end - end -end - -class ChangesetCommentApiCapabilityTest < ApiCapabilityTest +class ChangesetCommentApiCapabilityTest < ActiveSupport::TestCase test "as a normal user with permissionless token" do - token = create(:access_token) + token = create(:oauth_access_token) capability = ApiCapability.new token [:create, :destroy, :restore].each do |action| @@ -22,8 +12,8 @@ class ChangesetCommentApiCapabilityTest < ApiCapabilityTest end end - test "as a normal user with allow_write_api token" do - token = create(:access_token, :allow_write_api => true) + test "as a normal user with write_api token" do + token = create(:oauth_access_token, :scopes => %w[write_api]) capability = ApiCapability.new token [:destroy, :restore].each do |action| @@ -36,7 +26,7 @@ class ChangesetCommentApiCapabilityTest < ApiCapabilityTest end test "as a moderator with permissionless token" do - token = create(:access_token, :user => create(:moderator_user)) + token = create(:oauth_access_token, :resource_owner_id => create(:moderator_user).id) capability = ApiCapability.new token [:create, :destroy, :restore].each do |action| @@ -44,8 +34,8 @@ class ChangesetCommentApiCapabilityTest < ApiCapabilityTest end end - test "as a moderator with allow_write_api token" do - token = create(:access_token, :user => create(:moderator_user), :allow_write_api => true) + test "as a moderator with write_api token" do + token = create(:oauth_access_token, :resource_owner_id => create(:moderator_user).id, :scopes => %w[write_api]) capability = ApiCapability.new token [:create, :destroy, :restore].each do |action| @@ -54,9 +44,9 @@ class ChangesetCommentApiCapabilityTest < ApiCapabilityTest end end -class NoteApiCapabilityTest < ApiCapabilityTest +class NoteApiCapabilityTest < ActiveSupport::TestCase test "as a normal user with permissionless token" do - token = create(:access_token) + token = create(:oauth_access_token) capability = ApiCapability.new token [:create, :comment, :close, :reopen, :destroy].each do |action| @@ -64,8 +54,8 @@ class NoteApiCapabilityTest < ApiCapabilityTest end end - test "as a normal user with allow_write_notes token" do - token = create(:access_token, :allow_write_notes => true) + test "as a normal user with write_notes token" do + token = create(:oauth_access_token, :scopes => %w[write_notes]) capability = ApiCapability.new token [:destroy].each do |action| @@ -78,7 +68,7 @@ class NoteApiCapabilityTest < ApiCapabilityTest end test "as a moderator with permissionless token" do - token = create(:access_token, :user => create(:moderator_user)) + token = create(:oauth_access_token, :resource_owner_id => create(:moderator_user).id) capability = ApiCapability.new token [:destroy].each do |action| @@ -86,8 +76,8 @@ class NoteApiCapabilityTest < ApiCapabilityTest end end - test "as a moderator with allow_write_notes token" do - token = create(:access_token, :user => create(:moderator_user), :allow_write_notes => true) + test "as a moderator with write_notes token" do + token = create(:oauth_access_token, :resource_owner_id => create(:moderator_user).id, :scopes => %w[write_notes]) capability = ApiCapability.new token [:destroy].each do |action| @@ -96,37 +86,35 @@ class NoteApiCapabilityTest < ApiCapabilityTest end end -class UserApiCapabilityTest < ApiCapabilityTest +class UserApiCapabilityTest < ActiveSupport::TestCase test "user preferences" do - # a user with no tokens - capability = ApiCapability.new nil - [:read, :read_one, :update, :update_one, :delete_one].each do |act| - assert capability.cannot? act, UserPreference - end - # A user with empty tokens - capability = ApiCapability.new tokens + token = create(:oauth_access_token) + capability = ApiCapability.new token - [:read, :read_one, :update, :update_one, :delete_one].each do |act| + [:index, :show, :update_all, :update, :destroy].each do |act| assert capability.cannot? act, UserPreference end - capability = ApiCapability.new tokens(:allow_read_prefs) + token = create(:oauth_access_token, :scopes => %w[read_prefs]) + capability = ApiCapability.new token - [:update, :update_one, :delete_one].each do |act| + [:update_all, :update, :destroy].each do |act| assert capability.cannot? act, UserPreference end - [:read, :read_one].each do |act| + [:index, :show].each do |act| assert capability.can? act, UserPreference end - capability = ApiCapability.new tokens(:allow_write_prefs) - [:read, :read_one].each do |act| + token = create(:oauth_access_token, :scopes => %w[write_prefs]) + capability = ApiCapability.new token + + [:index, :show].each do |act| assert capability.cannot? act, UserPreference end - [:update, :update_one, :delete_one].each do |act| + [:update_all, :update, :destroy].each do |act| assert capability.can? act, UserPreference end end