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

Side by Side Diff: chrome/browser/chromeos/file_system_provider/request_manager_unittest.cc

Issue 703123003: [fsp] Pass more detailed errors to the providing extension. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fixed a bug. Created 6 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 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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 "chrome/browser/chromeos/file_system_provider/request_manager.h" 5 #include "chrome/browser/chromeos/file_system_provider/request_manager.h"
6 6
7 #include <map> 7 #include <map>
8 #include <string> 8 #include <string>
9 #include <vector> 9 #include <vector>
10 10
(...skipping 359 matching lines...) Expand 10 before | Expand all | Expand 10 after
370 370
371 const std::vector<int> active_request_ids = 371 const std::vector<int> active_request_ids =
372 request_manager_->GetActiveRequestIds(); 372 request_manager_->GetActiveRequestIds();
373 ASSERT_EQ(1u, active_request_ids.size()); 373 ASSERT_EQ(1u, active_request_ids.size());
374 EXPECT_EQ(request_id, active_request_ids[0]); 374 EXPECT_EQ(request_id, active_request_ids[0]);
375 375
376 scoped_ptr<RequestValue> response( 376 scoped_ptr<RequestValue> response(
377 RequestValue::CreateForTesting("i-like-vanilla")); 377 RequestValue::CreateForTesting("i-like-vanilla"));
378 const bool has_more = false; 378 const bool has_more = false;
379 379
380 bool result = 380 const base::File::Error result =
381 request_manager_->FulfillRequest(request_id, response.Pass(), has_more); 381 request_manager_->FulfillRequest(request_id, response.Pass(), has_more);
382 EXPECT_TRUE(result); 382 EXPECT_EQ(base::File::FILE_OK, result);
383 383
384 ASSERT_EQ(1u, observer.fulfilled().size()); 384 ASSERT_EQ(1u, observer.fulfilled().size());
385 EXPECT_EQ(request_id, observer.fulfilled()[0].request_id()); 385 EXPECT_EQ(request_id, observer.fulfilled()[0].request_id());
386 EXPECT_FALSE(observer.fulfilled()[0].has_more()); 386 EXPECT_FALSE(observer.fulfilled()[0].has_more());
387 387
388 // Validate if the callback has correct arguments. 388 // Validate if the callback has correct arguments.
389 ASSERT_EQ(1u, logger.success_events().size()); 389 ASSERT_EQ(1u, logger.success_events().size());
390 EXPECT_EQ(0u, logger.error_events().size()); 390 EXPECT_EQ(0u, logger.error_events().size());
391 EventLogger::SuccessEvent* event = logger.success_events()[0]; 391 EventLogger::SuccessEvent* event = logger.success_events()[0];
392 ASSERT_TRUE(event->result()); 392 ASSERT_TRUE(event->result());
393 const std::string* response_test_string = event->result()->testing_params(); 393 const std::string* response_test_string = event->result()->testing_params();
394 ASSERT_TRUE(response_test_string); 394 ASSERT_TRUE(response_test_string);
395 EXPECT_EQ("i-like-vanilla", *response_test_string); 395 EXPECT_EQ("i-like-vanilla", *response_test_string);
396 EXPECT_FALSE(event->has_more()); 396 EXPECT_FALSE(event->has_more());
397 397
398 // Confirm, that the request is removed. Basically, fulfilling again for the 398 // Confirm, that the request is removed. Basically, fulfilling again for the
399 // same request, should fail. 399 // same request, should fail.
400 { 400 {
401 const std::vector<int> active_request_ids = 401 const std::vector<int> active_request_ids =
402 request_manager_->GetActiveRequestIds(); 402 request_manager_->GetActiveRequestIds();
403 EXPECT_EQ(0u, active_request_ids.size()); 403 EXPECT_EQ(0u, active_request_ids.size());
404 404
405 bool retry = request_manager_->FulfillRequest( 405 const base::File::Error retry = request_manager_->FulfillRequest(
406 request_id, scoped_ptr<RequestValue>(new RequestValue), has_more); 406 request_id, scoped_ptr<RequestValue>(new RequestValue), has_more);
407 EXPECT_FALSE(retry); 407 EXPECT_EQ(base::File::FILE_ERROR_NOT_FOUND, retry);
408 EXPECT_EQ(1u, observer.fulfilled().size()); 408 EXPECT_EQ(1u, observer.fulfilled().size());
409 } 409 }
410 410
411 // Rejecting should also fail. 411 // Rejecting should also fail.
412 { 412 {
413 bool retry = request_manager_->RejectRequest( 413 const base::File::Error retry = request_manager_->RejectRequest(
414 request_id, 414 request_id, scoped_ptr<RequestValue>(new RequestValue()),
415 scoped_ptr<RequestValue>(new RequestValue()),
416 base::File::FILE_ERROR_FAILED); 415 base::File::FILE_ERROR_FAILED);
417 EXPECT_FALSE(retry); 416 EXPECT_EQ(base::File::FILE_ERROR_NOT_FOUND, retry);
418 EXPECT_EQ(0u, observer.rejected().size()); 417 EXPECT_EQ(0u, observer.rejected().size());
419 } 418 }
420 419
421 ASSERT_EQ(1u, observer.destroyed().size()); 420 ASSERT_EQ(1u, observer.destroyed().size());
422 EXPECT_EQ(request_id, observer.destroyed()[0].request_id()); 421 EXPECT_EQ(request_id, observer.destroyed()[0].request_id());
423 EXPECT_EQ(0u, observer.timeouted().size()); 422 EXPECT_EQ(0u, observer.timeouted().size());
424 423
425 request_manager_->RemoveObserver(&observer); 424 request_manager_->RemoveObserver(&observer);
426 } 425 }
427 426
(...skipping 13 matching lines...) Expand all
441 440
442 ASSERT_EQ(1u, observer.created().size()); 441 ASSERT_EQ(1u, observer.created().size());
443 EXPECT_EQ(request_id, observer.created()[0].request_id()); 442 EXPECT_EQ(request_id, observer.created()[0].request_id());
444 EXPECT_EQ(TESTING, observer.created()[0].type()); 443 EXPECT_EQ(TESTING, observer.created()[0].type());
445 444
446 ASSERT_EQ(1u, observer.executed().size()); 445 ASSERT_EQ(1u, observer.executed().size());
447 EXPECT_EQ(request_id, observer.executed()[0].request_id()); 446 EXPECT_EQ(request_id, observer.executed()[0].request_id());
448 447
449 const bool has_more = true; 448 const bool has_more = true;
450 449
451 bool result = request_manager_->FulfillRequest( 450 const base::File::Error result = request_manager_->FulfillRequest(
452 request_id, scoped_ptr<RequestValue>(new RequestValue), has_more); 451 request_id, scoped_ptr<RequestValue>(new RequestValue), has_more);
453 EXPECT_TRUE(result); 452 EXPECT_EQ(base::File::FILE_OK, result);
454 453
455 // Validate if the callback has correct arguments. 454 // Validate if the callback has correct arguments.
456 ASSERT_EQ(1u, logger.success_events().size()); 455 ASSERT_EQ(1u, logger.success_events().size());
457 EXPECT_EQ(0u, logger.error_events().size()); 456 EXPECT_EQ(0u, logger.error_events().size());
458 EventLogger::SuccessEvent* event = logger.success_events()[0]; 457 EventLogger::SuccessEvent* event = logger.success_events()[0];
459 EXPECT_TRUE(event->result()); 458 EXPECT_TRUE(event->result());
460 EXPECT_TRUE(event->has_more()); 459 EXPECT_TRUE(event->has_more());
461 460
462 ASSERT_EQ(1u, observer.fulfilled().size()); 461 ASSERT_EQ(1u, observer.fulfilled().size());
463 EXPECT_EQ(request_id, observer.fulfilled()[0].request_id()); 462 EXPECT_EQ(request_id, observer.fulfilled()[0].request_id());
464 EXPECT_TRUE(observer.fulfilled()[0].has_more()); 463 EXPECT_TRUE(observer.fulfilled()[0].has_more());
465 464
466 // Confirm, that the request is not removed (since it has has_more == true). 465 // Confirm, that the request is not removed (since it has has_more == true).
467 // Basically, fulfilling again for the same request, should not fail. 466 // Basically, fulfilling again for the same request, should not fail.
468 { 467 {
469 const std::vector<int> active_request_ids = 468 const std::vector<int> active_request_ids =
470 request_manager_->GetActiveRequestIds(); 469 request_manager_->GetActiveRequestIds();
471 ASSERT_EQ(1u, active_request_ids.size()); 470 ASSERT_EQ(1u, active_request_ids.size());
472 EXPECT_EQ(request_id, active_request_ids[0]); 471 EXPECT_EQ(request_id, active_request_ids[0]);
473 472
474 bool new_has_more = false; 473 const bool new_has_more = false;
475 bool retry = request_manager_->FulfillRequest( 474 const base::File::Error retry = request_manager_->FulfillRequest(
476 request_id, scoped_ptr<RequestValue>(new RequestValue), new_has_more); 475 request_id, scoped_ptr<RequestValue>(new RequestValue), new_has_more);
477 EXPECT_TRUE(retry); 476 EXPECT_EQ(base::File::FILE_OK, retry);
478 477
479 ASSERT_EQ(2u, observer.fulfilled().size()); 478 ASSERT_EQ(2u, observer.fulfilled().size());
480 EXPECT_EQ(request_id, observer.fulfilled()[1].request_id()); 479 EXPECT_EQ(request_id, observer.fulfilled()[1].request_id());
481 EXPECT_FALSE(observer.fulfilled()[1].has_more()); 480 EXPECT_FALSE(observer.fulfilled()[1].has_more());
482 } 481 }
483 482
484 // Since |new_has_more| is false, then the request should be removed. To check 483 // Since |new_has_more| is false, then the request should be removed. To check
485 // it, try to fulfill again, what should fail. 484 // it, try to fulfill again, what should fail.
486 { 485 {
487 const std::vector<int> active_request_ids = 486 const std::vector<int> active_request_ids =
488 request_manager_->GetActiveRequestIds(); 487 request_manager_->GetActiveRequestIds();
489 EXPECT_EQ(0u, active_request_ids.size()); 488 EXPECT_EQ(0u, active_request_ids.size());
490 489
491 bool new_has_more = false; 490 const bool new_has_more = false;
492 bool retry = request_manager_->FulfillRequest( 491 const base::File::Error retry = request_manager_->FulfillRequest(
493 request_id, scoped_ptr<RequestValue>(new RequestValue), new_has_more); 492 request_id, scoped_ptr<RequestValue>(new RequestValue), new_has_more);
494 EXPECT_FALSE(retry); 493 EXPECT_EQ(base::File::FILE_ERROR_NOT_FOUND, retry);
495 EXPECT_EQ(0u, observer.rejected().size()); 494 EXPECT_EQ(0u, observer.rejected().size());
496 } 495 }
497 496
498 ASSERT_EQ(1u, observer.destroyed().size()); 497 ASSERT_EQ(1u, observer.destroyed().size());
499 EXPECT_EQ(request_id, observer.destroyed()[0].request_id()); 498 EXPECT_EQ(request_id, observer.destroyed()[0].request_id());
500 EXPECT_EQ(0u, observer.timeouted().size()); 499 EXPECT_EQ(0u, observer.timeouted().size());
501 500
502 request_manager_->RemoveObserver(&observer); 501 request_manager_->RemoveObserver(&observer);
503 } 502 }
504 503
(...skipping 11 matching lines...) Expand all
516 EXPECT_EQ(0u, logger.success_events().size()); 515 EXPECT_EQ(0u, logger.success_events().size());
517 EXPECT_EQ(0u, logger.error_events().size()); 516 EXPECT_EQ(0u, logger.error_events().size());
518 517
519 ASSERT_EQ(1u, observer.created().size()); 518 ASSERT_EQ(1u, observer.created().size());
520 EXPECT_EQ(request_id, observer.created()[0].request_id()); 519 EXPECT_EQ(request_id, observer.created()[0].request_id());
521 EXPECT_EQ(TESTING, observer.created()[0].type()); 520 EXPECT_EQ(TESTING, observer.created()[0].type());
522 521
523 ASSERT_EQ(1u, observer.executed().size()); 522 ASSERT_EQ(1u, observer.executed().size());
524 EXPECT_EQ(request_id, observer.executed()[0].request_id()); 523 EXPECT_EQ(request_id, observer.executed()[0].request_id());
525 524
526 base::File::Error error = base::File::FILE_ERROR_NO_MEMORY; 525 const base::File::Error error = base::File::FILE_ERROR_NO_MEMORY;
527 bool result = request_manager_->RejectRequest( 526 const base::File::Error result = request_manager_->RejectRequest(
528 request_id, scoped_ptr<RequestValue>(new RequestValue()), error); 527 request_id, scoped_ptr<RequestValue>(new RequestValue()), error);
529 EXPECT_TRUE(result); 528 EXPECT_EQ(base::File::FILE_OK, result);
530 529
531 // Validate if the callback has correct arguments. 530 // Validate if the callback has correct arguments.
532 ASSERT_EQ(1u, logger.error_events().size()); 531 ASSERT_EQ(1u, logger.error_events().size());
533 EXPECT_EQ(0u, logger.success_events().size()); 532 EXPECT_EQ(0u, logger.success_events().size());
534 EventLogger::ErrorEvent* event = logger.error_events()[0]; 533 EventLogger::ErrorEvent* event = logger.error_events()[0];
535 EXPECT_EQ(error, event->error()); 534 EXPECT_EQ(error, event->error());
536 535
537 ASSERT_EQ(1u, observer.rejected().size()); 536 ASSERT_EQ(1u, observer.rejected().size());
538 EXPECT_EQ(request_id, observer.rejected()[0].request_id()); 537 EXPECT_EQ(request_id, observer.rejected()[0].request_id());
539 EXPECT_EQ(error, observer.rejected()[0].error()); 538 EXPECT_EQ(error, observer.rejected()[0].error());
540 539
541 // Confirm, that the request is removed. Basically, fulfilling again for the 540 // Confirm, that the request is removed. Basically, fulfilling again for the
542 // same request, should fail. 541 // same request, should fail.
543 { 542 {
544 bool has_more = false; 543 const bool has_more = false;
545 bool retry = request_manager_->FulfillRequest( 544 const base::File::Error retry = request_manager_->FulfillRequest(
546 request_id, scoped_ptr<RequestValue>(new RequestValue), has_more); 545 request_id, scoped_ptr<RequestValue>(new RequestValue), has_more);
547 EXPECT_FALSE(retry); 546 EXPECT_EQ(base::File::FILE_ERROR_NOT_FOUND, retry);
548 EXPECT_EQ(0u, observer.fulfilled().size()); 547 EXPECT_EQ(0u, observer.fulfilled().size());
549 } 548 }
550 549
551 // Rejecting should also fail. 550 // Rejecting should also fail.
552 { 551 {
553 bool retry = request_manager_->RejectRequest( 552 const base::File::Error retry = request_manager_->RejectRequest(
554 request_id, scoped_ptr<RequestValue>(new RequestValue()), error); 553 request_id, scoped_ptr<RequestValue>(new RequestValue()), error);
555 EXPECT_FALSE(retry); 554 EXPECT_EQ(base::File::FILE_ERROR_NOT_FOUND, retry);
556 EXPECT_EQ(1u, observer.rejected().size()); 555 EXPECT_EQ(1u, observer.rejected().size());
557 } 556 }
558 557
559 ASSERT_EQ(1u, observer.destroyed().size()); 558 ASSERT_EQ(1u, observer.destroyed().size());
560 EXPECT_EQ(request_id, observer.destroyed()[0].request_id()); 559 EXPECT_EQ(request_id, observer.destroyed()[0].request_id());
561 EXPECT_EQ(0u, observer.timeouted().size()); 560 EXPECT_EQ(0u, observer.timeouted().size());
562 561
563 request_manager_->RemoveObserver(&observer); 562 request_manager_->RemoveObserver(&observer);
564 } 563 }
565 564
(...skipping 14 matching lines...) Expand all
580 579
581 ASSERT_EQ(1u, observer.created().size()); 580 ASSERT_EQ(1u, observer.created().size());
582 EXPECT_EQ(request_id, observer.created()[0].request_id()); 581 EXPECT_EQ(request_id, observer.created()[0].request_id());
583 EXPECT_EQ(TESTING, observer.created()[0].type()); 582 EXPECT_EQ(TESTING, observer.created()[0].type());
584 583
585 ASSERT_EQ(1u, observer.executed().size()); 584 ASSERT_EQ(1u, observer.executed().size());
586 EXPECT_EQ(request_id, observer.executed()[0].request_id()); 585 EXPECT_EQ(request_id, observer.executed()[0].request_id());
587 586
588 const bool has_more = true; 587 const bool has_more = true;
589 588
590 const bool result = request_manager_->FulfillRequest( 589 const base::File::Error result = request_manager_->FulfillRequest(
591 request_id + 1, scoped_ptr<RequestValue>(new RequestValue), has_more); 590 request_id + 1, scoped_ptr<RequestValue>(new RequestValue), has_more);
592 EXPECT_FALSE(result); 591 EXPECT_EQ(base::File::FILE_ERROR_NOT_FOUND, result);
593 592
594 // Callbacks should not be called. 593 // Callbacks should not be called.
595 EXPECT_EQ(0u, logger.error_events().size()); 594 EXPECT_EQ(0u, logger.error_events().size());
596 EXPECT_EQ(0u, logger.success_events().size()); 595 EXPECT_EQ(0u, logger.success_events().size());
597 596
598 EXPECT_EQ(0u, observer.fulfilled().size()); 597 EXPECT_EQ(0u, observer.fulfilled().size());
599 EXPECT_EQ(request_id, observer.executed()[0].request_id()); 598 EXPECT_EQ(request_id, observer.executed()[0].request_id());
600 599
601 // Confirm, that the request hasn't been removed, by fulfilling it correctly. 600 // Confirm, that the request hasn't been removed, by fulfilling it correctly.
602 { 601 {
603 const bool retry = request_manager_->FulfillRequest( 602 const base::File::Error retry = request_manager_->FulfillRequest(
604 request_id, scoped_ptr<RequestValue>(new RequestValue), has_more); 603 request_id, scoped_ptr<RequestValue>(new RequestValue), has_more);
605 EXPECT_TRUE(retry); 604 EXPECT_EQ(base::File::FILE_OK, retry);
606 EXPECT_EQ(1u, observer.fulfilled().size()); 605 EXPECT_EQ(1u, observer.fulfilled().size());
607 } 606 }
608 607
609 request_manager_->RemoveObserver(&observer); 608 request_manager_->RemoveObserver(&observer);
610 } 609 }
611 610
612 TEST_F(FileSystemProviderRequestManagerTest, 611 TEST_F(FileSystemProviderRequestManagerTest,
613 CreateAndRejectWithWrongRequestId) { 612 CreateAndRejectWithWrongRequestId) {
614 EventLogger logger; 613 EventLogger logger;
615 RequestObserver observer; 614 RequestObserver observer;
616 request_manager_->AddObserver(&observer); 615 request_manager_->AddObserver(&observer);
617 616
618 const int request_id = request_manager_->CreateRequest( 617 const int request_id = request_manager_->CreateRequest(
619 TESTING, 618 TESTING,
620 make_scoped_ptr<RequestManager::HandlerInterface>( 619 make_scoped_ptr<RequestManager::HandlerInterface>(
621 new FakeHandler(logger.GetWeakPtr(), true /* execute_reply */))); 620 new FakeHandler(logger.GetWeakPtr(), true /* execute_reply */)));
622 621
623 EXPECT_EQ(1, request_id); 622 EXPECT_EQ(1, request_id);
624 EXPECT_EQ(0u, logger.success_events().size()); 623 EXPECT_EQ(0u, logger.success_events().size());
625 EXPECT_EQ(0u, logger.error_events().size()); 624 EXPECT_EQ(0u, logger.error_events().size());
626 625
627 ASSERT_EQ(1u, observer.created().size()); 626 ASSERT_EQ(1u, observer.created().size());
628 EXPECT_EQ(request_id, observer.created()[0].request_id()); 627 EXPECT_EQ(request_id, observer.created()[0].request_id());
629 EXPECT_EQ(TESTING, observer.created()[0].type()); 628 EXPECT_EQ(TESTING, observer.created()[0].type());
630 629
631 ASSERT_EQ(1u, observer.executed().size()); 630 ASSERT_EQ(1u, observer.executed().size());
632 EXPECT_EQ(request_id, observer.executed()[0].request_id()); 631 EXPECT_EQ(request_id, observer.executed()[0].request_id());
633 632
634 base::File::Error error = base::File::FILE_ERROR_NO_MEMORY; 633 const base::File::Error error = base::File::FILE_ERROR_NO_MEMORY;
635 bool result = request_manager_->RejectRequest( 634 const base::File::Error result = request_manager_->RejectRequest(
636 request_id + 1, scoped_ptr<RequestValue>(new RequestValue()), error); 635 request_id + 1, scoped_ptr<RequestValue>(new RequestValue()), error);
637 EXPECT_FALSE(result); 636 EXPECT_EQ(base::File::FILE_ERROR_NOT_FOUND, result);
638 637
639 // Callbacks should not be called. 638 // Callbacks should not be called.
640 EXPECT_EQ(0u, logger.error_events().size()); 639 EXPECT_EQ(0u, logger.error_events().size());
641 EXPECT_EQ(0u, logger.success_events().size()); 640 EXPECT_EQ(0u, logger.success_events().size());
642 641
643 EXPECT_EQ(0u, observer.rejected().size()); 642 EXPECT_EQ(0u, observer.rejected().size());
644 643
645 // Confirm, that the request hasn't been removed, by rejecting it correctly. 644 // Confirm, that the request hasn't been removed, by rejecting it correctly.
646 { 645 {
647 bool retry = request_manager_->RejectRequest( 646 const base::File::Error retry = request_manager_->RejectRequest(
648 request_id, scoped_ptr<RequestValue>(new RequestValue()), error); 647 request_id, scoped_ptr<RequestValue>(new RequestValue()), error);
649 EXPECT_TRUE(retry); 648 EXPECT_EQ(base::File::FILE_OK, retry);
650 EXPECT_EQ(1u, observer.rejected().size()); 649 EXPECT_EQ(1u, observer.rejected().size());
651 } 650 }
652 651
653 request_manager_->RemoveObserver(&observer); 652 request_manager_->RemoveObserver(&observer);
654 } 653 }
655 654
656 TEST_F(FileSystemProviderRequestManagerTest, UniqueIds) { 655 TEST_F(FileSystemProviderRequestManagerTest, UniqueIds) {
657 EventLogger logger; 656 EventLogger logger;
658 657
659 const int first_request_id = request_manager_->CreateRequest( 658 const int first_request_id = request_manager_->CreateRequest(
(...skipping 139 matching lines...) Expand 10 before | Expand all | Expand 10 after
799 798
800 // Wait until the request is timeouted again. 799 // Wait until the request is timeouted again.
801 base::RunLoop().RunUntilIdle(); 800 base::RunLoop().RunUntilIdle();
802 EXPECT_EQ(1u, notification_manager_->size()); 801 EXPECT_EQ(1u, notification_manager_->size());
803 802
804 request_manager_->RemoveObserver(&observer); 803 request_manager_->RemoveObserver(&observer);
805 } 804 }
806 805
807 } // namespace file_system_provider 806 } // namespace file_system_provider
808 } // namespace chromeos 807 } // namespace chromeos
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698