OLD | NEW |
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 Loading... |
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 |
OLD | NEW |