diff options
| -rw-r--r-- | lib/pleroma/web/push/impl.ex | 7 | ||||
| -rw-r--r-- | test/web/push/impl_test.exs | 25 | 
2 files changed, 32 insertions, 0 deletions
diff --git a/lib/pleroma/web/push/impl.ex b/lib/pleroma/web/push/impl.ex index 006a242af..cdb827e76 100644 --- a/lib/pleroma/web/push/impl.ex +++ b/lib/pleroma/web/push/impl.ex @@ -124,6 +124,13 @@ defmodule Pleroma.Web.Push.Impl do    def format_body(activity, actor, object, mastodon_type \\ nil) +  def format_body(_activity, actor, %{data: %{"type" => "ChatMessage", "content" => content}}, _) do +    case content do +      nil -> "@#{actor.nickname}: (Attachment)" +      content -> "@#{actor.nickname}: #{Utils.scrub_html_and_truncate(content, 80)}" +    end +  end +    def format_body(          %{activity: %{data: %{"type" => "Create"}}},          actor, diff --git a/test/web/push/impl_test.exs b/test/web/push/impl_test.exs index 8fb7faaa5..b48952b29 100644 --- a/test/web/push/impl_test.exs +++ b/test/web/push/impl_test.exs @@ -8,6 +8,7 @@ defmodule Pleroma.Web.Push.ImplTest do    alias Pleroma.Notification    alias Pleroma.Object    alias Pleroma.User +  alias Pleroma.Web.ActivityPub.ActivityPub    alias Pleroma.Web.CommonAPI    alias Pleroma.Web.Push.Impl    alias Pleroma.Web.Push.Subscription @@ -213,6 +214,30 @@ defmodule Pleroma.Web.Push.ImplTest do               }      end +    test "builds content for chat messages with no content" do +      user = insert(:user) +      recipient = insert(:user) + +      file = %Plug.Upload{ +        content_type: "image/jpg", +        path: Path.absname("test/fixtures/image.jpg"), +        filename: "an_image.jpg" +      } + +      {:ok, upload} = ActivityPub.upload(file, actor: user.ap_id) + +      {:ok, chat} = CommonAPI.post_chat_message(user, recipient, nil, media_id: upload.id) +      object = Object.normalize(chat, false) +      [notification] = Notification.for_user(recipient) + +      res = Impl.build_content(notification, user, object) + +      assert res == %{ +               body: "@#{user.nickname}: (Attachment)", +               title: "New Chat Message" +             } +    end +      test "hides details for notifications when privacy option enabled" do        user = insert(:user, nickname: "Bob")        user2 = insert(:user, nickname: "Rob", notification_settings: %{privacy_option: true})  | 
