| 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 |