| OLD | NEW |
| 1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2013 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 "content/browser/loader/resource_loader.h" | 5 #include "content/browser/loader/resource_loader.h" |
| 6 | 6 |
| 7 #include <stddef.h> | 7 #include <stddef.h> |
| 8 #include <stdint.h> | 8 #include <stdint.h> |
| 9 | 9 |
| 10 #include <memory> | 10 #include <memory> |
| (...skipping 248 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 259 redirect_ ? std::string(kRedirectHeaders, arraysize(kRedirectHeaders)) | 259 redirect_ ? std::string(kRedirectHeaders, arraysize(kRedirectHeaders)) |
| 260 : net::URLRequestTestJob::test_headers(); | 260 : net::URLRequestTestJob::test_headers(); |
| 261 return new MockHTTPSURLRequestJob(request, network_delegate, headers, | 261 return new MockHTTPSURLRequestJob(request, network_delegate, headers, |
| 262 "dummy response", true); | 262 "dummy response", true); |
| 263 } | 263 } |
| 264 | 264 |
| 265 private: | 265 private: |
| 266 bool redirect_; | 266 bool redirect_; |
| 267 }; | 267 }; |
| 268 | 268 |
| 269 // Arbitrary read buffer size. | |
| 270 // Test browser client that captures calls to SelectClientCertificates and | 269 // Test browser client that captures calls to SelectClientCertificates and |
| 271 // records the arguments of the most recent call for later inspection. | 270 // records the arguments of the most recent call for later inspection. |
| 272 class SelectCertificateBrowserClient : public TestContentBrowserClient { | 271 class SelectCertificateBrowserClient : public TestContentBrowserClient { |
| 273 public: | 272 public: |
| 274 SelectCertificateBrowserClient() : call_count_(0) {} | 273 SelectCertificateBrowserClient() : call_count_(0) {} |
| 275 | 274 |
| 276 // Waits until the first call to SelectClientCertificate. | 275 // Waits until the first call to SelectClientCertificate. |
| 277 void WaitForSelectCertificate() { | 276 void WaitForSelectCertificate() { |
| 278 select_certificate_run_loop_.Run(); | 277 select_certificate_run_loop_.Run(); |
| 279 // Process any pending messages - just so tests can check if | 278 // Process any pending messages - just so tests can check if |
| (...skipping 988 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1268 net::URLRequestFailedJob::GetMockHttpUrlWithFailurePhase( | 1267 net::URLRequestFailedJob::GetMockHttpUrlWithFailurePhase( |
| 1269 net::URLRequestFailedJob::START, net::ERR_IO_PENDING)); | 1268 net::URLRequestFailedJob::START, net::ERR_IO_PENDING)); |
| 1270 | 1269 |
| 1271 loader_->StartRequest(); | 1270 loader_->StartRequest(); |
| 1272 base::RunLoop().RunUntilIdle(); | 1271 base::RunLoop().RunUntilIdle(); |
| 1273 EXPECT_EQ(1, raw_ptr_resource_handler_->on_will_start_called()); | 1272 EXPECT_EQ(1, raw_ptr_resource_handler_->on_will_start_called()); |
| 1274 EXPECT_EQ(0, raw_ptr_resource_handler_->on_request_redirected_called()); | 1273 EXPECT_EQ(0, raw_ptr_resource_handler_->on_request_redirected_called()); |
| 1275 EXPECT_EQ(0, raw_ptr_resource_handler_->on_response_started_called()); | 1274 EXPECT_EQ(0, raw_ptr_resource_handler_->on_response_started_called()); |
| 1276 EXPECT_EQ(0, raw_ptr_resource_handler_->on_response_completed_called()); | 1275 EXPECT_EQ(0, raw_ptr_resource_handler_->on_response_completed_called()); |
| 1277 | 1276 |
| 1278 raw_ptr_resource_handler_->CancelWithError(net::ERR_FAILED); | 1277 // Can't cancel through the ResourceHandler, since that depends on |
| 1278 // ResourceDispatachHost, which these tests don't use. |
| 1279 loader_->CancelRequest(false); |
| 1279 raw_ptr_resource_handler_->WaitUntilResponseComplete(); | 1280 raw_ptr_resource_handler_->WaitUntilResponseComplete(); |
| 1280 | 1281 |
| 1281 EXPECT_EQ(0, did_received_redirect_); | 1282 EXPECT_EQ(0, did_received_redirect_); |
| 1282 EXPECT_EQ(0, did_receive_response_); | 1283 EXPECT_EQ(0, did_receive_response_); |
| 1283 EXPECT_EQ(1, did_finish_loading_); | 1284 EXPECT_EQ(1, did_finish_loading_); |
| 1284 EXPECT_EQ(1, raw_ptr_resource_handler_->on_will_start_called()); | 1285 EXPECT_EQ(1, raw_ptr_resource_handler_->on_will_start_called()); |
| 1285 EXPECT_EQ(0, raw_ptr_resource_handler_->on_request_redirected_called()); | 1286 EXPECT_EQ(0, raw_ptr_resource_handler_->on_request_redirected_called()); |
| 1286 EXPECT_EQ(0, raw_ptr_resource_handler_->on_response_started_called()); | 1287 EXPECT_EQ(0, raw_ptr_resource_handler_->on_response_started_called()); |
| 1287 EXPECT_EQ(1, raw_ptr_resource_handler_->on_response_completed_called()); | 1288 EXPECT_EQ(1, raw_ptr_resource_handler_->on_response_completed_called()); |
| 1288 EXPECT_EQ(net::ERR_FAILED, raw_ptr_resource_handler_->final_status().error()); | 1289 EXPECT_EQ(net::ERR_ABORTED, |
| 1290 raw_ptr_resource_handler_->final_status().error()); |
| 1289 EXPECT_EQ("", raw_ptr_resource_handler_->body()); | 1291 EXPECT_EQ("", raw_ptr_resource_handler_->body()); |
| 1290 } | 1292 } |
| 1291 | 1293 |
| 1292 TEST_F(ResourceLoaderTest, OutOfBandCancelDuringRead) { | 1294 TEST_F(ResourceLoaderTest, OutOfBandCancelDuringRead) { |
| 1293 SetUpResourceLoaderForUrl( | 1295 SetUpResourceLoaderForUrl( |
| 1294 net::URLRequestFailedJob::GetMockHttpUrlWithFailurePhase( | 1296 net::URLRequestFailedJob::GetMockHttpUrlWithFailurePhase( |
| 1295 net::URLRequestFailedJob::READ_SYNC, net::ERR_IO_PENDING)); | 1297 net::URLRequestFailedJob::READ_SYNC, net::ERR_IO_PENDING)); |
| 1296 | 1298 |
| 1297 loader_->StartRequest(); | 1299 loader_->StartRequest(); |
| 1298 base::RunLoop().RunUntilIdle(); | 1300 base::RunLoop().RunUntilIdle(); |
| 1299 EXPECT_EQ(1, raw_ptr_resource_handler_->on_will_start_called()); | 1301 EXPECT_EQ(1, raw_ptr_resource_handler_->on_will_start_called()); |
| 1300 EXPECT_EQ(0, raw_ptr_resource_handler_->on_request_redirected_called()); | 1302 EXPECT_EQ(0, raw_ptr_resource_handler_->on_request_redirected_called()); |
| 1301 EXPECT_EQ(1, raw_ptr_resource_handler_->on_response_started_called()); | 1303 EXPECT_EQ(1, raw_ptr_resource_handler_->on_response_started_called()); |
| 1302 EXPECT_EQ(0, raw_ptr_resource_handler_->on_read_completed_called()); | 1304 EXPECT_EQ(0, raw_ptr_resource_handler_->on_read_completed_called()); |
| 1303 EXPECT_EQ(0, raw_ptr_resource_handler_->on_response_completed_called()); | 1305 EXPECT_EQ(0, raw_ptr_resource_handler_->on_response_completed_called()); |
| 1304 | 1306 |
| 1305 raw_ptr_resource_handler_->CancelWithError(net::ERR_FAILED); | 1307 // Can't cancel through the ResourceHandler, since that depends on |
| 1308 // ResourceDispatachHost, which these tests don't use. |
| 1309 loader_->CancelRequest(false); |
| 1306 raw_ptr_resource_handler_->WaitUntilResponseComplete(); | 1310 raw_ptr_resource_handler_->WaitUntilResponseComplete(); |
| 1307 EXPECT_EQ(0, did_received_redirect_); | 1311 EXPECT_EQ(0, did_received_redirect_); |
| 1308 EXPECT_EQ(1, did_receive_response_); | 1312 EXPECT_EQ(1, did_receive_response_); |
| 1309 EXPECT_EQ(1, did_finish_loading_); | 1313 EXPECT_EQ(1, did_finish_loading_); |
| 1310 EXPECT_EQ(1, raw_ptr_resource_handler_->on_will_start_called()); | 1314 EXPECT_EQ(1, raw_ptr_resource_handler_->on_will_start_called()); |
| 1311 EXPECT_EQ(0, raw_ptr_resource_handler_->on_request_redirected_called()); | 1315 EXPECT_EQ(0, raw_ptr_resource_handler_->on_request_redirected_called()); |
| 1312 EXPECT_EQ(1, raw_ptr_resource_handler_->on_response_started_called()); | 1316 EXPECT_EQ(1, raw_ptr_resource_handler_->on_response_started_called()); |
| 1313 EXPECT_EQ(0, raw_ptr_resource_handler_->on_read_completed_called()); | 1317 EXPECT_EQ(0, raw_ptr_resource_handler_->on_read_completed_called()); |
| 1314 EXPECT_EQ(1, raw_ptr_resource_handler_->on_response_completed_called()); | 1318 EXPECT_EQ(1, raw_ptr_resource_handler_->on_response_completed_called()); |
| 1315 EXPECT_EQ(net::ERR_FAILED, raw_ptr_resource_handler_->final_status().error()); | 1319 EXPECT_EQ(net::ERR_ABORTED, |
| 1320 raw_ptr_resource_handler_->final_status().error()); |
| 1316 EXPECT_EQ("", raw_ptr_resource_handler_->body()); | 1321 EXPECT_EQ("", raw_ptr_resource_handler_->body()); |
| 1317 } | 1322 } |
| 1318 | 1323 |
| 1319 TEST_F(ResourceLoaderTest, ResumeCanceledRequest) { | 1324 TEST_F(ResourceLoaderTest, ResumeCanceledRequest) { |
| 1320 raw_ptr_resource_handler_->set_defer_on_will_start(true); | 1325 raw_ptr_resource_handler_->set_defer_on_will_start(true); |
| 1321 | 1326 |
| 1322 loader_->StartRequest(); | 1327 loader_->StartRequest(); |
| 1328 raw_ptr_resource_handler_->WaitUntilDeferred(); |
| 1323 loader_->CancelRequest(true); | 1329 loader_->CancelRequest(true); |
| 1324 static_cast<ResourceController*>(loader_.get())->Resume(); | 1330 raw_ptr_resource_handler_->Resume(); |
| 1325 } | 1331 } |
| 1326 | 1332 |
| 1327 class ResourceLoaderRedirectToFileTest : public ResourceLoaderTest { | 1333 class ResourceLoaderRedirectToFileTest : public ResourceLoaderTest { |
| 1328 public: | 1334 public: |
| 1329 ResourceLoaderRedirectToFileTest() | 1335 ResourceLoaderRedirectToFileTest() |
| 1330 : file_stream_(NULL), | 1336 : file_stream_(NULL), |
| 1331 redirect_to_file_resource_handler_(NULL) { | 1337 redirect_to_file_resource_handler_(NULL) { |
| 1332 } | 1338 } |
| 1333 | 1339 |
| 1334 ~ResourceLoaderRedirectToFileTest() override { | 1340 ~ResourceLoaderRedirectToFileTest() override { |
| (...skipping 267 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1602 | 1608 |
| 1603 // Tests that the effective connection type is not set on non-main frame | 1609 // Tests that the effective connection type is not set on non-main frame |
| 1604 // requests. | 1610 // requests. |
| 1605 TEST_F(EffectiveConnectionTypeResourceLoaderTest, DoesNotBelongToMainFrame) { | 1611 TEST_F(EffectiveConnectionTypeResourceLoaderTest, DoesNotBelongToMainFrame) { |
| 1606 VerifyEffectiveConnectionType(RESOURCE_TYPE_OBJECT, false, | 1612 VerifyEffectiveConnectionType(RESOURCE_TYPE_OBJECT, false, |
| 1607 net::EFFECTIVE_CONNECTION_TYPE_3G, | 1613 net::EFFECTIVE_CONNECTION_TYPE_3G, |
| 1608 net::EFFECTIVE_CONNECTION_TYPE_UNKNOWN); | 1614 net::EFFECTIVE_CONNECTION_TYPE_UNKNOWN); |
| 1609 } | 1615 } |
| 1610 | 1616 |
| 1611 } // namespace content | 1617 } // namespace content |
| OLD | NEW |