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

Side by Side Diff: content/browser/loader/upload_data_stream_builder_unittest.cc

Issue 1170623003: Revert "content: Remove use of MessageLoopProxy and deprecated MessageLoop APIs" (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 6 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 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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/upload_data_stream_builder.h" 5 #include "content/browser/loader/upload_data_stream_builder.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <string> 8 #include <string>
9 9
10 #include "base/files/file_path.h" 10 #include "base/files/file_path.h"
11 #include "base/files/file_util.h" 11 #include "base/files/file_util.h"
12 #include "base/message_loop/message_loop.h"
13 #include "base/message_loop/message_loop_proxy.h"
12 #include "base/run_loop.h" 14 #include "base/run_loop.h"
13 #include "base/thread_task_runner_handle.h"
14 #include "base/time/time.h" 15 #include "base/time/time.h"
15 #include "content/common/resource_request_body.h" 16 #include "content/common/resource_request_body.h"
16 #include "net/base/io_buffer.h" 17 #include "net/base/io_buffer.h"
17 #include "net/base/net_errors.h" 18 #include "net/base/net_errors.h"
18 #include "net/base/test_completion_callback.h" 19 #include "net/base/test_completion_callback.h"
19 #include "net/base/upload_bytes_element_reader.h" 20 #include "net/base/upload_bytes_element_reader.h"
20 #include "net/base/upload_data_stream.h" 21 #include "net/base/upload_data_stream.h"
21 #include "net/base/upload_file_element_reader.h" 22 #include "net/base/upload_file_element_reader.h"
22 #include "storage/browser/blob/blob_data_builder.h" 23 #include "storage/browser/blob/blob_data_builder.h"
23 #include "storage/browser/blob/blob_storage_context.h" 24 #include "storage/browser/blob/blob_storage_context.h"
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after
70 const uint64 kFileLength = 100U; 71 const uint64 kFileLength = 100U;
71 const base::Time kFileTime = base::Time::FromDoubleT(999); 72 const base::Time kFileTime = base::Time::FromDoubleT(999);
72 const int64 kIdentifier = 12345; 73 const int64 kIdentifier = 12345;
73 74
74 request_body->AppendBytes(kData, arraysize(kData) - 1); 75 request_body->AppendBytes(kData, arraysize(kData) - 1);
75 request_body->AppendFileRange(base::FilePath(kFilePath), 76 request_body->AppendFileRange(base::FilePath(kFilePath),
76 kFileOffset, kFileLength, kFileTime); 77 kFileOffset, kFileLength, kFileTime);
77 request_body->set_identifier(kIdentifier); 78 request_body->set_identifier(kIdentifier);
78 79
79 scoped_ptr<net::UploadDataStream> upload(UploadDataStreamBuilder::Build( 80 scoped_ptr<net::UploadDataStream> upload(UploadDataStreamBuilder::Build(
80 request_body.get(), NULL, NULL, 81 request_body.get(), NULL, NULL, base::MessageLoopProxy::current().get()));
81 base::ThreadTaskRunnerHandle::Get().get()));
82 82
83 EXPECT_EQ(kIdentifier, upload->identifier()); 83 EXPECT_EQ(kIdentifier, upload->identifier());
84 ASSERT_TRUE(upload->GetElementReaders()); 84 ASSERT_TRUE(upload->GetElementReaders());
85 ASSERT_EQ(request_body->elements()->size(), 85 ASSERT_EQ(request_body->elements()->size(),
86 upload->GetElementReaders()->size()); 86 upload->GetElementReaders()->size());
87 87
88 const net::UploadBytesElementReader* r1 = 88 const net::UploadBytesElementReader* r1 =
89 (*upload->GetElementReaders())[0]->AsBytesReader(); 89 (*upload->GetElementReaders())[0]->AsBytesReader();
90 ASSERT_TRUE(r1); 90 ASSERT_TRUE(r1);
91 EXPECT_EQ(kData, std::string(r1->bytes(), r1->length())); 91 EXPECT_EQ(kData, std::string(r1->bytes(), r1->length()));
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after
139 scoped_refptr<ResourceRequestBody> request_body(new ResourceRequestBody()); 139 scoped_refptr<ResourceRequestBody> request_body(new ResourceRequestBody());
140 request_body->AppendBytes( 140 request_body->AppendBytes(
141 upload_element1.bytes(), 141 upload_element1.bytes(),
142 upload_element1.length()); 142 upload_element1.length());
143 request_body->AppendFileRange( 143 request_body->AppendFileRange(
144 upload_element2.path(), 144 upload_element2.path(),
145 upload_element2.offset(), 145 upload_element2.offset(),
146 upload_element2.length(), 146 upload_element2.length(),
147 upload_element2.expected_modification_time()); 147 upload_element2.expected_modification_time());
148 148
149 scoped_ptr<net::UploadDataStream> upload(UploadDataStreamBuilder::Build( 149 scoped_ptr<net::UploadDataStream> upload(
150 request_body.get(), &blob_storage_context, NULL, 150 UploadDataStreamBuilder::Build(
151 base::ThreadTaskRunnerHandle::Get().get())); 151 request_body.get(),
152 &blob_storage_context,
153 NULL,
154 base::MessageLoopProxy::current().get()));
152 155
153 ASSERT_TRUE(upload->GetElementReaders()); 156 ASSERT_TRUE(upload->GetElementReaders());
154 ASSERT_EQ(2U, upload->GetElementReaders()->size()); 157 ASSERT_EQ(2U, upload->GetElementReaders()->size());
155 EXPECT_TRUE(AreElementsEqual( 158 EXPECT_TRUE(AreElementsEqual(
156 *(*upload->GetElementReaders())[0], upload_element1)); 159 *(*upload->GetElementReaders())[0], upload_element1));
157 EXPECT_TRUE(AreElementsEqual( 160 EXPECT_TRUE(AreElementsEqual(
158 *(*upload->GetElementReaders())[1], upload_element2)); 161 *(*upload->GetElementReaders())[1], upload_element2));
159 162
160 // Test having only one blob reference that refers to empty blob data. 163 // Test having only one blob reference that refers to empty blob data.
161 request_body = new ResourceRequestBody(); 164 request_body = new ResourceRequestBody();
162 request_body->AppendBlob(blob_id0); 165 request_body->AppendBlob(blob_id0);
163 166
164 upload = UploadDataStreamBuilder::Build( 167 upload = UploadDataStreamBuilder::Build(
165 request_body.get(), &blob_storage_context, NULL, 168 request_body.get(),
166 base::ThreadTaskRunnerHandle::Get().get()); 169 &blob_storage_context,
170 NULL,
171 base::MessageLoopProxy::current().get());
167 ASSERT_TRUE(upload->GetElementReaders()); 172 ASSERT_TRUE(upload->GetElementReaders());
168 ASSERT_EQ(0U, upload->GetElementReaders()->size()); 173 ASSERT_EQ(0U, upload->GetElementReaders()->size());
169 174
170 // Test having only one blob reference. 175 // Test having only one blob reference.
171 request_body = new ResourceRequestBody(); 176 request_body = new ResourceRequestBody();
172 request_body->AppendBlob(blob_id1); 177 request_body->AppendBlob(blob_id1);
173 178
174 upload = UploadDataStreamBuilder::Build( 179 upload = UploadDataStreamBuilder::Build(
175 request_body.get(), &blob_storage_context, NULL, 180 request_body.get(),
176 base::ThreadTaskRunnerHandle::Get().get()); 181 &blob_storage_context,
182 NULL,
183 base::MessageLoopProxy::current().get());
177 ASSERT_TRUE(upload->GetElementReaders()); 184 ASSERT_TRUE(upload->GetElementReaders());
178 ASSERT_EQ(2U, upload->GetElementReaders()->size()); 185 ASSERT_EQ(2U, upload->GetElementReaders()->size());
179 EXPECT_TRUE(AreElementsEqual( 186 EXPECT_TRUE(AreElementsEqual(
180 *(*upload->GetElementReaders())[0], blob_element1)); 187 *(*upload->GetElementReaders())[0], blob_element1));
181 EXPECT_TRUE(AreElementsEqual( 188 EXPECT_TRUE(AreElementsEqual(
182 *(*upload->GetElementReaders())[1], blob_element2)); 189 *(*upload->GetElementReaders())[1], blob_element2));
183 190
184 // Test having one blob reference at the beginning. 191 // Test having one blob reference at the beginning.
185 request_body = new ResourceRequestBody(); 192 request_body = new ResourceRequestBody();
186 request_body->AppendBlob(blob_id1); 193 request_body->AppendBlob(blob_id1);
187 request_body->AppendBytes( 194 request_body->AppendBytes(
188 upload_element1.bytes(), 195 upload_element1.bytes(),
189 upload_element1.length()); 196 upload_element1.length());
190 request_body->AppendFileRange( 197 request_body->AppendFileRange(
191 upload_element2.path(), 198 upload_element2.path(),
192 upload_element2.offset(), 199 upload_element2.offset(),
193 upload_element2.length(), 200 upload_element2.length(),
194 upload_element2.expected_modification_time()); 201 upload_element2.expected_modification_time());
195 202
196 upload = UploadDataStreamBuilder::Build( 203 upload = UploadDataStreamBuilder::Build(
197 request_body.get(), &blob_storage_context, NULL, 204 request_body.get(),
198 base::ThreadTaskRunnerHandle::Get().get()); 205 &blob_storage_context,
206 NULL,
207 base::MessageLoopProxy::current().get());
199 ASSERT_TRUE(upload->GetElementReaders()); 208 ASSERT_TRUE(upload->GetElementReaders());
200 ASSERT_EQ(4U, upload->GetElementReaders()->size()); 209 ASSERT_EQ(4U, upload->GetElementReaders()->size());
201 EXPECT_TRUE(AreElementsEqual( 210 EXPECT_TRUE(AreElementsEqual(
202 *(*upload->GetElementReaders())[0], blob_element1)); 211 *(*upload->GetElementReaders())[0], blob_element1));
203 EXPECT_TRUE(AreElementsEqual( 212 EXPECT_TRUE(AreElementsEqual(
204 *(*upload->GetElementReaders())[1], blob_element2)); 213 *(*upload->GetElementReaders())[1], blob_element2));
205 EXPECT_TRUE(AreElementsEqual( 214 EXPECT_TRUE(AreElementsEqual(
206 *(*upload->GetElementReaders())[2], upload_element1)); 215 *(*upload->GetElementReaders())[2], upload_element1));
207 EXPECT_TRUE(AreElementsEqual( 216 EXPECT_TRUE(AreElementsEqual(
208 *(*upload->GetElementReaders())[3], upload_element2)); 217 *(*upload->GetElementReaders())[3], upload_element2));
209 218
210 // Test having one blob reference at the end. 219 // Test having one blob reference at the end.
211 request_body = new ResourceRequestBody(); 220 request_body = new ResourceRequestBody();
212 request_body->AppendBytes( 221 request_body->AppendBytes(
213 upload_element1.bytes(), 222 upload_element1.bytes(),
214 upload_element1.length()); 223 upload_element1.length());
215 request_body->AppendFileRange( 224 request_body->AppendFileRange(
216 upload_element2.path(), 225 upload_element2.path(),
217 upload_element2.offset(), 226 upload_element2.offset(),
218 upload_element2.length(), 227 upload_element2.length(),
219 upload_element2.expected_modification_time()); 228 upload_element2.expected_modification_time());
220 request_body->AppendBlob(blob_id1); 229 request_body->AppendBlob(blob_id1);
221 230
222 upload = UploadDataStreamBuilder::Build( 231 upload =
223 request_body.get(), &blob_storage_context, NULL, 232 UploadDataStreamBuilder::Build(request_body.get(),
224 base::ThreadTaskRunnerHandle::Get().get()); 233 &blob_storage_context,
234 NULL,
235 base::MessageLoopProxy::current().get());
225 ASSERT_TRUE(upload->GetElementReaders()); 236 ASSERT_TRUE(upload->GetElementReaders());
226 ASSERT_EQ(4U, upload->GetElementReaders()->size()); 237 ASSERT_EQ(4U, upload->GetElementReaders()->size());
227 EXPECT_TRUE(AreElementsEqual( 238 EXPECT_TRUE(AreElementsEqual(
228 *(*upload->GetElementReaders())[0], upload_element1)); 239 *(*upload->GetElementReaders())[0], upload_element1));
229 EXPECT_TRUE(AreElementsEqual( 240 EXPECT_TRUE(AreElementsEqual(
230 *(*upload->GetElementReaders())[1], upload_element2)); 241 *(*upload->GetElementReaders())[1], upload_element2));
231 EXPECT_TRUE(AreElementsEqual( 242 EXPECT_TRUE(AreElementsEqual(
232 *(*upload->GetElementReaders())[2], blob_element1)); 243 *(*upload->GetElementReaders())[2], blob_element1));
233 EXPECT_TRUE(AreElementsEqual( 244 EXPECT_TRUE(AreElementsEqual(
234 *(*upload->GetElementReaders())[3], blob_element2)); 245 *(*upload->GetElementReaders())[3], blob_element2));
235 246
236 // Test having one blob reference in the middle. 247 // Test having one blob reference in the middle.
237 request_body = new ResourceRequestBody(); 248 request_body = new ResourceRequestBody();
238 request_body->AppendBytes( 249 request_body->AppendBytes(
239 upload_element1.bytes(), 250 upload_element1.bytes(),
240 upload_element1.length()); 251 upload_element1.length());
241 request_body->AppendBlob(blob_id1); 252 request_body->AppendBlob(blob_id1);
242 request_body->AppendFileRange( 253 request_body->AppendFileRange(
243 upload_element2.path(), 254 upload_element2.path(),
244 upload_element2.offset(), 255 upload_element2.offset(),
245 upload_element2.length(), 256 upload_element2.length(),
246 upload_element2.expected_modification_time()); 257 upload_element2.expected_modification_time());
247 258
248 upload = UploadDataStreamBuilder::Build( 259 upload = UploadDataStreamBuilder::Build(
249 request_body.get(), &blob_storage_context, NULL, 260 request_body.get(),
250 base::ThreadTaskRunnerHandle::Get().get()); 261 &blob_storage_context,
262 NULL,
263 base::MessageLoopProxy::current().get());
251 ASSERT_TRUE(upload->GetElementReaders()); 264 ASSERT_TRUE(upload->GetElementReaders());
252 ASSERT_EQ(4U, upload->GetElementReaders()->size()); 265 ASSERT_EQ(4U, upload->GetElementReaders()->size());
253 EXPECT_TRUE(AreElementsEqual( 266 EXPECT_TRUE(AreElementsEqual(
254 *(*upload->GetElementReaders())[0], upload_element1)); 267 *(*upload->GetElementReaders())[0], upload_element1));
255 EXPECT_TRUE(AreElementsEqual( 268 EXPECT_TRUE(AreElementsEqual(
256 *(*upload->GetElementReaders())[1], blob_element1)); 269 *(*upload->GetElementReaders())[1], blob_element1));
257 EXPECT_TRUE(AreElementsEqual( 270 EXPECT_TRUE(AreElementsEqual(
258 *(*upload->GetElementReaders())[2], blob_element2)); 271 *(*upload->GetElementReaders())[2], blob_element2));
259 EXPECT_TRUE(AreElementsEqual( 272 EXPECT_TRUE(AreElementsEqual(
260 *(*upload->GetElementReaders())[3], upload_element2)); 273 *(*upload->GetElementReaders())[3], upload_element2));
261 274
262 // Test having multiple blob references. 275 // Test having multiple blob references.
263 request_body = new ResourceRequestBody(); 276 request_body = new ResourceRequestBody();
264 request_body->AppendBlob(blob_id1); 277 request_body->AppendBlob(blob_id1);
265 request_body->AppendBytes( 278 request_body->AppendBytes(
266 upload_element1.bytes(), 279 upload_element1.bytes(),
267 upload_element1.length()); 280 upload_element1.length());
268 request_body->AppendBlob(blob_id1); 281 request_body->AppendBlob(blob_id1);
269 request_body->AppendBlob(blob_id1); 282 request_body->AppendBlob(blob_id1);
270 request_body->AppendFileRange( 283 request_body->AppendFileRange(
271 upload_element2.path(), 284 upload_element2.path(),
272 upload_element2.offset(), 285 upload_element2.offset(),
273 upload_element2.length(), 286 upload_element2.length(),
274 upload_element2.expected_modification_time()); 287 upload_element2.expected_modification_time());
275 288
276 upload = UploadDataStreamBuilder::Build( 289 upload = UploadDataStreamBuilder::Build(
277 request_body.get(), &blob_storage_context, NULL, 290 request_body.get(),
278 base::ThreadTaskRunnerHandle::Get().get()); 291 &blob_storage_context,
292 NULL,
293 base::MessageLoopProxy::current().get());
279 ASSERT_TRUE(upload->GetElementReaders()); 294 ASSERT_TRUE(upload->GetElementReaders());
280 ASSERT_EQ(8U, upload->GetElementReaders()->size()); 295 ASSERT_EQ(8U, upload->GetElementReaders()->size());
281 EXPECT_TRUE(AreElementsEqual( 296 EXPECT_TRUE(AreElementsEqual(
282 *(*upload->GetElementReaders())[0], blob_element1)); 297 *(*upload->GetElementReaders())[0], blob_element1));
283 EXPECT_TRUE(AreElementsEqual( 298 EXPECT_TRUE(AreElementsEqual(
284 *(*upload->GetElementReaders())[1], blob_element2)); 299 *(*upload->GetElementReaders())[1], blob_element2));
285 EXPECT_TRUE(AreElementsEqual( 300 EXPECT_TRUE(AreElementsEqual(
286 *(*upload->GetElementReaders())[2], upload_element1)); 301 *(*upload->GetElementReaders())[2], upload_element1));
287 EXPECT_TRUE(AreElementsEqual( 302 EXPECT_TRUE(AreElementsEqual(
288 *(*upload->GetElementReaders())[3], blob_element1)); 303 *(*upload->GetElementReaders())[3], blob_element1));
(...skipping 30 matching lines...) Expand all
319 blob_data_builder->AppendFile(test_blob_path, 0, kZeroLength, blob_time); 334 blob_data_builder->AppendFile(test_blob_path, 0, kZeroLength, blob_time);
320 scoped_ptr<BlobDataHandle> handle = 335 scoped_ptr<BlobDataHandle> handle =
321 blob_storage_context.AddFinishedBlob(blob_data_builder.get()); 336 blob_storage_context.AddFinishedBlob(blob_data_builder.get());
322 337
323 ResourceRequestBody::Element blob_element; 338 ResourceRequestBody::Element blob_element;
324 blob_element.SetToFilePathRange(test_blob_path, 0, kZeroLength, blob_time); 339 blob_element.SetToFilePathRange(test_blob_path, 0, kZeroLength, blob_time);
325 340
326 scoped_refptr<ResourceRequestBody> request_body(new ResourceRequestBody()); 341 scoped_refptr<ResourceRequestBody> request_body(new ResourceRequestBody());
327 scoped_ptr<net::UploadDataStream> upload(UploadDataStreamBuilder::Build( 342 scoped_ptr<net::UploadDataStream> upload(UploadDataStreamBuilder::Build(
328 request_body.get(), &blob_storage_context, NULL, 343 request_body.get(), &blob_storage_context, NULL,
329 base::ThreadTaskRunnerHandle::Get().get())); 344 base::MessageLoopProxy::current().get()));
330 345
331 request_body = new ResourceRequestBody(); 346 request_body = new ResourceRequestBody();
332 request_body->AppendBlob(blob_id); 347 request_body->AppendBlob(blob_id);
333 request_body->AppendBlob(blob_id); 348 request_body->AppendBlob(blob_id);
334 request_body->AppendBlob(blob_id); 349 request_body->AppendBlob(blob_id);
335 350
336 upload = UploadDataStreamBuilder::Build( 351 upload = UploadDataStreamBuilder::Build(
337 request_body.get(), &blob_storage_context, NULL, 352 request_body.get(), &blob_storage_context, NULL,
338 base::ThreadTaskRunnerHandle::Get().get()); 353 base::MessageLoopProxy::current().get());
339 ASSERT_TRUE(upload->GetElementReaders()); 354 ASSERT_TRUE(upload->GetElementReaders());
340 const auto& readers = *upload->GetElementReaders(); 355 const auto& readers = *upload->GetElementReaders();
341 ASSERT_EQ(3U, readers.size()); 356 ASSERT_EQ(3U, readers.size());
342 EXPECT_TRUE(AreElementsEqual(*readers[0], blob_element)); 357 EXPECT_TRUE(AreElementsEqual(*readers[0], blob_element));
343 EXPECT_TRUE(AreElementsEqual(*readers[1], blob_element)); 358 EXPECT_TRUE(AreElementsEqual(*readers[1], blob_element));
344 EXPECT_TRUE(AreElementsEqual(*readers[2], blob_element)); 359 EXPECT_TRUE(AreElementsEqual(*readers[2], blob_element));
345 360
346 net::TestCompletionCallback init_callback; 361 net::TestCompletionCallback init_callback;
347 ASSERT_EQ(net::ERR_IO_PENDING, upload->Init(init_callback.callback())); 362 ASSERT_EQ(net::ERR_IO_PENDING, upload->Init(init_callback.callback()));
348 EXPECT_EQ(net::OK, init_callback.WaitForResult()); 363 EXPECT_EQ(net::OK, init_callback.WaitForResult());
(...skipping 10 matching lines...) Expand all
359 int result = 374 int result =
360 upload->Read(io_buffer.get(), kBufferLength, read_callback.callback()); 375 upload->Read(io_buffer.get(), kBufferLength, read_callback.callback());
361 EXPECT_EQ(static_cast<int>(kZeroLength), read_callback.GetResult(result)); 376 EXPECT_EQ(static_cast<int>(kZeroLength), read_callback.GetResult(result));
362 377
363 base::DeleteFile(test_blob_path, false); 378 base::DeleteFile(test_blob_path, false);
364 } 379 }
365 // Clean up for ASAN. 380 // Clean up for ASAN.
366 base::RunLoop().RunUntilIdle(); 381 base::RunLoop().RunUntilIdle();
367 } 382 }
368 } // namespace content 383 } // namespace content
OLDNEW
« no previous file with comments | « content/browser/loader/resource_loader_unittest.cc ('k') | content/browser/media/capture/content_video_capture_device_core.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698