|
|
@ -278,19 +278,34 @@ tup_merge(_Config) -> |
|
|
|
proxy_auth(_Config) -> |
|
|
|
Host = "host:", |
|
|
|
Port = "1234", |
|
|
|
|
|
|
|
proxy_auth(_Config, "http_proxy"), |
|
|
|
proxy_auth(_Config, "https_proxy"). |
|
|
|
|
|
|
|
proxy_auth(_Config, ProxyEnvKey) -> |
|
|
|
%% remember current proxy specification |
|
|
|
OldProxySpec = os:getenv(ProxyEnvKey), |
|
|
|
|
|
|
|
application:unset_env(rebar, proxy_auth), |
|
|
|
%% proxy auth not set |
|
|
|
application:unset_env(rebar, proxy_auth), |
|
|
|
?assertEqual([], rebar_utils:get_proxy_auth()), |
|
|
|
|
|
|
|
%% proxy auth with regular username/password |
|
|
|
os:putenv("http_proxy", "http://Username:Password@" ++ Host ++ Port), |
|
|
|
os:putenv(ProxyEnvKey, "http://Username:Password@" ++ Host ++ Port), |
|
|
|
rebar_utils:set_httpc_options(), |
|
|
|
?assertEqual([{proxy_auth, {"Username", "Password"}}], |
|
|
|
rebar_utils:get_proxy_auth()), |
|
|
|
|
|
|
|
%% proxy auth with username missing and url encoded password |
|
|
|
os:putenv("http_proxy", "http://:%3F!abc%23%24@" ++ Host ++ Port), |
|
|
|
os:putenv(ProxyEnvKey, "http://:%3F!abc%23%24@" ++ Host ++ Port), |
|
|
|
rebar_utils:set_httpc_options(), |
|
|
|
?assertEqual([{proxy_auth, {"", "?!abc#$"}}], |
|
|
|
rebar_utils:get_proxy_auth()). |
|
|
|
|
|
|
|
|
|
|
|
rebar_utils:get_proxy_auth()), |
|
|
|
|
|
|
|
%% restore original proxy specification if any |
|
|
|
restore_proxy_env(OldProxySpec). |
|
|
|
|
|
|
|
restore_proxy_env(false) -> |
|
|
|
ok; |
|
|
|
restore_proxy_env(ProxySpec) -> |
|
|
|
os:putenv("http_proxy", ProxySpec). |