|
|
@@ -14,6 +14,51 @@ defmodule Pleroma.Web.ActivityPub.PipelineTest do |
|
|
|
:ok |
|
|
|
end |
|
|
|
|
|
|
|
test "when given an `object_data` in meta, Federation will receive a the original activity with the `object` field set to this embedded object" do |
|
|
|
activity = insert(:note_activity) |
|
|
|
object = %{"id" => "1", "type" => "Love"} |
|
|
|
meta = [local: true, object_data: object] |
|
|
|
|
|
|
|
activity_with_object = %{activity | data: Map.put(activity.data, "object", object)} |
|
|
|
|
|
|
|
with_mocks([ |
|
|
|
{Pleroma.Web.ActivityPub.ObjectValidator, [], [validate: fn o, m -> {:ok, o, m} end]}, |
|
|
|
{ |
|
|
|
Pleroma.Web.ActivityPub.MRF, |
|
|
|
[], |
|
|
|
[filter: fn o -> {:ok, o} end] |
|
|
|
}, |
|
|
|
{ |
|
|
|
Pleroma.Web.ActivityPub.ActivityPub, |
|
|
|
[], |
|
|
|
[persist: fn o, m -> {:ok, o, m} end] |
|
|
|
}, |
|
|
|
{ |
|
|
|
Pleroma.Web.ActivityPub.SideEffects, |
|
|
|
[], |
|
|
|
[ |
|
|
|
handle: fn o, m -> {:ok, o, m} end, |
|
|
|
handle_after_transaction: fn m -> m end |
|
|
|
] |
|
|
|
}, |
|
|
|
{ |
|
|
|
Pleroma.Web.Federator, |
|
|
|
[], |
|
|
|
[publish: fn _o -> :ok end] |
|
|
|
} |
|
|
|
]) do |
|
|
|
assert {:ok, ^activity, ^meta} = |
|
|
|
Pleroma.Web.ActivityPub.Pipeline.common_pipeline(activity, meta) |
|
|
|
|
|
|
|
assert_called(Pleroma.Web.ActivityPub.ObjectValidator.validate(activity, meta)) |
|
|
|
assert_called(Pleroma.Web.ActivityPub.MRF.filter(activity)) |
|
|
|
assert_called(Pleroma.Web.ActivityPub.ActivityPub.persist(activity, meta)) |
|
|
|
assert_called(Pleroma.Web.ActivityPub.SideEffects.handle(activity, meta)) |
|
|
|
refute called(Pleroma.Web.Federator.publish(activity)) |
|
|
|
assert_called(Pleroma.Web.Federator.publish(activity_with_object)) |
|
|
|
end |
|
|
|
end |
|
|
|
|
|
|
|
test "it goes through validation, filtering, persisting, side effects and federation for local activities" do |
|
|
|
activity = insert(:note_activity) |
|
|
|
meta = [local: true] |
|
|
|