diff options
| author | lambda <pleromagit@rogerbraun.net> | 2018-11-28 21:10:20 +0000 | 
|---|---|---|
| committer | lambda <pleromagit@rogerbraun.net> | 2018-11-28 21:10:20 +0000 | 
| commit | 73101c1fc1d8903bb002b920766a825e2f5434d4 (patch) | |
| tree | c2c21fd9af5e22e9a67155d047f0b1085d370697 /test | |
| parent | 7049ed593698b46a14d8f88537d470b3a306f79b (diff) | |
| parent | 87098d1676b4521f83804c19a94d34f0cd8a8109 (diff) | |
| download | pleroma-73101c1fc1d8903bb002b920766a825e2f5434d4.tar.gz pleroma-73101c1fc1d8903bb002b920766a825e2f5434d4.zip | |
Merge branch 'fix-list-stream-privacy' into 'develop'
Streamer: Don't send unwanted DMs to list streams
See merge request pleroma/pleroma!478
Diffstat (limited to 'test')
| -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 | 
