@ -5,10 +5,15 @@
defmodule Pleroma.Web.CommonAPI.UtilsTest do
alias Pleroma.Builders.UserBuilder
alias Pleroma.Object
alias Pleroma.Web.CommonAPI
alias Pleroma.Web.CommonAPI.Utils
alias Pleroma.Web.Endpoint
use Pleroma.DataCase
import Pleroma.Factory
@public_address " https://www.w3.org/ns/activitystreams # Public "
test " it adds attachment links to a given text and attachment set " do
name =
" Sakura%20Mana%20%E2%80%93%20Turned%20on%20by%20a%20Senior%20OL%20with%20a%20Temptating%20Tight%20Skirt-s%20Full%20Hipline%20and%20Panty%20Shot-%20Beautiful%20Thick%20Thighs-%20and%20Erotic%20Ass-%20-2015-%20--%20Oppaitime%208-28-2017%206-50-33%20PM.png "
@ -214,4 +219,132 @@ defmodule Pleroma.Web.CommonAPI.UtilsTest do
assert Utils . date_to_asctime ( nil ) == expected
end
end
describe " get_to_and_cc " do
test " for public posts, not a reply " do
user = insert ( :user )
mentioned_user = insert ( :user )
mentions = [ mentioned_user . ap_id ]
{ to , cc } = Utils . get_to_and_cc ( user , mentions , nil , " public " )
assert length ( to ) == 2
assert length ( cc ) == 1
assert @public_address in to
assert mentioned_user . ap_id in to
assert user . follower_address in cc
end
test " for public posts, a reply " do
user = insert ( :user )
mentioned_user = insert ( :user )
third_user = insert ( :user )
{ :ok , activity } = CommonAPI . post ( third_user , %{ " status " = > " uguu " } )
mentions = [ mentioned_user . ap_id ]
{ to , cc } = Utils . get_to_and_cc ( user , mentions , activity , " public " )
assert length ( to ) == 3
assert length ( cc ) == 1
assert @public_address in to
assert mentioned_user . ap_id in to
assert third_user . ap_id in to
assert user . follower_address in cc
end
test " for unlisted posts, not a reply " do
user = insert ( :user )
mentioned_user = insert ( :user )
mentions = [ mentioned_user . ap_id ]
{ to , cc } = Utils . get_to_and_cc ( user , mentions , nil , " unlisted " )
assert length ( to ) == 2
assert length ( cc ) == 1
assert @public_address in cc
assert mentioned_user . ap_id in to
assert user . follower_address in to
end
test " for unlisted posts, a reply " do
user = insert ( :user )
mentioned_user = insert ( :user )
third_user = insert ( :user )
{ :ok , activity } = CommonAPI . post ( third_user , %{ " status " = > " uguu " } )
mentions = [ mentioned_user . ap_id ]
{ to , cc } = Utils . get_to_and_cc ( user , mentions , activity , " unlisted " )
assert length ( to ) == 3
assert length ( cc ) == 1
assert @public_address in cc
assert mentioned_user . ap_id in to
assert third_user . ap_id in to
assert user . follower_address in to
end
test " for private posts, not a reply " do
user = insert ( :user )
mentioned_user = insert ( :user )
mentions = [ mentioned_user . ap_id ]
{ to , cc } = Utils . get_to_and_cc ( user , mentions , nil , " private " )
assert length ( to ) == 2
assert length ( cc ) == 0
assert mentioned_user . ap_id in to
assert user . follower_address in to
end
test " for private posts, a reply " do
user = insert ( :user )
mentioned_user = insert ( :user )
third_user = insert ( :user )
{ :ok , activity } = CommonAPI . post ( third_user , %{ " status " = > " uguu " } )
mentions = [ mentioned_user . ap_id ]
{ to , cc } = Utils . get_to_and_cc ( user , mentions , activity , " private " )
assert length ( to ) == 3
assert length ( cc ) == 0
assert mentioned_user . ap_id in to
assert third_user . ap_id in to
assert user . follower_address in to
end
test " for direct posts, not a reply " do
user = insert ( :user )
mentioned_user = insert ( :user )
mentions = [ mentioned_user . ap_id ]
{ to , cc } = Utils . get_to_and_cc ( user , mentions , nil , " direct " )
assert length ( to ) == 1
assert length ( cc ) == 0
assert mentioned_user . ap_id in to
end
test " for direct posts, a reply " do
user = insert ( :user )
mentioned_user = insert ( :user )
third_user = insert ( :user )
{ :ok , activity } = CommonAPI . post ( third_user , %{ " status " = > " uguu " } )
mentions = [ mentioned_user . ap_id ]
{ to , cc } = Utils . get_to_and_cc ( user , mentions , activity , " direct " )
assert length ( to ) == 2
assert length ( cc ) == 0
assert mentioned_user . ap_id in to
assert third_user . ap_id in to
end
end
end