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

Side by Side Diff: content/child/url_response_body_consumer_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 unified diff | Download patch
« no previous file with comments | « content/child/url_response_body_consumer.cc ('k') | content/common/url_loader.mojom » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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/child/url_response_body_consumer.h" 5 #include "content/child/url_response_body_consumer.h"
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/callback_forward.h" 8 #include "base/callback_forward.h"
9 #include "base/macros.h" 9 #include "base/macros.h"
10 #include "base/memory/ptr_util.h" 10 #include "base/memory/ptr_util.h"
(...skipping 142 matching lines...) Expand 10 before | Expand all | Expand 10 after
153 153
154 TEST_F(URLResponseBodyConsumerTest, ReceiveData) { 154 TEST_F(URLResponseBodyConsumerTest, ReceiveData) {
155 TestRequestPeer::Context context; 155 TestRequestPeer::Context context;
156 std::unique_ptr<ResourceRequest> request(CreateResourceRequest()); 156 std::unique_ptr<ResourceRequest> request(CreateResourceRequest());
157 int request_id = SetUpRequestPeer(std::move(request), &context); 157 int request_id = SetUpRequestPeer(std::move(request), &context);
158 mojo::DataPipe data_pipe(CreateDataPipeOptions()); 158 mojo::DataPipe data_pipe(CreateDataPipeOptions());
159 159
160 scoped_refptr<URLResponseBodyConsumer> consumer(new URLResponseBodyConsumer( 160 scoped_refptr<URLResponseBodyConsumer> consumer(new URLResponseBodyConsumer(
161 request_id, dispatcher_.get(), std::move(data_pipe.consumer_handle), 161 request_id, dispatcher_.get(), std::move(data_pipe.consumer_handle),
162 message_loop_.task_runner())); 162 message_loop_.task_runner()));
163 consumer->Start();
164 163
165 mojo::ScopedDataPipeProducerHandle writer = 164 mojo::ScopedDataPipeProducerHandle writer =
166 std::move(data_pipe.producer_handle); 165 std::move(data_pipe.producer_handle);
167 std::string buffer = "hello"; 166 std::string buffer = "hello";
168 uint32_t size = buffer.size(); 167 uint32_t size = buffer.size();
169 MojoResult result = 168 MojoResult result =
170 mojo::WriteDataRaw(writer.get(), buffer.c_str(), &size, kNone); 169 mojo::WriteDataRaw(writer.get(), buffer.c_str(), &size, kNone);
171 ASSERT_EQ(MOJO_RESULT_OK, result); 170 ASSERT_EQ(MOJO_RESULT_OK, result);
172 ASSERT_EQ(buffer.size(), size); 171 ASSERT_EQ(buffer.size(), size);
173 172
174 Run(&context); 173 Run(&context);
175 174
176 EXPECT_FALSE(context.complete); 175 EXPECT_FALSE(context.complete);
177 EXPECT_EQ("hello", context.data); 176 EXPECT_EQ("hello", context.data);
178 } 177 }
179 178
180 TEST_F(URLResponseBodyConsumerTest, OnCompleteThenClose) { 179 TEST_F(URLResponseBodyConsumerTest, OnCompleteThenClose) {
181 TestRequestPeer::Context context; 180 TestRequestPeer::Context context;
182 std::unique_ptr<ResourceRequest> request(CreateResourceRequest()); 181 std::unique_ptr<ResourceRequest> request(CreateResourceRequest());
183 int request_id = SetUpRequestPeer(std::move(request), &context); 182 int request_id = SetUpRequestPeer(std::move(request), &context);
184 mojo::DataPipe data_pipe(CreateDataPipeOptions()); 183 mojo::DataPipe data_pipe(CreateDataPipeOptions());
185 184
186 scoped_refptr<URLResponseBodyConsumer> consumer(new URLResponseBodyConsumer( 185 scoped_refptr<URLResponseBodyConsumer> consumer(new URLResponseBodyConsumer(
187 request_id, dispatcher_.get(), std::move(data_pipe.consumer_handle), 186 request_id, dispatcher_.get(), std::move(data_pipe.consumer_handle),
188 message_loop_.task_runner())); 187 message_loop_.task_runner()));
189 consumer->Start();
190 188
191 consumer->OnComplete(ResourceRequestCompletionStatus()); 189 consumer->OnComplete(ResourceRequestCompletionStatus());
192 mojo::ScopedDataPipeProducerHandle writer = 190 mojo::ScopedDataPipeProducerHandle writer =
193 std::move(data_pipe.producer_handle); 191 std::move(data_pipe.producer_handle);
194 std::string buffer = "hello"; 192 std::string buffer = "hello";
195 uint32_t size = buffer.size(); 193 uint32_t size = buffer.size();
196 MojoResult result = 194 MojoResult result =
197 mojo::WriteDataRaw(writer.get(), buffer.c_str(), &size, kNone); 195 mojo::WriteDataRaw(writer.get(), buffer.c_str(), &size, kNone);
198 ASSERT_EQ(MOJO_RESULT_OK, result); 196 ASSERT_EQ(MOJO_RESULT_OK, result);
199 ASSERT_EQ(buffer.size(), size); 197 ASSERT_EQ(buffer.size(), size);
(...skipping 15 matching lines...) Expand all
215 TEST_F(URLResponseBodyConsumerTest, OnCompleteThenCloseWithAsyncRelease) { 213 TEST_F(URLResponseBodyConsumerTest, OnCompleteThenCloseWithAsyncRelease) {
216 TestRequestPeer::Context context; 214 TestRequestPeer::Context context;
217 context.release_data_asynchronously = true; 215 context.release_data_asynchronously = true;
218 std::unique_ptr<ResourceRequest> request(CreateResourceRequest()); 216 std::unique_ptr<ResourceRequest> request(CreateResourceRequest());
219 int request_id = SetUpRequestPeer(std::move(request), &context); 217 int request_id = SetUpRequestPeer(std::move(request), &context);
220 mojo::DataPipe data_pipe(CreateDataPipeOptions()); 218 mojo::DataPipe data_pipe(CreateDataPipeOptions());
221 219
222 scoped_refptr<URLResponseBodyConsumer> consumer(new URLResponseBodyConsumer( 220 scoped_refptr<URLResponseBodyConsumer> consumer(new URLResponseBodyConsumer(
223 request_id, dispatcher_.get(), std::move(data_pipe.consumer_handle), 221 request_id, dispatcher_.get(), std::move(data_pipe.consumer_handle),
224 message_loop_.task_runner())); 222 message_loop_.task_runner()));
225 consumer->Start();
226 223
227 consumer->OnComplete(ResourceRequestCompletionStatus()); 224 consumer->OnComplete(ResourceRequestCompletionStatus());
228 mojo::ScopedDataPipeProducerHandle writer = 225 mojo::ScopedDataPipeProducerHandle writer =
229 std::move(data_pipe.producer_handle); 226 std::move(data_pipe.producer_handle);
230 std::string buffer = "hello"; 227 std::string buffer = "hello";
231 uint32_t size = buffer.size(); 228 uint32_t size = buffer.size();
232 MojoResult result = 229 MojoResult result =
233 mojo::WriteDataRaw(writer.get(), buffer.c_str(), &size, kNone); 230 mojo::WriteDataRaw(writer.get(), buffer.c_str(), &size, kNone);
234 ASSERT_EQ(MOJO_RESULT_OK, result); 231 ASSERT_EQ(MOJO_RESULT_OK, result);
235 ASSERT_EQ(buffer.size(), size); 232 ASSERT_EQ(buffer.size(), size);
(...skipping 12 matching lines...) Expand all
248 245
249 TEST_F(URLResponseBodyConsumerTest, CloseThenOnComplete) { 246 TEST_F(URLResponseBodyConsumerTest, CloseThenOnComplete) {
250 TestRequestPeer::Context context; 247 TestRequestPeer::Context context;
251 std::unique_ptr<ResourceRequest> request(CreateResourceRequest()); 248 std::unique_ptr<ResourceRequest> request(CreateResourceRequest());
252 int request_id = SetUpRequestPeer(std::move(request), &context); 249 int request_id = SetUpRequestPeer(std::move(request), &context);
253 mojo::DataPipe data_pipe(CreateDataPipeOptions()); 250 mojo::DataPipe data_pipe(CreateDataPipeOptions());
254 251
255 scoped_refptr<URLResponseBodyConsumer> consumer(new URLResponseBodyConsumer( 252 scoped_refptr<URLResponseBodyConsumer> consumer(new URLResponseBodyConsumer(
256 request_id, dispatcher_.get(), std::move(data_pipe.consumer_handle), 253 request_id, dispatcher_.get(), std::move(data_pipe.consumer_handle),
257 message_loop_.task_runner())); 254 message_loop_.task_runner()));
258 consumer->Start();
259 255
260 ResourceRequestCompletionStatus status; 256 ResourceRequestCompletionStatus status;
261 status.error_code = net::ERR_FAILED; 257 status.error_code = net::ERR_FAILED;
262 data_pipe.producer_handle.reset(); 258 data_pipe.producer_handle.reset();
263 consumer->OnComplete(status); 259 consumer->OnComplete(status);
264 260
265 Run(&context); 261 Run(&context);
266 262
267 EXPECT_TRUE(context.complete); 263 EXPECT_TRUE(context.complete);
268 EXPECT_EQ(net::ERR_FAILED, context.error_code); 264 EXPECT_EQ(net::ERR_FAILED, context.error_code);
269 EXPECT_EQ("", context.data); 265 EXPECT_EQ("", context.data);
270 } 266 }
271 267
272 } // namespace 268 } // namespace
273 269
274 } // namespace content 270 } // namespace content
OLDNEW
« no previous file with comments | « content/child/url_response_body_consumer.cc ('k') | content/common/url_loader.mojom » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698