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

Side by Side Diff: content/child/url_response_body_consumer_unittest.cc

Issue 2459483002: [Mojo-Loading] Dispatch body data after response is received (Closed)
Patch Set: fix Created 4 years, 1 month 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/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 132 matching lines...) Expand 10 before | Expand all | Expand 10 after
143 143
144 TEST_F(URLResponseBodyConsumerTest, ReceiveData) { 144 TEST_F(URLResponseBodyConsumerTest, ReceiveData) {
145 TestRequestPeer::Context context; 145 TestRequestPeer::Context context;
146 std::unique_ptr<ResourceRequest> request(CreateResourceRequest()); 146 std::unique_ptr<ResourceRequest> request(CreateResourceRequest());
147 int request_id = SetUpRequestPeer(std::move(request), &context); 147 int request_id = SetUpRequestPeer(std::move(request), &context);
148 mojo::DataPipe data_pipe(CreateDataPipeOptions()); 148 mojo::DataPipe data_pipe(CreateDataPipeOptions());
149 149
150 scoped_refptr<URLResponseBodyConsumer> consumer(new URLResponseBodyConsumer( 150 scoped_refptr<URLResponseBodyConsumer> consumer(new URLResponseBodyConsumer(
151 request_id, dispatcher_.get(), std::move(data_pipe.consumer_handle), 151 request_id, dispatcher_.get(), std::move(data_pipe.consumer_handle),
152 message_loop_.task_runner())); 152 message_loop_.task_runner()));
153 consumer->Start(message_loop_.task_runner().get());
153 154
154 mojo::ScopedDataPipeProducerHandle writer = 155 mojo::ScopedDataPipeProducerHandle writer =
155 std::move(data_pipe.producer_handle); 156 std::move(data_pipe.producer_handle);
156 std::string buffer = "hello"; 157 std::string buffer = "hello";
157 uint32_t size = buffer.size(); 158 uint32_t size = buffer.size();
158 MojoResult result = 159 MojoResult result =
159 mojo::WriteDataRaw(writer.get(), buffer.c_str(), &size, kNone); 160 mojo::WriteDataRaw(writer.get(), buffer.c_str(), &size, kNone);
160 ASSERT_EQ(MOJO_RESULT_OK, result); 161 ASSERT_EQ(MOJO_RESULT_OK, result);
161 ASSERT_EQ(buffer.size(), size); 162 ASSERT_EQ(buffer.size(), size);
162 163
163 Run(&context); 164 Run(&context);
164 165
165 EXPECT_FALSE(context.complete); 166 EXPECT_FALSE(context.complete);
166 EXPECT_EQ("hello", context.data); 167 EXPECT_EQ("hello", context.data);
167 } 168 }
168 169
169 TEST_F(URLResponseBodyConsumerTest, OnCompleteThenClose) { 170 TEST_F(URLResponseBodyConsumerTest, OnCompleteThenClose) {
170 TestRequestPeer::Context context; 171 TestRequestPeer::Context context;
171 std::unique_ptr<ResourceRequest> request(CreateResourceRequest()); 172 std::unique_ptr<ResourceRequest> request(CreateResourceRequest());
172 int request_id = SetUpRequestPeer(std::move(request), &context); 173 int request_id = SetUpRequestPeer(std::move(request), &context);
173 mojo::DataPipe data_pipe(CreateDataPipeOptions()); 174 mojo::DataPipe data_pipe(CreateDataPipeOptions());
174 175
175 scoped_refptr<URLResponseBodyConsumer> consumer(new URLResponseBodyConsumer( 176 scoped_refptr<URLResponseBodyConsumer> consumer(new URLResponseBodyConsumer(
176 request_id, dispatcher_.get(), std::move(data_pipe.consumer_handle), 177 request_id, dispatcher_.get(), std::move(data_pipe.consumer_handle),
177 message_loop_.task_runner())); 178 message_loop_.task_runner()));
179 consumer->Start(message_loop_.task_runner().get());
178 180
179 consumer->OnComplete(ResourceRequestCompletionStatus()); 181 consumer->OnComplete(ResourceRequestCompletionStatus());
180 mojo::ScopedDataPipeProducerHandle writer = 182 mojo::ScopedDataPipeProducerHandle writer =
181 std::move(data_pipe.producer_handle); 183 std::move(data_pipe.producer_handle);
182 std::string buffer = "hello"; 184 std::string buffer = "hello";
183 uint32_t size = buffer.size(); 185 uint32_t size = buffer.size();
184 MojoResult result = 186 MojoResult result =
185 mojo::WriteDataRaw(writer.get(), buffer.c_str(), &size, kNone); 187 mojo::WriteDataRaw(writer.get(), buffer.c_str(), &size, kNone);
186 ASSERT_EQ(MOJO_RESULT_OK, result); 188 ASSERT_EQ(MOJO_RESULT_OK, result);
187 ASSERT_EQ(buffer.size(), size); 189 ASSERT_EQ(buffer.size(), size);
(...skipping 12 matching lines...) Expand all
200 202
201 TEST_F(URLResponseBodyConsumerTest, CloseThenOnComplete) { 203 TEST_F(URLResponseBodyConsumerTest, CloseThenOnComplete) {
202 TestRequestPeer::Context context; 204 TestRequestPeer::Context context;
203 std::unique_ptr<ResourceRequest> request(CreateResourceRequest()); 205 std::unique_ptr<ResourceRequest> request(CreateResourceRequest());
204 int request_id = SetUpRequestPeer(std::move(request), &context); 206 int request_id = SetUpRequestPeer(std::move(request), &context);
205 mojo::DataPipe data_pipe(CreateDataPipeOptions()); 207 mojo::DataPipe data_pipe(CreateDataPipeOptions());
206 208
207 scoped_refptr<URLResponseBodyConsumer> consumer(new URLResponseBodyConsumer( 209 scoped_refptr<URLResponseBodyConsumer> consumer(new URLResponseBodyConsumer(
208 request_id, dispatcher_.get(), std::move(data_pipe.consumer_handle), 210 request_id, dispatcher_.get(), std::move(data_pipe.consumer_handle),
209 message_loop_.task_runner())); 211 message_loop_.task_runner()));
212 consumer->Start(message_loop_.task_runner().get());
210 213
211 ResourceRequestCompletionStatus status; 214 ResourceRequestCompletionStatus status;
212 status.error_code = net::ERR_FAILED; 215 status.error_code = net::ERR_FAILED;
213 data_pipe.producer_handle.reset(); 216 data_pipe.producer_handle.reset();
214 consumer->OnComplete(status); 217 consumer->OnComplete(status);
215 218
216 Run(&context); 219 Run(&context);
217 220
218 EXPECT_TRUE(context.complete); 221 EXPECT_TRUE(context.complete);
219 EXPECT_EQ(net::ERR_FAILED, context.error_code); 222 EXPECT_EQ(net::ERR_FAILED, context.error_code);
220 EXPECT_EQ("", context.data); 223 EXPECT_EQ("", context.data);
221 } 224 }
222 225
223 } // namespace 226 } // namespace
224 227
225 } // namespace content 228 } // namespace content
OLDNEW
« content/child/url_response_body_consumer.cc ('K') | « content/child/url_response_body_consumer.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698