@ -1725,4 +1725,61 @@ defmodule Pleroma.UserTest do
assert %{ info : %{ hide_follows : true } } = Repo . get ( User , user . id )
assert { :ok , %{ info : %{ hide_follows : true } } } = Cachex . get ( :user_cache , " ap_id: #{ user . ap_id } " )
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