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

Side by Side Diff: content/browser/loader/test_url_loader_client.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 unified diff | Download patch
OLDNEW
1 // Copyright 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 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/test_url_loader_client.h" 5 #include "content/browser/loader/test_url_loader_client.h"
6 6
7 #include "base/memory/ref_counted.h" 7 #include "base/memory/ref_counted.h"
8 #include "base/run_loop.h" 8 #include "base/run_loop.h"
9 #include "testing/gtest/include/gtest/gtest.h" 9 #include "testing/gtest/include/gtest/gtest.h"
10 10
11 namespace content { 11 namespace content {
12 12
13 TestURLLoaderClient::TestURLLoaderClient() : binding_(this) {} 13 TestURLLoaderClient::TestURLLoaderClient() : binding_(this) {}
14 TestURLLoaderClient::~TestURLLoaderClient() {} 14 TestURLLoaderClient::~TestURLLoaderClient() {}
15 15
16 void TestURLLoaderClient::OnReceiveResponse( 16 void TestURLLoaderClient::OnReceiveResponse(
17 const ResourceResponseHead& response_head, 17 const ResourceResponseHead& response_head,
18 mojom::DownloadedTempFilePtr downloaded_file) { 18 mojom::DownloadedTempFilePtr downloaded_file) {
19 has_received_response_ = true; 19 has_received_response_ = true;
20 response_head_ = response_head; 20 response_head_ = response_head;
21 EXPECT_FALSE(has_received_completion_);
21 if (quit_closure_for_on_receive_response_) 22 if (quit_closure_for_on_receive_response_)
22 quit_closure_for_on_receive_response_.Run(); 23 quit_closure_for_on_receive_response_.Run();
23 } 24 }
24 25
25 void TestURLLoaderClient::OnReceiveRedirect( 26 void TestURLLoaderClient::OnReceiveRedirect(
26 const net::RedirectInfo& redirect_info, 27 const net::RedirectInfo& redirect_info,
27 const ResourceResponseHead& response_head) { 28 const ResourceResponseHead& response_head) {
28 EXPECT_FALSE(response_body_.is_valid()); 29 EXPECT_FALSE(response_body_.is_valid());
29 EXPECT_FALSE(has_received_response_); 30 EXPECT_FALSE(has_received_response_);
30 // Use ClearHasReceivedRedirect to accept more redirects. 31 // Use ClearHasReceivedRedirect to accept more redirects.
31 EXPECT_FALSE(has_received_redirect_); 32 EXPECT_FALSE(has_received_redirect_);
33 EXPECT_FALSE(has_received_completion_);
32 has_received_redirect_ = true; 34 has_received_redirect_ = true;
33 redirect_info_ = redirect_info; 35 redirect_info_ = redirect_info;
34 response_head_ = response_head; 36 response_head_ = response_head;
35 if (quit_closure_for_on_receive_redirect_) 37 if (quit_closure_for_on_receive_redirect_)
36 quit_closure_for_on_receive_redirect_.Run(); 38 quit_closure_for_on_receive_redirect_.Run();
37 } 39 }
38 40
39 void TestURLLoaderClient::OnDataDownloaded(int64_t data_length, 41 void TestURLLoaderClient::OnDataDownloaded(int64_t data_length,
40 int64_t encoded_data_length) { 42 int64_t encoded_data_length) {
43 EXPECT_TRUE(has_received_response_);
44 EXPECT_FALSE(has_received_completion_);
41 has_data_downloaded_ = true; 45 has_data_downloaded_ = true;
42 download_data_length_ += data_length; 46 download_data_length_ += data_length;
43 encoded_download_data_length_ += encoded_data_length; 47 encoded_download_data_length_ += encoded_data_length;
44 if (quit_closure_for_on_data_downloaded_) 48 if (quit_closure_for_on_data_downloaded_)
45 quit_closure_for_on_data_downloaded_.Run(); 49 quit_closure_for_on_data_downloaded_.Run();
46 } 50 }
47 51
48 void TestURLLoaderClient::OnTransferSizeUpdated(int32_t transfer_size_diff) { 52 void TestURLLoaderClient::OnTransferSizeUpdated(int32_t transfer_size_diff) {
53 EXPECT_TRUE(has_received_response_);
54 EXPECT_FALSE(has_received_completion_);
49 EXPECT_GT(transfer_size_diff, 0); 55 EXPECT_GT(transfer_size_diff, 0);
50 body_transfer_size_ += transfer_size_diff; 56 body_transfer_size_ += transfer_size_diff;
51 } 57 }
52 58
53 void TestURLLoaderClient::OnStartLoadingResponseBody( 59 void TestURLLoaderClient::OnStartLoadingResponseBody(
54 mojo::ScopedDataPipeConsumerHandle body) { 60 mojo::ScopedDataPipeConsumerHandle body) {
61 EXPECT_TRUE(has_received_response_);
62 EXPECT_FALSE(has_received_completion_);
55 response_body_ = std::move(body); 63 response_body_ = std::move(body);
56 if (quit_closure_for_on_start_loading_response_body_) 64 if (quit_closure_for_on_start_loading_response_body_)
57 quit_closure_for_on_start_loading_response_body_.Run(); 65 quit_closure_for_on_start_loading_response_body_.Run();
58 } 66 }
59 67
60 void TestURLLoaderClient::OnComplete( 68 void TestURLLoaderClient::OnComplete(
61 const ResourceRequestCompletionStatus& status) { 69 const ResourceRequestCompletionStatus& status) {
62 has_received_completion_ = true; 70 has_received_completion_ = true;
63 completion_status_ = status; 71 completion_status_ = status;
64 if (quit_closure_for_on_complete_) 72 if (quit_closure_for_on_complete_)
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after
115 void TestURLLoaderClient::RunUntilComplete() { 123 void TestURLLoaderClient::RunUntilComplete() {
116 if (has_received_completion_) 124 if (has_received_completion_)
117 return; 125 return;
118 base::RunLoop run_loop; 126 base::RunLoop run_loop;
119 quit_closure_for_on_complete_ = run_loop.QuitClosure(); 127 quit_closure_for_on_complete_ = run_loop.QuitClosure();
120 run_loop.Run(); 128 run_loop.Run();
121 quit_closure_for_on_complete_.Reset(); 129 quit_closure_for_on_complete_.Reset();
122 } 130 }
123 131
124 } // namespace content 132 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698