Fix fix_explicit_addressing moving follower collection to cc and add tests for it
This commit is contained in:
parent
ab3f3af7cf
commit
a9eaa55885
@ -93,7 +93,10 @@ defmodule Pleroma.Web.ActivityPub.Transmogrifier do
|
|||||||
object
|
object
|
||||||
|> Utils.determine_explicit_mentions()
|
|> Utils.determine_explicit_mentions()
|
||||||
|
|
||||||
explicit_mentions = explicit_mentions ++ ["https://www.w3.org/ns/activitystreams#Public"]
|
follower_collection = User.get_cached_by_ap_id(Containment.get_actor(object)).follower_address
|
||||||
|
|
||||||
|
explicit_mentions =
|
||||||
|
explicit_mentions ++ ["https://www.w3.org/ns/activitystreams#Public", follower_collection]
|
||||||
|
|
||||||
object
|
object
|
||||||
|> fix_explicit_addressing(explicit_mentions)
|
|> fix_explicit_addressing(explicit_mentions)
|
||||||
|
@ -1209,4 +1209,44 @@ defmodule Pleroma.Web.ActivityPub.TransmogrifierTest do
|
|||||||
{:ok, _} = Transmogrifier.prepare_outgoing(activity.data)
|
{:ok, _} = Transmogrifier.prepare_outgoing(activity.data)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
describe "fix_explicit_addressing" do
|
||||||
|
test "moves non-explicitly mentioned actors to cc" do
|
||||||
|
user = insert(:user)
|
||||||
|
|
||||||
|
explicitly_mentioned_actors = [
|
||||||
|
"https://pleroma.gold/users/user1",
|
||||||
|
"https://pleroma.gold/user2"
|
||||||
|
]
|
||||||
|
|
||||||
|
object = %{
|
||||||
|
"actor" => user.ap_id,
|
||||||
|
"to" => explicitly_mentioned_actors ++ ["https://social.beepboop.ga/users/dirb"],
|
||||||
|
"cc" => [],
|
||||||
|
"tag" =>
|
||||||
|
Enum.map(explicitly_mentioned_actors, fn href ->
|
||||||
|
%{"type" => "Mention", "href" => href}
|
||||||
|
end)
|
||||||
|
}
|
||||||
|
|
||||||
|
fixed_object = Transmogrifier.fix_explicit_addressing(object)
|
||||||
|
assert Enum.all?(explicitly_mentioned_actors, &(&1 in fixed_object["to"]))
|
||||||
|
refute "https://social.beepboop.ga/users/dirb" in fixed_object["to"]
|
||||||
|
assert "https://social.beepboop.ga/users/dirb" in fixed_object["cc"]
|
||||||
|
end
|
||||||
|
|
||||||
|
test "does not move actor's follower collection to cc" do
|
||||||
|
user = insert(:user)
|
||||||
|
|
||||||
|
object = %{
|
||||||
|
"actor" => user.ap_id,
|
||||||
|
"to" => [user.follower_address],
|
||||||
|
"cc" => []
|
||||||
|
}
|
||||||
|
|
||||||
|
fixed_object = Transmogrifier.fix_explicit_addressing(object)
|
||||||
|
assert user.follower_address in fixed_object["to"]
|
||||||
|
refute user.follower_address in fixed_object["cc"]
|
||||||
|
end
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
Loading…
Reference in New Issue
Block a user