2020-03-03 15:53:44 +00:00
|
|
|
# Pleroma: A lightweight social networking server
|
2021-01-13 06:49:20 +00:00
|
|
|
# Copyright © 2017-2021 Pleroma Authors <https://pleroma.social/>
|
2020-03-03 15:53:44 +00:00
|
|
|
# SPDX-License-Identifier: AGPL-3.0-only
|
|
|
|
|
|
|
|
defmodule Pleroma.HTTP.AdapterHelperTest do
|
2022-11-24 12:27:16 +00:00
|
|
|
use Pleroma.DataCase, async: true
|
2020-03-03 15:53:44 +00:00
|
|
|
alias Pleroma.HTTP.AdapterHelper
|
|
|
|
|
|
|
|
describe "format_proxy/1" do
|
|
|
|
test "with nil" do
|
|
|
|
assert AdapterHelper.format_proxy(nil) == nil
|
|
|
|
end
|
|
|
|
|
|
|
|
test "with string" do
|
2022-08-14 23:13:49 +00:00
|
|
|
assert AdapterHelper.format_proxy("http://127.0.0.1:8123") == {:http, "127.0.0.1", 8123, []}
|
2020-03-03 15:53:44 +00:00
|
|
|
end
|
|
|
|
|
|
|
|
test "localhost with port" do
|
2022-08-14 23:13:49 +00:00
|
|
|
assert AdapterHelper.format_proxy("https://localhost:8123") ==
|
|
|
|
{:https, "localhost", 8123, []}
|
2020-03-03 15:53:44 +00:00
|
|
|
end
|
|
|
|
|
|
|
|
test "tuple" do
|
2022-08-14 23:13:49 +00:00
|
|
|
assert AdapterHelper.format_proxy({:http, "localhost", 9050}) ==
|
|
|
|
{:http, "localhost", 9050, []}
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
describe "maybe_add_proxy_pool/1" do
|
|
|
|
test "should do nothing with nil" do
|
|
|
|
assert AdapterHelper.maybe_add_proxy_pool([], nil) == []
|
|
|
|
end
|
|
|
|
|
|
|
|
test "should create pools" do
|
|
|
|
assert AdapterHelper.maybe_add_proxy_pool([], "proxy") == [
|
|
|
|
pools: %{default: [conn_opts: [proxy: "proxy"]]}
|
|
|
|
]
|
|
|
|
end
|
|
|
|
|
|
|
|
test "should not override conn_opts if set" do
|
|
|
|
assert AdapterHelper.maybe_add_proxy_pool(
|
|
|
|
[pools: %{default: [conn_opts: [already: "set"]]}],
|
|
|
|
"proxy"
|
|
|
|
) == [
|
|
|
|
pools: %{default: [conn_opts: [proxy: "proxy", already: "set"]]}
|
|
|
|
]
|
2020-03-03 15:53:44 +00:00
|
|
|
end
|
|
|
|
end
|
2022-11-24 12:27:16 +00:00
|
|
|
|
|
|
|
describe "timeout settings" do
|
|
|
|
test "should default to 5000/15000" do
|
2023-08-01 10:43:50 +00:00
|
|
|
options = AdapterHelper.options(%URI{host: ~c"somewhere"})
|
2022-11-24 12:27:16 +00:00
|
|
|
assert options[:pool_timeout] == 5000
|
|
|
|
assert options[:receive_timeout] == 15_000
|
|
|
|
end
|
|
|
|
|
|
|
|
test "pool_timeout should be overridden by :http, :pool_timeout" do
|
|
|
|
clear_config([:http, :pool_timeout], 10_000)
|
2023-08-01 10:43:50 +00:00
|
|
|
options = AdapterHelper.options(%URI{host: ~c"somewhere"})
|
2022-11-24 12:27:16 +00:00
|
|
|
assert options[:pool_timeout] == 10_000
|
|
|
|
end
|
|
|
|
|
|
|
|
test "receive_timeout should be overridden by :http, :receive_timeout" do
|
|
|
|
clear_config([:http, :receive_timeout], 20_000)
|
2023-08-01 10:43:50 +00:00
|
|
|
options = AdapterHelper.options(%URI{host: ~c"somewhere"})
|
2022-11-24 12:27:16 +00:00
|
|
|
assert options[:receive_timeout] == 20_000
|
|
|
|
end
|
|
|
|
end
|
2022-12-16 18:33:00 +00:00
|
|
|
|
|
|
|
describe "pool size settings" do
|
|
|
|
test "should get set" do
|
|
|
|
options = AdapterHelper.add_pool_size([], 50)
|
|
|
|
assert options[:pools][:default][:size] == 50
|
|
|
|
end
|
|
|
|
end
|
2024-06-09 16:20:29 +00:00
|
|
|
|
|
|
|
describe "pool idle time setting" do
|
|
|
|
test "should get set" do
|
|
|
|
options = AdapterHelper.add_default_pool_max_idle_time([], 50)
|
|
|
|
assert options[:pools][:default][:pool_max_idle_time] == 50
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
describe "connection timeout setting" do
|
|
|
|
test "should get set" do
|
|
|
|
options = AdapterHelper.add_default_conn_max_idle_time([], 50)
|
|
|
|
assert options[:pools][:default][:conn_max_idle_time] == 50
|
|
|
|
end
|
|
|
|
end
|
2020-03-03 15:53:44 +00:00
|
|
|
end
|