Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(287)

Side by Side Diff: net/proxy/proxy_service_unittest.cc

Issue 7019015: Revert 85646 - Adds support for the DHCP portion of the WPAD (proxy auto-discovery) protocol. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: Created 9 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « net/proxy/proxy_service.cc ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 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 <vector> 7 #include <vector>
8 8
9 #include "base/format_macros.h" 9 #include "base/format_macros.h"
10 #include "base/logging.h" 10 #include "base/logging.h"
11 #include "base/string_util.h" 11 #include "base/string_util.h"
12 #include "base/utf_string_conversions.h" 12 #include "base/utf_string_conversions.h"
13 #include "googleurl/src/gurl.h" 13 #include "googleurl/src/gurl.h"
14 #include "net/base/net_errors.h" 14 #include "net/base/net_errors.h"
15 #include "net/base/net_log.h" 15 #include "net/base/net_log.h"
16 #include "net/base/net_log_unittest.h" 16 #include "net/base/net_log_unittest.h"
17 #include "net/base/test_completion_callback.h" 17 #include "net/base/test_completion_callback.h"
18 #include "net/proxy/dhcp_proxy_script_fetcher.h"
19 #include "net/proxy/mock_proxy_resolver.h" 18 #include "net/proxy/mock_proxy_resolver.h"
20 #include "net/proxy/mock_proxy_script_fetcher.h"
21 #include "net/proxy/proxy_config_service.h" 19 #include "net/proxy/proxy_config_service.h"
22 #include "net/proxy/proxy_resolver.h" 20 #include "net/proxy/proxy_resolver.h"
23 #include "net/proxy/proxy_script_fetcher.h" 21 #include "net/proxy/proxy_script_fetcher.h"
24 #include "testing/gtest/include/gtest/gtest.h" 22 #include "testing/gtest/include/gtest/gtest.h"
25 23
26 // TODO(eroman): Write a test which exercises 24 // TODO(eroman): Write a test which exercises
27 // ProxyService::SuspendAllPendingRequests(). 25 // ProxyService::SuspendAllPendingRequests().
28 namespace net { 26 namespace net {
29 namespace { 27 namespace {
30 28
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
62 } 60 }
63 61
64 private: 62 private:
65 ConfigAvailability availability_; 63 ConfigAvailability availability_;
66 ProxyConfig config_; 64 ProxyConfig config_;
67 ObserverList<Observer, true> observers_; 65 ObserverList<Observer, true> observers_;
68 }; 66 };
69 67
70 } // namespace 68 } // namespace
71 69
70 // A mock ProxyScriptFetcher. No result will be returned to the fetch client
71 // until we call NotifyFetchCompletion() to set the results.
72 class MockProxyScriptFetcher : public ProxyScriptFetcher {
73 public:
74 MockProxyScriptFetcher()
75 : pending_request_callback_(NULL), pending_request_text_(NULL) {
76 }
77
78 // ProxyScriptFetcher implementation.
79 virtual int Fetch(const GURL& url,
80 string16* text,
81 CompletionCallback* callback) {
82 DCHECK(!has_pending_request());
83
84 // Save the caller's information, and have them wait.
85 pending_request_url_ = url;
86 pending_request_callback_ = callback;
87 pending_request_text_ = text;
88 return ERR_IO_PENDING;
89 }
90
91 void NotifyFetchCompletion(int result, const std::string& ascii_text) {
92 DCHECK(has_pending_request());
93 *pending_request_text_ = ASCIIToUTF16(ascii_text);
94 CompletionCallback* callback = pending_request_callback_;
95 pending_request_callback_ = NULL;
96 callback->Run(result);
97 }
98
99 virtual void Cancel() {}
100
101 virtual URLRequestContext* GetRequestContext() { return NULL; }
102
103 const GURL& pending_request_url() const {
104 return pending_request_url_;
105 }
106
107 bool has_pending_request() const {
108 return pending_request_callback_ != NULL;
109 }
110
111 private:
112 GURL pending_request_url_;
113 CompletionCallback* pending_request_callback_;
114 string16* pending_request_text_;
115 };
116
72 TEST(ProxyServiceTest, Direct) { 117 TEST(ProxyServiceTest, Direct) {
73 MockAsyncProxyResolver* resolver = new MockAsyncProxyResolver; 118 MockAsyncProxyResolver* resolver = new MockAsyncProxyResolver;
74 ProxyService service(new MockProxyConfigService( 119 ProxyService service(new MockProxyConfigService(
75 ProxyConfig::CreateDirect()), resolver, NULL); 120 ProxyConfig::CreateDirect()), resolver, NULL);
76 121
77 GURL url("http://www.google.com/"); 122 GURL url("http://www.google.com/");
78 123
79 ProxyInfo info; 124 ProxyInfo info;
80 TestCompletionCallback callback; 125 TestCompletionCallback callback;
81 CapturingBoundNetLog log(CapturingNetLog::kUnbounded); 126 CapturingBoundNetLog log(CapturingNetLog::kUnbounded);
(...skipping 315 matching lines...) Expand 10 before | Expand all | Expand 10 after
397 config.set_pac_mandatory(true); 442 config.set_pac_mandatory(true);
398 443
399 MockProxyConfigService* config_service = new MockProxyConfigService(config); 444 MockProxyConfigService* config_service = new MockProxyConfigService(config);
400 445
401 MockAsyncProxyResolverExpectsBytes* resolver = 446 MockAsyncProxyResolverExpectsBytes* resolver =
402 new MockAsyncProxyResolverExpectsBytes; 447 new MockAsyncProxyResolverExpectsBytes;
403 448
404 ProxyService service(config_service, resolver, NULL); 449 ProxyService service(config_service, resolver, NULL);
405 450
406 MockProxyScriptFetcher* fetcher = new MockProxyScriptFetcher; 451 MockProxyScriptFetcher* fetcher = new MockProxyScriptFetcher;
407 DhcpProxyScriptFetcher* dhcp_fetcher = new DoNothingDhcpProxyScriptFetcher(); 452 service.SetProxyScriptFetcher(fetcher);
408 service.SetProxyScriptFetchers(fetcher, dhcp_fetcher);
409 453
410 // Start resolve request. 454 // Start resolve request.
411 GURL url("http://www.google.com/"); 455 GURL url("http://www.google.com/");
412 ProxyInfo info; 456 ProxyInfo info;
413 TestCompletionCallback callback; 457 TestCompletionCallback callback;
414 int rv = service.ResolveProxy(url, &info, &callback, NULL, BoundNetLog()); 458 int rv = service.ResolveProxy(url, &info, &callback, NULL, BoundNetLog());
415 EXPECT_EQ(ERR_IO_PENDING, rv); 459 EXPECT_EQ(ERR_IO_PENDING, rv);
416 460
417 // Check that nothing has been sent to the proxy resolver yet. 461 // Check that nothing has been sent to the proxy resolver yet.
418 ASSERT_EQ(0u, resolver->pending_requests().size()); 462 ASSERT_EQ(0u, resolver->pending_requests().size());
(...skipping 713 matching lines...) Expand 10 before | Expand all | Expand 10 after
1132 TEST(ProxyServiceTest, InitialPACScriptDownload) { 1176 TEST(ProxyServiceTest, InitialPACScriptDownload) {
1133 MockProxyConfigService* config_service = 1177 MockProxyConfigService* config_service =
1134 new MockProxyConfigService("http://foopy/proxy.pac"); 1178 new MockProxyConfigService("http://foopy/proxy.pac");
1135 1179
1136 MockAsyncProxyResolverExpectsBytes* resolver = 1180 MockAsyncProxyResolverExpectsBytes* resolver =
1137 new MockAsyncProxyResolverExpectsBytes; 1181 new MockAsyncProxyResolverExpectsBytes;
1138 1182
1139 ProxyService service(config_service, resolver, NULL); 1183 ProxyService service(config_service, resolver, NULL);
1140 1184
1141 MockProxyScriptFetcher* fetcher = new MockProxyScriptFetcher; 1185 MockProxyScriptFetcher* fetcher = new MockProxyScriptFetcher;
1142 service.SetProxyScriptFetchers(fetcher, 1186 service.SetProxyScriptFetcher(fetcher);
1143 new DoNothingDhcpProxyScriptFetcher());
1144 1187
1145 // Start 3 requests. 1188 // Start 3 requests.
1146 1189
1147 ProxyInfo info1; 1190 ProxyInfo info1;
1148 TestCompletionCallback callback1; 1191 TestCompletionCallback callback1;
1149 int rv = service.ResolveProxy( 1192 int rv = service.ResolveProxy(
1150 GURL("http://request1"), &info1, &callback1, NULL, BoundNetLog()); 1193 GURL("http://request1"), &info1, &callback1, NULL, BoundNetLog());
1151 EXPECT_EQ(ERR_IO_PENDING, rv); 1194 EXPECT_EQ(ERR_IO_PENDING, rv);
1152 1195
1153 // The first request should have triggered download of PAC script. 1196 // The first request should have triggered download of PAC script.
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after
1212 TEST(ProxyServiceTest, ChangeScriptFetcherWhilePACDownloadInProgress) { 1255 TEST(ProxyServiceTest, ChangeScriptFetcherWhilePACDownloadInProgress) {
1213 MockProxyConfigService* config_service = 1256 MockProxyConfigService* config_service =
1214 new MockProxyConfigService("http://foopy/proxy.pac"); 1257 new MockProxyConfigService("http://foopy/proxy.pac");
1215 1258
1216 MockAsyncProxyResolverExpectsBytes* resolver = 1259 MockAsyncProxyResolverExpectsBytes* resolver =
1217 new MockAsyncProxyResolverExpectsBytes; 1260 new MockAsyncProxyResolverExpectsBytes;
1218 1261
1219 ProxyService service(config_service, resolver, NULL); 1262 ProxyService service(config_service, resolver, NULL);
1220 1263
1221 MockProxyScriptFetcher* fetcher = new MockProxyScriptFetcher; 1264 MockProxyScriptFetcher* fetcher = new MockProxyScriptFetcher;
1222 service.SetProxyScriptFetchers(fetcher, 1265 service.SetProxyScriptFetcher(fetcher);
1223 new DoNothingDhcpProxyScriptFetcher());
1224 1266
1225 // Start 2 requests. 1267 // Start 2 requests.
1226 1268
1227 ProxyInfo info1; 1269 ProxyInfo info1;
1228 TestCompletionCallback callback1; 1270 TestCompletionCallback callback1;
1229 int rv = service.ResolveProxy( 1271 int rv = service.ResolveProxy(
1230 GURL("http://request1"), &info1, &callback1, NULL, BoundNetLog()); 1272 GURL("http://request1"), &info1, &callback1, NULL, BoundNetLog());
1231 EXPECT_EQ(ERR_IO_PENDING, rv); 1273 EXPECT_EQ(ERR_IO_PENDING, rv);
1232 1274
1233 // The first request should have triggered download of PAC script. 1275 // The first request should have triggered download of PAC script.
1234 EXPECT_TRUE(fetcher->has_pending_request()); 1276 EXPECT_TRUE(fetcher->has_pending_request());
1235 EXPECT_EQ(GURL("http://foopy/proxy.pac"), fetcher->pending_request_url()); 1277 EXPECT_EQ(GURL("http://foopy/proxy.pac"), fetcher->pending_request_url());
1236 1278
1237 ProxyInfo info2; 1279 ProxyInfo info2;
1238 TestCompletionCallback callback2; 1280 TestCompletionCallback callback2;
1239 rv = service.ResolveProxy( 1281 rv = service.ResolveProxy(
1240 GURL("http://request2"), &info2, &callback2, NULL, BoundNetLog()); 1282 GURL("http://request2"), &info2, &callback2, NULL, BoundNetLog());
1241 EXPECT_EQ(ERR_IO_PENDING, rv); 1283 EXPECT_EQ(ERR_IO_PENDING, rv);
1242 1284
1243 // At this point the ProxyService should be waiting for the 1285 // At this point the ProxyService should be waiting for the
1244 // ProxyScriptFetcher to invoke its completion callback, notifying it of 1286 // ProxyScriptFetcher to invoke its completion callback, notifying it of
1245 // PAC script download completion. 1287 // PAC script download completion.
1246 1288
1247 // We now change out the ProxyService's script fetcher. We should restart 1289 // We now change out the ProxyService's script fetcher. We should restart
1248 // the initialization with the new fetcher. 1290 // the initialization with the new fetcher.
1249 1291
1250 fetcher = new MockProxyScriptFetcher; 1292 fetcher = new MockProxyScriptFetcher;
1251 service.SetProxyScriptFetchers(fetcher, 1293 service.SetProxyScriptFetcher(fetcher);
1252 new DoNothingDhcpProxyScriptFetcher());
1253 1294
1254 // Nothing has been sent to the resolver yet. 1295 // Nothing has been sent to the resolver yet.
1255 EXPECT_TRUE(resolver->pending_requests().empty()); 1296 EXPECT_TRUE(resolver->pending_requests().empty());
1256 1297
1257 fetcher->NotifyFetchCompletion(OK, "pac-v1"); 1298 fetcher->NotifyFetchCompletion(OK, "pac-v1");
1258 1299
1259 // Now that the PAC script is downloaded, it will have been sent to the proxy 1300 // Now that the PAC script is downloaded, it will have been sent to the proxy
1260 // resolver. 1301 // resolver.
1261 EXPECT_EQ(ASCIIToUTF16("pac-v1"), 1302 EXPECT_EQ(ASCIIToUTF16("pac-v1"),
1262 resolver->pending_set_pac_script_request()->script_data()->utf16()); 1303 resolver->pending_set_pac_script_request()->script_data()->utf16());
1263 resolver->pending_set_pac_script_request()->CompleteNow(OK); 1304 resolver->pending_set_pac_script_request()->CompleteNow(OK);
1264 1305
1265 ASSERT_EQ(2u, resolver->pending_requests().size()); 1306 ASSERT_EQ(2u, resolver->pending_requests().size());
1266 EXPECT_EQ(GURL("http://request1"), resolver->pending_requests()[0]->url()); 1307 EXPECT_EQ(GURL("http://request1"), resolver->pending_requests()[0]->url());
1267 EXPECT_EQ(GURL("http://request2"), resolver->pending_requests()[1]->url()); 1308 EXPECT_EQ(GURL("http://request2"), resolver->pending_requests()[1]->url());
1268 } 1309 }
1269 1310
1270 // Test cancellation of a request, while the PAC script is being fetched. 1311 // Test cancellation of a request, while the PAC script is being fetched.
1271 TEST(ProxyServiceTest, CancelWhilePACFetching) { 1312 TEST(ProxyServiceTest, CancelWhilePACFetching) {
1272 MockProxyConfigService* config_service = 1313 MockProxyConfigService* config_service =
1273 new MockProxyConfigService("http://foopy/proxy.pac"); 1314 new MockProxyConfigService("http://foopy/proxy.pac");
1274 1315
1275 MockAsyncProxyResolverExpectsBytes* resolver = 1316 MockAsyncProxyResolverExpectsBytes* resolver =
1276 new MockAsyncProxyResolverExpectsBytes; 1317 new MockAsyncProxyResolverExpectsBytes;
1277 1318
1278 ProxyService service(config_service, resolver, NULL); 1319 ProxyService service(config_service, resolver, NULL);
1279 1320
1280 MockProxyScriptFetcher* fetcher = new MockProxyScriptFetcher; 1321 MockProxyScriptFetcher* fetcher = new MockProxyScriptFetcher;
1281 service.SetProxyScriptFetchers(fetcher, 1322 service.SetProxyScriptFetcher(fetcher);
1282 new DoNothingDhcpProxyScriptFetcher());
1283 1323
1284 // Start 3 requests. 1324 // Start 3 requests.
1285 ProxyInfo info1; 1325 ProxyInfo info1;
1286 TestCompletionCallback callback1; 1326 TestCompletionCallback callback1;
1287 ProxyService::PacRequest* request1; 1327 ProxyService::PacRequest* request1;
1288 CapturingBoundNetLog log1(CapturingNetLog::kUnbounded); 1328 CapturingBoundNetLog log1(CapturingNetLog::kUnbounded);
1289 int rv = service.ResolveProxy( 1329 int rv = service.ResolveProxy(
1290 GURL("http://request1"), &info1, &callback1, &request1, log1.bound()); 1330 GURL("http://request1"), &info1, &callback1, &request1, log1.bound());
1291 EXPECT_EQ(ERR_IO_PENDING, rv); 1331 EXPECT_EQ(ERR_IO_PENDING, rv);
1292 1332
(...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after
1363 config.set_auto_detect(true); 1403 config.set_auto_detect(true);
1364 config.set_pac_url(GURL("http://foopy/proxy.pac")); 1404 config.set_pac_url(GURL("http://foopy/proxy.pac"));
1365 config.proxy_rules().ParseFromString("http=foopy:80"); // Won't be used. 1405 config.proxy_rules().ParseFromString("http=foopy:80"); // Won't be used.
1366 1406
1367 MockProxyConfigService* config_service = new MockProxyConfigService(config); 1407 MockProxyConfigService* config_service = new MockProxyConfigService(config);
1368 MockAsyncProxyResolverExpectsBytes* resolver = 1408 MockAsyncProxyResolverExpectsBytes* resolver =
1369 new MockAsyncProxyResolverExpectsBytes; 1409 new MockAsyncProxyResolverExpectsBytes;
1370 ProxyService service(config_service, resolver, NULL); 1410 ProxyService service(config_service, resolver, NULL);
1371 1411
1372 MockProxyScriptFetcher* fetcher = new MockProxyScriptFetcher; 1412 MockProxyScriptFetcher* fetcher = new MockProxyScriptFetcher;
1373 service.SetProxyScriptFetchers(fetcher, 1413 service.SetProxyScriptFetcher(fetcher);
1374 new DoNothingDhcpProxyScriptFetcher());
1375 1414
1376 // Start 2 requests. 1415 // Start 2 requests.
1377 1416
1378 ProxyInfo info1; 1417 ProxyInfo info1;
1379 TestCompletionCallback callback1; 1418 TestCompletionCallback callback1;
1380 int rv = service.ResolveProxy( 1419 int rv = service.ResolveProxy(
1381 GURL("http://request1"), &info1, &callback1, NULL, BoundNetLog()); 1420 GURL("http://request1"), &info1, &callback1, NULL, BoundNetLog());
1382 EXPECT_EQ(ERR_IO_PENDING, rv); 1421 EXPECT_EQ(ERR_IO_PENDING, rv);
1383 1422
1384 ProxyInfo info2; 1423 ProxyInfo info2;
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after
1434 config.set_auto_detect(true); 1473 config.set_auto_detect(true);
1435 config.set_pac_url(GURL("http://foopy/proxy.pac")); 1474 config.set_pac_url(GURL("http://foopy/proxy.pac"));
1436 config.proxy_rules().ParseFromString("http=foopy:80"); // Won't be used. 1475 config.proxy_rules().ParseFromString("http=foopy:80"); // Won't be used.
1437 1476
1438 MockProxyConfigService* config_service = new MockProxyConfigService(config); 1477 MockProxyConfigService* config_service = new MockProxyConfigService(config);
1439 MockAsyncProxyResolverExpectsBytes* resolver = 1478 MockAsyncProxyResolverExpectsBytes* resolver =
1440 new MockAsyncProxyResolverExpectsBytes; 1479 new MockAsyncProxyResolverExpectsBytes;
1441 ProxyService service(config_service, resolver, NULL); 1480 ProxyService service(config_service, resolver, NULL);
1442 1481
1443 MockProxyScriptFetcher* fetcher = new MockProxyScriptFetcher; 1482 MockProxyScriptFetcher* fetcher = new MockProxyScriptFetcher;
1444 service.SetProxyScriptFetchers(fetcher, 1483 service.SetProxyScriptFetcher(fetcher);
1445 new DoNothingDhcpProxyScriptFetcher());
1446 1484
1447 // Start 2 requests. 1485 // Start 2 requests.
1448 1486
1449 ProxyInfo info1; 1487 ProxyInfo info1;
1450 TestCompletionCallback callback1; 1488 TestCompletionCallback callback1;
1451 int rv = service.ResolveProxy( 1489 int rv = service.ResolveProxy(
1452 GURL("http://request1"), &info1, &callback1, NULL, BoundNetLog()); 1490 GURL("http://request1"), &info1, &callback1, NULL, BoundNetLog());
1453 EXPECT_EQ(ERR_IO_PENDING, rv); 1491 EXPECT_EQ(ERR_IO_PENDING, rv);
1454 1492
1455 ProxyInfo info2; 1493 ProxyInfo info2;
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after
1510 config.set_auto_detect(true); 1548 config.set_auto_detect(true);
1511 config.set_pac_url(GURL("http://foopy/proxy.pac")); 1549 config.set_pac_url(GURL("http://foopy/proxy.pac"));
1512 config.proxy_rules().ParseFromString("http=foopy:80"); 1550 config.proxy_rules().ParseFromString("http=foopy:80");
1513 1551
1514 MockProxyConfigService* config_service = new MockProxyConfigService(config); 1552 MockProxyConfigService* config_service = new MockProxyConfigService(config);
1515 MockAsyncProxyResolverExpectsBytes* resolver = 1553 MockAsyncProxyResolverExpectsBytes* resolver =
1516 new MockAsyncProxyResolverExpectsBytes; 1554 new MockAsyncProxyResolverExpectsBytes;
1517 ProxyService service(config_service, resolver, NULL); 1555 ProxyService service(config_service, resolver, NULL);
1518 1556
1519 MockProxyScriptFetcher* fetcher = new MockProxyScriptFetcher; 1557 MockProxyScriptFetcher* fetcher = new MockProxyScriptFetcher;
1520 service.SetProxyScriptFetchers(fetcher, 1558 service.SetProxyScriptFetcher(fetcher);
1521 new DoNothingDhcpProxyScriptFetcher());
1522 1559
1523 // Start 2 requests. 1560 // Start 2 requests.
1524 1561
1525 ProxyInfo info1; 1562 ProxyInfo info1;
1526 TestCompletionCallback callback1; 1563 TestCompletionCallback callback1;
1527 int rv = service.ResolveProxy( 1564 int rv = service.ResolveProxy(
1528 GURL("http://request1"), &info1, &callback1, NULL, BoundNetLog()); 1565 GURL("http://request1"), &info1, &callback1, NULL, BoundNetLog());
1529 EXPECT_EQ(ERR_IO_PENDING, rv); 1566 EXPECT_EQ(ERR_IO_PENDING, rv);
1530 1567
1531 ProxyInfo info2; 1568 ProxyInfo info2;
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
1568 config.set_pac_url(GURL("http://foopy/proxy.pac")); 1605 config.set_pac_url(GURL("http://foopy/proxy.pac"));
1569 config.proxy_rules().ParseFromString("http=foopy:80"); // Not used. 1606 config.proxy_rules().ParseFromString("http=foopy:80"); // Not used.
1570 config.proxy_rules().bypass_rules.ParseFromString("www.google.com"); 1607 config.proxy_rules().bypass_rules.ParseFromString("www.google.com");
1571 1608
1572 MockProxyConfigService* config_service = new MockProxyConfigService(config); 1609 MockProxyConfigService* config_service = new MockProxyConfigService(config);
1573 MockAsyncProxyResolverExpectsBytes* resolver = 1610 MockAsyncProxyResolverExpectsBytes* resolver =
1574 new MockAsyncProxyResolverExpectsBytes; 1611 new MockAsyncProxyResolverExpectsBytes;
1575 ProxyService service(config_service, resolver, NULL); 1612 ProxyService service(config_service, resolver, NULL);
1576 1613
1577 MockProxyScriptFetcher* fetcher = new MockProxyScriptFetcher; 1614 MockProxyScriptFetcher* fetcher = new MockProxyScriptFetcher;
1578 service.SetProxyScriptFetchers(fetcher, 1615 service.SetProxyScriptFetcher(fetcher);
1579 new DoNothingDhcpProxyScriptFetcher());
1580 1616
1581 // Start 1 requests. 1617 // Start 1 requests.
1582 1618
1583 ProxyInfo info1; 1619 ProxyInfo info1;
1584 TestCompletionCallback callback1; 1620 TestCompletionCallback callback1;
1585 int rv = service.ResolveProxy( 1621 int rv = service.ResolveProxy(
1586 GURL("http://www.google.com"), &info1, &callback1, NULL, BoundNetLog()); 1622 GURL("http://www.google.com"), &info1, &callback1, NULL, BoundNetLog());
1587 EXPECT_EQ(ERR_IO_PENDING, rv); 1623 EXPECT_EQ(ERR_IO_PENDING, rv);
1588 1624
1589 // Check that nothing has been sent to the proxy resolver yet. 1625 // Check that nothing has been sent to the proxy resolver yet.
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after
1636 TEST(ProxyServiceTest, DeleteWhileInitProxyResolverHasOutstandingFetch) { 1672 TEST(ProxyServiceTest, DeleteWhileInitProxyResolverHasOutstandingFetch) {
1637 ProxyConfig config = 1673 ProxyConfig config =
1638 ProxyConfig::CreateFromCustomPacURL(GURL("http://foopy/proxy.pac")); 1674 ProxyConfig::CreateFromCustomPacURL(GURL("http://foopy/proxy.pac"));
1639 1675
1640 MockProxyConfigService* config_service = new MockProxyConfigService(config); 1676 MockProxyConfigService* config_service = new MockProxyConfigService(config);
1641 MockAsyncProxyResolverExpectsBytes* resolver = 1677 MockAsyncProxyResolverExpectsBytes* resolver =
1642 new MockAsyncProxyResolverExpectsBytes; 1678 new MockAsyncProxyResolverExpectsBytes;
1643 ProxyService service(config_service, resolver, NULL); 1679 ProxyService service(config_service, resolver, NULL);
1644 1680
1645 MockProxyScriptFetcher* fetcher = new MockProxyScriptFetcher; 1681 MockProxyScriptFetcher* fetcher = new MockProxyScriptFetcher;
1646 service.SetProxyScriptFetchers(fetcher, 1682 service.SetProxyScriptFetcher(fetcher);
1647 new DoNothingDhcpProxyScriptFetcher());
1648 1683
1649 // Start 1 request. 1684 // Start 1 request.
1650 1685
1651 ProxyInfo info1; 1686 ProxyInfo info1;
1652 TestCompletionCallback callback1; 1687 TestCompletionCallback callback1;
1653 int rv = service.ResolveProxy( 1688 int rv = service.ResolveProxy(
1654 GURL("http://www.google.com"), &info1, &callback1, NULL, BoundNetLog()); 1689 GURL("http://www.google.com"), &info1, &callback1, NULL, BoundNetLog());
1655 EXPECT_EQ(ERR_IO_PENDING, rv); 1690 EXPECT_EQ(ERR_IO_PENDING, rv);
1656 1691
1657 // Check that nothing has been sent to the proxy resolver yet. 1692 // Check that nothing has been sent to the proxy resolver yet.
(...skipping 110 matching lines...) Expand 10 before | Expand all | Expand 10 after
1768 new MockProxyConfigService("http://foopy/proxy.pac"); 1803 new MockProxyConfigService("http://foopy/proxy.pac");
1769 1804
1770 MockAsyncProxyResolverExpectsBytes* resolver = 1805 MockAsyncProxyResolverExpectsBytes* resolver =
1771 new MockAsyncProxyResolverExpectsBytes; 1806 new MockAsyncProxyResolverExpectsBytes;
1772 1807
1773 CapturingNetLog log(CapturingNetLog::kUnbounded); 1808 CapturingNetLog log(CapturingNetLog::kUnbounded);
1774 1809
1775 ProxyService service(config_service, resolver, &log); 1810 ProxyService service(config_service, resolver, &log);
1776 1811
1777 MockProxyScriptFetcher* fetcher = new MockProxyScriptFetcher; 1812 MockProxyScriptFetcher* fetcher = new MockProxyScriptFetcher;
1778 service.SetProxyScriptFetchers(fetcher, 1813 service.SetProxyScriptFetcher(fetcher);
1779 new DoNothingDhcpProxyScriptFetcher());
1780 1814
1781 // Disable the "wait after IP address changes" hack, so this unit-test can 1815 // Disable the "wait after IP address changes" hack, so this unit-test can
1782 // complete quickly. 1816 // complete quickly.
1783 service.set_stall_proxy_auto_config_delay(base::TimeDelta()); 1817 service.set_stall_proxy_auto_config_delay(base::TimeDelta());
1784 1818
1785 // Start 1 request. 1819 // Start 1 request.
1786 1820
1787 ProxyInfo info1; 1821 ProxyInfo info1;
1788 TestCompletionCallback callback1; 1822 TestCompletionCallback callback1;
1789 int rv = service.ResolveProxy( 1823 int rv = service.ResolveProxy(
(...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after
1869 log.GetEntries(&entries); 1903 log.GetEntries(&entries);
1870 1904
1871 EXPECT_TRUE(LogContainsEntryWithType(entries, 0, 1905 EXPECT_TRUE(LogContainsEntryWithType(entries, 0,
1872 NetLog::TYPE_PROXY_CONFIG_CHANGED)); 1906 NetLog::TYPE_PROXY_CONFIG_CHANGED));
1873 ASSERT_EQ(13u, entries.size()); 1907 ASSERT_EQ(13u, entries.size());
1874 for (size_t i = 1; i < entries.size(); ++i) 1908 for (size_t i = 1; i < entries.size(); ++i)
1875 EXPECT_NE(NetLog::TYPE_PROXY_CONFIG_CHANGED, entries[i].type); 1909 EXPECT_NE(NetLog::TYPE_PROXY_CONFIG_CHANGED, entries[i].type);
1876 } 1910 }
1877 1911
1878 } // namespace net 1912 } // namespace net
OLDNEW
« no previous file with comments | « net/proxy/proxy_service.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698