Browse Source

tests: streamer: add a test for blocked transitive activities

tags/v1.1.4
Ariadne Conill 4 years ago
parent
commit
4305ddef0a
1 changed files with 56 additions and 18 deletions
  1. +56
    -18
      test/web/streamer/streamer_test.exs

+ 56
- 18
test/web/streamer/streamer_test.exs View File

@@ -233,30 +233,68 @@ defmodule Pleroma.Web.StreamerTest do
end
end

test "it doesn't send to blocked users" do
user = insert(:user)
blocked_user = insert(:user)
{:ok, user} = User.block(user, blocked_user)
describe "blocks" do
test "it doesn't send messages involving blocked users" do
user = insert(:user)
blocked_user = insert(:user)
{:ok, user} = User.block(user, blocked_user)

task =
Task.async(fn ->
refute_receive {:text, _}, 1_000
end)
task =
Task.async(fn ->
refute_receive {:text, _}, 1_000
end)

fake_socket = %StreamerSocket{
transport_pid: task.pid,
user: user
}
fake_socket = %StreamerSocket{
transport_pid: task.pid,
user: user
}

{:ok, activity} = CommonAPI.post(blocked_user, %{"status" => "Test"})
{:ok, activity} = CommonAPI.post(blocked_user, %{"status" => "Test"})

topics = %{
"public" => [fake_socket]
}
topics = %{
"public" => [fake_socket]
}

Worker.push_to_socket(topics, "public", activity)
Worker.push_to_socket(topics, "public", activity)

Task.await(task)
Task.await(task)
end

test "it doesn't send messages transitively involving blocked users" do
blocker = insert(:user)
blockee = insert(:user)
friend = insert(:user)

task =
Task.async(fn ->
refute_receive {:text, _}, 1_000
end)

fake_socket = %StreamerSocket{
transport_pid: task.pid,
user: blocker
}

topics = %{
"public" => [fake_socket]
}

{:ok, blocker} = User.block(blocker, blockee)

{:ok, activity_one} = CommonAPI.post(friend, %{"status" => "hey! @#{blockee.nickname}"})

Worker.push_to_socket(topics, "public", activity_one)

{:ok, activity_two} = CommonAPI.post(blockee, %{"status" => "hey! @#{friend.nickname}"})

Worker.push_to_socket(topics, "public", activity_two)

{:ok, activity_three} = CommonAPI.post(blockee, %{"status" => "hey! @#{blocker.nickname}"})

Worker.push_to_socket(topics, "public", activity_three)

Task.await(task)
end
end

test "it doesn't send unwanted DMs to list" do


Loading…
Cancel
Save