| OLD | NEW |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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/child/web_url_loader_impl.h" | 5 #include "content/child/web_url_loader_impl.h" |
| 6 | 6 |
| 7 #include <stdint.h> | 7 #include <stdint.h> |
| 8 #include <string.h> | 8 #include <string.h> |
| 9 | 9 |
| 10 #include <utility> | 10 #include <utility> |
| (...skipping 321 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 332 void DoReceiveData() { | 332 void DoReceiveData() { |
| 333 EXPECT_EQ("", client()->received_data()); | 333 EXPECT_EQ("", client()->received_data()); |
| 334 auto size = strlen(kTestData); | 334 auto size = strlen(kTestData); |
| 335 peer()->OnReceivedData( | 335 peer()->OnReceivedData( |
| 336 base::MakeUnique<FixedReceivedData>(kTestData, size, size, size)); | 336 base::MakeUnique<FixedReceivedData>(kTestData, size, size, size)); |
| 337 EXPECT_EQ(kTestData, client()->received_data()); | 337 EXPECT_EQ(kTestData, client()->received_data()); |
| 338 } | 338 } |
| 339 | 339 |
| 340 void DoCompleteRequest() { | 340 void DoCompleteRequest() { |
| 341 EXPECT_FALSE(client()->did_finish()); | 341 EXPECT_FALSE(client()->did_finish()); |
| 342 peer()->OnCompletedRequest(net::OK, false, false, "", base::TimeTicks(), | 342 peer()->OnCompletedRequest(net::OK, false, false, base::TimeTicks(), |
| 343 strlen(kTestData)); | 343 strlen(kTestData)); |
| 344 EXPECT_TRUE(client()->did_finish()); | 344 EXPECT_TRUE(client()->did_finish()); |
| 345 // There should be no error. | 345 // There should be no error. |
| 346 EXPECT_EQ(net::OK, client()->error().reason); | 346 EXPECT_EQ(net::OK, client()->error().reason); |
| 347 EXPECT_EQ("", client()->error().domain.utf8()); | 347 EXPECT_EQ("", client()->error().domain.utf8()); |
| 348 } | 348 } |
| 349 | 349 |
| 350 void DoFailRequest() { | 350 void DoFailRequest() { |
| 351 EXPECT_FALSE(client()->did_finish()); | 351 EXPECT_FALSE(client()->did_finish()); |
| 352 peer()->OnCompletedRequest(net::ERR_FAILED, false, false, "", | 352 peer()->OnCompletedRequest(net::ERR_FAILED, false, false, |
| 353 base::TimeTicks(), strlen(kTestData)); | 353 base::TimeTicks(), strlen(kTestData)); |
| 354 EXPECT_FALSE(client()->did_finish()); | 354 EXPECT_FALSE(client()->did_finish()); |
| 355 EXPECT_EQ(net::ERR_FAILED, client()->error().reason); | 355 EXPECT_EQ(net::ERR_FAILED, client()->error().reason); |
| 356 EXPECT_EQ(net::kErrorDomain, client()->error().domain.utf8()); | 356 EXPECT_EQ(net::kErrorDomain, client()->error().domain.utf8()); |
| 357 } | 357 } |
| 358 | 358 |
| 359 void DoReceiveResponseFtp() { | 359 void DoReceiveResponseFtp() { |
| 360 EXPECT_FALSE(client()->did_receive_response()); | 360 EXPECT_FALSE(client()->did_receive_response()); |
| 361 content::ResourceResponseInfo response_info; | 361 content::ResourceResponseInfo response_info; |
| 362 response_info.mime_type = kFtpDirMimeType; | 362 response_info.mime_type = kFtpDirMimeType; |
| (...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 395 TEST_F(WebURLLoaderImplTest, Redirect) { | 395 TEST_F(WebURLLoaderImplTest, Redirect) { |
| 396 DoStartAsyncRequest(); | 396 DoStartAsyncRequest(); |
| 397 DoReceiveRedirect(); | 397 DoReceiveRedirect(); |
| 398 DoReceiveResponse(); | 398 DoReceiveResponse(); |
| 399 DoReceiveData(); | 399 DoReceiveData(); |
| 400 DoCompleteRequest(); | 400 DoCompleteRequest(); |
| 401 EXPECT_FALSE(dispatcher()->canceled()); | 401 EXPECT_FALSE(dispatcher()->canceled()); |
| 402 EXPECT_EQ(kTestData, client()->received_data()); | 402 EXPECT_EQ(kTestData, client()->received_data()); |
| 403 } | 403 } |
| 404 | 404 |
| 405 // Tests that a redirect to an HTTPS URL with no security info does not | |
| 406 // crash. Regression test for https://crbug.com/519120 | |
| 407 TEST_F(WebURLLoaderImplTest, RedirectToHTTPSWithEmptySecurityInfo) { | |
| 408 DoStartAsyncRequest(); | |
| 409 DoReceiveHTTPSRedirect(); | |
| 410 DoReceiveResponse(); | |
| 411 DoReceiveData(); | |
| 412 DoCompleteRequest(); | |
| 413 EXPECT_FALSE(dispatcher()->canceled()); | |
| 414 EXPECT_EQ(kTestData, client()->received_data()); | |
| 415 } | |
| 416 | |
| 417 TEST_F(WebURLLoaderImplTest, RedirectCorrectPriority) { | 405 TEST_F(WebURLLoaderImplTest, RedirectCorrectPriority) { |
| 418 DoStartAsyncRequestWithPriority( | 406 DoStartAsyncRequestWithPriority( |
| 419 blink::WebURLRequest::Priority::PriorityVeryHigh); | 407 blink::WebURLRequest::Priority::PriorityVeryHigh); |
| 420 client()->set_redirect_request_priority( | 408 client()->set_redirect_request_priority( |
| 421 blink::WebURLRequest::Priority::PriorityVeryHigh); | 409 blink::WebURLRequest::Priority::PriorityVeryHigh); |
| 422 DoReceiveRedirect(); | 410 DoReceiveRedirect(); |
| 423 DoReceiveResponse(); | 411 DoReceiveResponse(); |
| 424 DoReceiveData(); | 412 DoReceiveData(); |
| 425 DoCompleteRequest(); | 413 DoCompleteRequest(); |
| 426 EXPECT_FALSE(dispatcher()->canceled()); | 414 EXPECT_FALSE(dispatcher()->canceled()); |
| (...skipping 173 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 600 } | 588 } |
| 601 | 589 |
| 602 TEST_F(WebURLLoaderImplTest, FtpDeleteOnReceiveMoreData) { | 590 TEST_F(WebURLLoaderImplTest, FtpDeleteOnReceiveMoreData) { |
| 603 DoStartAsyncRequest(); | 591 DoStartAsyncRequest(); |
| 604 DoReceiveResponseFtp(); | 592 DoReceiveResponseFtp(); |
| 605 DoReceiveDataFtp(); | 593 DoReceiveDataFtp(); |
| 606 | 594 |
| 607 // Directory listings are only parsed once the request completes, so this will | 595 // Directory listings are only parsed once the request completes, so this will |
| 608 // cancel in DoReceiveDataFtp, before the request finishes. | 596 // cancel in DoReceiveDataFtp, before the request finishes. |
| 609 client()->set_delete_on_receive_data(); | 597 client()->set_delete_on_receive_data(); |
| 610 peer()->OnCompletedRequest(net::OK, false, false, "", base::TimeTicks(), | 598 peer()->OnCompletedRequest(net::OK, false, false, base::TimeTicks(), |
| 611 strlen(kTestData)); | 599 strlen(kTestData)); |
| 612 EXPECT_FALSE(client()->did_finish()); | 600 EXPECT_FALSE(client()->did_finish()); |
| 613 } | 601 } |
| 614 | 602 |
| 615 TEST_F(WebURLLoaderImplTest, FtpDeleteOnFinish) { | 603 TEST_F(WebURLLoaderImplTest, FtpDeleteOnFinish) { |
| 616 client()->set_delete_on_finish(); | 604 client()->set_delete_on_finish(); |
| 617 DoStartAsyncRequest(); | 605 DoStartAsyncRequest(); |
| 618 DoReceiveResponseFtp(); | 606 DoReceiveResponseFtp(); |
| 619 DoReceiveDataFtp(); | 607 DoReceiveDataFtp(); |
| 620 DoCompleteRequest(); | 608 DoCompleteRequest(); |
| (...skipping 102 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 723 encoded_data_length); | 711 encoded_data_length); |
| 724 | 712 |
| 725 EXPECT_EQ(kEncodedBodyLength, response.encodedBodyLength()); | 713 EXPECT_EQ(kEncodedBodyLength, response.encodedBodyLength()); |
| 726 EXPECT_EQ(kEncodedDataLength, encoded_data_length); | 714 EXPECT_EQ(kEncodedDataLength, encoded_data_length); |
| 727 int expected_decoded_body_length = strlen(kBodyData); | 715 int expected_decoded_body_length = strlen(kBodyData); |
| 728 EXPECT_EQ(expected_decoded_body_length, response.decodedBodyLength()); | 716 EXPECT_EQ(expected_decoded_body_length, response.decodedBodyLength()); |
| 729 } | 717 } |
| 730 | 718 |
| 731 } // namespace | 719 } // namespace |
| 732 } // namespace content | 720 } // namespace content |
| OLD | NEW |