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

Side by Side Diff: chrome/browser/google_apis/fake_drive_service_unittest.cc

Issue 13608006: Implement new methods other than ContinueGetResourceList for FakeDriveService. (Closed) Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: Created 7 years, 8 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 | « chrome/browser/google_apis/fake_drive_service.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 (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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/google_apis/fake_drive_service.h" 5 #include "chrome/browser/google_apis/fake_drive_service.h"
6 6
7 #include <string> 7 #include <string>
8 8
9 #include "base/file_util.h" 9 #include "base/file_util.h"
10 #include "base/files/scoped_temp_dir.h" 10 #include "base/files/scoped_temp_dir.h"
(...skipping 346 matching lines...) Expand 10 before | Expand all | Expand 10 after
357 0, // start_changestamp 357 0, // start_changestamp
358 "", // search_query 358 "", // search_query
359 "", // directory_resource_id 359 "", // directory_resource_id
360 test_util::CreateCopyResultCallback(&error, &resource_list)); 360 test_util::CreateCopyResultCallback(&error, &resource_list));
361 message_loop_.RunUntilIdle(); 361 message_loop_.RunUntilIdle();
362 362
363 EXPECT_EQ(GDATA_NO_CONNECTION, error); 363 EXPECT_EQ(GDATA_NO_CONNECTION, error);
364 EXPECT_FALSE(resource_list); 364 EXPECT_FALSE(resource_list);
365 } 365 }
366 366
367 TEST_F(FakeDriveServiceTest, GetAllResourceList) {
368 ASSERT_TRUE(fake_service_.LoadResourceListForWapi(
369 "chromeos/gdata/root_feed.json"));
370
371 GDataErrorCode error = GDATA_OTHER_ERROR;
372 scoped_ptr<ResourceList> resource_list;
373 fake_service_.GetAllResourceList(
374 test_util::CreateCopyResultCallback(&error, &resource_list));
375 message_loop_.RunUntilIdle();
376
377 EXPECT_EQ(HTTP_SUCCESS, error);
378 ASSERT_TRUE(resource_list);
379 // Do some sanity check.
380 EXPECT_EQ(14U, resource_list->entries().size());
381 EXPECT_EQ(1, fake_service_.resource_list_load_count());
382 }
383
384 TEST_F(FakeDriveServiceTest, GetAllResourceList_Offline) {
385 ASSERT_TRUE(fake_service_.LoadResourceListForWapi(
386 "chromeos/gdata/root_feed.json"));
387 fake_service_.set_offline(true);
388
389 GDataErrorCode error = GDATA_OTHER_ERROR;
390 scoped_ptr<ResourceList> resource_list;
391 fake_service_.GetAllResourceList(
392 test_util::CreateCopyResultCallback(&error, &resource_list));
393 message_loop_.RunUntilIdle();
394
395 EXPECT_EQ(GDATA_NO_CONNECTION, error);
396 EXPECT_FALSE(resource_list);
397 }
398
399 TEST_F(FakeDriveServiceTest, GetResourceListInDirectory_InRootDirectory) {
400 ASSERT_TRUE(fake_service_.LoadResourceListForWapi(
401 "chromeos/gdata/root_feed.json"));
402
403 GDataErrorCode error = GDATA_OTHER_ERROR;
404 scoped_ptr<ResourceList> resource_list;
405 fake_service_.GetResourceListInDirectory(
406 fake_service_.GetRootResourceId(),
407 test_util::CreateCopyResultCallback(&error, &resource_list));
408 message_loop_.RunUntilIdle();
409
410 EXPECT_EQ(HTTP_SUCCESS, error);
411 ASSERT_TRUE(resource_list);
412 // Do some sanity check. There are 8 entries in the root directory.
413 EXPECT_EQ(8U, resource_list->entries().size());
414 EXPECT_EQ(1, fake_service_.resource_list_load_count());
415 }
416
417 TEST_F(FakeDriveServiceTest, GetResourceListInDirectory_InNonRootDirectory) {
418 ASSERT_TRUE(fake_service_.LoadResourceListForWapi(
419 "chromeos/gdata/root_feed.json"));
420
421 GDataErrorCode error = GDATA_OTHER_ERROR;
422 scoped_ptr<ResourceList> resource_list;
423 fake_service_.GetResourceListInDirectory(
424 "folder:1_folder_resource_id",
425 test_util::CreateCopyResultCallback(&error, &resource_list));
426 message_loop_.RunUntilIdle();
427
428 EXPECT_EQ(HTTP_SUCCESS, error);
429 ASSERT_TRUE(resource_list);
430 // Do some sanity check. There is three entries in 1_folder_resource_id
431 // directory.
432 EXPECT_EQ(3U, resource_list->entries().size());
433 EXPECT_EQ(1, fake_service_.resource_list_load_count());
434 }
435
436 TEST_F(FakeDriveServiceTest, GetResourceListInDirectory_Offline) {
437 ASSERT_TRUE(fake_service_.LoadResourceListForWapi(
438 "chromeos/gdata/root_feed.json"));
439 fake_service_.set_offline(true);
440
441 GDataErrorCode error = GDATA_OTHER_ERROR;
442 scoped_ptr<ResourceList> resource_list;
443 fake_service_.GetResourceListInDirectory(
444 fake_service_.GetRootResourceId(),
445 test_util::CreateCopyResultCallback(&error, &resource_list));
446 message_loop_.RunUntilIdle();
447
448 EXPECT_EQ(GDATA_NO_CONNECTION, error);
449 EXPECT_FALSE(resource_list);
450 }
451
452 TEST_F(FakeDriveServiceTest, Search) {
453 ASSERT_TRUE(fake_service_.LoadResourceListForWapi(
454 "chromeos/gdata/root_feed.json"));
455
456 GDataErrorCode error = GDATA_OTHER_ERROR;
457 scoped_ptr<ResourceList> resource_list;
458 fake_service_.Search(
459 "File", // search_query
460 test_util::CreateCopyResultCallback(&error, &resource_list));
461 message_loop_.RunUntilIdle();
462
463 EXPECT_EQ(HTTP_SUCCESS, error);
464 ASSERT_TRUE(resource_list);
465 // Do some sanity check. There are 4 entries that contain "File" in their
466 // titles.
467 EXPECT_EQ(4U, resource_list->entries().size());
468 EXPECT_EQ(1, fake_service_.resource_list_load_count());
469 }
470
471 TEST_F(FakeDriveServiceTest, Search_WithAttribute) {
472 ASSERT_TRUE(fake_service_.LoadResourceListForWapi(
473 "chromeos/gdata/root_feed.json"));
474
475 GDataErrorCode error = GDATA_OTHER_ERROR;
476 scoped_ptr<ResourceList> resource_list;
477 fake_service_.Search(
478 "title:1.txt", // search_query
479 test_util::CreateCopyResultCallback(&error, &resource_list));
480 message_loop_.RunUntilIdle();
481
482 EXPECT_EQ(HTTP_SUCCESS, error);
483 ASSERT_TRUE(resource_list);
484 // Do some sanity check. There are 4 entries that contain "1.txt" in their
485 // titles.
486 EXPECT_EQ(4U, resource_list->entries().size());
487 EXPECT_EQ(1, fake_service_.resource_list_load_count());
488 }
489
490 TEST_F(FakeDriveServiceTest, Search_MultipleQueries) {
491 ASSERT_TRUE(fake_service_.LoadResourceListForWapi(
492 "chromeos/gdata/root_feed.json"));
493
494 GDataErrorCode error = GDATA_OTHER_ERROR;
495 scoped_ptr<ResourceList> resource_list;
496 fake_service_.Search(
497 "Directory 1", // search_query
498 test_util::CreateCopyResultCallback(&error, &resource_list));
499 message_loop_.RunUntilIdle();
500
501 EXPECT_EQ(HTTP_SUCCESS, error);
502 ASSERT_TRUE(resource_list);
503 // There are 2 entries that contain both "Directory" and "1" in their titles.
504 EXPECT_EQ(2U, resource_list->entries().size());
505
506 fake_service_.Search(
507 "\"Directory 1\"", // search_query
508 test_util::CreateCopyResultCallback(&error, &resource_list));
509 message_loop_.RunUntilIdle();
510
511 EXPECT_EQ(HTTP_SUCCESS, error);
512 ASSERT_TRUE(resource_list);
513 // There is 1 entry that contain "Directory 1" in its title.
514 EXPECT_EQ(1U, resource_list->entries().size());
515 EXPECT_EQ(2, fake_service_.resource_list_load_count());
516 }
517
518 TEST_F(FakeDriveServiceTest, Search_Offline) {
519 ASSERT_TRUE(fake_service_.LoadResourceListForWapi(
520 "chromeos/gdata/root_feed.json"));
521 fake_service_.set_offline(true);
522
523 GDataErrorCode error = GDATA_OTHER_ERROR;
524 scoped_ptr<ResourceList> resource_list;
525 fake_service_.Search(
526 "Directory 1", // search_query
527 test_util::CreateCopyResultCallback(&error, &resource_list));
528 message_loop_.RunUntilIdle();
529
530 EXPECT_EQ(GDATA_NO_CONNECTION, error);
531 EXPECT_FALSE(resource_list);
532 }
533
534 TEST_F(FakeDriveServiceTest, SearchInDirectory) {
535 ASSERT_TRUE(fake_service_.LoadResourceListForWapi(
536 "chromeos/gdata/root_feed.json"));
537
538 GDataErrorCode error = GDATA_OTHER_ERROR;
539 scoped_ptr<ResourceList> resource_list;
540 fake_service_.SearchInDirectory(
541 "File", // search_query
542 fake_service_.GetRootResourceId(), // directory_resource_id
543 test_util::CreateCopyResultCallback(&error, &resource_list));
544 message_loop_.RunUntilIdle();
545
546 EXPECT_EQ(HTTP_SUCCESS, error);
547 ASSERT_TRUE(resource_list);
548 // Do some sanity check. There is entry that contain "File" in their
549 // titles directly under the root directory.
550 EXPECT_EQ(1U, resource_list->entries().size());
551 EXPECT_EQ(1, fake_service_.resource_list_load_count());
552 }
553
554 TEST_F(FakeDriveServiceTest, SearchInDirectory_WithAttribute) {
555 ASSERT_TRUE(fake_service_.LoadResourceListForWapi(
556 "chromeos/gdata/root_feed.json"));
557
558 GDataErrorCode error = GDATA_OTHER_ERROR;
559 scoped_ptr<ResourceList> resource_list;
560 fake_service_.SearchInDirectory(
561 "title:1.txt", // search_query
562 fake_service_.GetRootResourceId(), // directory_resource_id
563 test_util::CreateCopyResultCallback(&error, &resource_list));
564 message_loop_.RunUntilIdle();
565
566 EXPECT_EQ(HTTP_SUCCESS, error);
567 ASSERT_TRUE(resource_list);
568 // Do some sanity check. There are 2 entries that contain "1.txt" in their
569 // titles directly under the root directory.
570 EXPECT_EQ(2U, resource_list->entries().size());
571 EXPECT_EQ(1, fake_service_.resource_list_load_count());
572 }
573
574 TEST_F(FakeDriveServiceTest, SearchInDirectory_MultipleQueries) {
575 ASSERT_TRUE(fake_service_.LoadResourceListForWapi(
576 "chromeos/gdata/root_feed.json"));
577
578 GDataErrorCode error = GDATA_OTHER_ERROR;
579 scoped_ptr<ResourceList> resource_list;
580 fake_service_.SearchInDirectory(
581 "Directory 1", // search_query
582 fake_service_.GetRootResourceId(), // directory_resource_id
583 test_util::CreateCopyResultCallback(&error, &resource_list));
584 message_loop_.RunUntilIdle();
585
586 EXPECT_EQ(HTTP_SUCCESS, error);
587 ASSERT_TRUE(resource_list);
588 // There is one entry that contains both "Directory" and "1" in its title
589 // directly under the root directory.
590 EXPECT_EQ(1U, resource_list->entries().size());
591
592 fake_service_.SearchInDirectory(
593 "\"Directory 1\"", // search_query
594 fake_service_.GetRootResourceId(), // directory_resource_id
595 test_util::CreateCopyResultCallback(&error, &resource_list));
596 message_loop_.RunUntilIdle();
597
598 EXPECT_EQ(HTTP_SUCCESS, error);
599 ASSERT_TRUE(resource_list);
600 // There is one entry that contains "Directory 1" in its title
601 // directly under the root directory.
602 EXPECT_EQ(1U, resource_list->entries().size());
603 EXPECT_EQ(2, fake_service_.resource_list_load_count());
604 }
605
606 TEST_F(FakeDriveServiceTest, SearchInDirectory_Offline) {
607 ASSERT_TRUE(fake_service_.LoadResourceListForWapi(
608 "chromeos/gdata/root_feed.json"));
609 fake_service_.set_offline(true);
610
611 GDataErrorCode error = GDATA_OTHER_ERROR;
612 scoped_ptr<ResourceList> resource_list;
613 fake_service_.SearchInDirectory(
614 "Directory 1", // search_query
615 fake_service_.GetRootResourceId(), // directory_resource_id
616 test_util::CreateCopyResultCallback(&error, &resource_list));
617 message_loop_.RunUntilIdle();
618
619 EXPECT_EQ(GDATA_NO_CONNECTION, error);
620 EXPECT_FALSE(resource_list);
621 }
622
623 TEST_F(FakeDriveServiceTest, GetChangeList_NoNewEntries) {
624 ASSERT_TRUE(fake_service_.LoadResourceListForWapi(
625 "chromeos/gdata/root_feed.json"));
626 // Load the account_metadata.json as well to add the largest changestamp
627 // (654321) to the existing entries.
628 ASSERT_TRUE(fake_service_.LoadAccountMetadataForWapi(
629 "chromeos/gdata/account_metadata.json"));
630
631 GDataErrorCode error = GDATA_OTHER_ERROR;
632 scoped_ptr<ResourceList> resource_list;
633 fake_service_.GetChangeList(
634 654321 + 1, // start_changestamp
635 test_util::CreateCopyResultCallback(&error, &resource_list));
636 message_loop_.RunUntilIdle();
637
638 EXPECT_EQ(HTTP_SUCCESS, error);
639 ASSERT_TRUE(resource_list);
640 // This should be empty as the latest changestamp was passed to
641 // GetResourceList(), hence there should be no new entries.
642 EXPECT_EQ(0U, resource_list->entries().size());
643 // It's considered loaded even if the result is empty.
644 EXPECT_EQ(1, fake_service_.resource_list_load_count());
645 }
646
647 TEST_F(FakeDriveServiceTest, GetChangeList_WithNewEntry) {
648 ASSERT_TRUE(fake_service_.LoadResourceListForWapi(
649 "chromeos/gdata/root_feed.json"));
650 // Load the account_metadata.json as well to add the largest changestamp
651 // (654321) to the existing entries.
652 ASSERT_TRUE(fake_service_.LoadAccountMetadataForWapi(
653 "chromeos/gdata/account_metadata.json"));
654 // Add a new directory in the root directory. The new directory will have
655 // the changestamp of 654322.
656 ASSERT_TRUE(AddNewDirectory(
657 fake_service_.GetRootResourceId(), "new directory"));
658
659 // Get the resource list newer than 654321.
660 GDataErrorCode error = GDATA_OTHER_ERROR;
661 scoped_ptr<ResourceList> resource_list;
662 fake_service_.GetChangeList(
663 654321 + 1, // start_changestamp
664 test_util::CreateCopyResultCallback(&error, &resource_list));
665 message_loop_.RunUntilIdle();
666
667 EXPECT_EQ(HTTP_SUCCESS, error);
668 ASSERT_TRUE(resource_list);
669 // The result should only contain the newly created directory.
670 ASSERT_EQ(1U, resource_list->entries().size());
671 EXPECT_EQ("new directory", resource_list->entries()[0]->title());
672 EXPECT_EQ(1, fake_service_.resource_list_load_count());
673 }
674
675 TEST_F(FakeDriveServiceTest, GetChangeList_Offline) {
676 ASSERT_TRUE(fake_service_.LoadResourceListForWapi(
677 "chromeos/gdata/root_feed.json"));
678 fake_service_.set_offline(true);
679
680 GDataErrorCode error = GDATA_OTHER_ERROR;
681 scoped_ptr<ResourceList> resource_list;
682 fake_service_.GetChangeList(
683 654321, // start_changestamp
684 test_util::CreateCopyResultCallback(&error, &resource_list));
685 message_loop_.RunUntilIdle();
686
687 EXPECT_EQ(GDATA_NO_CONNECTION, error);
688 EXPECT_FALSE(resource_list);
689 }
690
367 TEST_F(FakeDriveServiceTest, GetAccountMetadata) { 691 TEST_F(FakeDriveServiceTest, GetAccountMetadata) {
368 ASSERT_TRUE(fake_service_.LoadAccountMetadataForWapi( 692 ASSERT_TRUE(fake_service_.LoadAccountMetadataForWapi(
369 "chromeos/gdata/account_metadata.json")); 693 "chromeos/gdata/account_metadata.json"));
370 694
371 GDataErrorCode error = GDATA_OTHER_ERROR; 695 GDataErrorCode error = GDATA_OTHER_ERROR;
372 scoped_ptr<AccountMetadata> account_metadata; 696 scoped_ptr<AccountMetadata> account_metadata;
373 fake_service_.GetAccountMetadata( 697 fake_service_.GetAccountMetadata(
374 test_util::CreateCopyResultCallback(&error, &account_metadata)); 698 test_util::CreateCopyResultCallback(&error, &account_metadata));
375 message_loop_.RunUntilIdle(); 699 message_loop_.RunUntilIdle();
376 700
(...skipping 1247 matching lines...) Expand 10 before | Expand all | Expand 10 after
1624 test_util::CreateCopyResultCallback(&error, &resource_entry)); 1948 test_util::CreateCopyResultCallback(&error, &resource_entry));
1625 message_loop_.RunUntilIdle(); 1949 message_loop_.RunUntilIdle();
1626 1950
1627 EXPECT_EQ(GDATA_NO_CONNECTION, error); 1951 EXPECT_EQ(GDATA_NO_CONNECTION, error);
1628 EXPECT_FALSE(resource_entry); 1952 EXPECT_FALSE(resource_entry);
1629 } 1953 }
1630 1954
1631 } // namespace 1955 } // namespace
1632 1956
1633 } // namespace google_apis 1957 } // namespace google_apis
OLDNEW
« no previous file with comments | « chrome/browser/google_apis/fake_drive_service.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698