+ 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"]]}
+ ]
+ end
+ end
+
+ describe "timeout settings" do
+ test "should default to 5000/15000" do
+ options = AdapterHelper.options(%URI{host: 'somewhere'})
+ 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)
+ options = AdapterHelper.options(%URI{host: 'somewhere'})
+ 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)
+ options = AdapterHelper.options(%URI{host: 'somewhere'})
+ assert options[:receive_timeout] == 20_000