OLD | NEW |
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 <stdint.h> | 5 #include <stdint.h> |
6 #include <limits> | 6 #include <limits> |
7 #include <string> | 7 #include <string> |
8 #include <utility> | 8 #include <utility> |
9 #include <vector> | 9 #include <vector> |
10 | 10 |
(...skipping 268 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
279 | 279 |
280 TEST_F(FileWriterDelegateTest, WriteSuccessWithoutQuotaLimit) { | 280 TEST_F(FileWriterDelegateTest, WriteSuccessWithoutQuotaLimit) { |
281 const GURL kBlobURL("blob:nolimit"); | 281 const GURL kBlobURL("blob:nolimit"); |
282 content_ = kData; | 282 content_ = kData; |
283 | 283 |
284 PrepareForWrite("test", kBlobURL, 0, std::numeric_limits<int64_t>::max()); | 284 PrepareForWrite("test", kBlobURL, 0, std::numeric_limits<int64_t>::max()); |
285 | 285 |
286 Result result; | 286 Result result; |
287 ASSERT_EQ(0, usage()); | 287 ASSERT_EQ(0, usage()); |
288 file_writer_delegate_->Start(std::move(request_), GetWriteCallback(&result)); | 288 file_writer_delegate_->Start(std::move(request_), GetWriteCallback(&result)); |
289 base::MessageLoop::current()->Run(); | 289 base::RunLoop().Run(); |
290 | 290 |
291 ASSERT_EQ(FileWriterDelegate::SUCCESS_COMPLETED, result.write_status()); | 291 ASSERT_EQ(FileWriterDelegate::SUCCESS_COMPLETED, result.write_status()); |
292 file_writer_delegate_.reset(); | 292 file_writer_delegate_.reset(); |
293 | 293 |
294 ASSERT_EQ(kDataSize, usage()); | 294 ASSERT_EQ(kDataSize, usage()); |
295 EXPECT_EQ(GetFileSizeOnDisk("test"), usage()); | 295 EXPECT_EQ(GetFileSizeOnDisk("test"), usage()); |
296 EXPECT_EQ(kDataSize, result.bytes_written()); | 296 EXPECT_EQ(kDataSize, result.bytes_written()); |
297 EXPECT_EQ(base::File::FILE_OK, result.status()); | 297 EXPECT_EQ(base::File::FILE_OK, result.status()); |
298 } | 298 } |
299 | 299 |
300 TEST_F(FileWriterDelegateTest, WriteSuccessWithJustQuota) { | 300 TEST_F(FileWriterDelegateTest, WriteSuccessWithJustQuota) { |
301 const GURL kBlobURL("blob:just"); | 301 const GURL kBlobURL("blob:just"); |
302 content_ = kData; | 302 content_ = kData; |
303 const int64_t kAllowedGrowth = kDataSize; | 303 const int64_t kAllowedGrowth = kDataSize; |
304 PrepareForWrite("test", kBlobURL, 0, kAllowedGrowth); | 304 PrepareForWrite("test", kBlobURL, 0, kAllowedGrowth); |
305 | 305 |
306 Result result; | 306 Result result; |
307 ASSERT_EQ(0, usage()); | 307 ASSERT_EQ(0, usage()); |
308 file_writer_delegate_->Start(std::move(request_), GetWriteCallback(&result)); | 308 file_writer_delegate_->Start(std::move(request_), GetWriteCallback(&result)); |
309 base::MessageLoop::current()->Run(); | 309 base::RunLoop().Run(); |
310 ASSERT_EQ(FileWriterDelegate::SUCCESS_COMPLETED, result.write_status()); | 310 ASSERT_EQ(FileWriterDelegate::SUCCESS_COMPLETED, result.write_status()); |
311 file_writer_delegate_.reset(); | 311 file_writer_delegate_.reset(); |
312 | 312 |
313 ASSERT_EQ(kAllowedGrowth, usage()); | 313 ASSERT_EQ(kAllowedGrowth, usage()); |
314 EXPECT_EQ(GetFileSizeOnDisk("test"), usage()); | 314 EXPECT_EQ(GetFileSizeOnDisk("test"), usage()); |
315 | 315 |
316 EXPECT_EQ(kAllowedGrowth, result.bytes_written()); | 316 EXPECT_EQ(kAllowedGrowth, result.bytes_written()); |
317 EXPECT_EQ(base::File::FILE_OK, result.status()); | 317 EXPECT_EQ(base::File::FILE_OK, result.status()); |
318 } | 318 } |
319 | 319 |
320 TEST_F(FileWriterDelegateTest, DISABLED_WriteFailureByQuota) { | 320 TEST_F(FileWriterDelegateTest, DISABLED_WriteFailureByQuota) { |
321 const GURL kBlobURL("blob:failure"); | 321 const GURL kBlobURL("blob:failure"); |
322 content_ = kData; | 322 content_ = kData; |
323 const int64_t kAllowedGrowth = kDataSize - 1; | 323 const int64_t kAllowedGrowth = kDataSize - 1; |
324 PrepareForWrite("test", kBlobURL, 0, kAllowedGrowth); | 324 PrepareForWrite("test", kBlobURL, 0, kAllowedGrowth); |
325 | 325 |
326 Result result; | 326 Result result; |
327 ASSERT_EQ(0, usage()); | 327 ASSERT_EQ(0, usage()); |
328 file_writer_delegate_->Start(std::move(request_), GetWriteCallback(&result)); | 328 file_writer_delegate_->Start(std::move(request_), GetWriteCallback(&result)); |
329 base::MessageLoop::current()->Run(); | 329 base::RunLoop().Run(); |
330 ASSERT_EQ(FileWriterDelegate::ERROR_WRITE_STARTED, result.write_status()); | 330 ASSERT_EQ(FileWriterDelegate::ERROR_WRITE_STARTED, result.write_status()); |
331 file_writer_delegate_.reset(); | 331 file_writer_delegate_.reset(); |
332 | 332 |
333 ASSERT_EQ(kAllowedGrowth, usage()); | 333 ASSERT_EQ(kAllowedGrowth, usage()); |
334 EXPECT_EQ(GetFileSizeOnDisk("test"), usage()); | 334 EXPECT_EQ(GetFileSizeOnDisk("test"), usage()); |
335 | 335 |
336 EXPECT_EQ(kAllowedGrowth, result.bytes_written()); | 336 EXPECT_EQ(kAllowedGrowth, result.bytes_written()); |
337 EXPECT_EQ(base::File::FILE_ERROR_NO_SPACE, result.status()); | 337 EXPECT_EQ(base::File::FILE_ERROR_NO_SPACE, result.status()); |
338 ASSERT_EQ(FileWriterDelegate::ERROR_WRITE_STARTED, result.write_status()); | 338 ASSERT_EQ(FileWriterDelegate::ERROR_WRITE_STARTED, result.write_status()); |
339 } | 339 } |
340 | 340 |
341 TEST_F(FileWriterDelegateTest, WriteZeroBytesSuccessfullyWithZeroQuota) { | 341 TEST_F(FileWriterDelegateTest, WriteZeroBytesSuccessfullyWithZeroQuota) { |
342 const GURL kBlobURL("blob:zero"); | 342 const GURL kBlobURL("blob:zero"); |
343 content_ = ""; | 343 content_ = ""; |
344 int64_t kAllowedGrowth = 0; | 344 int64_t kAllowedGrowth = 0; |
345 PrepareForWrite("test", kBlobURL, 0, kAllowedGrowth); | 345 PrepareForWrite("test", kBlobURL, 0, kAllowedGrowth); |
346 | 346 |
347 Result result; | 347 Result result; |
348 ASSERT_EQ(0, usage()); | 348 ASSERT_EQ(0, usage()); |
349 file_writer_delegate_->Start(std::move(request_), GetWriteCallback(&result)); | 349 file_writer_delegate_->Start(std::move(request_), GetWriteCallback(&result)); |
350 base::MessageLoop::current()->Run(); | 350 base::RunLoop().Run(); |
351 ASSERT_EQ(FileWriterDelegate::SUCCESS_COMPLETED, result.write_status()); | 351 ASSERT_EQ(FileWriterDelegate::SUCCESS_COMPLETED, result.write_status()); |
352 file_writer_delegate_.reset(); | 352 file_writer_delegate_.reset(); |
353 | 353 |
354 ASSERT_EQ(kAllowedGrowth, usage()); | 354 ASSERT_EQ(kAllowedGrowth, usage()); |
355 EXPECT_EQ(GetFileSizeOnDisk("test"), usage()); | 355 EXPECT_EQ(GetFileSizeOnDisk("test"), usage()); |
356 | 356 |
357 EXPECT_EQ(kAllowedGrowth, result.bytes_written()); | 357 EXPECT_EQ(kAllowedGrowth, result.bytes_written()); |
358 EXPECT_EQ(base::File::FILE_OK, result.status()); | 358 EXPECT_EQ(base::File::FILE_OK, result.status()); |
359 ASSERT_EQ(FileWriterDelegate::SUCCESS_COMPLETED, result.write_status()); | 359 ASSERT_EQ(FileWriterDelegate::SUCCESS_COMPLETED, result.write_status()); |
360 } | 360 } |
(...skipping 15 matching lines...) Expand all Loading... |
376 // Credate another FileWriterDelegate for concurrent write. | 376 // Credate another FileWriterDelegate for concurrent write. |
377 file_writer_delegate2.reset( | 377 file_writer_delegate2.reset( |
378 CreateWriterDelegate("test2", 0, std::numeric_limits<int64_t>::max())); | 378 CreateWriterDelegate("test2", 0, std::numeric_limits<int64_t>::max())); |
379 request2 = empty_context_.CreateRequest( | 379 request2 = empty_context_.CreateRequest( |
380 kBlobURL2, net::DEFAULT_PRIORITY, file_writer_delegate2.get()); | 380 kBlobURL2, net::DEFAULT_PRIORITY, file_writer_delegate2.get()); |
381 | 381 |
382 Result result, result2; | 382 Result result, result2; |
383 ASSERT_EQ(0, usage()); | 383 ASSERT_EQ(0, usage()); |
384 file_writer_delegate_->Start(std::move(request_), GetWriteCallback(&result)); | 384 file_writer_delegate_->Start(std::move(request_), GetWriteCallback(&result)); |
385 file_writer_delegate2->Start(std::move(request2), GetWriteCallback(&result2)); | 385 file_writer_delegate2->Start(std::move(request2), GetWriteCallback(&result2)); |
386 base::MessageLoop::current()->Run(); | 386 base::RunLoop().Run(); |
387 if (result.write_status() == FileWriterDelegate::SUCCESS_IO_PENDING || | 387 if (result.write_status() == FileWriterDelegate::SUCCESS_IO_PENDING || |
388 result2.write_status() == FileWriterDelegate::SUCCESS_IO_PENDING) | 388 result2.write_status() == FileWriterDelegate::SUCCESS_IO_PENDING) |
389 base::MessageLoop::current()->Run(); | 389 base::RunLoop().Run(); |
390 | 390 |
391 ASSERT_EQ(FileWriterDelegate::SUCCESS_COMPLETED, result.write_status()); | 391 ASSERT_EQ(FileWriterDelegate::SUCCESS_COMPLETED, result.write_status()); |
392 ASSERT_EQ(FileWriterDelegate::SUCCESS_COMPLETED, result2.write_status()); | 392 ASSERT_EQ(FileWriterDelegate::SUCCESS_COMPLETED, result2.write_status()); |
393 file_writer_delegate_.reset(); | 393 file_writer_delegate_.reset(); |
394 file_writer_delegate2.reset(); | 394 file_writer_delegate2.reset(); |
395 | 395 |
396 ASSERT_EQ(kDataSize * 2, usage()); | 396 ASSERT_EQ(kDataSize * 2, usage()); |
397 EXPECT_EQ(GetFileSizeOnDisk("test") + GetFileSizeOnDisk("test2"), usage()); | 397 EXPECT_EQ(GetFileSizeOnDisk("test") + GetFileSizeOnDisk("test2"), usage()); |
398 | 398 |
399 EXPECT_EQ(kDataSize, result.bytes_written()); | 399 EXPECT_EQ(kDataSize, result.bytes_written()); |
(...skipping 10 matching lines...) Expand all Loading... |
410 int64_t offset = 0; | 410 int64_t offset = 0; |
411 int64_t allowed_growth = 100; | 411 int64_t allowed_growth = 100; |
412 ASSERT_LT(kDataSize, allowed_growth); | 412 ASSERT_LT(kDataSize, allowed_growth); |
413 PrepareForWrite("test", kBlobURL, offset, allowed_growth); | 413 PrepareForWrite("test", kBlobURL, offset, allowed_growth); |
414 | 414 |
415 { | 415 { |
416 Result result; | 416 Result result; |
417 ASSERT_EQ(0, usage()); | 417 ASSERT_EQ(0, usage()); |
418 file_writer_delegate_->Start(std::move(request_), | 418 file_writer_delegate_->Start(std::move(request_), |
419 GetWriteCallback(&result)); | 419 GetWriteCallback(&result)); |
420 base::MessageLoop::current()->Run(); | 420 base::RunLoop().Run(); |
421 ASSERT_EQ(FileWriterDelegate::SUCCESS_COMPLETED, result.write_status()); | 421 ASSERT_EQ(FileWriterDelegate::SUCCESS_COMPLETED, result.write_status()); |
422 file_writer_delegate_.reset(); | 422 file_writer_delegate_.reset(); |
423 | 423 |
424 ASSERT_EQ(kDataSize, usage()); | 424 ASSERT_EQ(kDataSize, usage()); |
425 EXPECT_EQ(GetFileSizeOnDisk("test"), usage()); | 425 EXPECT_EQ(GetFileSizeOnDisk("test"), usage()); |
426 EXPECT_EQ(kDataSize, result.bytes_written()); | 426 EXPECT_EQ(kDataSize, result.bytes_written()); |
427 EXPECT_EQ(base::File::FILE_OK, result.status()); | 427 EXPECT_EQ(base::File::FILE_OK, result.status()); |
428 } | 428 } |
429 | 429 |
430 // Trying to overwrite kDataSize bytes data while allowed_growth is 20. | 430 // Trying to overwrite kDataSize bytes data while allowed_growth is 20. |
431 offset = 0; | 431 offset = 0; |
432 allowed_growth = 20; | 432 allowed_growth = 20; |
433 PrepareForWrite("test", kBlobURL, offset, allowed_growth); | 433 PrepareForWrite("test", kBlobURL, offset, allowed_growth); |
434 | 434 |
435 { | 435 { |
436 Result result; | 436 Result result; |
437 file_writer_delegate_->Start(std::move(request_), | 437 file_writer_delegate_->Start(std::move(request_), |
438 GetWriteCallback(&result)); | 438 GetWriteCallback(&result)); |
439 base::MessageLoop::current()->Run(); | 439 base::RunLoop().Run(); |
440 EXPECT_EQ(kDataSize, usage()); | 440 EXPECT_EQ(kDataSize, usage()); |
441 EXPECT_EQ(GetFileSizeOnDisk("test"), usage()); | 441 EXPECT_EQ(GetFileSizeOnDisk("test"), usage()); |
442 EXPECT_EQ(kDataSize, result.bytes_written()); | 442 EXPECT_EQ(kDataSize, result.bytes_written()); |
443 EXPECT_EQ(base::File::FILE_OK, result.status()); | 443 EXPECT_EQ(base::File::FILE_OK, result.status()); |
444 ASSERT_EQ(FileWriterDelegate::SUCCESS_COMPLETED, result.write_status()); | 444 ASSERT_EQ(FileWriterDelegate::SUCCESS_COMPLETED, result.write_status()); |
445 } | 445 } |
446 | 446 |
447 // Trying to write kDataSize bytes data from offset 25 while | 447 // Trying to write kDataSize bytes data from offset 25 while |
448 // allowed_growth is 55. | 448 // allowed_growth is 55. |
449 offset = 25; | 449 offset = 25; |
450 allowed_growth = 55; | 450 allowed_growth = 55; |
451 PrepareForWrite("test", kBlobURL, offset, allowed_growth); | 451 PrepareForWrite("test", kBlobURL, offset, allowed_growth); |
452 | 452 |
453 { | 453 { |
454 Result result; | 454 Result result; |
455 file_writer_delegate_->Start(std::move(request_), | 455 file_writer_delegate_->Start(std::move(request_), |
456 GetWriteCallback(&result)); | 456 GetWriteCallback(&result)); |
457 base::MessageLoop::current()->Run(); | 457 base::RunLoop().Run(); |
458 ASSERT_EQ(FileWriterDelegate::SUCCESS_COMPLETED, result.write_status()); | 458 ASSERT_EQ(FileWriterDelegate::SUCCESS_COMPLETED, result.write_status()); |
459 file_writer_delegate_.reset(); | 459 file_writer_delegate_.reset(); |
460 | 460 |
461 EXPECT_EQ(offset + kDataSize, usage()); | 461 EXPECT_EQ(offset + kDataSize, usage()); |
462 EXPECT_EQ(GetFileSizeOnDisk("test"), usage()); | 462 EXPECT_EQ(GetFileSizeOnDisk("test"), usage()); |
463 EXPECT_EQ(kDataSize, result.bytes_written()); | 463 EXPECT_EQ(kDataSize, result.bytes_written()); |
464 EXPECT_EQ(base::File::FILE_OK, result.status()); | 464 EXPECT_EQ(base::File::FILE_OK, result.status()); |
465 } | 465 } |
466 | 466 |
467 // Trying to overwrite 45 bytes data while allowed_growth is -20. | 467 // Trying to overwrite 45 bytes data while allowed_growth is -20. |
468 offset = 0; | 468 offset = 0; |
469 allowed_growth = -20; | 469 allowed_growth = -20; |
470 PrepareForWrite("test", kBlobURL, offset, allowed_growth); | 470 PrepareForWrite("test", kBlobURL, offset, allowed_growth); |
471 int64_t pre_write_usage = GetFileSizeOnDisk("test"); | 471 int64_t pre_write_usage = GetFileSizeOnDisk("test"); |
472 | 472 |
473 { | 473 { |
474 Result result; | 474 Result result; |
475 file_writer_delegate_->Start(std::move(request_), | 475 file_writer_delegate_->Start(std::move(request_), |
476 GetWriteCallback(&result)); | 476 GetWriteCallback(&result)); |
477 base::MessageLoop::current()->Run(); | 477 base::RunLoop().Run(); |
478 ASSERT_EQ(FileWriterDelegate::SUCCESS_COMPLETED, result.write_status()); | 478 ASSERT_EQ(FileWriterDelegate::SUCCESS_COMPLETED, result.write_status()); |
479 file_writer_delegate_.reset(); | 479 file_writer_delegate_.reset(); |
480 | 480 |
481 EXPECT_EQ(pre_write_usage, usage()); | 481 EXPECT_EQ(pre_write_usage, usage()); |
482 EXPECT_EQ(GetFileSizeOnDisk("test"), usage()); | 482 EXPECT_EQ(GetFileSizeOnDisk("test"), usage()); |
483 EXPECT_EQ(kDataSize, result.bytes_written()); | 483 EXPECT_EQ(kDataSize, result.bytes_written()); |
484 EXPECT_EQ(base::File::FILE_OK, result.status()); | 484 EXPECT_EQ(base::File::FILE_OK, result.status()); |
485 } | 485 } |
486 | 486 |
487 // Trying to overwrite 45 bytes data with offset pre_write_usage - 20, | 487 // Trying to overwrite 45 bytes data with offset pre_write_usage - 20, |
488 // while allowed_growth is 10. | 488 // while allowed_growth is 10. |
489 const int kOverlap = 20; | 489 const int kOverlap = 20; |
490 offset = pre_write_usage - kOverlap; | 490 offset = pre_write_usage - kOverlap; |
491 allowed_growth = 10; | 491 allowed_growth = 10; |
492 PrepareForWrite("test", kBlobURL, offset, allowed_growth); | 492 PrepareForWrite("test", kBlobURL, offset, allowed_growth); |
493 | 493 |
494 { | 494 { |
495 Result result; | 495 Result result; |
496 file_writer_delegate_->Start(std::move(request_), | 496 file_writer_delegate_->Start(std::move(request_), |
497 GetWriteCallback(&result)); | 497 GetWriteCallback(&result)); |
498 base::MessageLoop::current()->Run(); | 498 base::RunLoop().Run(); |
499 ASSERT_EQ(FileWriterDelegate::ERROR_WRITE_STARTED, result.write_status()); | 499 ASSERT_EQ(FileWriterDelegate::ERROR_WRITE_STARTED, result.write_status()); |
500 file_writer_delegate_.reset(); | 500 file_writer_delegate_.reset(); |
501 | 501 |
502 EXPECT_EQ(pre_write_usage + allowed_growth, usage()); | 502 EXPECT_EQ(pre_write_usage + allowed_growth, usage()); |
503 EXPECT_EQ(GetFileSizeOnDisk("test"), usage()); | 503 EXPECT_EQ(GetFileSizeOnDisk("test"), usage()); |
504 EXPECT_EQ(kOverlap + allowed_growth, result.bytes_written()); | 504 EXPECT_EQ(kOverlap + allowed_growth, result.bytes_written()); |
505 EXPECT_EQ(base::File::FILE_ERROR_NO_SPACE, result.status()); | 505 EXPECT_EQ(base::File::FILE_ERROR_NO_SPACE, result.status()); |
506 } | 506 } |
507 } | 507 } |
508 | 508 |
509 } // namespace content | 509 } // namespace content |
OLD | NEW |