OLD | NEW |
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 Loading... |
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 Loading... |
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 |
OLD | NEW |