diff options
Diffstat (limited to 'test/web/streamer')
| -rw-r--r-- | test/web/streamer/streamer_test.exs | 97 | 
1 files changed, 64 insertions, 33 deletions
diff --git a/test/web/streamer/streamer_test.exs b/test/web/streamer/streamer_test.exs index 7166d6f0b..1cf20f1c2 100644 --- a/test/web/streamer/streamer_test.exs +++ b/test/web/streamer/streamer_test.exs @@ -20,7 +20,7 @@ defmodule Pleroma.Web.StreamerTest do    @streamer_timeout 150    @streamer_start_wait 10 -  clear_config_all([:instance, :skip_thread_containment]) +  clear_config([:instance, :skip_thread_containment])    describe "user streams" do      setup do @@ -65,6 +65,9 @@ defmodule Pleroma.Web.StreamerTest do        blocked = insert(:user)        {:ok, _user_relationship} = User.block(user, blocked) +      {:ok, activity} = CommonAPI.post(user, %{"status" => ":("}) +      {:ok, notif, _} = CommonAPI.favorite(activity.id, blocked) +        task = Task.async(fn -> refute_receive {:text, _}, @streamer_timeout end)        Streamer.add_socket( @@ -72,9 +75,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 @@ -83,6 +83,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, _}, @streamer_timeout end)        Streamer.add_socket( @@ -90,9 +95,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 @@ -101,6 +103,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, _}, @streamer_timeout end)        Streamer.add_socket( @@ -108,10 +115,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 @@ -267,6 +270,8 @@ defmodule Pleroma.Web.StreamerTest do        blocked_user = insert(:user)        {:ok, _user_relationship} = User.block(user, blocked_user) +      {:ok, activity} = CommonAPI.post(blocked_user, %{"status" => "Test"}) +        task =          Task.async(fn ->            refute_receive {:text, _}, 1_000 @@ -277,8 +282,6 @@ defmodule Pleroma.Web.StreamerTest do          user: user        } -      {:ok, activity} = CommonAPI.post(blocked_user, %{"status" => "Test"}) -        topics = %{          "public" => [fake_socket]        } @@ -335,6 +338,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 @@ -345,12 +354,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]      } @@ -367,6 +370,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 @@ -377,12 +386,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]      } @@ -401,6 +404,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 @@ -411,12 +420,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 @@ -433,6 +436,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 @@ -443,14 +449,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  | 
