Browse Source

Merge branch 'feature/push-subject-for-dm' into 'develop'

Direct messages should provide a distinct push notification subject

See merge request pleroma/pleroma!1864
merge-requests/1875/head
kaniini 4 years ago
parent
commit
6281e4795a
2 changed files with 34 additions and 5 deletions
  1. +4
    -0
      lib/pleroma/web/push/impl.ex
  2. +30
    -5
      test/web/push/impl_test.exs

+ 4
- 0
lib/pleroma/web/push/impl.ex View File

@@ -125,6 +125,10 @@ defmodule Pleroma.Web.Push.Impl do
end end
end end


def format_title(%{activity: %{data: %{"directMessage" => true}}}) do
"New Direct Message"
end

def format_title(%{activity: %{data: %{"type" => type}}}) do def format_title(%{activity: %{data: %{"type" => type}}}) do
case type do case type do
"Create" -> "New Mention" "Create" -> "New Mention"


+ 30
- 5
test/web/push/impl_test.exs View File

@@ -84,7 +84,7 @@ defmodule Pleroma.Web.Push.ImplTest do
) == :error ) == :error
end end


test "delete subsciption if restult send message between 400..500" do
test "delete subscription if result send message between 400..500" do
subscription = insert(:push_subscription) subscription = insert(:push_subscription)


assert Impl.push_message( assert Impl.push_message(
@@ -97,7 +97,7 @@ defmodule Pleroma.Web.Push.ImplTest do
refute Pleroma.Repo.get(Subscription, subscription.id) refute Pleroma.Repo.get(Subscription, subscription.id)
end end


test "renders body for create activity" do
test "renders title and body for create activity" do
user = insert(:user, nickname: "Bob") user = insert(:user, nickname: "Bob")


{:ok, activity} = {:ok, activity} =
@@ -116,18 +116,24 @@ defmodule Pleroma.Web.Push.ImplTest do
object object
) == ) ==
"@Bob: Lorem ipsum dolor sit amet, consectetur adipiscing elit. Fusce sagittis fini..." "@Bob: Lorem ipsum dolor sit amet, consectetur adipiscing elit. Fusce sagittis fini..."

assert Impl.format_title(%{activity: activity}) ==
"New Mention"
end end


test "renders body for follow activity" do
test "renders title and body for follow activity" do
user = insert(:user, nickname: "Bob") user = insert(:user, nickname: "Bob")
other_user = insert(:user) other_user = insert(:user)
{:ok, _, _, activity} = CommonAPI.follow(user, other_user) {:ok, _, _, activity} = CommonAPI.follow(user, other_user)
object = Object.normalize(activity) object = Object.normalize(activity)


assert Impl.format_body(%{activity: activity}, user, object) == "@Bob has followed you" assert Impl.format_body(%{activity: activity}, user, object) == "@Bob has followed you"

assert Impl.format_title(%{activity: activity}) ==
"New Follower"
end end


test "renders body for announce activity" do
test "renders title and body for announce activity" do
user = insert(:user) user = insert(:user)


{:ok, activity} = {:ok, activity} =
@@ -141,9 +147,12 @@ defmodule Pleroma.Web.Push.ImplTest do


assert Impl.format_body(%{activity: announce_activity}, user, object) == assert Impl.format_body(%{activity: announce_activity}, user, object) ==
"@#{user.nickname} repeated: Lorem ipsum dolor sit amet, consectetur adipiscing elit. Fusce sagittis fini..." "@#{user.nickname} repeated: Lorem ipsum dolor sit amet, consectetur adipiscing elit. Fusce sagittis fini..."

assert Impl.format_title(%{activity: announce_activity}) ==
"New Repeat"
end end


test "renders body for like activity" do
test "renders title and body for like activity" do
user = insert(:user, nickname: "Bob") user = insert(:user, nickname: "Bob")


{:ok, activity} = {:ok, activity} =
@@ -156,5 +165,21 @@ defmodule Pleroma.Web.Push.ImplTest do
object = Object.normalize(activity) object = Object.normalize(activity)


assert Impl.format_body(%{activity: activity}, user, object) == "@Bob has favorited your post" assert Impl.format_body(%{activity: activity}, user, object) == "@Bob has favorited your post"

assert Impl.format_title(%{activity: activity}) ==
"New Favorite"
end

test "renders title for create activity with direct visibility" do
user = insert(:user, nickname: "Bob")

{:ok, activity} =
CommonAPI.post(user, %{
"visibility" => "direct",
"status" => "This is just between you and me, pal"
})

assert Impl.format_title(%{activity: activity}) ==
"New Direct Message"
end end
end end

Loading…
Cancel
Save