diff options
author | Maxim Filippov <colixer@gmail.com> | 2019-12-12 02:16:23 +0300 |
---|---|---|
committer | Maxim Filippov <colixer@gmail.com> | 2019-12-12 02:16:23 +0300 |
commit | 3ecf131511afc1fc366be6402ca94cf0e6c30e11 (patch) | |
tree | 0e8a59c43ccc344bb7d57c32826675aa706b7e8e /test/plugs/oauth_scopes_plug_test.exs | |
parent | cc36a8ea906bd22884101632c6d62c9572e846e1 (diff) | |
parent | fd697cf2090b61db60a02694c3227850df176e2d (diff) | |
download | pleroma-3ecf131511afc1fc366be6402ca94cf0e6c30e11.tar.gz pleroma-3ecf131511afc1fc366be6402ca94cf0e6c30e11.zip |
Merge branch 'develop' into feature/report-notes
Diffstat (limited to 'test/plugs/oauth_scopes_plug_test.exs')
-rw-r--r-- | test/plugs/oauth_scopes_plug_test.exs | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/test/plugs/oauth_scopes_plug_test.exs b/test/plugs/oauth_scopes_plug_test.exs index be6d1340b..89f32f43a 100644 --- a/test/plugs/oauth_scopes_plug_test.exs +++ b/test/plugs/oauth_scopes_plug_test.exs @@ -224,4 +224,42 @@ defmodule Pleroma.Plugs.OAuthScopesPlugTest do assert f.(["admin:read"], ["write", "admin"]) == ["admin:read"] end end + + describe "transform_scopes/2" do + clear_config([:auth, :enforce_oauth_admin_scope_usage]) + + setup do + {:ok, %{f: &OAuthScopesPlug.transform_scopes/2}} + end + + test "with :admin option, prefixes all requested scopes with `admin:` " <> + "and [optionally] keeps only prefixed scopes, " <> + "depending on `[:auth, :enforce_oauth_admin_scope_usage]` setting", + %{f: f} do + Pleroma.Config.put([:auth, :enforce_oauth_admin_scope_usage], false) + + assert f.(["read"], %{admin: true}) == ["admin:read", "read"] + + assert f.(["read", "write"], %{admin: true}) == [ + "admin:read", + "read", + "admin:write", + "write" + ] + + Pleroma.Config.put([:auth, :enforce_oauth_admin_scope_usage], true) + + assert f.(["read:accounts"], %{admin: true}) == ["admin:read:accounts"] + + assert f.(["read", "write:reports"], %{admin: true}) == [ + "admin:read", + "admin:write:reports" + ] + end + + test "with no supported options, returns unmodified scopes", %{f: f} do + assert f.(["read"], %{}) == ["read"] + assert f.(["read", "write"], %{}) == ["read", "write"] + end + end end |