diff options
author | kaniini <ariadne@dereferenced.org> | 2019-10-04 17:39:20 +0000 |
---|---|---|
committer | kaniini <ariadne@dereferenced.org> | 2019-10-04 17:39:20 +0000 |
commit | 222c238e7b807853dc02a79e00273b5f6b70eb4b (patch) | |
tree | 81942e71bc994ecb892c7dd36766b4f65e60954a /test | |
parent | a553ed542774891b6b0b7a57372a2c0300bbe2ba (diff) | |
parent | 6b7cd7d8504d47eef4efdf34fbd1d0eb32bb8375 (diff) | |
download | pleroma-222c238e7b807853dc02a79e00273b5f6b70eb4b.tar.gz pleroma-222c238e7b807853dc02a79e00273b5f6b70eb4b.zip |
Merge branch 'backport/1.1-mastoapi-nickname-fix' into 'maint/1.1'
Backport !1777 to 1.1
See merge request pleroma/pleroma!1786
Diffstat (limited to 'test')
-rw-r--r-- | test/user_test.exs | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/test/user_test.exs b/test/user_test.exs index 05b158025..74342d700 100644 --- a/test/user_test.exs +++ b/test/user_test.exs @@ -1641,4 +1641,61 @@ defmodule Pleroma.UserTest do assert {:ok, %User{email: "cofe@cofe.party"}} = User.change_email(user, "cofe@cofe.party") end end + + describe "get_cached_by_nickname_or_id" do + setup do + limit_to_local_content = Pleroma.Config.get([:instance, :limit_to_local_content]) + local_user = insert(:user) + remote_user = insert(:user, nickname: "nickname@example.com", local: false) + + on_exit(fn -> + Pleroma.Config.put([:instance, :limit_to_local_content], limit_to_local_content) + end) + + [local_user: local_user, remote_user: remote_user] + end + + test "allows getting remote users by id no matter what :limit_to_local_content is set to", %{ + remote_user: remote_user + } do + Pleroma.Config.put([:instance, :limit_to_local_content], false) + assert %User{} = User.get_cached_by_nickname_or_id(remote_user.id) + + Pleroma.Config.put([:instance, :limit_to_local_content], true) + assert %User{} = User.get_cached_by_nickname_or_id(remote_user.id) + + Pleroma.Config.put([:instance, :limit_to_local_content], :unauthenticated) + assert %User{} = User.get_cached_by_nickname_or_id(remote_user.id) + end + + test "disallows getting remote users by nickname without authentication when :limit_to_local_content is set to :unauthenticated", + %{remote_user: remote_user} do + Pleroma.Config.put([:instance, :limit_to_local_content], :unauthenticated) + assert nil == User.get_cached_by_nickname_or_id(remote_user.nickname) + end + + test "allows getting remote users by nickname with authentication when :limit_to_local_content is set to :unauthenticated", + %{remote_user: remote_user, local_user: local_user} do + Pleroma.Config.put([:instance, :limit_to_local_content], :unauthenticated) + assert %User{} = User.get_cached_by_nickname_or_id(remote_user.nickname, for: local_user) + end + + test "disallows getting remote users by nickname when :limit_to_local_content is set to true", + %{remote_user: remote_user} do + Pleroma.Config.put([:instance, :limit_to_local_content], true) + assert nil == User.get_cached_by_nickname_or_id(remote_user.nickname) + end + + test "allows getting local users by nickname no matter what :limit_to_local_content is set to", + %{local_user: local_user} do + Pleroma.Config.put([:instance, :limit_to_local_content], false) + assert %User{} = User.get_cached_by_nickname_or_id(local_user.nickname) + + Pleroma.Config.put([:instance, :limit_to_local_content], true) + assert %User{} = User.get_cached_by_nickname_or_id(local_user.nickname) + + Pleroma.Config.put([:instance, :limit_to_local_content], :unauthenticated) + assert %User{} = User.get_cached_by_nickname_or_id(local_user.nickname) + end + end end |