OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "net/proxy/proxy_service.h" | 5 #include "net/proxy/proxy_service.h" |
6 | 6 |
7 #include <cstdarg> | 7 #include <cstdarg> |
8 #include <string> | 8 #include <string> |
9 #include <vector> | 9 #include <vector> |
10 | 10 |
(...skipping 346 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
357 urls.push_back(url3); | 357 urls.push_back(url3); |
358 return GetRequestsForURLs(resolver.cancelled_requests(), urls); | 358 return GetRequestsForURLs(resolver.cancelled_requests(), urls); |
359 } | 359 } |
360 | 360 |
361 } // namespace | 361 } // namespace |
362 | 362 |
363 TEST_F(ProxyServiceTest, Direct) { | 363 TEST_F(ProxyServiceTest, Direct) { |
364 MockAsyncProxyResolverFactory* factory = | 364 MockAsyncProxyResolverFactory* factory = |
365 new MockAsyncProxyResolverFactory(false); | 365 new MockAsyncProxyResolverFactory(false); |
366 ProxyService service( | 366 ProxyService service( |
367 base::WrapUnique(new MockProxyConfigService(ProxyConfig::CreateDirect())), | 367 base::MakeUnique<MockProxyConfigService>(ProxyConfig::CreateDirect()), |
368 base::WrapUnique(factory), nullptr); | 368 base::WrapUnique(factory), nullptr); |
369 | 369 |
370 GURL url("http://www.google.com/"); | 370 GURL url("http://www.google.com/"); |
371 | 371 |
372 ProxyInfo info; | 372 ProxyInfo info; |
373 TestCompletionCallback callback; | 373 TestCompletionCallback callback; |
374 BoundTestNetLog log; | 374 BoundTestNetLog log; |
375 int rv = service.ResolveProxy(url, std::string(), &info, callback.callback(), | 375 int rv = service.ResolveProxy(url, std::string(), &info, callback.callback(), |
376 nullptr, nullptr, log.bound()); | 376 nullptr, nullptr, log.bound()); |
377 EXPECT_THAT(rv, IsOk()); | 377 EXPECT_THAT(rv, IsOk()); |
(...skipping 15 matching lines...) Expand all Loading... |
393 NetLogEventPhase::NONE)); | 393 NetLogEventPhase::NONE)); |
394 EXPECT_TRUE(LogContainsEndEvent(entries, 2, NetLogEventType::PROXY_SERVICE)); | 394 EXPECT_TRUE(LogContainsEndEvent(entries, 2, NetLogEventType::PROXY_SERVICE)); |
395 } | 395 } |
396 | 396 |
397 TEST_F(ProxyServiceTest, OnResolveProxyCallbackAddProxy) { | 397 TEST_F(ProxyServiceTest, OnResolveProxyCallbackAddProxy) { |
398 ProxyConfig config; | 398 ProxyConfig config; |
399 config.proxy_rules().ParseFromString("foopy1:8080"); | 399 config.proxy_rules().ParseFromString("foopy1:8080"); |
400 config.set_auto_detect(false); | 400 config.set_auto_detect(false); |
401 config.proxy_rules().bypass_rules.ParseFromString("*.org"); | 401 config.proxy_rules().bypass_rules.ParseFromString("*.org"); |
402 | 402 |
403 ProxyService service(base::WrapUnique(new MockProxyConfigService(config)), | 403 ProxyService service(base::MakeUnique<MockProxyConfigService>(config), |
404 nullptr, nullptr); | 404 nullptr, nullptr); |
405 | 405 |
406 GURL url("http://www.google.com/"); | 406 GURL url("http://www.google.com/"); |
407 GURL bypass_url("http://internet.org"); | 407 GURL bypass_url("http://internet.org"); |
408 | 408 |
409 ProxyInfo info; | 409 ProxyInfo info; |
410 TestCompletionCallback callback; | 410 TestCompletionCallback callback; |
411 BoundTestNetLog log; | 411 BoundTestNetLog log; |
412 | 412 |
413 // First, warm up the ProxyService. | 413 // First, warm up the ProxyService. |
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
449 | 449 |
450 TEST_F(ProxyServiceTest, OnResolveProxyCallbackRemoveProxy) { | 450 TEST_F(ProxyServiceTest, OnResolveProxyCallbackRemoveProxy) { |
451 // Same as OnResolveProxyCallbackAddProxy, but verify that the | 451 // Same as OnResolveProxyCallbackAddProxy, but verify that the |
452 // ProxyDelegate's behavior is stateless across invocations after it | 452 // ProxyDelegate's behavior is stateless across invocations after it |
453 // *removes* a proxy. | 453 // *removes* a proxy. |
454 ProxyConfig config; | 454 ProxyConfig config; |
455 config.proxy_rules().ParseFromString("foopy1:8080"); | 455 config.proxy_rules().ParseFromString("foopy1:8080"); |
456 config.set_auto_detect(false); | 456 config.set_auto_detect(false); |
457 config.proxy_rules().bypass_rules.ParseFromString("*.org"); | 457 config.proxy_rules().bypass_rules.ParseFromString("*.org"); |
458 | 458 |
459 ProxyService service(base::WrapUnique(new MockProxyConfigService(config)), | 459 ProxyService service(base::MakeUnique<MockProxyConfigService>(config), |
460 nullptr, nullptr); | 460 nullptr, nullptr); |
461 | 461 |
462 GURL url("http://www.google.com/"); | 462 GURL url("http://www.google.com/"); |
463 GURL bypass_url("http://internet.org"); | 463 GURL bypass_url("http://internet.org"); |
464 | 464 |
465 ProxyInfo info; | 465 ProxyInfo info; |
466 TestCompletionCallback callback; | 466 TestCompletionCallback callback; |
467 BoundTestNetLog log; | 467 BoundTestNetLog log; |
468 | 468 |
469 // First, warm up the ProxyService. | 469 // First, warm up the ProxyService. |
(...skipping 594 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1064 MockProxyConfigService* config_service = new MockProxyConfigService(config); | 1064 MockProxyConfigService* config_service = new MockProxyConfigService(config); |
1065 | 1065 |
1066 MockAsyncProxyResolverFactory* factory = | 1066 MockAsyncProxyResolverFactory* factory = |
1067 new MockAsyncProxyResolverFactory(true); | 1067 new MockAsyncProxyResolverFactory(true); |
1068 | 1068 |
1069 ProxyService service(base::WrapUnique(config_service), | 1069 ProxyService service(base::WrapUnique(config_service), |
1070 base::WrapUnique(factory), nullptr); | 1070 base::WrapUnique(factory), nullptr); |
1071 | 1071 |
1072 MockProxyScriptFetcher* fetcher = new MockProxyScriptFetcher; | 1072 MockProxyScriptFetcher* fetcher = new MockProxyScriptFetcher; |
1073 service.SetProxyScriptFetchers( | 1073 service.SetProxyScriptFetchers( |
1074 fetcher, base::WrapUnique(new DoNothingDhcpProxyScriptFetcher())); | 1074 fetcher, base::MakeUnique<DoNothingDhcpProxyScriptFetcher>()); |
1075 | 1075 |
1076 // Start resolve request. | 1076 // Start resolve request. |
1077 GURL url("http://www.google.com/"); | 1077 GURL url("http://www.google.com/"); |
1078 ProxyInfo info; | 1078 ProxyInfo info; |
1079 TestCompletionCallback callback; | 1079 TestCompletionCallback callback; |
1080 int rv = service.ResolveProxy(url, std::string(), &info, callback.callback(), | 1080 int rv = service.ResolveProxy(url, std::string(), &info, callback.callback(), |
1081 nullptr, nullptr, BoundNetLog()); | 1081 nullptr, nullptr, BoundNetLog()); |
1082 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); | 1082 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); |
1083 | 1083 |
1084 // Check that nothing has been sent to the proxy resolver factory yet. | 1084 // Check that nothing has been sent to the proxy resolver factory yet. |
(...skipping 598 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1683 TEST_F(ProxyServiceTest, ProxyBypassList) { | 1683 TEST_F(ProxyServiceTest, ProxyBypassList) { |
1684 // Test that the proxy bypass rules are consulted. | 1684 // Test that the proxy bypass rules are consulted. |
1685 | 1685 |
1686 TestCompletionCallback callback[2]; | 1686 TestCompletionCallback callback[2]; |
1687 ProxyInfo info[2]; | 1687 ProxyInfo info[2]; |
1688 ProxyConfig config; | 1688 ProxyConfig config; |
1689 config.proxy_rules().ParseFromString("foopy1:8080;foopy2:9090"); | 1689 config.proxy_rules().ParseFromString("foopy1:8080;foopy2:9090"); |
1690 config.set_auto_detect(false); | 1690 config.set_auto_detect(false); |
1691 config.proxy_rules().bypass_rules.ParseFromString("*.org"); | 1691 config.proxy_rules().bypass_rules.ParseFromString("*.org"); |
1692 | 1692 |
1693 ProxyService service(base::WrapUnique(new MockProxyConfigService(config)), | 1693 ProxyService service(base::MakeUnique<MockProxyConfigService>(config), |
1694 nullptr, nullptr); | 1694 nullptr, nullptr); |
1695 | 1695 |
1696 int rv; | 1696 int rv; |
1697 GURL url1("http://www.webkit.org"); | 1697 GURL url1("http://www.webkit.org"); |
1698 GURL url2("http://www.webkit.com"); | 1698 GURL url2("http://www.webkit.com"); |
1699 | 1699 |
1700 // Request for a .org domain should bypass proxy. | 1700 // Request for a .org domain should bypass proxy. |
1701 rv = service.ResolveProxy(url1, std::string(), &info[0], | 1701 rv = service.ResolveProxy(url1, std::string(), &info[0], |
1702 callback[0].callback(), nullptr, nullptr, | 1702 callback[0].callback(), nullptr, nullptr, |
1703 BoundNetLog()); | 1703 BoundNetLog()); |
(...skipping 20 matching lines...) Expand all Loading... |
1724 config.proxy_rules().proxies_for_http.GetAll()) { | 1724 config.proxy_rules().proxies_for_http.GetAll()) { |
1725 proxy_list.AddProxyServer(proxy_server); | 1725 proxy_list.AddProxyServer(proxy_server); |
1726 if (proxy_server == config.proxy_rules().proxies_for_http.Get()) | 1726 if (proxy_server == config.proxy_rules().proxies_for_http.Get()) |
1727 continue; | 1727 continue; |
1728 | 1728 |
1729 additional_bad_proxies.push_back(proxy_server); | 1729 additional_bad_proxies.push_back(proxy_server); |
1730 } | 1730 } |
1731 | 1731 |
1732 EXPECT_EQ(3u, additional_bad_proxies.size()); | 1732 EXPECT_EQ(3u, additional_bad_proxies.size()); |
1733 | 1733 |
1734 ProxyService service(base::WrapUnique(new MockProxyConfigService(config)), | 1734 ProxyService service(base::MakeUnique<MockProxyConfigService>(config), |
1735 nullptr, nullptr); | 1735 nullptr, nullptr); |
1736 ProxyInfo proxy_info; | 1736 ProxyInfo proxy_info; |
1737 proxy_info.UseProxyList(proxy_list); | 1737 proxy_info.UseProxyList(proxy_list); |
1738 const ProxyRetryInfoMap& retry_info = service.proxy_retry_info(); | 1738 const ProxyRetryInfoMap& retry_info = service.proxy_retry_info(); |
1739 service.MarkProxiesAsBadUntil(proxy_info, base::TimeDelta::FromSeconds(1), | 1739 service.MarkProxiesAsBadUntil(proxy_info, base::TimeDelta::FromSeconds(1), |
1740 additional_bad_proxies, BoundNetLog()); | 1740 additional_bad_proxies, BoundNetLog()); |
1741 ASSERT_EQ(4u, retry_info.size()); | 1741 ASSERT_EQ(4u, retry_info.size()); |
1742 for (const ProxyServer& proxy_server : | 1742 for (const ProxyServer& proxy_server : |
1743 config.proxy_rules().proxies_for_http.GetAll()) { | 1743 config.proxy_rules().proxies_for_http.GetAll()) { |
1744 ProxyRetryInfoMap::const_iterator i = | 1744 ProxyRetryInfoMap::const_iterator i = |
1745 retry_info.find(proxy_server.host_port_pair().ToString()); | 1745 retry_info.find(proxy_server.host_port_pair().ToString()); |
1746 ASSERT_TRUE(i != retry_info.end()); | 1746 ASSERT_TRUE(i != retry_info.end()); |
1747 } | 1747 } |
1748 } | 1748 } |
1749 | 1749 |
1750 TEST_F(ProxyServiceTest, PerProtocolProxyTests) { | 1750 TEST_F(ProxyServiceTest, PerProtocolProxyTests) { |
1751 ProxyConfig config; | 1751 ProxyConfig config; |
1752 config.proxy_rules().ParseFromString("http=foopy1:8080;https=foopy2:8080"); | 1752 config.proxy_rules().ParseFromString("http=foopy1:8080;https=foopy2:8080"); |
1753 config.set_auto_detect(false); | 1753 config.set_auto_detect(false); |
1754 { | 1754 { |
1755 ProxyService service(base::WrapUnique(new MockProxyConfigService(config)), | 1755 ProxyService service(base::MakeUnique<MockProxyConfigService>(config), |
1756 nullptr, nullptr); | 1756 nullptr, nullptr); |
1757 GURL test_url("http://www.msn.com"); | 1757 GURL test_url("http://www.msn.com"); |
1758 ProxyInfo info; | 1758 ProxyInfo info; |
1759 TestCompletionCallback callback; | 1759 TestCompletionCallback callback; |
1760 int rv = service.ResolveProxy(test_url, std::string(), &info, | 1760 int rv = service.ResolveProxy(test_url, std::string(), &info, |
1761 callback.callback(), nullptr, nullptr, | 1761 callback.callback(), nullptr, nullptr, |
1762 BoundNetLog()); | 1762 BoundNetLog()); |
1763 EXPECT_THAT(rv, IsOk()); | 1763 EXPECT_THAT(rv, IsOk()); |
1764 EXPECT_FALSE(info.is_direct()); | 1764 EXPECT_FALSE(info.is_direct()); |
1765 EXPECT_EQ("foopy1:8080", info.proxy_server().ToURI()); | 1765 EXPECT_EQ("foopy1:8080", info.proxy_server().ToURI()); |
1766 } | 1766 } |
1767 { | 1767 { |
1768 ProxyService service(base::WrapUnique(new MockProxyConfigService(config)), | 1768 ProxyService service(base::MakeUnique<MockProxyConfigService>(config), |
1769 nullptr, nullptr); | 1769 nullptr, nullptr); |
1770 GURL test_url("ftp://ftp.google.com"); | 1770 GURL test_url("ftp://ftp.google.com"); |
1771 ProxyInfo info; | 1771 ProxyInfo info; |
1772 TestCompletionCallback callback; | 1772 TestCompletionCallback callback; |
1773 int rv = service.ResolveProxy(test_url, std::string(), &info, | 1773 int rv = service.ResolveProxy(test_url, std::string(), &info, |
1774 callback.callback(), nullptr, nullptr, | 1774 callback.callback(), nullptr, nullptr, |
1775 BoundNetLog()); | 1775 BoundNetLog()); |
1776 EXPECT_THAT(rv, IsOk()); | 1776 EXPECT_THAT(rv, IsOk()); |
1777 EXPECT_TRUE(info.is_direct()); | 1777 EXPECT_TRUE(info.is_direct()); |
1778 EXPECT_EQ("direct://", info.proxy_server().ToURI()); | 1778 EXPECT_EQ("direct://", info.proxy_server().ToURI()); |
1779 } | 1779 } |
1780 { | 1780 { |
1781 ProxyService service(base::WrapUnique(new MockProxyConfigService(config)), | 1781 ProxyService service(base::MakeUnique<MockProxyConfigService>(config), |
1782 nullptr, nullptr); | 1782 nullptr, nullptr); |
1783 GURL test_url("https://webbranch.techcu.com"); | 1783 GURL test_url("https://webbranch.techcu.com"); |
1784 ProxyInfo info; | 1784 ProxyInfo info; |
1785 TestCompletionCallback callback; | 1785 TestCompletionCallback callback; |
1786 int rv = service.ResolveProxy(test_url, std::string(), &info, | 1786 int rv = service.ResolveProxy(test_url, std::string(), &info, |
1787 callback.callback(), nullptr, nullptr, | 1787 callback.callback(), nullptr, nullptr, |
1788 BoundNetLog()); | 1788 BoundNetLog()); |
1789 EXPECT_THAT(rv, IsOk()); | 1789 EXPECT_THAT(rv, IsOk()); |
1790 EXPECT_FALSE(info.is_direct()); | 1790 EXPECT_FALSE(info.is_direct()); |
1791 EXPECT_EQ("foopy2:8080", info.proxy_server().ToURI()); | 1791 EXPECT_EQ("foopy2:8080", info.proxy_server().ToURI()); |
1792 } | 1792 } |
1793 { | 1793 { |
1794 config.proxy_rules().ParseFromString("foopy1:8080"); | 1794 config.proxy_rules().ParseFromString("foopy1:8080"); |
1795 ProxyService service(base::WrapUnique(new MockProxyConfigService(config)), | 1795 ProxyService service(base::MakeUnique<MockProxyConfigService>(config), |
1796 nullptr, nullptr); | 1796 nullptr, nullptr); |
1797 GURL test_url("http://www.microsoft.com"); | 1797 GURL test_url("http://www.microsoft.com"); |
1798 ProxyInfo info; | 1798 ProxyInfo info; |
1799 TestCompletionCallback callback; | 1799 TestCompletionCallback callback; |
1800 int rv = service.ResolveProxy(test_url, std::string(), &info, | 1800 int rv = service.ResolveProxy(test_url, std::string(), &info, |
1801 callback.callback(), nullptr, nullptr, | 1801 callback.callback(), nullptr, nullptr, |
1802 BoundNetLog()); | 1802 BoundNetLog()); |
1803 EXPECT_THAT(rv, IsOk()); | 1803 EXPECT_THAT(rv, IsOk()); |
1804 EXPECT_FALSE(info.is_direct()); | 1804 EXPECT_FALSE(info.is_direct()); |
1805 EXPECT_EQ("foopy1:8080", info.proxy_server().ToURI()); | 1805 EXPECT_EQ("foopy1:8080", info.proxy_server().ToURI()); |
1806 } | 1806 } |
1807 } | 1807 } |
1808 | 1808 |
1809 TEST_F(ProxyServiceTest, ProxyConfigSourcePropagates) { | 1809 TEST_F(ProxyServiceTest, ProxyConfigSourcePropagates) { |
1810 // Test that the proxy config source is set correctly when resolving proxies | 1810 // Test that the proxy config source is set correctly when resolving proxies |
1811 // using manual proxy rules. Namely, the config source should only be set if | 1811 // using manual proxy rules. Namely, the config source should only be set if |
1812 // any of the rules were applied. | 1812 // any of the rules were applied. |
1813 { | 1813 { |
1814 ProxyConfig config; | 1814 ProxyConfig config; |
1815 config.set_source(PROXY_CONFIG_SOURCE_TEST); | 1815 config.set_source(PROXY_CONFIG_SOURCE_TEST); |
1816 config.proxy_rules().ParseFromString("https=foopy2:8080"); | 1816 config.proxy_rules().ParseFromString("https=foopy2:8080"); |
1817 ProxyService service(base::WrapUnique(new MockProxyConfigService(config)), | 1817 ProxyService service(base::MakeUnique<MockProxyConfigService>(config), |
1818 nullptr, nullptr); | 1818 nullptr, nullptr); |
1819 GURL test_url("http://www.google.com"); | 1819 GURL test_url("http://www.google.com"); |
1820 ProxyInfo info; | 1820 ProxyInfo info; |
1821 TestCompletionCallback callback; | 1821 TestCompletionCallback callback; |
1822 int rv = service.ResolveProxy(test_url, std::string(), &info, | 1822 int rv = service.ResolveProxy(test_url, std::string(), &info, |
1823 callback.callback(), nullptr, nullptr, | 1823 callback.callback(), nullptr, nullptr, |
1824 BoundNetLog()); | 1824 BoundNetLog()); |
1825 ASSERT_THAT(rv, IsOk()); | 1825 ASSERT_THAT(rv, IsOk()); |
1826 // Should be SOURCE_TEST, even if there are no HTTP proxies configured. | 1826 // Should be SOURCE_TEST, even if there are no HTTP proxies configured. |
1827 EXPECT_EQ(PROXY_CONFIG_SOURCE_TEST, info.config_source()); | 1827 EXPECT_EQ(PROXY_CONFIG_SOURCE_TEST, info.config_source()); |
1828 } | 1828 } |
1829 { | 1829 { |
1830 ProxyConfig config; | 1830 ProxyConfig config; |
1831 config.set_source(PROXY_CONFIG_SOURCE_TEST); | 1831 config.set_source(PROXY_CONFIG_SOURCE_TEST); |
1832 config.proxy_rules().ParseFromString("https=foopy2:8080"); | 1832 config.proxy_rules().ParseFromString("https=foopy2:8080"); |
1833 ProxyService service(base::WrapUnique(new MockProxyConfigService(config)), | 1833 ProxyService service(base::MakeUnique<MockProxyConfigService>(config), |
1834 nullptr, nullptr); | 1834 nullptr, nullptr); |
1835 GURL test_url("https://www.google.com"); | 1835 GURL test_url("https://www.google.com"); |
1836 ProxyInfo info; | 1836 ProxyInfo info; |
1837 TestCompletionCallback callback; | 1837 TestCompletionCallback callback; |
1838 int rv = service.ResolveProxy(test_url, std::string(), &info, | 1838 int rv = service.ResolveProxy(test_url, std::string(), &info, |
1839 callback.callback(), nullptr, nullptr, | 1839 callback.callback(), nullptr, nullptr, |
1840 BoundNetLog()); | 1840 BoundNetLog()); |
1841 ASSERT_THAT(rv, IsOk()); | 1841 ASSERT_THAT(rv, IsOk()); |
1842 // Used the HTTPS proxy. So source should be TEST. | 1842 // Used the HTTPS proxy. So source should be TEST. |
1843 EXPECT_EQ(PROXY_CONFIG_SOURCE_TEST, info.config_source()); | 1843 EXPECT_EQ(PROXY_CONFIG_SOURCE_TEST, info.config_source()); |
1844 } | 1844 } |
1845 { | 1845 { |
1846 ProxyConfig config; | 1846 ProxyConfig config; |
1847 config.set_source(PROXY_CONFIG_SOURCE_TEST); | 1847 config.set_source(PROXY_CONFIG_SOURCE_TEST); |
1848 ProxyService service(base::WrapUnique(new MockProxyConfigService(config)), | 1848 ProxyService service(base::MakeUnique<MockProxyConfigService>(config), |
1849 nullptr, nullptr); | 1849 nullptr, nullptr); |
1850 GURL test_url("http://www.google.com"); | 1850 GURL test_url("http://www.google.com"); |
1851 ProxyInfo info; | 1851 ProxyInfo info; |
1852 TestCompletionCallback callback; | 1852 TestCompletionCallback callback; |
1853 int rv = service.ResolveProxy(test_url, std::string(), &info, | 1853 int rv = service.ResolveProxy(test_url, std::string(), &info, |
1854 callback.callback(), nullptr, nullptr, | 1854 callback.callback(), nullptr, nullptr, |
1855 BoundNetLog()); | 1855 BoundNetLog()); |
1856 ASSERT_THAT(rv, IsOk()); | 1856 ASSERT_THAT(rv, IsOk()); |
1857 // ProxyConfig is empty. Source should still be TEST. | 1857 // ProxyConfig is empty. Source should still be TEST. |
1858 EXPECT_EQ(PROXY_CONFIG_SOURCE_TEST, info.config_source()); | 1858 EXPECT_EQ(PROXY_CONFIG_SOURCE_TEST, info.config_source()); |
(...skipping 742 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2601 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); | 2601 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); |
2602 | 2602 |
2603 EXPECT_EQ(GURL("http://foopy/proxy.pac"), | 2603 EXPECT_EQ(GURL("http://foopy/proxy.pac"), |
2604 factory->pending_requests()[0]->script_data()->url()); | 2604 factory->pending_requests()[0]->script_data()->url()); |
2605 } | 2605 } |
2606 | 2606 |
2607 TEST_F(ProxyServiceTest, ResetProxyConfigService) { | 2607 TEST_F(ProxyServiceTest, ResetProxyConfigService) { |
2608 ProxyConfig config1; | 2608 ProxyConfig config1; |
2609 config1.proxy_rules().ParseFromString("foopy1:8080"); | 2609 config1.proxy_rules().ParseFromString("foopy1:8080"); |
2610 config1.set_auto_detect(false); | 2610 config1.set_auto_detect(false); |
2611 ProxyService service(base::WrapUnique(new MockProxyConfigService(config1)), | 2611 ProxyService service(base::MakeUnique<MockProxyConfigService>(config1), |
2612 nullptr, nullptr); | 2612 nullptr, nullptr); |
2613 | 2613 |
2614 ProxyInfo info; | 2614 ProxyInfo info; |
2615 TestCompletionCallback callback1; | 2615 TestCompletionCallback callback1; |
2616 int rv = service.ResolveProxy(GURL("http://request1"), std::string(), &info, | 2616 int rv = service.ResolveProxy(GURL("http://request1"), std::string(), &info, |
2617 callback1.callback(), nullptr, nullptr, | 2617 callback1.callback(), nullptr, nullptr, |
2618 BoundNetLog()); | 2618 BoundNetLog()); |
2619 EXPECT_THAT(rv, IsOk()); | 2619 EXPECT_THAT(rv, IsOk()); |
2620 EXPECT_EQ("foopy1:8080", info.proxy_server().ToURI()); | 2620 EXPECT_EQ("foopy1:8080", info.proxy_server().ToURI()); |
2621 | 2621 |
2622 ProxyConfig config2; | 2622 ProxyConfig config2; |
2623 config2.proxy_rules().ParseFromString("foopy2:8080"); | 2623 config2.proxy_rules().ParseFromString("foopy2:8080"); |
2624 config2.set_auto_detect(false); | 2624 config2.set_auto_detect(false); |
2625 service.ResetConfigService( | 2625 service.ResetConfigService(base::MakeUnique<MockProxyConfigService>(config2)); |
2626 base::WrapUnique(new MockProxyConfigService(config2))); | |
2627 TestCompletionCallback callback2; | 2626 TestCompletionCallback callback2; |
2628 rv = service.ResolveProxy(GURL("http://request2"), std::string(), &info, | 2627 rv = service.ResolveProxy(GURL("http://request2"), std::string(), &info, |
2629 callback2.callback(), nullptr, nullptr, | 2628 callback2.callback(), nullptr, nullptr, |
2630 BoundNetLog()); | 2629 BoundNetLog()); |
2631 EXPECT_THAT(rv, IsOk()); | 2630 EXPECT_THAT(rv, IsOk()); |
2632 EXPECT_EQ("foopy2:8080", info.proxy_server().ToURI()); | 2631 EXPECT_EQ("foopy2:8080", info.proxy_server().ToURI()); |
2633 } | 2632 } |
2634 | 2633 |
2635 // Test that when going from a configuration that required PAC to one | 2634 // Test that when going from a configuration that required PAC to one |
2636 // that does NOT, we unset the variable |should_use_proxy_resolver_|. | 2635 // that does NOT, we unset the variable |should_use_proxy_resolver_|. |
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2693 MockAsyncProxyResolverFactory* factory = | 2692 MockAsyncProxyResolverFactory* factory = |
2694 new MockAsyncProxyResolverFactory(true); | 2693 new MockAsyncProxyResolverFactory(true); |
2695 | 2694 |
2696 TestNetLog log; | 2695 TestNetLog log; |
2697 | 2696 |
2698 ProxyService service(base::WrapUnique(config_service), | 2697 ProxyService service(base::WrapUnique(config_service), |
2699 base::WrapUnique(factory), &log); | 2698 base::WrapUnique(factory), &log); |
2700 | 2699 |
2701 MockProxyScriptFetcher* fetcher = new MockProxyScriptFetcher; | 2700 MockProxyScriptFetcher* fetcher = new MockProxyScriptFetcher; |
2702 service.SetProxyScriptFetchers( | 2701 service.SetProxyScriptFetchers( |
2703 fetcher, base::WrapUnique(new DoNothingDhcpProxyScriptFetcher())); | 2702 fetcher, base::MakeUnique<DoNothingDhcpProxyScriptFetcher>()); |
2704 | 2703 |
2705 // Disable the "wait after IP address changes" hack, so this unit-test can | 2704 // Disable the "wait after IP address changes" hack, so this unit-test can |
2706 // complete quickly. | 2705 // complete quickly. |
2707 service.set_stall_proxy_auto_config_delay(base::TimeDelta()); | 2706 service.set_stall_proxy_auto_config_delay(base::TimeDelta()); |
2708 | 2707 |
2709 // Start 1 request. | 2708 // Start 1 request. |
2710 | 2709 |
2711 ProxyInfo info1; | 2710 ProxyInfo info1; |
2712 TestCompletionCallback callback1; | 2711 TestCompletionCallback callback1; |
2713 int rv = service.ResolveProxy(GURL("http://request1"), std::string(), &info1, | 2712 int rv = service.ResolveProxy(GURL("http://request1"), std::string(), &info1, |
(...skipping 949 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3663 GURL(test.sanitized_url_unstripped), | 3662 GURL(test.sanitized_url_unstripped), |
3664 helper.SanitizeUrl(raw_url, ProxyService::SanitizeUrlPolicy::UNSAFE)); | 3663 helper.SanitizeUrl(raw_url, ProxyService::SanitizeUrlPolicy::UNSAFE)); |
3665 | 3664 |
3666 EXPECT_EQ( | 3665 EXPECT_EQ( |
3667 GURL(test.sanitized_url), | 3666 GURL(test.sanitized_url), |
3668 helper.SanitizeUrl(raw_url, ProxyService::SanitizeUrlPolicy::SAFE)); | 3667 helper.SanitizeUrl(raw_url, ProxyService::SanitizeUrlPolicy::SAFE)); |
3669 } | 3668 } |
3670 } | 3669 } |
3671 | 3670 |
3672 } // namespace net | 3671 } // namespace net |
OLD | NEW |