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

Unified Diff: content/browser/loader/mojo_async_resource_handler_unittest.cc

Issue 2633123002: [Mojo-Loading] OnStartLoadingResponseBody should be called after OnReceiveResponse (Closed)
Patch Set: fix Created 3 years, 11 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 side-by-side diff with in-line comments
Download patch
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 fa69c8d39c892f63e8b07f152b017287d7dacb0f..bcd730abd9f2d092e1ea040d4f37b8c95a5945de 100644
--- a/content/browser/loader/mojo_async_resource_handler_unittest.cc
+++ b/content/browser/loader/mojo_async_resource_handler_unittest.cc
@@ -457,12 +457,12 @@ TEST_F(MojoAsyncResourceHandlerTest, OnWillReadAndOnReadCompleted) {
ASSERT_GE(mock_loader_->io_buffer_size(),
kSizeMimeSnifferRequiresForFirstOnWillRead);
- url_loader_client_.RunUntilResponseBodyArrived();
- ASSERT_TRUE(url_loader_client_.response_body().is_valid());
-
ASSERT_EQ(MockResourceLoader::Status::IDLE,
mock_loader_->OnReadCompleted("AB"));
+ url_loader_client_.RunUntilResponseBodyArrived();
+ ASSERT_TRUE(url_loader_client_.response_body().is_valid());
+
std::string contents;
while (contents.size() < 2) {
char buffer[16];
@@ -489,13 +489,13 @@ TEST_F(MojoAsyncResourceHandlerTest,
ASSERT_GE(mock_loader_->io_buffer_size(),
kSizeMimeSnifferRequiresForFirstOnWillRead);
- url_loader_client_.RunUntilResponseBodyArrived();
- ASSERT_TRUE(url_loader_client_.response_body().is_valid());
-
const std::string data("abcdefgh");
ASSERT_EQ(MockResourceLoader::Status::CALLBACK_PENDING,
mock_loader_->OnReadCompleted(data));
+ url_loader_client_.RunUntilResponseBodyArrived();
+ ASSERT_TRUE(url_loader_client_.response_body().is_valid());
+
std::string contents;
while (contents.size() < data.size()) {
// This is needed for Resume to be called.
@@ -619,9 +619,10 @@ TEST_F(MojoAsyncResourceHandlerTest, ResponseCompletionShouldCloseDataPipe) {
ASSERT_TRUE(CallOnWillStartAndOnResponseStarted());
ASSERT_EQ(MockResourceLoader::Status::IDLE, mock_loader_->OnWillRead(-1));
+ ASSERT_EQ(MockResourceLoader::Status::IDLE,
+ mock_loader_->OnReadCompleted("AB"));
url_loader_client_.RunUntilResponseBodyArrived();
ASSERT_TRUE(url_loader_client_.response_body().is_valid());
- ASSERT_EQ(MockResourceLoader::Status::IDLE, mock_loader_->OnReadCompleted(0));
net::URLRequestStatus status(net::URLRequestStatus::SUCCESS, net::OK);
ASSERT_EQ(MockResourceLoader::Status::IDLE,
@@ -639,7 +640,7 @@ TEST_F(MojoAsyncResourceHandlerTest, ResponseCompletionShouldCloseDataPipe) {
&read_size, MOJO_READ_DATA_FLAG_NONE);
if (result == MOJO_RESULT_FAILED_PRECONDITION)
break;
- ASSERT_EQ(result, MOJO_RESULT_SHOULD_WAIT);
+ ASSERT_TRUE(result == MOJO_RESULT_SHOULD_WAIT || result == MOJO_RESULT_OK);
}
}
@@ -647,11 +648,11 @@ TEST_F(MojoAsyncResourceHandlerTest, OutOfBandCancelDuringBodyTransmission) {
ASSERT_TRUE(CallOnWillStartAndOnResponseStarted());
ASSERT_EQ(MockResourceLoader::Status::IDLE, mock_loader_->OnWillRead(-1));
- url_loader_client_.RunUntilResponseBodyArrived();
- ASSERT_TRUE(url_loader_client_.response_body().is_valid());
std::string data(mock_loader_->io_buffer_size(), 'a');
ASSERT_EQ(MockResourceLoader::Status::CALLBACK_PENDING,
mock_loader_->OnReadCompleted(data));
+ url_loader_client_.RunUntilResponseBodyArrived();
+ ASSERT_TRUE(url_loader_client_.response_body().is_valid());
net::URLRequestStatus status(net::URLRequestStatus::FAILED, net::ERR_FAILED);
ASSERT_EQ(
@@ -681,34 +682,6 @@ TEST_F(MojoAsyncResourceHandlerTest, OutOfBandCancelDuringBodyTransmission) {
EXPECT_EQ(data, actual);
}
-// In this case, an error is notified after OnWillRead, before OnReadCompleted.
-TEST_F(MojoAsyncResourceHandlerTest, ResponseErrorDuringBodyTransmission2) {
- ASSERT_TRUE(CallOnWillStartAndOnResponseStarted());
-
- ASSERT_EQ(MockResourceLoader::Status::IDLE, mock_loader_->OnWillRead(-1));
- url_loader_client_.RunUntilResponseBodyArrived();
- ASSERT_TRUE(url_loader_client_.response_body().is_valid());
- net::URLRequestStatus status(net::URLRequestStatus::FAILED, net::ERR_FAILED);
- ASSERT_EQ(MockResourceLoader::Status::IDLE,
- mock_loader_->OnResponseCompleted(status));
-
- url_loader_client_.RunUntilComplete();
- EXPECT_TRUE(url_loader_client_.has_received_completion());
- EXPECT_EQ(net::ERR_FAILED, url_loader_client_.completion_status().error_code);
-
- while (true) {
- char buf[16];
- uint32_t read_size = sizeof(buf);
- MojoResult result =
- mojo::ReadDataRaw(url_loader_client_.response_body(), buf, &read_size,
- MOJO_READ_DATA_FLAG_NONE);
- if (result == MOJO_RESULT_FAILED_PRECONDITION)
- break;
- ASSERT_EQ(MOJO_RESULT_SHOULD_WAIT, result);
- base::RunLoop().RunUntilIdle();
- }
-}
-
TEST_F(MojoAsyncResourceHandlerTest, BeginWriteFailsOnWillRead) {
handler_->set_begin_write_expectation(MOJO_RESULT_UNKNOWN);
ASSERT_TRUE(CallOnWillStartAndOnResponseStarted());
@@ -793,8 +766,6 @@ TEST_F(MojoAsyncResourceHandlerTest,
MojoAsyncResourceHandler::SetAllocationSizeForTesting(8);
ASSERT_TRUE(CallOnWillStartAndOnResponseStarted());
ASSERT_EQ(MockResourceLoader::Status::IDLE, mock_loader_->OnWillRead(-1));
- url_loader_client_.RunUntilResponseBodyArrived();
- ASSERT_TRUE(url_loader_client_.response_body().is_valid());
while (true) {
MockResourceLoader::Status result = mock_loader_->OnReadCompleted(
@@ -806,6 +777,9 @@ TEST_F(MojoAsyncResourceHandlerTest,
ASSERT_EQ(MockResourceLoader::Status::IDLE, mock_loader_->OnWillRead(-1));
}
+ url_loader_client_.RunUntilResponseBodyArrived();
+ ASSERT_TRUE(url_loader_client_.response_body().is_valid());
+
while (true) {
char buf[16];
uint32_t read_size = sizeof(buf);
@@ -834,9 +808,6 @@ TEST_P(MojoAsyncResourceHandlerWithAllocationSizeTest,
ASSERT_EQ(MockResourceLoader::Status::IDLE, mock_loader_->OnReadCompleted(0));
- url_loader_client_.RunUntilResponseBodyArrived();
- ASSERT_TRUE(url_loader_client_.response_body().is_valid());
-
size_t written = 0;
std::string actual;
while (actual.size() < expected.size()) {
@@ -854,6 +825,10 @@ TEST_P(MojoAsyncResourceHandlerWithAllocationSizeTest,
written += to_be_written;
}
+ if (!url_loader_client_.response_body().is_valid()) {
+ url_loader_client_.RunUntilResponseBodyArrived();
+ ASSERT_TRUE(url_loader_client_.response_body().is_valid());
+ }
char buf[16];
uint32_t read_size = sizeof(buf);
@@ -899,8 +874,6 @@ TEST_P(MojoAsyncResourceHandlerWithAllocationSizeTest,
ASSERT_TRUE(CallOnWillStartAndOnResponseStarted());
ASSERT_EQ(MockResourceLoader::Status::IDLE, mock_loader_->OnWillRead(-1));
ASSERT_EQ(MockResourceLoader::Status::IDLE, mock_loader_->OnReadCompleted(0));
- url_loader_client_.RunUntilResponseBodyArrived();
- ASSERT_TRUE(url_loader_client_.response_body().is_valid());
while (true) {
ASSERT_EQ(MockResourceLoader::Status::IDLE, mock_loader_->OnWillRead(-1));
@@ -910,6 +883,9 @@ TEST_P(MojoAsyncResourceHandlerWithAllocationSizeTest,
break;
ASSERT_EQ(MockResourceLoader::Status::IDLE, result);
}
+ url_loader_client_.RunUntilResponseBodyArrived();
+ ASSERT_TRUE(url_loader_client_.response_body().is_valid());
+
handler_->set_begin_write_expectation(MOJO_RESULT_UNKNOWN);
while (mock_loader_->status() != MockResourceLoader::Status::CANCELED) {
@@ -1056,11 +1032,12 @@ TEST_P(
ASSERT_EQ(MockResourceLoader::Status::IDLE, mock_loader_->OnWillRead(-1));
ASSERT_FALSE(url_loader_client_.response_body().is_valid());
- url_loader_client_.RunUntilResponseBodyArrived();
- ASSERT_TRUE(url_loader_client_.response_body().is_valid());
ASSERT_EQ(MockResourceLoader::Status::IDLE,
mock_loader_->OnReadCompleted("A"));
+ url_loader_client_.RunUntilResponseBodyArrived();
+ ASSERT_TRUE(url_loader_client_.response_body().is_valid());
+
net::URLRequestStatus status(net::URLRequestStatus::SUCCESS, net::OK);
ASSERT_EQ(MockResourceLoader::Status::IDLE,
mock_loader_->OnResponseCompleted(status));
@@ -1099,10 +1076,6 @@ TEST_P(
ASSERT_EQ(MockResourceLoader::Status::IDLE, mock_loader_->OnWillRead(-1));
- ASSERT_FALSE(url_loader_client_.response_body().is_valid());
- url_loader_client_.RunUntilResponseBodyArrived();
- ASSERT_TRUE(url_loader_client_.response_body().is_valid());
-
ASSERT_EQ(MockResourceLoader::Status::IDLE,
mock_loader_->OnResponseStarted(
make_scoped_refptr(new ResourceResponse())));
@@ -1112,6 +1085,11 @@ TEST_P(
ASSERT_EQ(MockResourceLoader::Status::IDLE,
mock_loader_->OnReadCompleted("B"));
+
+ ASSERT_FALSE(url_loader_client_.response_body().is_valid());
+ url_loader_client_.RunUntilResponseBodyArrived();
+ ASSERT_TRUE(url_loader_client_.response_body().is_valid());
+
net::URLRequestStatus status(net::URLRequestStatus::SUCCESS, net::OK);
ASSERT_EQ(MockResourceLoader::Status::IDLE,
mock_loader_->OnResponseCompleted(status));
« no previous file with comments | « content/browser/loader/mojo_async_resource_handler.cc ('k') | content/browser/loader/test_url_loader_client.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698