diff options
Diffstat (limited to 'test/http')
| -rw-r--r-- | test/http/adapter_helper/gun_test.exs | 174 | ||||
| -rw-r--r-- | test/http/connection_test.exs | 135 | 
2 files changed, 0 insertions, 309 deletions
diff --git a/test/http/adapter_helper/gun_test.exs b/test/http/adapter_helper/gun_test.exs index 2e961826e..80589c73d 100644 --- a/test/http/adapter_helper/gun_test.exs +++ b/test/http/adapter_helper/gun_test.exs @@ -9,24 +9,10 @@ defmodule Pleroma.HTTP.AdapterHelper.GunTest do    import Mox    alias Pleroma.Config -  alias Pleroma.Gun.Conn    alias Pleroma.HTTP.AdapterHelper.Gun -  alias Pleroma.Pool.Connections    setup :verify_on_exit! -  defp gun_mock(_) do -    gun_mock() -    :ok -  end - -  defp gun_mock do -    Pleroma.GunMock -    |> stub(:open, fn _, _, _ -> Task.start_link(fn -> Process.sleep(1000) end) end) -    |> stub(:await_up, fn _, _ -> {:ok, :http} end) -    |> stub(:set_owner, fn _, _ -> :ok end) -  end -    describe "options/1" do      setup do: clear_config([:http, :adapter], a: 1, b: 2) @@ -35,7 +21,6 @@ defmodule Pleroma.HTTP.AdapterHelper.GunTest do        opts = Gun.options([receive_conn: false], uri)        assert opts[:certificates_verification] -      assert opts[:tls_opts][:log_level] == :warning      end      test "https ipv4 with default port" do @@ -43,7 +28,6 @@ defmodule Pleroma.HTTP.AdapterHelper.GunTest do        opts = Gun.options([receive_conn: false], uri)        assert opts[:certificates_verification] -      assert opts[:tls_opts][:log_level] == :warning      end      test "https ipv6 with default port" do @@ -51,7 +35,6 @@ defmodule Pleroma.HTTP.AdapterHelper.GunTest do        opts = Gun.options([receive_conn: false], uri)        assert opts[:certificates_verification] -      assert opts[:tls_opts][:log_level] == :warning      end      test "https url with non standart port" do @@ -62,46 +45,12 @@ defmodule Pleroma.HTTP.AdapterHelper.GunTest do        assert opts[:certificates_verification]      end -    test "get conn on next request" do -      gun_mock() -      level = Application.get_env(:logger, :level) -      Logger.configure(level: :debug) -      on_exit(fn -> Logger.configure(level: level) end) -      uri = URI.parse("http://some-domain2.com") - -      opts = Gun.options(uri) - -      assert opts[:conn] == nil -      assert opts[:close_conn] == nil - -      Process.sleep(50) -      opts = Gun.options(uri) - -      assert is_pid(opts[:conn]) -      assert opts[:close_conn] == false -    end -      test "merges with defaul http adapter config" do        defaults = Gun.options([receive_conn: false], URI.parse("https://example.com"))        assert Keyword.has_key?(defaults, :a)        assert Keyword.has_key?(defaults, :b)      end -    test "default ssl adapter opts with connection" do -      gun_mock() -      uri = URI.parse("https://some-domain.com") - -      :ok = Conn.open(uri, :gun_connections) - -      opts = Gun.options(uri) - -      assert opts[:certificates_verification] -      refute opts[:tls_opts] == [] - -      assert opts[:close_conn] == false -      assert is_pid(opts[:conn]) -    end -      test "parses string proxy host & port" do        proxy = Config.get([:http, :proxy_url])        Config.put([:http, :proxy_url], "localhost:8123") @@ -132,127 +81,4 @@ defmodule Pleroma.HTTP.AdapterHelper.GunTest do        assert opts[:proxy] == {'example.com', 4321}      end    end - -  describe "options/1 with receive_conn parameter" do -    setup :gun_mock - -    test "receive conn by default" do -      uri = URI.parse("http://another-domain.com") -      :ok = Conn.open(uri, :gun_connections) - -      received_opts = Gun.options(uri) -      assert received_opts[:close_conn] == false -      assert is_pid(received_opts[:conn]) -    end - -    test "don't receive conn if receive_conn is false" do -      uri = URI.parse("http://another-domain.com") -      :ok = Conn.open(uri, :gun_connections) - -      opts = [receive_conn: false] -      received_opts = Gun.options(opts, uri) -      assert received_opts[:close_conn] == nil -      assert received_opts[:conn] == nil -    end -  end - -  describe "after_request/1" do -    setup :gun_mock - -    test "body_as not chunks" do -      uri = URI.parse("http://some-domain.com") -      :ok = Conn.open(uri, :gun_connections) -      opts = Gun.options(uri) -      :ok = Gun.after_request(opts) -      conn = opts[:conn] - -      assert %Connections{ -               conns: %{ -                 "http:some-domain.com:80" => %Pleroma.Gun.Conn{ -                   conn: ^conn, -                   conn_state: :idle, -                   used_by: [] -                 } -               } -             } = Connections.get_state(:gun_connections) -    end - -    test "body_as chunks" do -      uri = URI.parse("http://some-domain.com") -      :ok = Conn.open(uri, :gun_connections) -      opts = Gun.options([body_as: :chunks], uri) -      :ok = Gun.after_request(opts) -      conn = opts[:conn] -      self = self() - -      assert %Connections{ -               conns: %{ -                 "http:some-domain.com:80" => %Pleroma.Gun.Conn{ -                   conn: ^conn, -                   conn_state: :active, -                   used_by: [{^self, _}] -                 } -               } -             } = Connections.get_state(:gun_connections) -    end - -    test "with no connection" do -      uri = URI.parse("http://uniq-domain.com") - -      :ok = Conn.open(uri, :gun_connections) - -      opts = Gun.options([body_as: :chunks], uri) -      conn = opts[:conn] -      opts = Keyword.delete(opts, :conn) -      self = self() - -      :ok = Gun.after_request(opts) - -      assert %Connections{ -               conns: %{ -                 "http:uniq-domain.com:80" => %Pleroma.Gun.Conn{ -                   conn: ^conn, -                   conn_state: :active, -                   used_by: [{^self, _}] -                 } -               } -             } = Connections.get_state(:gun_connections) -    end - -    test "with ipv4" do -      uri = URI.parse("http://127.0.0.1") -      :ok = Conn.open(uri, :gun_connections) -      opts = Gun.options(uri) -      :ok = Gun.after_request(opts) -      conn = opts[:conn] - -      assert %Connections{ -               conns: %{ -                 "http:127.0.0.1:80" => %Pleroma.Gun.Conn{ -                   conn: ^conn, -                   conn_state: :idle, -                   used_by: [] -                 } -               } -             } = Connections.get_state(:gun_connections) -    end - -    test "with ipv6" do -      uri = URI.parse("http://[2a03:2880:f10c:83:face:b00c:0:25de]") -      :ok = Conn.open(uri, :gun_connections) -      opts = Gun.options(uri) -      :ok = Gun.after_request(opts) -      conn = opts[:conn] - -      assert %Connections{ -               conns: %{ -                 "http:2a03:2880:f10c:83:face:b00c:0:25de:80" => %Pleroma.Gun.Conn{ -                   conn: ^conn, -                   conn_state: :idle, -                   used_by: [] -                 } -               } -             } = Connections.get_state(:gun_connections) -    end -  end  end diff --git a/test/http/connection_test.exs b/test/http/connection_test.exs deleted file mode 100644 index 7c94a50b2..000000000 --- a/test/http/connection_test.exs +++ /dev/null @@ -1,135 +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.HTTP.ConnectionTest do -  use ExUnit.Case -  use Pleroma.Tests.Helpers - -  import ExUnit.CaptureLog - -  alias Pleroma.Config -  alias Pleroma.HTTP.Connection - -  describe "parse_host/1" do -    test "as atom to charlist" do -      assert Connection.parse_host(:localhost) == 'localhost' -    end - -    test "as string to charlist" do -      assert Connection.parse_host("localhost.com") == 'localhost.com' -    end - -    test "as string ip to tuple" do -      assert Connection.parse_host("127.0.0.1") == {127, 0, 0, 1} -    end -  end - -  describe "parse_proxy/1" do -    test "ip with port" do -      assert Connection.parse_proxy("127.0.0.1:8123") == {:ok, {127, 0, 0, 1}, 8123} -    end - -    test "host with port" do -      assert Connection.parse_proxy("localhost:8123") == {:ok, 'localhost', 8123} -    end - -    test "as tuple" do -      assert Connection.parse_proxy({:socks4, :localhost, 9050}) == -               {:ok, :socks4, 'localhost', 9050} -    end - -    test "as tuple with string host" do -      assert Connection.parse_proxy({:socks5, "localhost", 9050}) == -               {:ok, :socks5, 'localhost', 9050} -    end -  end - -  describe "parse_proxy/1 errors" do -    test "ip without port" do -      capture_log(fn -> -        assert Connection.parse_proxy("127.0.0.1") == {:error, :invalid_proxy} -      end) =~ "parsing proxy fail \"127.0.0.1\"" -    end - -    test "host without port" do -      capture_log(fn -> -        assert Connection.parse_proxy("localhost") == {:error, :invalid_proxy} -      end) =~ "parsing proxy fail \"localhost\"" -    end - -    test "host with bad port" do -      capture_log(fn -> -        assert Connection.parse_proxy("localhost:port") == {:error, :invalid_proxy_port} -      end) =~ "parsing port in proxy fail \"localhost:port\"" -    end - -    test "ip with bad port" do -      capture_log(fn -> -        assert Connection.parse_proxy("127.0.0.1:15.9") == {:error, :invalid_proxy_port} -      end) =~ "parsing port in proxy fail \"127.0.0.1:15.9\"" -    end - -    test "as tuple without port" do -      capture_log(fn -> -        assert Connection.parse_proxy({:socks5, :localhost}) == {:error, :invalid_proxy} -      end) =~ "parsing proxy fail {:socks5, :localhost}" -    end - -    test "with nil" do -      assert Connection.parse_proxy(nil) == nil -    end -  end - -  describe "options/3" do -    setup do: clear_config([:http, :proxy_url]) - -    test "without proxy_url in config" do -      Config.delete([:http, :proxy_url]) - -      opts = Connection.options(%URI{}) -      refute Keyword.has_key?(opts, :proxy) -    end - -    test "parses string proxy host & port" do -      Config.put([:http, :proxy_url], "localhost:8123") - -      opts = Connection.options(%URI{}) -      assert opts[:proxy] == {'localhost', 8123} -    end - -    test "parses tuple proxy scheme host and port" do -      Config.put([:http, :proxy_url], {:socks, 'localhost', 1234}) - -      opts = Connection.options(%URI{}) -      assert opts[:proxy] == {:socks, 'localhost', 1234} -    end - -    test "passed opts have more weight than defaults" do -      Config.put([:http, :proxy_url], {:socks5, 'localhost', 1234}) - -      opts = Connection.options(%URI{}, proxy: {'example.com', 4321}) - -      assert opts[:proxy] == {'example.com', 4321} -    end -  end - -  describe "format_host/1" do -    test "with domain" do -      assert Connection.format_host("example.com") == 'example.com' -    end - -    test "with idna domain" do -      assert Connection.format_host("ですexample.com") == 'xn--example-183fne.com' -    end - -    test "with ipv4" do -      assert Connection.format_host("127.0.0.1") == '127.0.0.1' -    end - -    test "with ipv6" do -      assert Connection.format_host("2a03:2880:f10c:83:face:b00c:0:25de") == -               '2a03:2880:f10c:83:face:b00c:0:25de' -    end -  end -end  | 
