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

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 EXPECT_FALSE(has_received_response_);
20 EXPECT_FALSE(has_received_cached_metadata_);
21 EXPECT_FALSE(has_received_completion_);
19 has_received_response_ = true; 22 has_received_response_ = true;
20 response_head_ = response_head; 23 response_head_ = response_head;
21 if (quit_closure_for_on_receive_response_) 24 if (quit_closure_for_on_receive_response_)
22 quit_closure_for_on_receive_response_.Run(); 25 quit_closure_for_on_receive_response_.Run();
23 } 26 }
24 27
25 void TestURLLoaderClient::OnReceiveRedirect( 28 void TestURLLoaderClient::OnReceiveRedirect(
26 const net::RedirectInfo& redirect_info, 29 const net::RedirectInfo& redirect_info,
27 const ResourceResponseHead& response_head) { 30 const ResourceResponseHead& response_head) {
31 EXPECT_FALSE(has_received_cached_metadata_);
28 EXPECT_FALSE(response_body_.is_valid()); 32 EXPECT_FALSE(response_body_.is_valid());
29 EXPECT_FALSE(has_received_response_); 33 EXPECT_FALSE(has_received_response_);
30 // Use ClearHasReceivedRedirect to accept more redirects. 34 // Use ClearHasReceivedRedirect to accept more redirects.
31 EXPECT_FALSE(has_received_redirect_); 35 EXPECT_FALSE(has_received_redirect_);
36 EXPECT_FALSE(has_received_completion_);
32 has_received_redirect_ = true; 37 has_received_redirect_ = true;
33 redirect_info_ = redirect_info; 38 redirect_info_ = redirect_info;
34 response_head_ = response_head; 39 response_head_ = response_head;
35 if (quit_closure_for_on_receive_redirect_) 40 if (quit_closure_for_on_receive_redirect_)
36 quit_closure_for_on_receive_redirect_.Run(); 41 quit_closure_for_on_receive_redirect_.Run();
37 } 42 }
38 43
39 void TestURLLoaderClient::OnDataDownloaded(int64_t data_length, 44 void TestURLLoaderClient::OnDataDownloaded(int64_t data_length,
40 int64_t encoded_data_length) { 45 int64_t encoded_data_length) {
46 EXPECT_TRUE(has_received_response_);
47 EXPECT_FALSE(has_received_completion_);
41 has_data_downloaded_ = true; 48 has_data_downloaded_ = true;
42 download_data_length_ += data_length; 49 download_data_length_ += data_length;
43 encoded_download_data_length_ += encoded_data_length; 50 encoded_download_data_length_ += encoded_data_length;
44 if (quit_closure_for_on_data_downloaded_) 51 if (quit_closure_for_on_data_downloaded_)
45 quit_closure_for_on_data_downloaded_.Run(); 52 quit_closure_for_on_data_downloaded_.Run();
46 } 53 }
47 54
48 void TestURLLoaderClient::OnReceiveCachedMetadata( 55 void TestURLLoaderClient::OnReceiveCachedMetadata(
49 const std::vector<uint8_t>& data) { 56 const std::vector<uint8_t>& data) {
50 EXPECT_FALSE(has_received_cached_metadata_); 57 EXPECT_FALSE(has_received_cached_metadata_);
51 EXPECT_TRUE(has_received_response_); 58 EXPECT_TRUE(has_received_response_);
52 EXPECT_FALSE(has_received_completion_); 59 EXPECT_FALSE(has_received_completion_);
53 has_received_cached_metadata_ = true; 60 has_received_cached_metadata_ = true;
54 cached_metadata_ = 61 cached_metadata_ =
55 std::string(reinterpret_cast<const char*>(data.data()), data.size()); 62 std::string(reinterpret_cast<const char*>(data.data()), data.size());
56 if (quit_closure_for_on_receive_cached_metadata_) 63 if (quit_closure_for_on_receive_cached_metadata_)
57 quit_closure_for_on_receive_cached_metadata_.Run(); 64 quit_closure_for_on_receive_cached_metadata_.Run();
58 } 65 }
59 66
60 void TestURLLoaderClient::OnTransferSizeUpdated(int32_t transfer_size_diff) { 67 void TestURLLoaderClient::OnTransferSizeUpdated(int32_t transfer_size_diff) {
68 EXPECT_TRUE(has_received_response_);
69 EXPECT_FALSE(has_received_completion_);
61 EXPECT_GT(transfer_size_diff, 0); 70 EXPECT_GT(transfer_size_diff, 0);
62 body_transfer_size_ += transfer_size_diff; 71 body_transfer_size_ += transfer_size_diff;
63 } 72 }
64 73
65 void TestURLLoaderClient::OnStartLoadingResponseBody( 74 void TestURLLoaderClient::OnStartLoadingResponseBody(
66 mojo::ScopedDataPipeConsumerHandle body) { 75 mojo::ScopedDataPipeConsumerHandle body) {
76 EXPECT_TRUE(has_received_response_);
77 EXPECT_FALSE(has_received_completion_);
67 response_body_ = std::move(body); 78 response_body_ = std::move(body);
68 if (quit_closure_for_on_start_loading_response_body_) 79 if (quit_closure_for_on_start_loading_response_body_)
69 quit_closure_for_on_start_loading_response_body_.Run(); 80 quit_closure_for_on_start_loading_response_body_.Run();
70 } 81 }
71 82
72 void TestURLLoaderClient::OnComplete( 83 void TestURLLoaderClient::OnComplete(
73 const ResourceRequestCompletionStatus& status) { 84 const ResourceRequestCompletionStatus& status) {
85 EXPECT_FALSE(has_received_completion_);
74 has_received_completion_ = true; 86 has_received_completion_ = true;
75 completion_status_ = status; 87 completion_status_ = status;
76 if (quit_closure_for_on_complete_) 88 if (quit_closure_for_on_complete_)
77 quit_closure_for_on_complete_.Run(); 89 quit_closure_for_on_complete_.Run();
78 } 90 }
79 91
80 void TestURLLoaderClient::ClearHasReceivedRedirect() { 92 void TestURLLoaderClient::ClearHasReceivedRedirect() {
81 has_received_redirect_ = false; 93 has_received_redirect_ = false;
82 } 94 }
83 95
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after
142 void TestURLLoaderClient::RunUntilComplete() { 154 void TestURLLoaderClient::RunUntilComplete() {
143 if (has_received_completion_) 155 if (has_received_completion_)
144 return; 156 return;
145 base::RunLoop run_loop; 157 base::RunLoop run_loop;
146 quit_closure_for_on_complete_ = run_loop.QuitClosure(); 158 quit_closure_for_on_complete_ = run_loop.QuitClosure();
147 run_loop.Run(); 159 run_loop.Run();
148 quit_closure_for_on_complete_.Reset(); 160 quit_closure_for_on_complete_.Reset();
149 } 161 }
150 162
151 } // namespace content 163 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698