diff options
Diffstat (limited to 'test/web')
| -rw-r--r-- | test/web/metadata/utils_test.exs | 32 | ||||
| -rw-r--r-- | test/web/streamer/streamer_test.exs | 95 | 
2 files changed, 95 insertions, 32 deletions
diff --git a/test/web/metadata/utils_test.exs b/test/web/metadata/utils_test.exs new file mode 100644 index 000000000..7547f2932 --- /dev/null +++ b/test/web/metadata/utils_test.exs @@ -0,0 +1,32 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2019 Pleroma Authors <https://pleroma.social/> +# SPDX-License-Identifier: AGPL-3.0-only + +defmodule Pleroma.Web.Metadata.UtilsTest do +  use Pleroma.DataCase +  import Pleroma.Factory +  alias Pleroma.Web.Metadata.Utils + +  describe "scrub_html_and_truncate/1" do +    test "it returns text without encode HTML" do +      user = insert(:user) + +      note = +        insert(:note, %{ +          data: %{ +            "actor" => user.ap_id, +            "id" => "https://pleroma.gov/objects/whatever", +            "content" => "Pleroma's really cool!" +          } +        }) + +      assert Utils.scrub_html_and_truncate(note) == "Pleroma's really cool!" +    end +  end + +  describe "scrub_html_and_truncate/2" do +    test "it returns text without encode HTML" do +      assert Utils.scrub_html_and_truncate("Pleroma's really cool!") == "Pleroma's really cool!" +    end +  end +end diff --git a/test/web/streamer/streamer_test.exs b/test/web/streamer/streamer_test.exs index 601f6df49..4818f4c4e 100644 --- a/test/web/streamer/streamer_test.exs +++ b/test/web/streamer/streamer_test.exs @@ -60,6 +60,9 @@ defmodule Pleroma.Web.StreamerTest do        blocked = insert(:user)        {:ok, user} = User.block(user, blocked) +      {:ok, activity} = CommonAPI.post(user, %{"status" => ":("}) +      {:ok, notif, _} = CommonAPI.favorite(activity.id, blocked) +        task = Task.async(fn -> refute_receive {:text, _}, 4_000 end)        Streamer.add_socket( @@ -67,9 +70,6 @@ defmodule Pleroma.Web.StreamerTest do          %{transport_pid: task.pid, assigns: %{user: user}}        ) -      {:ok, activity} = CommonAPI.post(user, %{"status" => ":("}) -      {:ok, notif, _} = CommonAPI.favorite(activity.id, blocked) -        Streamer.stream("user:notification", notif)        Task.await(task)      end @@ -78,6 +78,11 @@ defmodule Pleroma.Web.StreamerTest do        user: user      } do        user2 = insert(:user) + +      {:ok, activity} = CommonAPI.post(user, %{"status" => "super hot take"}) +      {:ok, activity} = CommonAPI.add_mute(user, activity) +      {:ok, notif, _} = CommonAPI.favorite(activity.id, user2) +        task = Task.async(fn -> refute_receive {:text, _}, 4_000 end)        Streamer.add_socket( @@ -85,9 +90,6 @@ defmodule Pleroma.Web.StreamerTest do          %{transport_pid: task.pid, assigns: %{user: user}}        ) -      {:ok, activity} = CommonAPI.post(user, %{"status" => "super hot take"}) -      {:ok, activity} = CommonAPI.add_mute(user, activity) -      {:ok, notif, _} = CommonAPI.favorite(activity.id, user2)        Streamer.stream("user:notification", notif)        Task.await(task)      end @@ -96,6 +98,11 @@ defmodule Pleroma.Web.StreamerTest do        user: user      } do        user2 = insert(:user, %{ap_id: "https://hecking-lewd-place.com/user/meanie"}) + +      {:ok, user} = User.block_domain(user, "hecking-lewd-place.com") +      {:ok, activity} = CommonAPI.post(user, %{"status" => "super hot take"}) +      {:ok, notif, _} = CommonAPI.favorite(activity.id, user2) +        task = Task.async(fn -> refute_receive {:text, _}, 4_000 end)        Streamer.add_socket( @@ -103,10 +110,6 @@ defmodule Pleroma.Web.StreamerTest do          %{transport_pid: task.pid, assigns: %{user: user}}        ) -      {:ok, user} = User.block_domain(user, "hecking-lewd-place.com") -      {:ok, activity} = CommonAPI.post(user, %{"status" => "super hot take"}) -      {:ok, notif, _} = CommonAPI.favorite(activity.id, user2) -        Streamer.stream("user:notification", notif)        Task.await(task)      end @@ -257,6 +260,8 @@ defmodule Pleroma.Web.StreamerTest do        blocked_user = insert(:user)        {:ok, user} = User.block(user, blocked_user) +      {:ok, activity} = CommonAPI.post(blocked_user, %{"status" => "Test"}) +        task =          Task.async(fn ->            refute_receive {:text, _}, 1_000 @@ -267,8 +272,6 @@ defmodule Pleroma.Web.StreamerTest do          user: user        } -      {:ok, activity} = CommonAPI.post(blocked_user, %{"status" => "Test"}) -        topics = %{          "public" => [fake_socket]        } @@ -325,6 +328,12 @@ defmodule Pleroma.Web.StreamerTest do      {:ok, list} = List.create("Test", user_a)      {:ok, list} = List.follow(list, user_b) +    {:ok, activity} = +      CommonAPI.post(user_b, %{ +        "status" => "@#{user_c.nickname} Test", +        "visibility" => "direct" +      }) +      task =        Task.async(fn ->          refute_receive {:text, _}, 1_000 @@ -335,12 +344,6 @@ defmodule Pleroma.Web.StreamerTest do        user: user_a      } -    {:ok, activity} = -      CommonAPI.post(user_b, %{ -        "status" => "@#{user_c.nickname} Test", -        "visibility" => "direct" -      }) -      topics = %{        "list:#{list.id}" => [fake_socket]      } @@ -357,6 +360,12 @@ defmodule Pleroma.Web.StreamerTest do      {:ok, list} = List.create("Test", user_a)      {:ok, list} = List.follow(list, user_b) +    {:ok, activity} = +      CommonAPI.post(user_b, %{ +        "status" => "Test", +        "visibility" => "private" +      }) +      task =        Task.async(fn ->          refute_receive {:text, _}, 1_000 @@ -367,12 +376,6 @@ defmodule Pleroma.Web.StreamerTest do        user: user_a      } -    {:ok, activity} = -      CommonAPI.post(user_b, %{ -        "status" => "Test", -        "visibility" => "private" -      }) -      topics = %{        "list:#{list.id}" => [fake_socket]      } @@ -391,6 +394,12 @@ defmodule Pleroma.Web.StreamerTest do      {:ok, list} = List.create("Test", user_a)      {:ok, list} = List.follow(list, user_b) +    {:ok, activity} = +      CommonAPI.post(user_b, %{ +        "status" => "Test", +        "visibility" => "private" +      }) +      task =        Task.async(fn ->          assert_receive {:text, _}, 1_000 @@ -401,12 +410,6 @@ defmodule Pleroma.Web.StreamerTest do        user: user_a      } -    {:ok, activity} = -      CommonAPI.post(user_b, %{ -        "status" => "Test", -        "visibility" => "private" -      }) -      Streamer.add_socket(        "list:#{list.id}",        fake_socket @@ -423,6 +426,9 @@ defmodule Pleroma.Web.StreamerTest do      user3 = insert(:user)      CommonAPI.hide_reblogs(user1, user2) +    {:ok, create_activity} = CommonAPI.post(user3, %{"status" => "I'm kawen"}) +    {:ok, announce_activity, _} = CommonAPI.repeat(create_activity.id, user2) +      task =        Task.async(fn ->          refute_receive {:text, _}, 1_000 @@ -433,14 +439,39 @@ defmodule Pleroma.Web.StreamerTest do        user: user1      } +    topics = %{ +      "public" => [fake_socket] +    } + +    Worker.push_to_socket(topics, "public", announce_activity) + +    Task.await(task) +  end + +  test "it does send non-reblog notification for reblog-muted actors" do +    user1 = insert(:user) +    user2 = insert(:user) +    user3 = insert(:user) +    CommonAPI.hide_reblogs(user1, user2) +      {:ok, create_activity} = CommonAPI.post(user3, %{"status" => "I'm kawen"}) -    {:ok, announce_activity, _} = CommonAPI.repeat(create_activity.id, user2) +    {:ok, favorite_activity, _} = CommonAPI.favorite(create_activity.id, user2) + +    task = +      Task.async(fn -> +        assert_receive {:text, _}, 1_000 +      end) + +    fake_socket = %StreamerSocket{ +      transport_pid: task.pid, +      user: user1 +    }      topics = %{        "public" => [fake_socket]      } -    Worker.push_to_socket(topics, "public", announce_activity) +    Worker.push_to_socket(topics, "public", favorite_activity)      Task.await(task)    end  | 
