diff options
Diffstat (limited to 'net/proxy/proxy_list_unittest.cc')
-rw-r--r-- | net/proxy/proxy_list_unittest.cc | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/net/proxy/proxy_list_unittest.cc b/net/proxy/proxy_list_unittest.cc index 470a900..33d3dab 100644 --- a/net/proxy/proxy_list_unittest.cc +++ b/net/proxy/proxy_list_unittest.cc @@ -4,6 +4,8 @@ #include "net/proxy/proxy_list.h" +#include "net/base/net_log.h" +#include "net/proxy/proxy_retry_info.h" #include "net/proxy/proxy_server.h" #include "testing/gtest/include/gtest/gtest.h" @@ -178,6 +180,57 @@ TEST(ProxyListTest, DeprioritizeBadProxies) { } } +TEST(ProxyListTest, UpdateRetryInfoOnFallback) { + ProxyRetryInfo proxy_retry_info; + // Retrying should put the first proxy on the retry list. + { + ProxyList list; + ProxyRetryInfoMap retry_info_map; + BoundNetLog net_log; + list.SetFromPacString("PROXY foopy1:80;PROXY foopy2:80;PROXY foopy3:80"); + list.UpdateRetryInfoOnFallback(&retry_info_map, + base::TimeDelta::FromSeconds(60), + ProxyServer(), + net_log); + EXPECT_TRUE(retry_info_map.end() != retry_info_map.find("foopy1:80")); + EXPECT_TRUE(retry_info_map.end() == retry_info_map.find("foopy2:80")); + EXPECT_TRUE(retry_info_map.end() == retry_info_map.find("foopy3:80")); + } + // Including another bad proxy should put both the first and the specified + // proxy on the retry list. + { + ProxyList list; + ProxyRetryInfoMap retry_info_map; + BoundNetLog net_log; + ProxyServer proxy_server = ProxyServer::FromURI("foopy3:80", + ProxyServer::SCHEME_HTTP); + list.SetFromPacString("PROXY foopy1:80;PROXY foopy2:80;PROXY foopy3:80"); + list.UpdateRetryInfoOnFallback(&retry_info_map, + base::TimeDelta::FromSeconds(60), + proxy_server, + net_log); + EXPECT_TRUE(retry_info_map.end() != retry_info_map.find("foopy1:80")); + EXPECT_TRUE(retry_info_map.end() == retry_info_map.find("foopy2:80")); + EXPECT_TRUE(retry_info_map.end() != retry_info_map.find("foopy3:80")); + } + // If the first proxy is DIRECT, nothing is added to the retry list, even + // if another bad proxy is specified. + { + ProxyList list; + ProxyRetryInfoMap retry_info_map; + BoundNetLog net_log; + ProxyServer proxy_server = ProxyServer::FromURI("foopy2:80", + ProxyServer::SCHEME_HTTP); + list.SetFromPacString("DIRECT;PROXY foopy2:80;PROXY foopy3:80"); + list.UpdateRetryInfoOnFallback(&retry_info_map, + base::TimeDelta::FromSeconds(60), + proxy_server, + net_log); + EXPECT_TRUE(retry_info_map.end() == retry_info_map.find("foopy2:80")); + EXPECT_TRUE(retry_info_map.end() == retry_info_map.find("foopy3:80")); + } +} + } // namesapce } // namespace net |