| 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 "build/build_config.h" | 5 #include "build/build_config.h" |
| 6 | 6 |
| 7 #if defined(OS_WIN) | 7 #if defined(OS_WIN) |
| 8 #include <windows.h> | 8 #include <windows.h> |
| 9 #include <shlobj.h> | 9 #include <shlobj.h> |
| 10 #endif | 10 #endif |
| (...skipping 1140 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1151 } | 1151 } |
| 1152 protected: | 1152 protected: |
| 1153 void StartAsync() override { | 1153 void StartAsync() override { |
| 1154 request_->Cancel(); | 1154 request_->Cancel(); |
| 1155 this->NotifyRestartRequired(); | 1155 this->NotifyRestartRequired(); |
| 1156 } | 1156 } |
| 1157 private: | 1157 private: |
| 1158 ~CancelThenRestartTestJob() override {} | 1158 ~CancelThenRestartTestJob() override {} |
| 1159 }; | 1159 }; |
| 1160 | 1160 |
| 1161 // An Interceptor for use with interceptor tests | |
| 1162 class TestInterceptor : URLRequest::Interceptor { | |
| 1163 public: | |
| 1164 TestInterceptor() | |
| 1165 : intercept_main_request_(false), restart_main_request_(false), | |
| 1166 cancel_main_request_(false), cancel_then_restart_main_request_(false), | |
| 1167 simulate_main_network_error_(false), | |
| 1168 intercept_redirect_(false), cancel_redirect_request_(false), | |
| 1169 intercept_final_response_(false), cancel_final_request_(false), | |
| 1170 did_intercept_main_(false), did_restart_main_(false), | |
| 1171 did_cancel_main_(false), did_cancel_then_restart_main_(false), | |
| 1172 did_simulate_error_main_(false), | |
| 1173 did_intercept_redirect_(false), did_cancel_redirect_(false), | |
| 1174 did_intercept_final_(false), did_cancel_final_(false) { | |
| 1175 URLRequest::Deprecated::RegisterRequestInterceptor(this); | |
| 1176 } | |
| 1177 | |
| 1178 ~TestInterceptor() override { | |
| 1179 URLRequest::Deprecated::UnregisterRequestInterceptor(this); | |
| 1180 } | |
| 1181 | |
| 1182 URLRequestJob* MaybeIntercept(URLRequest* request, | |
| 1183 NetworkDelegate* network_delegate) override { | |
| 1184 if (restart_main_request_) { | |
| 1185 restart_main_request_ = false; | |
| 1186 did_restart_main_ = true; | |
| 1187 return new RestartTestJob(request, network_delegate); | |
| 1188 } | |
| 1189 if (cancel_main_request_) { | |
| 1190 cancel_main_request_ = false; | |
| 1191 did_cancel_main_ = true; | |
| 1192 return new CancelTestJob(request, network_delegate); | |
| 1193 } | |
| 1194 if (cancel_then_restart_main_request_) { | |
| 1195 cancel_then_restart_main_request_ = false; | |
| 1196 did_cancel_then_restart_main_ = true; | |
| 1197 return new CancelThenRestartTestJob(request, network_delegate); | |
| 1198 } | |
| 1199 if (simulate_main_network_error_) { | |
| 1200 simulate_main_network_error_ = false; | |
| 1201 did_simulate_error_main_ = true; | |
| 1202 // will error since the requeted url is not one of its canned urls | |
| 1203 return new URLRequestTestJob(request, network_delegate, true); | |
| 1204 } | |
| 1205 if (!intercept_main_request_) | |
| 1206 return NULL; | |
| 1207 intercept_main_request_ = false; | |
| 1208 did_intercept_main_ = true; | |
| 1209 URLRequestTestJob* job = new URLRequestTestJob(request, | |
| 1210 network_delegate, | |
| 1211 main_headers_, | |
| 1212 main_data_, | |
| 1213 true); | |
| 1214 job->set_load_timing_info(main_request_load_timing_info_); | |
| 1215 return job; | |
| 1216 } | |
| 1217 | |
| 1218 URLRequestJob* MaybeInterceptRedirect(URLRequest* request, | |
| 1219 NetworkDelegate* network_delegate, | |
| 1220 const GURL& location) override { | |
| 1221 if (cancel_redirect_request_) { | |
| 1222 cancel_redirect_request_ = false; | |
| 1223 did_cancel_redirect_ = true; | |
| 1224 return new CancelTestJob(request, network_delegate); | |
| 1225 } | |
| 1226 if (!intercept_redirect_) | |
| 1227 return NULL; | |
| 1228 intercept_redirect_ = false; | |
| 1229 did_intercept_redirect_ = true; | |
| 1230 return new URLRequestTestJob(request, | |
| 1231 network_delegate, | |
| 1232 redirect_headers_, | |
| 1233 redirect_data_, | |
| 1234 true); | |
| 1235 } | |
| 1236 | |
| 1237 URLRequestJob* MaybeInterceptResponse( | |
| 1238 URLRequest* request, | |
| 1239 NetworkDelegate* network_delegate) override { | |
| 1240 if (cancel_final_request_) { | |
| 1241 cancel_final_request_ = false; | |
| 1242 did_cancel_final_ = true; | |
| 1243 return new CancelTestJob(request, network_delegate); | |
| 1244 } | |
| 1245 if (!intercept_final_response_) | |
| 1246 return NULL; | |
| 1247 intercept_final_response_ = false; | |
| 1248 did_intercept_final_ = true; | |
| 1249 return new URLRequestTestJob(request, | |
| 1250 network_delegate, | |
| 1251 final_headers_, | |
| 1252 final_data_, | |
| 1253 true); | |
| 1254 } | |
| 1255 | |
| 1256 // Whether to intercept the main request, and if so the response to return and | |
| 1257 // the LoadTimingInfo to use. | |
| 1258 bool intercept_main_request_; | |
| 1259 std::string main_headers_; | |
| 1260 std::string main_data_; | |
| 1261 LoadTimingInfo main_request_load_timing_info_; | |
| 1262 | |
| 1263 // Other actions we take at MaybeIntercept time | |
| 1264 bool restart_main_request_; | |
| 1265 bool cancel_main_request_; | |
| 1266 bool cancel_then_restart_main_request_; | |
| 1267 bool simulate_main_network_error_; | |
| 1268 | |
| 1269 // Whether to intercept redirects, and if so the response to return. | |
| 1270 bool intercept_redirect_; | |
| 1271 std::string redirect_headers_; | |
| 1272 std::string redirect_data_; | |
| 1273 | |
| 1274 // Other actions we can take at MaybeInterceptRedirect time | |
| 1275 bool cancel_redirect_request_; | |
| 1276 | |
| 1277 // Whether to intercept final response, and if so the response to return. | |
| 1278 bool intercept_final_response_; | |
| 1279 std::string final_headers_; | |
| 1280 std::string final_data_; | |
| 1281 | |
| 1282 // Other actions we can take at MaybeInterceptResponse time | |
| 1283 bool cancel_final_request_; | |
| 1284 | |
| 1285 // If we did something or not | |
| 1286 bool did_intercept_main_; | |
| 1287 bool did_restart_main_; | |
| 1288 bool did_cancel_main_; | |
| 1289 bool did_cancel_then_restart_main_; | |
| 1290 bool did_simulate_error_main_; | |
| 1291 bool did_intercept_redirect_; | |
| 1292 bool did_cancel_redirect_; | |
| 1293 bool did_intercept_final_; | |
| 1294 bool did_cancel_final_; | |
| 1295 | |
| 1296 // Static getters for canned response header and data strings | |
| 1297 | |
| 1298 static std::string ok_data() { | |
| 1299 return URLRequestTestJob::test_data_1(); | |
| 1300 } | |
| 1301 | |
| 1302 static std::string ok_headers() { | |
| 1303 return URLRequestTestJob::test_headers(); | |
| 1304 } | |
| 1305 | |
| 1306 static std::string redirect_data() { | |
| 1307 return std::string(); | |
| 1308 } | |
| 1309 | |
| 1310 static std::string redirect_headers() { | |
| 1311 return URLRequestTestJob::test_redirect_headers(); | |
| 1312 } | |
| 1313 | |
| 1314 static std::string error_data() { | |
| 1315 return std::string("ohhh nooooo mr. bill!"); | |
| 1316 } | |
| 1317 | |
| 1318 static std::string error_headers() { | |
| 1319 return URLRequestTestJob::test_error_headers(); | |
| 1320 } | |
| 1321 }; | |
| 1322 | |
| 1323 TEST_F(URLRequestTest, Intercept) { | |
| 1324 TestInterceptor interceptor; | |
| 1325 | |
| 1326 // intercept the main request and respond with a simple response | |
| 1327 interceptor.intercept_main_request_ = true; | |
| 1328 interceptor.main_headers_ = TestInterceptor::ok_headers(); | |
| 1329 interceptor.main_data_ = TestInterceptor::ok_data(); | |
| 1330 | |
| 1331 TestDelegate d; | |
| 1332 scoped_ptr<URLRequest> req(default_context_.CreateRequest( | |
| 1333 GURL("http://test_intercept/foo"), DEFAULT_PRIORITY, &d, NULL)); | |
| 1334 base::SupportsUserData::Data* user_data0 = new base::SupportsUserData::Data(); | |
| 1335 base::SupportsUserData::Data* user_data1 = new base::SupportsUserData::Data(); | |
| 1336 base::SupportsUserData::Data* user_data2 = new base::SupportsUserData::Data(); | |
| 1337 req->SetUserData(NULL, user_data0); | |
| 1338 req->SetUserData(&user_data1, user_data1); | |
| 1339 req->SetUserData(&user_data2, user_data2); | |
| 1340 req->set_method("GET"); | |
| 1341 req->Start(); | |
| 1342 base::RunLoop().Run(); | |
| 1343 | |
| 1344 // Make sure we can retrieve our specific user data | |
| 1345 EXPECT_EQ(user_data0, req->GetUserData(NULL)); | |
| 1346 EXPECT_EQ(user_data1, req->GetUserData(&user_data1)); | |
| 1347 EXPECT_EQ(user_data2, req->GetUserData(&user_data2)); | |
| 1348 | |
| 1349 // Check the interceptor got called as expected | |
| 1350 EXPECT_TRUE(interceptor.did_intercept_main_); | |
| 1351 | |
| 1352 // Check we got one good response | |
| 1353 EXPECT_TRUE(req->status().is_success()); | |
| 1354 EXPECT_EQ(200, req->response_headers()->response_code()); | |
| 1355 EXPECT_EQ(TestInterceptor::ok_data(), d.data_received()); | |
| 1356 EXPECT_EQ(1, d.response_started_count()); | |
| 1357 EXPECT_EQ(0, d.received_redirect_count()); | |
| 1358 } | |
| 1359 | |
| 1360 TEST_F(URLRequestTest, InterceptRedirect) { | |
| 1361 TestInterceptor interceptor; | |
| 1362 | |
| 1363 // intercept the main request and respond with a redirect | |
| 1364 interceptor.intercept_main_request_ = true; | |
| 1365 interceptor.main_headers_ = TestInterceptor::redirect_headers(); | |
| 1366 interceptor.main_data_ = TestInterceptor::redirect_data(); | |
| 1367 | |
| 1368 // intercept that redirect and respond a final OK response | |
| 1369 interceptor.intercept_redirect_ = true; | |
| 1370 interceptor.redirect_headers_ = TestInterceptor::ok_headers(); | |
| 1371 interceptor.redirect_data_ = TestInterceptor::ok_data(); | |
| 1372 | |
| 1373 TestDelegate d; | |
| 1374 scoped_ptr<URLRequest> req(default_context_.CreateRequest( | |
| 1375 GURL("http://test_intercept/foo"), DEFAULT_PRIORITY, &d, NULL)); | |
| 1376 req->set_method("GET"); | |
| 1377 req->Start(); | |
| 1378 base::RunLoop().Run(); | |
| 1379 | |
| 1380 // Check the interceptor got called as expected | |
| 1381 EXPECT_TRUE(interceptor.did_intercept_main_); | |
| 1382 EXPECT_TRUE(interceptor.did_intercept_redirect_); | |
| 1383 | |
| 1384 // Check we got one good response | |
| 1385 EXPECT_TRUE(req->status().is_success()); | |
| 1386 if (req->status().is_success()) { | |
| 1387 EXPECT_EQ(200, req->response_headers()->response_code()); | |
| 1388 } | |
| 1389 EXPECT_EQ(TestInterceptor::ok_data(), d.data_received()); | |
| 1390 EXPECT_EQ(1, d.response_started_count()); | |
| 1391 EXPECT_EQ(0, d.received_redirect_count()); | |
| 1392 } | |
| 1393 | |
| 1394 TEST_F(URLRequestTest, InterceptServerError) { | |
| 1395 TestInterceptor interceptor; | |
| 1396 | |
| 1397 // intercept the main request to generate a server error response | |
| 1398 interceptor.intercept_main_request_ = true; | |
| 1399 interceptor.main_headers_ = TestInterceptor::error_headers(); | |
| 1400 interceptor.main_data_ = TestInterceptor::error_data(); | |
| 1401 | |
| 1402 // intercept that error and respond with an OK response | |
| 1403 interceptor.intercept_final_response_ = true; | |
| 1404 interceptor.final_headers_ = TestInterceptor::ok_headers(); | |
| 1405 interceptor.final_data_ = TestInterceptor::ok_data(); | |
| 1406 | |
| 1407 TestDelegate d; | |
| 1408 scoped_ptr<URLRequest> req(default_context_.CreateRequest( | |
| 1409 GURL("http://test_intercept/foo"), DEFAULT_PRIORITY, &d, NULL)); | |
| 1410 req->set_method("GET"); | |
| 1411 req->Start(); | |
| 1412 base::RunLoop().Run(); | |
| 1413 | |
| 1414 // Check the interceptor got called as expected | |
| 1415 EXPECT_TRUE(interceptor.did_intercept_main_); | |
| 1416 EXPECT_TRUE(interceptor.did_intercept_final_); | |
| 1417 | |
| 1418 // Check we got one good response | |
| 1419 EXPECT_TRUE(req->status().is_success()); | |
| 1420 EXPECT_EQ(200, req->response_headers()->response_code()); | |
| 1421 EXPECT_EQ(TestInterceptor::ok_data(), d.data_received()); | |
| 1422 EXPECT_EQ(1, d.response_started_count()); | |
| 1423 EXPECT_EQ(0, d.received_redirect_count()); | |
| 1424 } | |
| 1425 | |
| 1426 TEST_F(URLRequestTest, InterceptNetworkError) { | |
| 1427 TestInterceptor interceptor; | |
| 1428 | |
| 1429 // intercept the main request to simulate a network error | |
| 1430 interceptor.simulate_main_network_error_ = true; | |
| 1431 | |
| 1432 // intercept that error and respond with an OK response | |
| 1433 interceptor.intercept_final_response_ = true; | |
| 1434 interceptor.final_headers_ = TestInterceptor::ok_headers(); | |
| 1435 interceptor.final_data_ = TestInterceptor::ok_data(); | |
| 1436 | |
| 1437 TestDelegate d; | |
| 1438 scoped_ptr<URLRequest> req(default_context_.CreateRequest( | |
| 1439 GURL("http://test_intercept/foo"), DEFAULT_PRIORITY, &d, NULL)); | |
| 1440 req->set_method("GET"); | |
| 1441 req->Start(); | |
| 1442 base::RunLoop().Run(); | |
| 1443 | |
| 1444 // Check the interceptor got called as expected | |
| 1445 EXPECT_TRUE(interceptor.did_simulate_error_main_); | |
| 1446 EXPECT_TRUE(interceptor.did_intercept_final_); | |
| 1447 | |
| 1448 // Check we received one good response | |
| 1449 EXPECT_TRUE(req->status().is_success()); | |
| 1450 EXPECT_EQ(200, req->response_headers()->response_code()); | |
| 1451 EXPECT_EQ(TestInterceptor::ok_data(), d.data_received()); | |
| 1452 EXPECT_EQ(1, d.response_started_count()); | |
| 1453 EXPECT_EQ(0, d.received_redirect_count()); | |
| 1454 } | |
| 1455 | |
| 1456 TEST_F(URLRequestTest, InterceptRestartRequired) { | |
| 1457 TestInterceptor interceptor; | |
| 1458 | |
| 1459 // restart the main request | |
| 1460 interceptor.restart_main_request_ = true; | |
| 1461 | |
| 1462 // then intercept the new main request and respond with an OK response | |
| 1463 interceptor.intercept_main_request_ = true; | |
| 1464 interceptor.main_headers_ = TestInterceptor::ok_headers(); | |
| 1465 interceptor.main_data_ = TestInterceptor::ok_data(); | |
| 1466 | |
| 1467 TestDelegate d; | |
| 1468 scoped_ptr<URLRequest> req(default_context_.CreateRequest( | |
| 1469 GURL("http://test_intercept/foo"), DEFAULT_PRIORITY, &d, NULL)); | |
| 1470 req->set_method("GET"); | |
| 1471 req->Start(); | |
| 1472 base::RunLoop().Run(); | |
| 1473 | |
| 1474 // Check the interceptor got called as expected | |
| 1475 EXPECT_TRUE(interceptor.did_restart_main_); | |
| 1476 EXPECT_TRUE(interceptor.did_intercept_main_); | |
| 1477 | |
| 1478 // Check we received one good response | |
| 1479 EXPECT_TRUE(req->status().is_success()); | |
| 1480 if (req->status().is_success()) { | |
| 1481 EXPECT_EQ(200, req->response_headers()->response_code()); | |
| 1482 } | |
| 1483 EXPECT_EQ(TestInterceptor::ok_data(), d.data_received()); | |
| 1484 EXPECT_EQ(1, d.response_started_count()); | |
| 1485 EXPECT_EQ(0, d.received_redirect_count()); | |
| 1486 } | |
| 1487 | |
| 1488 TEST_F(URLRequestTest, InterceptRespectsCancelMain) { | |
| 1489 TestInterceptor interceptor; | |
| 1490 | |
| 1491 // intercept the main request and cancel from within the restarted job | |
| 1492 interceptor.cancel_main_request_ = true; | |
| 1493 | |
| 1494 // setup to intercept final response and override it with an OK response | |
| 1495 interceptor.intercept_final_response_ = true; | |
| 1496 interceptor.final_headers_ = TestInterceptor::ok_headers(); | |
| 1497 interceptor.final_data_ = TestInterceptor::ok_data(); | |
| 1498 | |
| 1499 TestDelegate d; | |
| 1500 scoped_ptr<URLRequest> req(default_context_.CreateRequest( | |
| 1501 GURL("http://test_intercept/foo"), DEFAULT_PRIORITY, &d, NULL)); | |
| 1502 req->set_method("GET"); | |
| 1503 req->Start(); | |
| 1504 base::RunLoop().Run(); | |
| 1505 | |
| 1506 // Check the interceptor got called as expected | |
| 1507 EXPECT_TRUE(interceptor.did_cancel_main_); | |
| 1508 EXPECT_FALSE(interceptor.did_intercept_final_); | |
| 1509 | |
| 1510 // Check we see a canceled request | |
| 1511 EXPECT_FALSE(req->status().is_success()); | |
| 1512 EXPECT_EQ(URLRequestStatus::CANCELED, req->status().status()); | |
| 1513 } | |
| 1514 | |
| 1515 TEST_F(URLRequestTest, InterceptRespectsCancelRedirect) { | |
| 1516 TestInterceptor interceptor; | |
| 1517 | |
| 1518 // intercept the main request and respond with a redirect | |
| 1519 interceptor.intercept_main_request_ = true; | |
| 1520 interceptor.main_headers_ = TestInterceptor::redirect_headers(); | |
| 1521 interceptor.main_data_ = TestInterceptor::redirect_data(); | |
| 1522 | |
| 1523 // intercept the redirect and cancel from within that job | |
| 1524 interceptor.cancel_redirect_request_ = true; | |
| 1525 | |
| 1526 // setup to intercept final response and override it with an OK response | |
| 1527 interceptor.intercept_final_response_ = true; | |
| 1528 interceptor.final_headers_ = TestInterceptor::ok_headers(); | |
| 1529 interceptor.final_data_ = TestInterceptor::ok_data(); | |
| 1530 | |
| 1531 TestDelegate d; | |
| 1532 scoped_ptr<URLRequest> req(default_context_.CreateRequest( | |
| 1533 GURL("http://test_intercept/foo"), DEFAULT_PRIORITY, &d, NULL)); | |
| 1534 req->set_method("GET"); | |
| 1535 req->Start(); | |
| 1536 base::RunLoop().Run(); | |
| 1537 | |
| 1538 // Check the interceptor got called as expected | |
| 1539 EXPECT_TRUE(interceptor.did_intercept_main_); | |
| 1540 EXPECT_TRUE(interceptor.did_cancel_redirect_); | |
| 1541 EXPECT_FALSE(interceptor.did_intercept_final_); | |
| 1542 | |
| 1543 // Check we see a canceled request | |
| 1544 EXPECT_FALSE(req->status().is_success()); | |
| 1545 EXPECT_EQ(URLRequestStatus::CANCELED, req->status().status()); | |
| 1546 } | |
| 1547 | |
| 1548 TEST_F(URLRequestTest, InterceptRespectsCancelFinal) { | |
| 1549 TestInterceptor interceptor; | |
| 1550 | |
| 1551 // intercept the main request to simulate a network error | |
| 1552 interceptor.simulate_main_network_error_ = true; | |
| 1553 | |
| 1554 // setup to intercept final response and cancel from within that job | |
| 1555 interceptor.cancel_final_request_ = true; | |
| 1556 | |
| 1557 TestDelegate d; | |
| 1558 scoped_ptr<URLRequest> req(default_context_.CreateRequest( | |
| 1559 GURL("http://test_intercept/foo"), DEFAULT_PRIORITY, &d, NULL)); | |
| 1560 req->set_method("GET"); | |
| 1561 req->Start(); | |
| 1562 base::RunLoop().Run(); | |
| 1563 | |
| 1564 // Check the interceptor got called as expected | |
| 1565 EXPECT_TRUE(interceptor.did_simulate_error_main_); | |
| 1566 EXPECT_TRUE(interceptor.did_cancel_final_); | |
| 1567 | |
| 1568 // Check we see a canceled request | |
| 1569 EXPECT_FALSE(req->status().is_success()); | |
| 1570 EXPECT_EQ(URLRequestStatus::CANCELED, req->status().status()); | |
| 1571 } | |
| 1572 | |
| 1573 TEST_F(URLRequestTest, InterceptRespectsCancelInRestart) { | |
| 1574 TestInterceptor interceptor; | |
| 1575 | |
| 1576 // intercept the main request and cancel then restart from within that job | |
| 1577 interceptor.cancel_then_restart_main_request_ = true; | |
| 1578 | |
| 1579 // setup to intercept final response and override it with an OK response | |
| 1580 interceptor.intercept_final_response_ = true; | |
| 1581 interceptor.final_headers_ = TestInterceptor::ok_headers(); | |
| 1582 interceptor.final_data_ = TestInterceptor::ok_data(); | |
| 1583 | |
| 1584 TestDelegate d; | |
| 1585 scoped_ptr<URLRequest> req(default_context_.CreateRequest( | |
| 1586 GURL("http://test_intercept/foo"), DEFAULT_PRIORITY, &d, NULL)); | |
| 1587 req->set_method("GET"); | |
| 1588 req->Start(); | |
| 1589 base::RunLoop().Run(); | |
| 1590 | |
| 1591 // Check the interceptor got called as expected | |
| 1592 EXPECT_TRUE(interceptor.did_cancel_then_restart_main_); | |
| 1593 EXPECT_FALSE(interceptor.did_intercept_final_); | |
| 1594 | |
| 1595 // Check we see a canceled request | |
| 1596 EXPECT_FALSE(req->status().is_success()); | |
| 1597 EXPECT_EQ(URLRequestStatus::CANCELED, req->status().status()); | |
| 1598 } | |
| 1599 | |
| 1600 // An Interceptor for use with interceptor tests. | 1161 // An Interceptor for use with interceptor tests. |
| 1601 class MockURLRequestInterceptor : public URLRequestInterceptor { | 1162 class MockURLRequestInterceptor : public URLRequestInterceptor { |
| 1602 public: | 1163 public: |
| 1603 // Static getters for canned response header and data strings. | 1164 // Static getters for canned response header and data strings. |
| 1604 static std::string ok_data() { | 1165 static std::string ok_data() { |
| 1605 return URLRequestTestJob::test_data_1(); | 1166 return URLRequestTestJob::test_data_1(); |
| 1606 } | 1167 } |
| 1607 | 1168 |
| 1608 static std::string ok_headers() { | 1169 static std::string ok_headers() { |
| 1609 return URLRequestTestJob::test_headers(); | 1170 return URLRequestTestJob::test_headers(); |
| (...skipping 527 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2137 EXPECT_FALSE(req->status().is_success()); | 1698 EXPECT_FALSE(req->status().is_success()); |
| 2138 EXPECT_EQ(URLRequestStatus::CANCELED, req->status().status()); | 1699 EXPECT_EQ(URLRequestStatus::CANCELED, req->status().status()); |
| 2139 } | 1700 } |
| 2140 | 1701 |
| 2141 TEST_F(URLRequestInterceptorTest, InterceptRespectsCancelInRestart) { | 1702 TEST_F(URLRequestInterceptorTest, InterceptRespectsCancelInRestart) { |
| 2142 // Intercept the main request and cancel then restart from within that job. | 1703 // Intercept the main request and cancel then restart from within that job. |
| 2143 interceptor()->set_cancel_then_restart_main_request(true); | 1704 interceptor()->set_cancel_then_restart_main_request(true); |
| 2144 | 1705 |
| 2145 // Set up to intercept the final response and override it with an OK response. | 1706 // Set up to intercept the final response and override it with an OK response. |
| 2146 interceptor()->set_intercept_final_response(true); | 1707 interceptor()->set_intercept_final_response(true); |
| 2147 interceptor()->set_final_headers(TestInterceptor::ok_headers()); | 1708 interceptor()->set_final_headers(MockURLRequestInterceptor::ok_headers()); |
| 2148 interceptor()->set_final_data(TestInterceptor::ok_data()); | 1709 interceptor()->set_final_data(MockURLRequestInterceptor::ok_data()); |
| 2149 | 1710 |
| 2150 TestDelegate d; | 1711 TestDelegate d; |
| 2151 scoped_ptr<URLRequest> req(default_context().CreateRequest( | 1712 scoped_ptr<URLRequest> req(default_context().CreateRequest( |
| 2152 GURL("http://test_intercept/foo"), DEFAULT_PRIORITY, &d, nullptr)); | 1713 GURL("http://test_intercept/foo"), DEFAULT_PRIORITY, &d, nullptr)); |
| 2153 req->set_method("GET"); | 1714 req->set_method("GET"); |
| 2154 req->Start(); | 1715 req->Start(); |
| 2155 base::RunLoop().Run(); | 1716 base::RunLoop().Run(); |
| 2156 | 1717 |
| 2157 // Check that the interceptor got called as expected. | 1718 // Check that the interceptor got called as expected. |
| 2158 EXPECT_TRUE(interceptor()->did_cancel_then_restart_main()); | 1719 EXPECT_TRUE(interceptor()->did_cancel_then_restart_main()); |
| (...skipping 6902 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 9061 | 8622 |
| 9062 EXPECT_FALSE(r->is_pending()); | 8623 EXPECT_FALSE(r->is_pending()); |
| 9063 EXPECT_EQ(1, d->response_started_count()); | 8624 EXPECT_EQ(1, d->response_started_count()); |
| 9064 EXPECT_FALSE(d->received_data_before_response()); | 8625 EXPECT_FALSE(d->received_data_before_response()); |
| 9065 EXPECT_EQ(d->bytes_received(), static_cast<int>(file_size)); | 8626 EXPECT_EQ(d->bytes_received(), static_cast<int>(file_size)); |
| 9066 } | 8627 } |
| 9067 } | 8628 } |
| 9068 #endif // !defined(DISABLE_FTP_SUPPORT) | 8629 #endif // !defined(DISABLE_FTP_SUPPORT) |
| 9069 | 8630 |
| 9070 } // namespace net | 8631 } // namespace net |
| OLD | NEW |