diff options
| author | KokaKiwi <kokakiwi@kokakiwi.net> | 2018-11-27 01:14:43 +0100 | 
|---|---|---|
| committer | KokaKiwi <kokakiwi@kokakiwi.net> | 2018-11-27 20:50:19 +0100 | 
| commit | 87098d1676b4521f83804c19a94d34f0cd8a8109 (patch) | |
| tree | c2c21fd9af5e22e9a67155d047f0b1085d370697 /test/web | |
| parent | 41ff86ca1d56868d51af0a4411beec4f63fa6ba0 (diff) | |
| download | pleroma-87098d1676b4521f83804c19a94d34f0cd8a8109.tar.gz pleroma-87098d1676b4521f83804c19a94d34f0cd8a8109.zip  | |
Streamer: Don't send unwanted DMs to list streams
Diffstat (limited to 'test/web')
| -rw-r--r-- | test/web/streamer_test.exs | 109 | 
1 files changed, 108 insertions, 1 deletions
diff --git a/test/web/streamer_test.exs b/test/web/streamer_test.exs index 47d491d1b..df58441f0 100644 --- a/test/web/streamer_test.exs +++ b/test/web/streamer_test.exs @@ -2,7 +2,7 @@ defmodule Pleroma.Web.StreamerTest do    use Pleroma.DataCase    alias Pleroma.Web.Streamer -  alias Pleroma.User +  alias Pleroma.{List, User}    alias Pleroma.Web.CommonAPI    import Pleroma.Factory @@ -60,4 +60,111 @@ defmodule Pleroma.Web.StreamerTest do      Task.await(task)    end + +  test "it doesn't send unwanted DMs to list" do +    user_a = insert(:user) +    user_b = insert(:user) +    user_c = insert(:user) + +    {:ok, user_a} = User.follow(user_a, user_b) + +    {:ok, list} = List.create("Test", user_a) +    {:ok, list} = List.follow(list, user_b) + +    task = +      Task.async(fn -> +        refute_receive {:text, _}, 1_000 +      end) + +    fake_socket = %{ +      transport_pid: task.pid, +      assigns: %{ +        user: user_a +      } +    } + +    {:ok, activity} = +      CommonAPI.post(user_b, %{ +        "status" => "@#{user_c.nickname} Test", +        "visibility" => "direct" +      }) + +    topics = %{ +      "list:#{list.id}" => [fake_socket] +    } + +    Streamer.handle_cast(%{action: :stream, topic: "list", item: activity}, topics) + +    Task.await(task) +  end + +  test "it doesn't send unwanted private posts to list" do +    user_a = insert(:user) +    user_b = insert(:user) + +    {:ok, list} = List.create("Test", user_a) +    {:ok, list} = List.follow(list, user_b) + +    task = +      Task.async(fn -> +        refute_receive {:text, _}, 1_000 +      end) + +    fake_socket = %{ +      transport_pid: task.pid, +      assigns: %{ +        user: user_a +      } +    } + +    {:ok, activity} = +      CommonAPI.post(user_b, %{ +        "status" => "Test", +        "visibility" => "private" +      }) + +    topics = %{ +      "list:#{list.id}" => [fake_socket] +    } + +    Streamer.handle_cast(%{action: :stream, topic: "list", item: activity}, topics) + +    Task.await(task) +  end + +  test "it send wanted private posts to list" do +    user_a = insert(:user) +    user_b = insert(:user) + +    {:ok, user_a} = User.follow(user_a, user_b) + +    {:ok, list} = List.create("Test", user_a) +    {:ok, list} = List.follow(list, user_b) + +    task = +      Task.async(fn -> +        assert_receive {:text, _}, 1_000 +      end) + +    fake_socket = %{ +      transport_pid: task.pid, +      assigns: %{ +        user: user_a +      } +    } + +    {:ok, activity} = +      CommonAPI.post(user_b, %{ +        "status" => "Test", +        "visibility" => "private" +      }) + +    topics = %{ +      "list:#{list.id}" => [fake_socket] +    } + +    Streamer.handle_cast(%{action: :stream, topic: "list", item: activity}, topics) + +    Task.await(task) +  end  end  | 
