diff options
| author | sxsdv1 <sxsdv1@gmail.com> | 2019-01-12 17:52:30 +0100 | 
|---|---|---|
| committer | sxsdv1 <sxsdv1@gmail.com> | 2019-01-12 20:24:32 +0100 | 
| commit | 1eb7318831e7239ec929457f6298fb05cb461b43 (patch) | |
| tree | cb6e6206c5818a48d5349a4c2c1d4dcb20f31bdc /test | |
| parent | 19b6a8239387869c69c6885044ee488d097b723f (diff) | |
| download | pleroma-1eb7318831e7239ec929457f6298fb05cb461b43.tar.gz pleroma-1eb7318831e7239ec929457f6298fb05cb461b43.zip  | |
Prepare all types objects before serialising
Activities returned from inbox can include other types of objects like
Article
Diffstat (limited to 'test')
| -rw-r--r-- | test/support/factory.ex | 25 | ||||
| -rw-r--r-- | test/web/activity_pub/transmogrifier_test.exs | 15 | 
2 files changed, 40 insertions, 0 deletions
diff --git a/test/support/factory.ex b/test/support/factory.ex index 57fa4a79d..4ac77981a 100644 --- a/test/support/factory.ex +++ b/test/support/factory.ex @@ -57,6 +57,11 @@ defmodule Pleroma.Factory do      %Pleroma.Object{data: Map.merge(data, %{"to" => [user2.ap_id]})}    end +  def article_factory do +    note_factory() +    |> Map.put("type", "Article") +  end +    def tombstone_factory do      data = %{        "type" => "Tombstone", @@ -110,6 +115,26 @@ defmodule Pleroma.Factory do      }    end +  def article_activity_factory do +    article = insert(:article) + +    data = %{ +      "id" => Pleroma.Web.ActivityPub.Utils.generate_activity_id(), +      "type" => "Create", +      "actor" => article.data["actor"], +      "to" => article.data["to"], +      "object" => article.data, +      "published" => DateTime.utc_now() |> DateTime.to_iso8601(), +      "context" => article.data["context"] +    } + +    %Pleroma.Activity{ +      data: data, +      actor: data["actor"], +      recipients: data["to"] +    } +  end +    def announce_activity_factory do      note_activity = insert(:note_activity)      user = insert(:user) diff --git a/test/web/activity_pub/transmogrifier_test.exs b/test/web/activity_pub/transmogrifier_test.exs index a5fd87ed4..65c8ec36d 100644 --- a/test/web/activity_pub/transmogrifier_test.exs +++ b/test/web/activity_pub/transmogrifier_test.exs @@ -835,6 +835,21 @@ defmodule Pleroma.Web.ActivityPub.TransmogrifierTest do        assert is_nil(modified["object"]["announcement_count"])        assert is_nil(modified["object"]["context_id"])      end + +    test "it strips internal fields of article" do +      activity = insert(:article_activity) + +      {:ok, modified} = Transmogrifier.prepare_outgoing(activity.data) + +      assert length(modified["object"]["tag"]) == 2 + +      assert is_nil(modified["object"]["emoji"]) +      assert is_nil(modified["object"]["likes"]) +      assert is_nil(modified["object"]["like_count"]) +      assert is_nil(modified["object"]["announcements"]) +      assert is_nil(modified["object"]["announcement_count"]) +      assert is_nil(modified["object"]["context_id"]) +    end    end    describe "user upgrade" do  | 
