| Index: content/browser/loader/mojo_async_resource_handler_unittest.cc
|
| diff --git a/content/browser/loader/mojo_async_resource_handler_unittest.cc b/content/browser/loader/mojo_async_resource_handler_unittest.cc
|
| index 59535923a7b4be03bff534883e0f601dc2ce6a26..3d9fb6aa66147599dc7100c32d267cc3ebffe46e 100644
|
| --- a/content/browser/loader/mojo_async_resource_handler_unittest.cc
|
| +++ b/content/browser/loader/mojo_async_resource_handler_unittest.cc
|
| @@ -839,7 +839,7 @@ TEST_F(MojoAsyncResourceHandlerTest,
|
| url_loader_client_.RunUntilResponseBodyArrived();
|
| ASSERT_TRUE(url_loader_client_.response_body().is_valid());
|
| handler_->ResetBeginWriteExpectation();
|
| - handler_->ResumeForTesting();
|
| + handler_->OnWritableForTesting();
|
|
|
| std::string actual;
|
| while (actual.size() < written) {
|
| @@ -1078,6 +1078,47 @@ TEST_P(MojoAsyncResourceHandlerWithAllocationSizeTest, CancelWhileWaiting) {
|
| EXPECT_EQ(0, resource_controller_.num_resume_calls());
|
| }
|
|
|
| +TEST_P(MojoAsyncResourceHandlerWithAllocationSizeTest, RedirectHandling) {
|
| + rdh_delegate_.set_num_on_response_started_calls_expectation(1);
|
| + bool defer = false;
|
| +
|
| + ASSERT_TRUE(handler_->OnWillStart(request_->url(), &defer));
|
| + ASSERT_FALSE(defer);
|
| + scoped_refptr<ResourceResponse> response = new ResourceResponse();
|
| + net::RedirectInfo redirect_info;
|
| + redirect_info.status_code = 301;
|
| + ASSERT_TRUE(
|
| + handler_->OnRequestRedirected(redirect_info, response.get(), &defer));
|
| + ASSERT_TRUE(defer);
|
| +
|
| + ASSERT_FALSE(url_loader_client_.has_received_response());
|
| + ASSERT_FALSE(url_loader_client_.has_received_redirect());
|
| + url_loader_client_.RunUntilRedirectReceived();
|
| +
|
| + ASSERT_FALSE(url_loader_client_.has_received_response());
|
| + ASSERT_TRUE(url_loader_client_.has_received_redirect());
|
| + EXPECT_EQ(301, url_loader_client_.redirect_info().status_code);
|
| +
|
| + EXPECT_EQ(0, resource_controller_.num_resume_calls());
|
| + handler_->FollowRedirect();
|
| + EXPECT_EQ(1, resource_controller_.num_resume_calls());
|
| +
|
| + defer = false;
|
| + ASSERT_TRUE(handler_->OnResponseStarted(response.get(), &defer));
|
| + ASSERT_FALSE(defer);
|
| +
|
| + net::URLRequestStatus status(net::URLRequestStatus::SUCCESS, net::OK);
|
| + handler_->OnResponseCompleted(status, &defer);
|
| + ASSERT_FALSE(defer);
|
| +
|
| + ASSERT_FALSE(url_loader_client_.has_received_completion());
|
| + url_loader_client_.RunUntilComplete();
|
| +
|
| + ASSERT_TRUE(url_loader_client_.has_received_response());
|
| + ASSERT_TRUE(url_loader_client_.has_received_completion());
|
| + EXPECT_EQ(net::OK, url_loader_client_.completion_status().error_code);
|
| +}
|
| +
|
| // Typically ResourceHandler methods are called in this order.
|
| TEST_P(
|
| MojoAsyncResourceHandlerWithAllocationSizeTest,
|
|
|