diff options
Diffstat (limited to 'test/web/fed_sockets')
| -rw-r--r-- | test/web/fed_sockets/fed_registry_test.exs | 124 | ||||
| -rw-r--r-- | test/web/fed_sockets/fetch_registry_test.exs | 67 | ||||
| -rw-r--r-- | test/web/fed_sockets/socket_info_test.exs | 118 | 
3 files changed, 0 insertions, 309 deletions
diff --git a/test/web/fed_sockets/fed_registry_test.exs b/test/web/fed_sockets/fed_registry_test.exs deleted file mode 100644 index 19ac874d6..000000000 --- a/test/web/fed_sockets/fed_registry_test.exs +++ /dev/null @@ -1,124 +0,0 @@ -# Pleroma: A lightweight social networking server -# Copyright © 2017-2020 Pleroma Authors <https://pleroma.social/> -# SPDX-License-Identifier: AGPL-3.0-only - -defmodule Pleroma.Web.FedSockets.FedRegistryTest do -  use ExUnit.Case - -  alias Pleroma.Web.FedSockets -  alias Pleroma.Web.FedSockets.FedRegistry -  alias Pleroma.Web.FedSockets.SocketInfo - -  @good_domain "http://good.domain" -  @good_domain_origin "good.domain:80" - -  setup do -    start_supervised({Pleroma.Web.FedSockets.Supervisor, []}) -    build_test_socket(@good_domain) -    Process.sleep(10) - -    :ok -  end - -  describe "add_fed_socket/1 without conflicting sockets" do -    test "can be added" do -      Process.sleep(10) -      assert {:ok, %SocketInfo{origin: origin}} = FedRegistry.get_fed_socket(@good_domain_origin) -      assert origin == "good.domain:80" -    end - -    test "multiple origins can be added" do -      build_test_socket("http://anothergood.domain") -      Process.sleep(10) - -      assert {:ok, %SocketInfo{origin: origin_1}} = -               FedRegistry.get_fed_socket(@good_domain_origin) - -      assert {:ok, %SocketInfo{origin: origin_2}} = -               FedRegistry.get_fed_socket("anothergood.domain:80") - -      assert origin_1 == "good.domain:80" -      assert origin_2 == "anothergood.domain:80" -      assert FedRegistry.list_all() |> Enum.count() == 2 -    end -  end - -  describe "add_fed_socket/1 when duplicate sockets conflict" do -    setup do -      build_test_socket(@good_domain) -      build_test_socket(@good_domain) -      Process.sleep(10) -      :ok -    end - -    test "will be ignored" do -      assert {:ok, %SocketInfo{origin: origin, pid: pid_one}} = -               FedRegistry.get_fed_socket(@good_domain_origin) - -      assert origin == "good.domain:80" - -      assert FedRegistry.list_all() |> Enum.count() == 1 -    end - -    test "the newer process will be closed" do -      pid_two = build_test_socket(@good_domain) - -      assert {:ok, %SocketInfo{origin: origin, pid: pid_one}} = -               FedRegistry.get_fed_socket(@good_domain_origin) - -      assert origin == "good.domain:80" -      Process.sleep(10) - -      refute Process.alive?(pid_two) - -      assert FedRegistry.list_all() |> Enum.count() == 1 -    end -  end - -  describe "get_fed_socket/1" do -    test "returns missing for unknown hosts" do -      assert {:error, :missing} = FedRegistry.get_fed_socket("not_a_dmoain") -    end - -    test "returns rejected for hosts previously rejected" do -      "rejected.domain:80" -      |> FedSockets.uri_for_origin() -      |> FedRegistry.set_host_rejected() - -      assert {:error, :rejected} = FedRegistry.get_fed_socket("rejected.domain:80") -    end - -    test "can retrieve a previously added SocketInfo" do -      build_test_socket(@good_domain) -      Process.sleep(10) -      assert {:ok, %SocketInfo{origin: origin}} = FedRegistry.get_fed_socket(@good_domain_origin) -      assert origin == "good.domain:80" -    end - -    test "removes references to SocketInfos when the process crashes" do -      assert {:ok, %SocketInfo{origin: origin, pid: pid}} = -               FedRegistry.get_fed_socket(@good_domain_origin) - -      assert origin == "good.domain:80" - -      Process.exit(pid, :testing) -      Process.sleep(100) -      assert {:error, :missing} = FedRegistry.get_fed_socket(@good_domain_origin) -    end -  end - -  def build_test_socket(uri) do -    Kernel.spawn(fn -> fed_socket_almost(uri) end) -  end - -  def fed_socket_almost(origin) do -    FedRegistry.add_fed_socket(origin) - -    receive do -      :close -> -        :ok -    after -      5_000 -> :timeout -    end -  end -end diff --git a/test/web/fed_sockets/fetch_registry_test.exs b/test/web/fed_sockets/fetch_registry_test.exs deleted file mode 100644 index 7bd2d995a..000000000 --- a/test/web/fed_sockets/fetch_registry_test.exs +++ /dev/null @@ -1,67 +0,0 @@ -# Pleroma: A lightweight social networking server -# Copyright © 2017-2020 Pleroma Authors <https://pleroma.social/> -# SPDX-License-Identifier: AGPL-3.0-only - -defmodule Pleroma.Web.FedSockets.FetchRegistryTest do -  use ExUnit.Case - -  alias Pleroma.Web.FedSockets.FetchRegistry -  alias Pleroma.Web.FedSockets.FetchRegistry.FetchRegistryData - -  @json_message "hello" -  @json_reply "hello back" - -  setup do -    start_supervised( -      {Pleroma.Web.FedSockets.Supervisor, -       [ -         ping_interval: 8, -         connection_duration: 15, -         rejection_duration: 5, -         fed_socket_fetches: [default: 10, interval: 10] -       ]} -    ) - -    :ok -  end - -  test "fetches can be stored" do -    uuid = FetchRegistry.register_fetch(@json_message) - -    assert {:error, :waiting} = FetchRegistry.check_fetch(uuid) -  end - -  test "fetches can return" do -    uuid = FetchRegistry.register_fetch(@json_message) -    task = Task.async(fn -> FetchRegistry.register_fetch_received(uuid, @json_reply) end) - -    assert {:error, :waiting} = FetchRegistry.check_fetch(uuid) -    Task.await(task) - -    assert {:ok, %FetchRegistryData{received_json: received_json}} = -             FetchRegistry.check_fetch(uuid) - -    assert received_json == @json_reply -  end - -  test "fetches are deleted once popped from stack" do -    uuid = FetchRegistry.register_fetch(@json_message) -    task = Task.async(fn -> FetchRegistry.register_fetch_received(uuid, @json_reply) end) -    Task.await(task) - -    assert {:ok, %FetchRegistryData{received_json: received_json}} = -             FetchRegistry.check_fetch(uuid) - -    assert received_json == @json_reply -    assert {:ok, @json_reply} = FetchRegistry.pop_fetch(uuid) - -    assert {:error, :missing} = FetchRegistry.check_fetch(uuid) -  end - -  test "fetches can time out" do -    uuid = FetchRegistry.register_fetch(@json_message) -    assert {:error, :waiting} = FetchRegistry.check_fetch(uuid) -    Process.sleep(500) -    assert {:error, :missing} = FetchRegistry.check_fetch(uuid) -  end -end diff --git a/test/web/fed_sockets/socket_info_test.exs b/test/web/fed_sockets/socket_info_test.exs deleted file mode 100644 index db3d6edcd..000000000 --- a/test/web/fed_sockets/socket_info_test.exs +++ /dev/null @@ -1,118 +0,0 @@ -# Pleroma: A lightweight social networking server -# Copyright © 2017-2020 Pleroma Authors <https://pleroma.social/> -# SPDX-License-Identifier: AGPL-3.0-only - -defmodule Pleroma.Web.FedSockets.SocketInfoTest do -  use ExUnit.Case - -  alias Pleroma.Web.FedSockets -  alias Pleroma.Web.FedSockets.SocketInfo - -  describe "uri_for_origin" do -    test "provides the fed_socket URL given the origin information" do -      endpoint = "example.com:4000" -      assert FedSockets.uri_for_origin(endpoint) =~ "ws://" -      assert FedSockets.uri_for_origin(endpoint) =~ endpoint -    end -  end - -  describe "origin" do -    test "will provide the origin field given a url" do -      endpoint = "example.com:4000" -      assert SocketInfo.origin("ws://#{endpoint}") == endpoint -      assert SocketInfo.origin("http://#{endpoint}") == endpoint -      assert SocketInfo.origin("https://#{endpoint}") == endpoint -    end - -    test "will proide the origin field given a uri" do -      endpoint = "example.com:4000" -      uri = URI.parse("http://#{endpoint}") - -      assert SocketInfo.origin(uri) == endpoint -    end -  end - -  describe "touch" do -    test "will update the TTL" do -      endpoint = "example.com:4000" -      socket = SocketInfo.build("ws://#{endpoint}") -      Process.sleep(2) -      touched_socket = SocketInfo.touch(socket) - -      assert socket.connected_until < touched_socket.connected_until -    end -  end - -  describe "expired?" do -    setup do -      start_supervised( -        {Pleroma.Web.FedSockets.Supervisor, -         [ -           ping_interval: 8, -           connection_duration: 5, -           rejection_duration: 5, -           fed_socket_rejections: [lazy: true] -         ]} -      ) - -      :ok -    end - -    test "tests if the TTL is exceeded" do -      endpoint = "example.com:4000" -      socket = SocketInfo.build("ws://#{endpoint}") -      refute SocketInfo.expired?(socket) -      Process.sleep(10) - -      assert SocketInfo.expired?(socket) -    end -  end - -  describe "creating outgoing connection records" do -    test "can be passed a string" do -      assert %{conn_pid: :pid, origin: _origin} = SocketInfo.build("example.com:4000", :pid) -    end - -    test "can be passed a URI" do -      uri = URI.parse("http://example.com:4000") -      assert %{conn_pid: :pid, origin: origin} = SocketInfo.build(uri, :pid) -      assert origin =~ "example.com:4000" -    end - -    test "will include the port number" do -      assert %{conn_pid: :pid, origin: origin} = SocketInfo.build("http://example.com:4000", :pid) - -      assert origin =~ ":4000" -    end - -    test "will provide the port if missing" do -      assert %{conn_pid: :pid, origin: "example.com:80"} = -               SocketInfo.build("http://example.com", :pid) - -      assert %{conn_pid: :pid, origin: "example.com:443"} = -               SocketInfo.build("https://example.com", :pid) -    end -  end - -  describe "creating incoming connection records" do -    test "can be passed a string" do -      assert %{pid: _, origin: _origin} = SocketInfo.build("example.com:4000") -    end - -    test "can be passed a URI" do -      uri = URI.parse("example.com:4000") -      assert %{pid: _, origin: _origin} = SocketInfo.build(uri) -    end - -    test "will include the port number" do -      assert %{pid: _, origin: origin} = SocketInfo.build("http://example.com:4000") - -      assert origin =~ ":4000" -    end - -    test "will provide the port if missing" do -      assert %{pid: _, origin: "example.com:80"} = SocketInfo.build("http://example.com") -      assert %{pid: _, origin: "example.com:443"} = SocketInfo.build("https://example.com") -    end -  end -end  | 
