Index: net/proxy/proxy_list_unittest.cc |
diff --git a/net/proxy/proxy_list_unittest.cc b/net/proxy/proxy_list_unittest.cc |
index 04d926880443295871ab93ec2318790601982c6c..470a9000882e001e35a109e5087aa9238a8f707f 100644 |
--- a/net/proxy/proxy_list_unittest.cc |
+++ b/net/proxy/proxy_list_unittest.cc |
@@ -89,6 +89,42 @@ TEST(ProxyListTest, RemoveProxiesWithoutScheme) { |
} |
} |
+TEST(ProxyListTest, HasUntriedProxies) { |
+ // As in DeprioritizeBadProxies, we use a lengthy timeout to avoid depending |
+ // on the current time. |
+ ProxyRetryInfo proxy_retry_info; |
+ proxy_retry_info.bad_until = |
+ base::TimeTicks::Now() + base::TimeDelta::FromDays(1); |
+ |
+ // An empty list has nothing to try. |
+ { |
+ ProxyList list; |
+ ProxyRetryInfoMap proxy_retry_info; |
+ EXPECT_FALSE(list.HasUntriedProxies(proxy_retry_info)); |
+ } |
+ |
+ // A list with one bad proxy has something to try. With two bad proxies, |
+ // there's nothing to try. |
+ { |
+ ProxyList list; |
+ list.SetFromPacString("PROXY bad1:80; PROXY bad2:80"); |
+ ProxyRetryInfoMap retry_info_map; |
+ retry_info_map["bad1:80"] = proxy_retry_info; |
+ EXPECT_TRUE(list.HasUntriedProxies(retry_info_map)); |
+ retry_info_map["bad2:80"] = proxy_retry_info; |
+ EXPECT_FALSE(list.HasUntriedProxies(retry_info_map)); |
+ } |
+ |
+ // A list with one bad proxy and a DIRECT entry has something to try. |
+ { |
+ ProxyList list; |
+ list.SetFromPacString("PROXY bad1:80; DIRECT"); |
+ ProxyRetryInfoMap retry_info_map; |
+ retry_info_map["bad1:80"] = proxy_retry_info; |
+ EXPECT_TRUE(list.HasUntriedProxies(retry_info_map)); |
+ } |
+} |
+ |
TEST(ProxyListTest, DeprioritizeBadProxies) { |
// Retry info that marks a proxy as being bad for a *very* long time (to avoid |
// the test depending on the current time.) |