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

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

Issue 2274833002: Teach mojo::Watcher in URLResponseBodyConsumer the correct task runner (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 3 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') | no next file » | 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 117 matching lines...) Expand 10 before | Expand all | Expand 10 after
128 }; 128 };
129 129
130 TEST_F(URLResponseBodyConsumerTest, ReceiveData) { 130 TEST_F(URLResponseBodyConsumerTest, ReceiveData) {
131 TestRequestPeer::Context context; 131 TestRequestPeer::Context context;
132 std::unique_ptr<RequestInfo> request_info(CreateRequestInfo()); 132 std::unique_ptr<RequestInfo> request_info(CreateRequestInfo());
133 int request_id = SetUpRequestPeer(*request_info, &context); 133 int request_id = SetUpRequestPeer(*request_info, &context);
134 mojo::DataPipe data_pipe(CreateDataPipeOptions()); 134 mojo::DataPipe data_pipe(CreateDataPipeOptions());
135 135
136 scoped_refptr<URLResponseBodyConsumer> consumer(new URLResponseBodyConsumer( 136 scoped_refptr<URLResponseBodyConsumer> consumer(new URLResponseBodyConsumer(
137 request_id, dispatcher_.get(), std::move(data_pipe.consumer_handle), 137 request_id, dispatcher_.get(), std::move(data_pipe.consumer_handle),
138 message_loop_.task_runner().get())); 138 message_loop_.task_runner()));
139 139
140 mojo::ScopedDataPipeProducerHandle writer = 140 mojo::ScopedDataPipeProducerHandle writer =
141 std::move(data_pipe.producer_handle); 141 std::move(data_pipe.producer_handle);
142 std::string buffer = "hello"; 142 std::string buffer = "hello";
143 uint32_t size = buffer.size(); 143 uint32_t size = buffer.size();
144 MojoResult result = 144 MojoResult result =
145 mojo::WriteDataRaw(writer.get(), buffer.c_str(), &size, kNone); 145 mojo::WriteDataRaw(writer.get(), buffer.c_str(), &size, kNone);
146 ASSERT_EQ(MOJO_RESULT_OK, result); 146 ASSERT_EQ(MOJO_RESULT_OK, result);
147 ASSERT_EQ(buffer.size(), size); 147 ASSERT_EQ(buffer.size(), size);
148 148
149 Run(&context); 149 Run(&context);
150 150
151 EXPECT_FALSE(context.complete); 151 EXPECT_FALSE(context.complete);
152 EXPECT_EQ("hello", context.data); 152 EXPECT_EQ("hello", context.data);
153 } 153 }
154 154
155 TEST_F(URLResponseBodyConsumerTest, OnCompleteThenClose) { 155 TEST_F(URLResponseBodyConsumerTest, OnCompleteThenClose) {
156 TestRequestPeer::Context context; 156 TestRequestPeer::Context context;
157 std::unique_ptr<RequestInfo> request_info(CreateRequestInfo()); 157 std::unique_ptr<RequestInfo> request_info(CreateRequestInfo());
158 int request_id = SetUpRequestPeer(*request_info, &context); 158 int request_id = SetUpRequestPeer(*request_info, &context);
159 mojo::DataPipe data_pipe(CreateDataPipeOptions()); 159 mojo::DataPipe data_pipe(CreateDataPipeOptions());
160 160
161 scoped_refptr<URLResponseBodyConsumer> consumer(new URLResponseBodyConsumer( 161 scoped_refptr<URLResponseBodyConsumer> consumer(new URLResponseBodyConsumer(
162 request_id, dispatcher_.get(), std::move(data_pipe.consumer_handle), 162 request_id, dispatcher_.get(), std::move(data_pipe.consumer_handle),
163 message_loop_.task_runner().get())); 163 message_loop_.task_runner()));
164 164
165 consumer->OnComplete(ResourceRequestCompletionStatus()); 165 consumer->OnComplete(ResourceRequestCompletionStatus());
166 mojo::ScopedDataPipeProducerHandle writer = 166 mojo::ScopedDataPipeProducerHandle writer =
167 std::move(data_pipe.producer_handle); 167 std::move(data_pipe.producer_handle);
168 std::string buffer = "hello"; 168 std::string buffer = "hello";
169 uint32_t size = buffer.size(); 169 uint32_t size = buffer.size();
170 MojoResult result = 170 MojoResult result =
171 mojo::WriteDataRaw(writer.get(), buffer.c_str(), &size, kNone); 171 mojo::WriteDataRaw(writer.get(), buffer.c_str(), &size, kNone);
172 ASSERT_EQ(MOJO_RESULT_OK, result); 172 ASSERT_EQ(MOJO_RESULT_OK, result);
173 ASSERT_EQ(buffer.size(), size); 173 ASSERT_EQ(buffer.size(), size);
(...skipping 11 matching lines...) Expand all
185 } 185 }
186 186
187 TEST_F(URLResponseBodyConsumerTest, CloseThenOnComplete) { 187 TEST_F(URLResponseBodyConsumerTest, CloseThenOnComplete) {
188 TestRequestPeer::Context context; 188 TestRequestPeer::Context context;
189 std::unique_ptr<RequestInfo> request_info(CreateRequestInfo()); 189 std::unique_ptr<RequestInfo> request_info(CreateRequestInfo());
190 int request_id = SetUpRequestPeer(*request_info, &context); 190 int request_id = SetUpRequestPeer(*request_info, &context);
191 mojo::DataPipe data_pipe(CreateDataPipeOptions()); 191 mojo::DataPipe data_pipe(CreateDataPipeOptions());
192 192
193 scoped_refptr<URLResponseBodyConsumer> consumer(new URLResponseBodyConsumer( 193 scoped_refptr<URLResponseBodyConsumer> consumer(new URLResponseBodyConsumer(
194 request_id, dispatcher_.get(), std::move(data_pipe.consumer_handle), 194 request_id, dispatcher_.get(), std::move(data_pipe.consumer_handle),
195 message_loop_.task_runner().get())); 195 message_loop_.task_runner()));
196 196
197 ResourceRequestCompletionStatus status; 197 ResourceRequestCompletionStatus status;
198 status.error_code = net::ERR_FAILED; 198 status.error_code = net::ERR_FAILED;
199 data_pipe.producer_handle.reset(); 199 data_pipe.producer_handle.reset();
200 consumer->OnComplete(status); 200 consumer->OnComplete(status);
201 201
202 Run(&context); 202 Run(&context);
203 203
204 EXPECT_TRUE(context.complete); 204 EXPECT_TRUE(context.complete);
205 EXPECT_EQ(net::ERR_FAILED, context.error_code); 205 EXPECT_EQ(net::ERR_FAILED, context.error_code);
206 EXPECT_EQ("", context.data); 206 EXPECT_EQ("", context.data);
207 } 207 }
208 208
209 } // namespace 209 } // namespace
210 210
211 } // namespace content 211 } // namespace content
OLDNEW
« no previous file with comments | « 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