diff options
author | Mark Felder <feld@FreeBSD.org> | 2020-09-10 16:02:11 -0500 |
---|---|---|
committer | Mark Felder <feld@FreeBSD.org> | 2020-09-10 16:05:22 -0500 |
commit | 55562ca9362d66553ea3638c91174bbeb6c637f1 (patch) | |
tree | bb0b57d0a40dec779b0bfbfcbf65f3b9d3bea2b3 /test/web/activity_pub/pipeline_test.exs | |
parent | 39f7fc5b8ef781c98136d1f9be50a14bff394233 (diff) | |
parent | 6316350918d1f55167fa384d55f385ff2c93e6bb (diff) | |
download | pleroma-55562ca9362d66553ea3638c91174bbeb6c637f1.tar.gz pleroma-55562ca9362d66553ea3638c91174bbeb6c637f1.zip |
Merge branch 'develop' into feature/gen-magic
Diffstat (limited to 'test/web/activity_pub/pipeline_test.exs')
-rw-r--r-- | test/web/activity_pub/pipeline_test.exs | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/test/web/activity_pub/pipeline_test.exs b/test/web/activity_pub/pipeline_test.exs index 8deb64501..f2a231eaf 100644 --- a/test/web/activity_pub/pipeline_test.exs +++ b/test/web/activity_pub/pipeline_test.exs @@ -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] |