| Index: chrome/browser/drive/fake_drive_service_unittest.cc
|
| diff --git a/chrome/browser/drive/fake_drive_service_unittest.cc b/chrome/browser/drive/fake_drive_service_unittest.cc
|
| deleted file mode 100644
|
| index 6df9a03f67ccd42db74f3f04a3c09ebc8457433f..0000000000000000000000000000000000000000
|
| --- a/chrome/browser/drive/fake_drive_service_unittest.cc
|
| +++ /dev/null
|
| @@ -1,2177 +0,0 @@
|
| -// Copyright (c) 2012 The Chromium Authors. All rights reserved.
|
| -// Use of this source code is governed by a BSD-style license that can be
|
| -// found in the LICENSE file.
|
| -
|
| -#include "chrome/browser/drive/fake_drive_service.h"
|
| -
|
| -#include <string>
|
| -#include <vector>
|
| -
|
| -#include "base/files/file_util.h"
|
| -#include "base/files/scoped_temp_dir.h"
|
| -#include "base/md5.h"
|
| -#include "base/message_loop/message_loop.h"
|
| -#include "base/run_loop.h"
|
| -#include "base/stl_util.h"
|
| -#include "base/strings/stringprintf.h"
|
| -#include "base/strings/utf_string_conversions.h"
|
| -#include "chrome/browser/drive/test_util.h"
|
| -#include "google_apis/drive/drive_api_parser.h"
|
| -#include "google_apis/drive/test_util.h"
|
| -#include "testing/gtest/include/gtest/gtest.h"
|
| -
|
| -using google_apis::AboutResource;
|
| -using google_apis::AppList;
|
| -using google_apis::ChangeList;
|
| -using google_apis::ChangeResource;
|
| -using google_apis::FileList;
|
| -using google_apis::FileResource;
|
| -using google_apis::DRIVE_NO_CONNECTION;
|
| -using google_apis::DRIVE_OTHER_ERROR;
|
| -using google_apis::DriveApiErrorCode;
|
| -using google_apis::GetContentCallback;
|
| -using google_apis::HTTP_CREATED;
|
| -using google_apis::HTTP_FORBIDDEN;
|
| -using google_apis::HTTP_NOT_FOUND;
|
| -using google_apis::HTTP_NO_CONTENT;
|
| -using google_apis::HTTP_PRECONDITION;
|
| -using google_apis::HTTP_RESUME_INCOMPLETE;
|
| -using google_apis::HTTP_SUCCESS;
|
| -using google_apis::ProgressCallback;
|
| -using google_apis::UploadRangeResponse;
|
| -
|
| -namespace drive {
|
| -
|
| -namespace test_util {
|
| -
|
| -using google_apis::test_util::AppendProgressCallbackResult;
|
| -using google_apis::test_util::CreateCopyResultCallback;
|
| -using google_apis::test_util::ProgressInfo;
|
| -using google_apis::test_util::TestGetContentCallback;
|
| -using google_apis::test_util::WriteStringToFile;
|
| -
|
| -} // namespace test_util
|
| -
|
| -namespace {
|
| -
|
| -class FakeDriveServiceTest : public testing::Test {
|
| - protected:
|
| - // Returns the resource entry that matches |resource_id|.
|
| - scoped_ptr<FileResource> FindEntry(const std::string& resource_id) {
|
| - DriveApiErrorCode error = DRIVE_OTHER_ERROR;
|
| - scoped_ptr<FileResource> entry;
|
| - fake_service_.GetFileResource(
|
| - resource_id, test_util::CreateCopyResultCallback(&error, &entry));
|
| - base::RunLoop().RunUntilIdle();
|
| - return entry.Pass();
|
| - }
|
| -
|
| - // Returns true if the resource identified by |resource_id| exists.
|
| - bool Exists(const std::string& resource_id) {
|
| - scoped_ptr<FileResource> entry = FindEntry(resource_id);
|
| - return entry && !entry->labels().is_trashed();
|
| - }
|
| -
|
| - // Adds a new directory at |parent_resource_id| with the given name.
|
| - // Returns true on success.
|
| - bool AddNewDirectory(const std::string& parent_resource_id,
|
| - const std::string& directory_title) {
|
| - DriveApiErrorCode error = DRIVE_OTHER_ERROR;
|
| - scoped_ptr<FileResource> entry;
|
| - fake_service_.AddNewDirectory(
|
| - parent_resource_id, directory_title, AddNewDirectoryOptions(),
|
| - test_util::CreateCopyResultCallback(&error, &entry));
|
| - base::RunLoop().RunUntilIdle();
|
| - return error == HTTP_CREATED;
|
| - }
|
| -
|
| - // Returns true if the resource identified by |resource_id| has a parent
|
| - // identified by |parent_id|.
|
| - bool HasParent(const std::string& resource_id, const std::string& parent_id) {
|
| - scoped_ptr<FileResource> entry = FindEntry(resource_id);
|
| - if (entry) {
|
| - for (size_t i = 0; i < entry->parents().size(); ++i) {
|
| - if (entry->parents()[i].file_id() == parent_id)
|
| - return true;
|
| - }
|
| - }
|
| - return false;
|
| - }
|
| -
|
| - int64 GetLargestChangeByAboutResource() {
|
| - DriveApiErrorCode error;
|
| - scoped_ptr<AboutResource> about_resource;
|
| - fake_service_.GetAboutResource(
|
| - test_util::CreateCopyResultCallback(&error, &about_resource));
|
| - base::RunLoop().RunUntilIdle();
|
| - return about_resource->largest_change_id();
|
| - }
|
| -
|
| - base::MessageLoop message_loop_;
|
| - FakeDriveService fake_service_;
|
| -};
|
| -
|
| -TEST_F(FakeDriveServiceTest, GetAllFileList) {
|
| - ASSERT_TRUE(test_util::SetUpTestEntries(&fake_service_));
|
| -
|
| - DriveApiErrorCode error = DRIVE_OTHER_ERROR;
|
| - scoped_ptr<FileList> file_list;
|
| - fake_service_.GetAllFileList(
|
| - test_util::CreateCopyResultCallback(&error, &file_list));
|
| - base::RunLoop().RunUntilIdle();
|
| -
|
| - EXPECT_EQ(HTTP_SUCCESS, error);
|
| - ASSERT_TRUE(file_list);
|
| - // Do some sanity check.
|
| - EXPECT_EQ(15U, file_list->items().size());
|
| - EXPECT_EQ(1, fake_service_.file_list_load_count());
|
| -}
|
| -
|
| -TEST_F(FakeDriveServiceTest, GetAllFileList_Offline) {
|
| - ASSERT_TRUE(test_util::SetUpTestEntries(&fake_service_));
|
| - fake_service_.set_offline(true);
|
| -
|
| - DriveApiErrorCode error = DRIVE_OTHER_ERROR;
|
| - scoped_ptr<FileList> file_list;
|
| - fake_service_.GetAllFileList(
|
| - test_util::CreateCopyResultCallback(&error, &file_list));
|
| - base::RunLoop().RunUntilIdle();
|
| -
|
| - EXPECT_EQ(DRIVE_NO_CONNECTION, error);
|
| - EXPECT_FALSE(file_list);
|
| -}
|
| -
|
| -TEST_F(FakeDriveServiceTest, GetFileListInDirectory_InRootDirectory) {
|
| - ASSERT_TRUE(test_util::SetUpTestEntries(&fake_service_));
|
| -
|
| - DriveApiErrorCode error = DRIVE_OTHER_ERROR;
|
| - scoped_ptr<FileList> file_list;
|
| - fake_service_.GetFileListInDirectory(
|
| - fake_service_.GetRootResourceId(),
|
| - test_util::CreateCopyResultCallback(&error, &file_list));
|
| - base::RunLoop().RunUntilIdle();
|
| -
|
| - EXPECT_EQ(HTTP_SUCCESS, error);
|
| - ASSERT_TRUE(file_list);
|
| - // Do some sanity check. There are 8 entries in the root directory.
|
| - EXPECT_EQ(8U, file_list->items().size());
|
| - EXPECT_EQ(1, fake_service_.directory_load_count());
|
| -}
|
| -
|
| -TEST_F(FakeDriveServiceTest, GetFileListInDirectory_InNonRootDirectory) {
|
| - ASSERT_TRUE(test_util::SetUpTestEntries(&fake_service_));
|
| -
|
| - DriveApiErrorCode error = DRIVE_OTHER_ERROR;
|
| - scoped_ptr<FileList> file_list;
|
| - fake_service_.GetFileListInDirectory(
|
| - "1_folder_resource_id",
|
| - test_util::CreateCopyResultCallback(&error, &file_list));
|
| - base::RunLoop().RunUntilIdle();
|
| -
|
| - EXPECT_EQ(HTTP_SUCCESS, error);
|
| - ASSERT_TRUE(file_list);
|
| - // Do some sanity check. There is three entries in 1_folder_resource_id
|
| - // directory.
|
| - EXPECT_EQ(3U, file_list->items().size());
|
| - EXPECT_EQ(1, fake_service_.directory_load_count());
|
| -}
|
| -
|
| -TEST_F(FakeDriveServiceTest, GetFileListInDirectory_Offline) {
|
| - ASSERT_TRUE(test_util::SetUpTestEntries(&fake_service_));
|
| - fake_service_.set_offline(true);
|
| -
|
| - DriveApiErrorCode error = DRIVE_OTHER_ERROR;
|
| - scoped_ptr<FileList> file_list;
|
| - fake_service_.GetFileListInDirectory(
|
| - fake_service_.GetRootResourceId(),
|
| - test_util::CreateCopyResultCallback(&error, &file_list));
|
| - base::RunLoop().RunUntilIdle();
|
| -
|
| - EXPECT_EQ(DRIVE_NO_CONNECTION, error);
|
| - EXPECT_FALSE(file_list);
|
| -}
|
| -
|
| -TEST_F(FakeDriveServiceTest, Search) {
|
| - ASSERT_TRUE(test_util::SetUpTestEntries(&fake_service_));
|
| -
|
| - DriveApiErrorCode error = DRIVE_OTHER_ERROR;
|
| - scoped_ptr<FileList> file_list;
|
| - fake_service_.Search(
|
| - "File", // search_query
|
| - test_util::CreateCopyResultCallback(&error, &file_list));
|
| - base::RunLoop().RunUntilIdle();
|
| -
|
| - EXPECT_EQ(HTTP_SUCCESS, error);
|
| - ASSERT_TRUE(file_list);
|
| - // Do some sanity check. There are 4 entries that contain "File" in their
|
| - // titles.
|
| - EXPECT_EQ(4U, file_list->items().size());
|
| -}
|
| -
|
| -TEST_F(FakeDriveServiceTest, Search_WithAttribute) {
|
| - ASSERT_TRUE(test_util::SetUpTestEntries(&fake_service_));
|
| -
|
| - DriveApiErrorCode error = DRIVE_OTHER_ERROR;
|
| - scoped_ptr<FileList> file_list;
|
| - fake_service_.Search(
|
| - "title:1.txt", // search_query
|
| - test_util::CreateCopyResultCallback(&error, &file_list));
|
| - base::RunLoop().RunUntilIdle();
|
| -
|
| - EXPECT_EQ(HTTP_SUCCESS, error);
|
| - ASSERT_TRUE(file_list);
|
| - // Do some sanity check. There are 4 entries that contain "1.txt" in their
|
| - // titles.
|
| - EXPECT_EQ(4U, file_list->items().size());
|
| -}
|
| -
|
| -TEST_F(FakeDriveServiceTest, Search_MultipleQueries) {
|
| - ASSERT_TRUE(test_util::SetUpTestEntries(&fake_service_));
|
| -
|
| - DriveApiErrorCode error = DRIVE_OTHER_ERROR;
|
| - scoped_ptr<FileList> file_list;
|
| - fake_service_.Search(
|
| - "Directory 1", // search_query
|
| - test_util::CreateCopyResultCallback(&error, &file_list));
|
| - base::RunLoop().RunUntilIdle();
|
| -
|
| - EXPECT_EQ(HTTP_SUCCESS, error);
|
| - ASSERT_TRUE(file_list);
|
| - // There are 2 entries that contain both "Directory" and "1" in their titles.
|
| - EXPECT_EQ(2U, file_list->items().size());
|
| -
|
| - fake_service_.Search(
|
| - "\"Directory 1\"", // search_query
|
| - test_util::CreateCopyResultCallback(&error, &file_list));
|
| - base::RunLoop().RunUntilIdle();
|
| -
|
| - EXPECT_EQ(HTTP_SUCCESS, error);
|
| - ASSERT_TRUE(file_list);
|
| - // There is 1 entry that contain "Directory 1" in its title.
|
| - EXPECT_EQ(1U, file_list->items().size());
|
| -}
|
| -
|
| -TEST_F(FakeDriveServiceTest, Search_Offline) {
|
| - ASSERT_TRUE(test_util::SetUpTestEntries(&fake_service_));
|
| - fake_service_.set_offline(true);
|
| -
|
| - DriveApiErrorCode error = DRIVE_OTHER_ERROR;
|
| - scoped_ptr<FileList> file_list;
|
| - fake_service_.Search(
|
| - "Directory 1", // search_query
|
| - test_util::CreateCopyResultCallback(&error, &file_list));
|
| - base::RunLoop().RunUntilIdle();
|
| -
|
| - EXPECT_EQ(DRIVE_NO_CONNECTION, error);
|
| - EXPECT_FALSE(file_list);
|
| -}
|
| -
|
| -TEST_F(FakeDriveServiceTest, Search_Deleted) {
|
| - ASSERT_TRUE(test_util::SetUpTestEntries(&fake_service_));
|
| -
|
| - DriveApiErrorCode error = DRIVE_OTHER_ERROR;
|
| - fake_service_.DeleteResource("2_file_resource_id",
|
| - std::string(), // etag
|
| - test_util::CreateCopyResultCallback(&error));
|
| - base::RunLoop().RunUntilIdle();
|
| - EXPECT_EQ(HTTP_NO_CONTENT, error);
|
| -
|
| - error = DRIVE_OTHER_ERROR;
|
| - scoped_ptr<FileList> file_list;
|
| - fake_service_.Search(
|
| - "File", // search_query
|
| - test_util::CreateCopyResultCallback(&error, &file_list));
|
| - base::RunLoop().RunUntilIdle();
|
| -
|
| - EXPECT_EQ(HTTP_SUCCESS, error);
|
| - ASSERT_TRUE(file_list);
|
| - // Do some sanity check. There are 4 entries that contain "File" in their
|
| - // titles and one of them is deleted.
|
| - EXPECT_EQ(3U, file_list->items().size());
|
| -}
|
| -
|
| -TEST_F(FakeDriveServiceTest, Search_Trashed) {
|
| - ASSERT_TRUE(test_util::SetUpTestEntries(&fake_service_));
|
| -
|
| - DriveApiErrorCode error = DRIVE_OTHER_ERROR;
|
| - fake_service_.TrashResource("2_file_resource_id",
|
| - test_util::CreateCopyResultCallback(&error));
|
| - base::RunLoop().RunUntilIdle();
|
| - EXPECT_EQ(HTTP_SUCCESS, error);
|
| -
|
| - error = DRIVE_OTHER_ERROR;
|
| - scoped_ptr<FileList> file_list;
|
| - fake_service_.Search(
|
| - "File", // search_query
|
| - test_util::CreateCopyResultCallback(&error, &file_list));
|
| - base::RunLoop().RunUntilIdle();
|
| -
|
| - EXPECT_EQ(HTTP_SUCCESS, error);
|
| - ASSERT_TRUE(file_list);
|
| - // Do some sanity check. There are 4 entries that contain "File" in their
|
| - // titles and one of them is deleted.
|
| - EXPECT_EQ(3U, file_list->items().size());
|
| -}
|
| -
|
| -TEST_F(FakeDriveServiceTest, SearchByTitle) {
|
| - ASSERT_TRUE(test_util::SetUpTestEntries(&fake_service_));
|
| -
|
| - DriveApiErrorCode error = DRIVE_OTHER_ERROR;
|
| - scoped_ptr<FileList> file_list;
|
| - fake_service_.SearchByTitle(
|
| - "1.txt", // title
|
| - fake_service_.GetRootResourceId(), // directory_resource_id
|
| - test_util::CreateCopyResultCallback(&error, &file_list));
|
| - base::RunLoop().RunUntilIdle();
|
| -
|
| - EXPECT_EQ(HTTP_SUCCESS, error);
|
| - ASSERT_TRUE(file_list);
|
| - // Do some sanity check. There are 2 entries that contain "1.txt" in their
|
| - // titles directly under the root directory.
|
| - EXPECT_EQ(2U, file_list->items().size());
|
| -}
|
| -
|
| -TEST_F(FakeDriveServiceTest, SearchByTitle_EmptyDirectoryResourceId) {
|
| - ASSERT_TRUE(test_util::SetUpTestEntries(&fake_service_));
|
| -
|
| - DriveApiErrorCode error = DRIVE_OTHER_ERROR;
|
| - scoped_ptr<FileList> file_list;
|
| - fake_service_.SearchByTitle(
|
| - "1.txt", // title
|
| - "", // directory resource id
|
| - test_util::CreateCopyResultCallback(&error, &file_list));
|
| - base::RunLoop().RunUntilIdle();
|
| -
|
| - EXPECT_EQ(HTTP_SUCCESS, error);
|
| - ASSERT_TRUE(file_list);
|
| - // Do some sanity check. There are 4 entries that contain "1.txt" in their
|
| - // titles.
|
| - EXPECT_EQ(4U, file_list->items().size());
|
| -}
|
| -
|
| -TEST_F(FakeDriveServiceTest, SearchByTitle_Offline) {
|
| - ASSERT_TRUE(test_util::SetUpTestEntries(&fake_service_));
|
| - fake_service_.set_offline(true);
|
| -
|
| - DriveApiErrorCode error = DRIVE_OTHER_ERROR;
|
| - scoped_ptr<FileList> file_list;
|
| - fake_service_.SearchByTitle(
|
| - "Directory 1", // title
|
| - fake_service_.GetRootResourceId(), // directory_resource_id
|
| - test_util::CreateCopyResultCallback(&error, &file_list));
|
| - base::RunLoop().RunUntilIdle();
|
| -
|
| - EXPECT_EQ(DRIVE_NO_CONNECTION, error);
|
| - EXPECT_FALSE(file_list);
|
| -}
|
| -
|
| -TEST_F(FakeDriveServiceTest, GetChangeList_NoNewEntries) {
|
| - ASSERT_TRUE(test_util::SetUpTestEntries(&fake_service_));
|
| -
|
| - DriveApiErrorCode error = DRIVE_OTHER_ERROR;
|
| - scoped_ptr<ChangeList> change_list;
|
| - fake_service_.GetChangeList(
|
| - fake_service_.about_resource().largest_change_id() + 1,
|
| - test_util::CreateCopyResultCallback(&error, &change_list));
|
| - base::RunLoop().RunUntilIdle();
|
| -
|
| - EXPECT_EQ(HTTP_SUCCESS, error);
|
| - ASSERT_TRUE(change_list);
|
| - EXPECT_EQ(fake_service_.about_resource().largest_change_id(),
|
| - change_list->largest_change_id());
|
| - // This should be empty as the latest changestamp was passed to
|
| - // GetChangeList(), hence there should be no new entries.
|
| - EXPECT_EQ(0U, change_list->items().size());
|
| - // It's considered loaded even if the result is empty.
|
| - EXPECT_EQ(1, fake_service_.change_list_load_count());
|
| -}
|
| -
|
| -TEST_F(FakeDriveServiceTest, GetChangeList_WithNewEntry) {
|
| - ASSERT_TRUE(test_util::SetUpTestEntries(&fake_service_));
|
| - const int64 old_largest_change_id =
|
| - fake_service_.about_resource().largest_change_id();
|
| -
|
| - // Add a new directory in the root directory.
|
| - ASSERT_TRUE(AddNewDirectory(
|
| - fake_service_.GetRootResourceId(), "new directory"));
|
| -
|
| - // Get the resource list newer than old_largest_change_id.
|
| - DriveApiErrorCode error = DRIVE_OTHER_ERROR;
|
| - scoped_ptr<ChangeList> change_list;
|
| - fake_service_.GetChangeList(
|
| - old_largest_change_id + 1,
|
| - test_util::CreateCopyResultCallback(&error, &change_list));
|
| - base::RunLoop().RunUntilIdle();
|
| -
|
| - EXPECT_EQ(HTTP_SUCCESS, error);
|
| - ASSERT_TRUE(change_list);
|
| - EXPECT_EQ(fake_service_.about_resource().largest_change_id(),
|
| - change_list->largest_change_id());
|
| - // The result should only contain the newly created directory.
|
| - ASSERT_EQ(1U, change_list->items().size());
|
| - ASSERT_TRUE(change_list->items()[0]->file());
|
| - EXPECT_EQ("new directory", change_list->items()[0]->file()->title());
|
| - EXPECT_EQ(1, fake_service_.change_list_load_count());
|
| -}
|
| -
|
| -TEST_F(FakeDriveServiceTest, GetChangeList_Offline) {
|
| - ASSERT_TRUE(test_util::SetUpTestEntries(&fake_service_));
|
| - fake_service_.set_offline(true);
|
| -
|
| - DriveApiErrorCode error = DRIVE_OTHER_ERROR;
|
| - scoped_ptr<ChangeList> change_list;
|
| - fake_service_.GetChangeList(
|
| - 654321, // start_changestamp
|
| - test_util::CreateCopyResultCallback(&error, &change_list));
|
| - base::RunLoop().RunUntilIdle();
|
| -
|
| - EXPECT_EQ(DRIVE_NO_CONNECTION, error);
|
| - EXPECT_FALSE(change_list);
|
| -}
|
| -
|
| -TEST_F(FakeDriveServiceTest, GetChangeList_DeletedEntry) {
|
| - ASSERT_TRUE(test_util::SetUpTestEntries(&fake_service_));
|
| - ASSERT_TRUE(Exists("2_file_resource_id"));
|
| - const int64 old_largest_change_id =
|
| - fake_service_.about_resource().largest_change_id();
|
| -
|
| - DriveApiErrorCode error = DRIVE_OTHER_ERROR;
|
| - fake_service_.DeleteResource("2_file_resource_id",
|
| - std::string(), // etag
|
| - test_util::CreateCopyResultCallback(&error));
|
| - base::RunLoop().RunUntilIdle();
|
| - ASSERT_EQ(HTTP_NO_CONTENT, error);
|
| - ASSERT_FALSE(Exists("2_file_resource_id"));
|
| -
|
| - // Get the resource list newer than old_largest_change_id.
|
| - error = DRIVE_OTHER_ERROR;
|
| - scoped_ptr<ChangeList> change_list;
|
| - fake_service_.GetChangeList(
|
| - old_largest_change_id + 1,
|
| - test_util::CreateCopyResultCallback(&error, &change_list));
|
| - base::RunLoop().RunUntilIdle();
|
| -
|
| - EXPECT_EQ(HTTP_SUCCESS, error);
|
| - ASSERT_TRUE(change_list);
|
| - EXPECT_EQ(fake_service_.about_resource().largest_change_id(),
|
| - change_list->largest_change_id());
|
| - // The result should only contain the deleted file.
|
| - ASSERT_EQ(1U, change_list->items().size());
|
| - const ChangeResource& item = *change_list->items()[0];
|
| - EXPECT_EQ("2_file_resource_id", item.file_id());
|
| - EXPECT_FALSE(item.file());
|
| - EXPECT_TRUE(item.is_deleted());
|
| - EXPECT_EQ(1, fake_service_.change_list_load_count());
|
| -}
|
| -
|
| -TEST_F(FakeDriveServiceTest, GetChangeList_TrashedEntry) {
|
| - ASSERT_TRUE(test_util::SetUpTestEntries(&fake_service_));
|
| - ASSERT_TRUE(Exists("2_file_resource_id"));
|
| - const int64 old_largest_change_id =
|
| - fake_service_.about_resource().largest_change_id();
|
| -
|
| - DriveApiErrorCode error = DRIVE_OTHER_ERROR;
|
| - fake_service_.TrashResource("2_file_resource_id",
|
| - test_util::CreateCopyResultCallback(&error));
|
| - base::RunLoop().RunUntilIdle();
|
| - ASSERT_EQ(HTTP_SUCCESS, error);
|
| - ASSERT_FALSE(Exists("2_file_resource_id"));
|
| -
|
| - // Get the resource list newer than old_largest_change_id.
|
| - error = DRIVE_OTHER_ERROR;
|
| - scoped_ptr<ChangeList> change_list;
|
| - fake_service_.GetChangeList(
|
| - old_largest_change_id + 1,
|
| - test_util::CreateCopyResultCallback(&error, &change_list));
|
| - base::RunLoop().RunUntilIdle();
|
| -
|
| - EXPECT_EQ(HTTP_SUCCESS, error);
|
| - ASSERT_TRUE(change_list);
|
| - EXPECT_EQ(fake_service_.about_resource().largest_change_id(),
|
| - change_list->largest_change_id());
|
| - // The result should only contain the trashed file.
|
| - ASSERT_EQ(1U, change_list->items().size());
|
| - const ChangeResource& item = *change_list->items()[0];
|
| - EXPECT_EQ("2_file_resource_id", item.file_id());
|
| - ASSERT_TRUE(item.file());
|
| - EXPECT_TRUE(item.file()->labels().is_trashed());
|
| - EXPECT_EQ(1, fake_service_.change_list_load_count());
|
| -}
|
| -
|
| -TEST_F(FakeDriveServiceTest, GetRemainingFileList_GetAllFileList) {
|
| - ASSERT_TRUE(test_util::SetUpTestEntries(&fake_service_));
|
| - fake_service_.set_default_max_results(6);
|
| -
|
| - DriveApiErrorCode error = DRIVE_OTHER_ERROR;
|
| - scoped_ptr<FileList> file_list;
|
| - fake_service_.GetAllFileList(
|
| - test_util::CreateCopyResultCallback(&error, &file_list));
|
| - base::RunLoop().RunUntilIdle();
|
| - EXPECT_EQ(HTTP_SUCCESS, error);
|
| - ASSERT_TRUE(file_list);
|
| -
|
| - // Do some sanity check.
|
| - // The number of results is 14 entries. Thus, it should split into three
|
| - // chunks: 6, 6, and then 2.
|
| - EXPECT_EQ(6U, file_list->items().size());
|
| - EXPECT_EQ(1, fake_service_.file_list_load_count());
|
| -
|
| - // Second page loading.
|
| - // Keep the next url before releasing the |file_list|.
|
| - GURL next_url(file_list->next_link());
|
| -
|
| - error = DRIVE_OTHER_ERROR;
|
| - file_list.reset();
|
| - fake_service_.GetRemainingFileList(
|
| - next_url,
|
| - test_util::CreateCopyResultCallback(&error, &file_list));
|
| - base::RunLoop().RunUntilIdle();
|
| -
|
| - EXPECT_EQ(HTTP_SUCCESS, error);
|
| - ASSERT_TRUE(file_list);
|
| -
|
| - EXPECT_EQ(6U, file_list->items().size());
|
| - EXPECT_EQ(1, fake_service_.file_list_load_count());
|
| -
|
| - // Third page loading.
|
| - next_url = file_list->next_link();
|
| -
|
| - error = DRIVE_OTHER_ERROR;
|
| - file_list.reset();
|
| - fake_service_.GetRemainingFileList(
|
| - next_url,
|
| - test_util::CreateCopyResultCallback(&error, &file_list));
|
| - base::RunLoop().RunUntilIdle();
|
| -
|
| - EXPECT_EQ(HTTP_SUCCESS, error);
|
| - ASSERT_TRUE(file_list);
|
| -
|
| - EXPECT_EQ(3U, file_list->items().size());
|
| - EXPECT_EQ(1, fake_service_.file_list_load_count());
|
| -}
|
| -
|
| -TEST_F(FakeDriveServiceTest, GetRemainingFileList_GetFileListInDirectory) {
|
| - ASSERT_TRUE(test_util::SetUpTestEntries(&fake_service_));
|
| - fake_service_.set_default_max_results(3);
|
| -
|
| - DriveApiErrorCode error = DRIVE_OTHER_ERROR;
|
| - scoped_ptr<FileList> file_list;
|
| - fake_service_.GetFileListInDirectory(
|
| - fake_service_.GetRootResourceId(),
|
| - test_util::CreateCopyResultCallback(&error, &file_list));
|
| - base::RunLoop().RunUntilIdle();
|
| - EXPECT_EQ(HTTP_SUCCESS, error);
|
| - ASSERT_TRUE(file_list);
|
| -
|
| - // Do some sanity check.
|
| - // The number of results is 8 entries. Thus, it should split into three
|
| - // chunks: 3, 3, and then 2.
|
| - EXPECT_EQ(3U, file_list->items().size());
|
| - EXPECT_EQ(1, fake_service_.directory_load_count());
|
| -
|
| - // Second page loading.
|
| - // Keep the next url before releasing the |file_list|.
|
| - GURL next_url = file_list->next_link();
|
| -
|
| - error = DRIVE_OTHER_ERROR;
|
| - file_list.reset();
|
| - fake_service_.GetRemainingFileList(
|
| - next_url,
|
| - test_util::CreateCopyResultCallback(&error, &file_list));
|
| - base::RunLoop().RunUntilIdle();
|
| -
|
| - EXPECT_EQ(HTTP_SUCCESS, error);
|
| - ASSERT_TRUE(file_list);
|
| -
|
| - EXPECT_EQ(3U, file_list->items().size());
|
| - EXPECT_EQ(1, fake_service_.directory_load_count());
|
| -
|
| - // Third page loading.
|
| - next_url = file_list->next_link();
|
| -
|
| - error = DRIVE_OTHER_ERROR;
|
| - file_list.reset();
|
| - fake_service_.GetRemainingFileList(
|
| - next_url,
|
| - test_util::CreateCopyResultCallback(&error, &file_list));
|
| - base::RunLoop().RunUntilIdle();
|
| -
|
| - EXPECT_EQ(HTTP_SUCCESS, error);
|
| - ASSERT_TRUE(file_list);
|
| -
|
| - EXPECT_EQ(2U, file_list->items().size());
|
| - EXPECT_EQ(1, fake_service_.directory_load_count());
|
| -}
|
| -
|
| -TEST_F(FakeDriveServiceTest, GetRemainingFileList_Search) {
|
| - ASSERT_TRUE(test_util::SetUpTestEntries(&fake_service_));
|
| - fake_service_.set_default_max_results(2);
|
| -
|
| - DriveApiErrorCode error = DRIVE_OTHER_ERROR;
|
| - scoped_ptr<FileList> file_list;
|
| - fake_service_.Search(
|
| - "File", // search_query
|
| - test_util::CreateCopyResultCallback(&error, &file_list));
|
| - base::RunLoop().RunUntilIdle();
|
| - EXPECT_EQ(HTTP_SUCCESS, error);
|
| - ASSERT_TRUE(file_list);
|
| -
|
| - // Do some sanity check.
|
| - // The number of results is 4 entries. Thus, it should split into two
|
| - // chunks: 2, and then 2
|
| - EXPECT_EQ(2U, file_list->items().size());
|
| -
|
| - // Second page loading.
|
| - // Keep the next url before releasing the |file_list|.
|
| - GURL next_url = file_list->next_link();
|
| -
|
| - error = DRIVE_OTHER_ERROR;
|
| - file_list.reset();
|
| - fake_service_.GetRemainingFileList(
|
| - next_url,
|
| - test_util::CreateCopyResultCallback(&error, &file_list));
|
| - base::RunLoop().RunUntilIdle();
|
| -
|
| - EXPECT_EQ(HTTP_SUCCESS, error);
|
| - ASSERT_TRUE(file_list);
|
| -
|
| - EXPECT_EQ(2U, file_list->items().size());
|
| -}
|
| -
|
| -TEST_F(FakeDriveServiceTest, GetRemainingChangeList_GetChangeList) {
|
| - ASSERT_TRUE(test_util::SetUpTestEntries(&fake_service_));
|
| - fake_service_.set_default_max_results(2);
|
| - const int64 old_largest_change_id =
|
| - fake_service_.about_resource().largest_change_id();
|
| -
|
| - // Add 5 new directory in the root directory.
|
| - for (int i = 0; i < 5; ++i) {
|
| - ASSERT_TRUE(AddNewDirectory(
|
| - fake_service_.GetRootResourceId(),
|
| - base::StringPrintf("new directory %d", i)));
|
| - }
|
| -
|
| - DriveApiErrorCode error = DRIVE_OTHER_ERROR;
|
| - scoped_ptr<ChangeList> change_list;
|
| - fake_service_.GetChangeList(
|
| - old_largest_change_id + 1, // start_changestamp
|
| - test_util::CreateCopyResultCallback(&error, &change_list));
|
| - base::RunLoop().RunUntilIdle();
|
| - EXPECT_EQ(HTTP_SUCCESS, error);
|
| - ASSERT_TRUE(change_list);
|
| -
|
| - // Do some sanity check.
|
| - // The number of results is 5 entries. Thus, it should split into three
|
| - // chunks: 2, 2 and then 1.
|
| - EXPECT_EQ(2U, change_list->items().size());
|
| - EXPECT_EQ(1, fake_service_.change_list_load_count());
|
| -
|
| - // Second page loading.
|
| - // Keep the next url before releasing the |change_list|.
|
| - GURL next_url = change_list->next_link();
|
| -
|
| - error = DRIVE_OTHER_ERROR;
|
| - change_list.reset();
|
| - fake_service_.GetRemainingChangeList(
|
| - next_url,
|
| - test_util::CreateCopyResultCallback(&error, &change_list));
|
| - base::RunLoop().RunUntilIdle();
|
| -
|
| - EXPECT_EQ(HTTP_SUCCESS, error);
|
| - ASSERT_TRUE(change_list);
|
| -
|
| - EXPECT_EQ(2U, change_list->items().size());
|
| - EXPECT_EQ(1, fake_service_.change_list_load_count());
|
| -
|
| - // Third page loading.
|
| - next_url = change_list->next_link();
|
| -
|
| - error = DRIVE_OTHER_ERROR;
|
| - change_list.reset();
|
| - fake_service_.GetRemainingChangeList(
|
| - next_url,
|
| - test_util::CreateCopyResultCallback(&error, &change_list));
|
| - base::RunLoop().RunUntilIdle();
|
| -
|
| - EXPECT_EQ(HTTP_SUCCESS, error);
|
| - ASSERT_TRUE(change_list);
|
| -
|
| - EXPECT_EQ(1U, change_list->items().size());
|
| - EXPECT_EQ(1, fake_service_.change_list_load_count());
|
| -}
|
| -
|
| -TEST_F(FakeDriveServiceTest, GetAboutResource) {
|
| - DriveApiErrorCode error = DRIVE_OTHER_ERROR;
|
| - scoped_ptr<AboutResource> about_resource;
|
| - fake_service_.GetAboutResource(
|
| - test_util::CreateCopyResultCallback(&error, &about_resource));
|
| - base::RunLoop().RunUntilIdle();
|
| -
|
| - EXPECT_EQ(HTTP_SUCCESS, error);
|
| -
|
| - ASSERT_TRUE(about_resource);
|
| - // Do some sanity check.
|
| - EXPECT_EQ(fake_service_.GetRootResourceId(),
|
| - about_resource->root_folder_id());
|
| - EXPECT_EQ(1, fake_service_.about_resource_load_count());
|
| -}
|
| -
|
| -TEST_F(FakeDriveServiceTest, GetAboutResource_Offline) {
|
| - fake_service_.set_offline(true);
|
| -
|
| - DriveApiErrorCode error = DRIVE_OTHER_ERROR;
|
| - scoped_ptr<AboutResource> about_resource;
|
| - fake_service_.GetAboutResource(
|
| - test_util::CreateCopyResultCallback(&error, &about_resource));
|
| - base::RunLoop().RunUntilIdle();
|
| -
|
| - EXPECT_EQ(DRIVE_NO_CONNECTION, error);
|
| - EXPECT_FALSE(about_resource);
|
| -}
|
| -
|
| -TEST_F(FakeDriveServiceTest, GetAppList) {
|
| - ASSERT_TRUE(fake_service_.LoadAppListForDriveApi(
|
| - "drive/applist.json"));
|
| -
|
| - DriveApiErrorCode error = DRIVE_OTHER_ERROR;
|
| - scoped_ptr<AppList> app_list;
|
| - fake_service_.GetAppList(
|
| - test_util::CreateCopyResultCallback(&error, &app_list));
|
| - base::RunLoop().RunUntilIdle();
|
| -
|
| - EXPECT_EQ(HTTP_SUCCESS, error);
|
| -
|
| - ASSERT_TRUE(app_list);
|
| - EXPECT_EQ(1, fake_service_.app_list_load_count());
|
| -}
|
| -
|
| -TEST_F(FakeDriveServiceTest, GetAppList_Offline) {
|
| - ASSERT_TRUE(fake_service_.LoadAppListForDriveApi(
|
| - "drive/applist.json"));
|
| - fake_service_.set_offline(true);
|
| -
|
| - DriveApiErrorCode error = DRIVE_OTHER_ERROR;
|
| - scoped_ptr<AppList> app_list;
|
| - fake_service_.GetAppList(
|
| - test_util::CreateCopyResultCallback(&error, &app_list));
|
| - base::RunLoop().RunUntilIdle();
|
| -
|
| - EXPECT_EQ(DRIVE_NO_CONNECTION, error);
|
| - EXPECT_FALSE(app_list);
|
| -}
|
| -
|
| -TEST_F(FakeDriveServiceTest, GetFileResource_ExistingFile) {
|
| - ASSERT_TRUE(test_util::SetUpTestEntries(&fake_service_));
|
| -
|
| - const std::string kResourceId = "2_file_resource_id";
|
| - DriveApiErrorCode error = DRIVE_OTHER_ERROR;
|
| - scoped_ptr<FileResource> entry;
|
| - fake_service_.GetFileResource(
|
| - kResourceId, test_util::CreateCopyResultCallback(&error, &entry));
|
| - base::RunLoop().RunUntilIdle();
|
| -
|
| - EXPECT_EQ(HTTP_SUCCESS, error);
|
| - ASSERT_TRUE(entry);
|
| - // Do some sanity check.
|
| - EXPECT_EQ(kResourceId, entry->file_id());
|
| -}
|
| -
|
| -TEST_F(FakeDriveServiceTest, GetFileResource_NonexistingFile) {
|
| - ASSERT_TRUE(test_util::SetUpTestEntries(&fake_service_));
|
| -
|
| - const std::string kResourceId = "nonexisting_resource_id";
|
| - DriveApiErrorCode error = DRIVE_OTHER_ERROR;
|
| - scoped_ptr<FileResource> entry;
|
| - fake_service_.GetFileResource(
|
| - kResourceId, test_util::CreateCopyResultCallback(&error, &entry));
|
| - base::RunLoop().RunUntilIdle();
|
| -
|
| - EXPECT_EQ(HTTP_NOT_FOUND, error);
|
| - ASSERT_FALSE(entry);
|
| -}
|
| -
|
| -TEST_F(FakeDriveServiceTest, GetFileResource_Offline) {
|
| - ASSERT_TRUE(test_util::SetUpTestEntries(&fake_service_));
|
| - fake_service_.set_offline(true);
|
| -
|
| - const std::string kResourceId = "2_file_resource_id";
|
| - DriveApiErrorCode error = DRIVE_OTHER_ERROR;
|
| - scoped_ptr<FileResource> entry;
|
| - fake_service_.GetFileResource(
|
| - kResourceId, test_util::CreateCopyResultCallback(&error, &entry));
|
| - base::RunLoop().RunUntilIdle();
|
| -
|
| - EXPECT_EQ(DRIVE_NO_CONNECTION, error);
|
| - EXPECT_FALSE(entry);
|
| -}
|
| -
|
| -TEST_F(FakeDriveServiceTest, GetShareUrl) {
|
| - ASSERT_TRUE(test_util::SetUpTestEntries(&fake_service_));
|
| -
|
| - const std::string kResourceId = "2_file_resource_id";
|
| - DriveApiErrorCode error = DRIVE_OTHER_ERROR;
|
| - GURL share_url;
|
| - fake_service_.GetShareUrl(
|
| - kResourceId,
|
| - GURL(), // embed origin
|
| - test_util::CreateCopyResultCallback(&error, &share_url));
|
| - base::RunLoop().RunUntilIdle();
|
| -
|
| - EXPECT_EQ(HTTP_SUCCESS, error);
|
| - EXPECT_FALSE(share_url.is_empty());
|
| -}
|
| -
|
| -TEST_F(FakeDriveServiceTest, DeleteResource_ExistingFile) {
|
| - ASSERT_TRUE(test_util::SetUpTestEntries(&fake_service_));
|
| -
|
| - // Resource "2_file_resource_id" should now exist.
|
| - ASSERT_TRUE(Exists("2_file_resource_id"));
|
| -
|
| - DriveApiErrorCode error = DRIVE_OTHER_ERROR;
|
| - fake_service_.DeleteResource("2_file_resource_id",
|
| - std::string(), // etag
|
| - test_util::CreateCopyResultCallback(&error));
|
| - base::RunLoop().RunUntilIdle();
|
| -
|
| - EXPECT_EQ(HTTP_NO_CONTENT, error);
|
| - // Resource "2_file_resource_id" should be gone now.
|
| - EXPECT_FALSE(Exists("2_file_resource_id"));
|
| -
|
| - error = DRIVE_OTHER_ERROR;
|
| - fake_service_.DeleteResource("2_file_resource_id",
|
| - std::string(), // etag
|
| - test_util::CreateCopyResultCallback(&error));
|
| - base::RunLoop().RunUntilIdle();
|
| - EXPECT_EQ(HTTP_NOT_FOUND, error);
|
| - EXPECT_FALSE(Exists("2_file_resource_id"));
|
| -}
|
| -
|
| -TEST_F(FakeDriveServiceTest, DeleteResource_NonexistingFile) {
|
| - ASSERT_TRUE(test_util::SetUpTestEntries(&fake_service_));
|
| -
|
| - DriveApiErrorCode error = DRIVE_OTHER_ERROR;
|
| - fake_service_.DeleteResource("nonexisting_resource_id",
|
| - std::string(), // etag
|
| - test_util::CreateCopyResultCallback(&error));
|
| - base::RunLoop().RunUntilIdle();
|
| -
|
| - EXPECT_EQ(HTTP_NOT_FOUND, error);
|
| -}
|
| -
|
| -TEST_F(FakeDriveServiceTest, DeleteResource_ETagMatch) {
|
| - ASSERT_TRUE(test_util::SetUpTestEntries(&fake_service_));
|
| -
|
| - // Resource "2_file_resource_id" should now exist.
|
| - scoped_ptr<FileResource> entry = FindEntry("2_file_resource_id");
|
| - ASSERT_TRUE(entry);
|
| - ASSERT_FALSE(entry->labels().is_trashed());
|
| - ASSERT_FALSE(entry->etag().empty());
|
| -
|
| - DriveApiErrorCode error = DRIVE_OTHER_ERROR;
|
| - fake_service_.DeleteResource("2_file_resource_id",
|
| - entry->etag() + "_mismatch",
|
| - test_util::CreateCopyResultCallback(&error));
|
| - base::RunLoop().RunUntilIdle();
|
| -
|
| - EXPECT_EQ(HTTP_PRECONDITION, error);
|
| - // Resource "2_file_resource_id" should still exist.
|
| - EXPECT_TRUE(Exists("2_file_resource_id"));
|
| -
|
| - error = DRIVE_OTHER_ERROR;
|
| - fake_service_.DeleteResource("2_file_resource_id",
|
| - entry->etag(),
|
| - test_util::CreateCopyResultCallback(&error));
|
| - base::RunLoop().RunUntilIdle();
|
| - EXPECT_EQ(HTTP_NO_CONTENT, error);
|
| - // Resource "2_file_resource_id" should be gone now.
|
| - EXPECT_FALSE(Exists("2_file_resource_id"));
|
| -}
|
| -
|
| -TEST_F(FakeDriveServiceTest, DeleteResource_Offline) {
|
| - ASSERT_TRUE(test_util::SetUpTestEntries(&fake_service_));
|
| - fake_service_.set_offline(true);
|
| -
|
| - DriveApiErrorCode error = DRIVE_OTHER_ERROR;
|
| - fake_service_.DeleteResource("2_file_resource_id",
|
| - std::string(), // etag
|
| - test_util::CreateCopyResultCallback(&error));
|
| - base::RunLoop().RunUntilIdle();
|
| -
|
| - EXPECT_EQ(DRIVE_NO_CONNECTION, error);
|
| -}
|
| -
|
| -TEST_F(FakeDriveServiceTest, DeleteResource_Forbidden) {
|
| - ASSERT_TRUE(test_util::SetUpTestEntries(&fake_service_));
|
| -
|
| - EXPECT_EQ(HTTP_SUCCESS, fake_service_.SetUserPermission(
|
| - "2_file_resource_id", google_apis::drive::PERMISSION_ROLE_READER));
|
| -
|
| - DriveApiErrorCode error = DRIVE_OTHER_ERROR;
|
| - fake_service_.DeleteResource("2_file_resource_id",
|
| - std::string(), // etag
|
| - test_util::CreateCopyResultCallback(&error));
|
| - base::RunLoop().RunUntilIdle();
|
| -
|
| - EXPECT_EQ(HTTP_FORBIDDEN, error);
|
| -}
|
| -
|
| -TEST_F(FakeDriveServiceTest, TrashResource_ExistingFile) {
|
| - ASSERT_TRUE(test_util::SetUpTestEntries(&fake_service_));
|
| -
|
| - // Resource "2_file_resource_id" should now exist.
|
| - ASSERT_TRUE(Exists("2_file_resource_id"));
|
| -
|
| - DriveApiErrorCode error = DRIVE_OTHER_ERROR;
|
| - fake_service_.TrashResource("2_file_resource_id",
|
| - test_util::CreateCopyResultCallback(&error));
|
| - base::RunLoop().RunUntilIdle();
|
| -
|
| - EXPECT_EQ(HTTP_SUCCESS, error);
|
| - // Resource "2_file_resource_id" should be gone now.
|
| - EXPECT_FALSE(Exists("2_file_resource_id"));
|
| -
|
| - error = DRIVE_OTHER_ERROR;
|
| - fake_service_.TrashResource("2_file_resource_id",
|
| - test_util::CreateCopyResultCallback(&error));
|
| - base::RunLoop().RunUntilIdle();
|
| - EXPECT_EQ(HTTP_NOT_FOUND, error);
|
| - EXPECT_FALSE(Exists("2_file_resource_id"));
|
| -}
|
| -
|
| -TEST_F(FakeDriveServiceTest, TrashResource_NonexistingFile) {
|
| - ASSERT_TRUE(test_util::SetUpTestEntries(&fake_service_));
|
| -
|
| - DriveApiErrorCode error = DRIVE_OTHER_ERROR;
|
| - fake_service_.TrashResource("nonexisting_resource_id",
|
| - test_util::CreateCopyResultCallback(&error));
|
| - base::RunLoop().RunUntilIdle();
|
| -
|
| - EXPECT_EQ(HTTP_NOT_FOUND, error);
|
| -}
|
| -
|
| -TEST_F(FakeDriveServiceTest, TrashResource_Offline) {
|
| - ASSERT_TRUE(test_util::SetUpTestEntries(&fake_service_));
|
| - fake_service_.set_offline(true);
|
| -
|
| - DriveApiErrorCode error = DRIVE_OTHER_ERROR;
|
| - fake_service_.TrashResource("2_file_resource_id",
|
| - test_util::CreateCopyResultCallback(&error));
|
| - base::RunLoop().RunUntilIdle();
|
| -
|
| - EXPECT_EQ(DRIVE_NO_CONNECTION, error);
|
| -}
|
| -
|
| -TEST_F(FakeDriveServiceTest, TrashResource_Forbidden) {
|
| - ASSERT_TRUE(test_util::SetUpTestEntries(&fake_service_));
|
| -
|
| - EXPECT_EQ(HTTP_SUCCESS, fake_service_.SetUserPermission(
|
| - "2_file_resource_id", google_apis::drive::PERMISSION_ROLE_READER));
|
| -
|
| - DriveApiErrorCode error = DRIVE_OTHER_ERROR;
|
| - fake_service_.TrashResource("2_file_resource_id",
|
| - test_util::CreateCopyResultCallback(&error));
|
| - base::RunLoop().RunUntilIdle();
|
| -
|
| - EXPECT_EQ(HTTP_FORBIDDEN, error);
|
| -}
|
| -
|
| -TEST_F(FakeDriveServiceTest, DownloadFile_ExistingFile) {
|
| - ASSERT_TRUE(test_util::SetUpTestEntries(&fake_service_));
|
| -
|
| - base::ScopedTempDir temp_dir;
|
| - ASSERT_TRUE(temp_dir.CreateUniqueTempDir());
|
| -
|
| - std::vector<test_util::ProgressInfo> download_progress_values;
|
| -
|
| - const base::FilePath kOutputFilePath =
|
| - temp_dir.path().AppendASCII("whatever.txt");
|
| - DriveApiErrorCode error = DRIVE_OTHER_ERROR;
|
| - base::FilePath output_file_path;
|
| - test_util::TestGetContentCallback get_content_callback;
|
| - fake_service_.DownloadFile(
|
| - kOutputFilePath,
|
| - "2_file_resource_id",
|
| - test_util::CreateCopyResultCallback(&error, &output_file_path),
|
| - get_content_callback.callback(),
|
| - base::Bind(&test_util::AppendProgressCallbackResult,
|
| - &download_progress_values));
|
| - base::RunLoop().RunUntilIdle();
|
| -
|
| - EXPECT_EQ(HTTP_SUCCESS, error);
|
| - EXPECT_EQ(output_file_path, kOutputFilePath);
|
| - std::string content;
|
| - ASSERT_TRUE(base::ReadFileToString(output_file_path, &content));
|
| - EXPECT_EQ("This is some test content.", content);
|
| - ASSERT_TRUE(!download_progress_values.empty());
|
| - EXPECT_TRUE(base::STLIsSorted(download_progress_values));
|
| - EXPECT_LE(0, download_progress_values.front().first);
|
| - EXPECT_GE(26, download_progress_values.back().first);
|
| - EXPECT_EQ(content, get_content_callback.GetConcatenatedData());
|
| -}
|
| -
|
| -TEST_F(FakeDriveServiceTest, DownloadFile_NonexistingFile) {
|
| - ASSERT_TRUE(test_util::SetUpTestEntries(&fake_service_));
|
| -
|
| - base::ScopedTempDir temp_dir;
|
| - ASSERT_TRUE(temp_dir.CreateUniqueTempDir());
|
| -
|
| - const base::FilePath kOutputFilePath =
|
| - temp_dir.path().AppendASCII("whatever.txt");
|
| - DriveApiErrorCode error = DRIVE_OTHER_ERROR;
|
| - base::FilePath output_file_path;
|
| - fake_service_.DownloadFile(
|
| - kOutputFilePath,
|
| - "non_existent_file_resource_id",
|
| - test_util::CreateCopyResultCallback(&error, &output_file_path),
|
| - GetContentCallback(),
|
| - ProgressCallback());
|
| - base::RunLoop().RunUntilIdle();
|
| -
|
| - EXPECT_EQ(HTTP_NOT_FOUND, error);
|
| -}
|
| -
|
| -TEST_F(FakeDriveServiceTest, DownloadFile_Offline) {
|
| - ASSERT_TRUE(test_util::SetUpTestEntries(&fake_service_));
|
| - fake_service_.set_offline(true);
|
| -
|
| - base::ScopedTempDir temp_dir;
|
| - ASSERT_TRUE(temp_dir.CreateUniqueTempDir());
|
| -
|
| - const base::FilePath kOutputFilePath =
|
| - temp_dir.path().AppendASCII("whatever.txt");
|
| - DriveApiErrorCode error = DRIVE_OTHER_ERROR;
|
| - base::FilePath output_file_path;
|
| - fake_service_.DownloadFile(
|
| - kOutputFilePath,
|
| - "2_file_resource_id",
|
| - test_util::CreateCopyResultCallback(&error, &output_file_path),
|
| - GetContentCallback(),
|
| - ProgressCallback());
|
| - base::RunLoop().RunUntilIdle();
|
| -
|
| - EXPECT_EQ(DRIVE_NO_CONNECTION, error);
|
| -}
|
| -
|
| -TEST_F(FakeDriveServiceTest, CopyResource) {
|
| - const base::Time::Exploded kModifiedDate = {2012, 7, 0, 19, 15, 59, 13, 123};
|
| -
|
| - ASSERT_TRUE(test_util::SetUpTestEntries(&fake_service_));
|
| -
|
| - int64 old_largest_change_id = GetLargestChangeByAboutResource();
|
| -
|
| - const std::string kResourceId = "2_file_resource_id";
|
| - const std::string kParentResourceId = "2_folder_resource_id";
|
| - DriveApiErrorCode error = DRIVE_OTHER_ERROR;
|
| - scoped_ptr<FileResource> entry;
|
| - fake_service_.CopyResource(
|
| - kResourceId,
|
| - kParentResourceId,
|
| - "new title",
|
| - base::Time::FromUTCExploded(kModifiedDate),
|
| - test_util::CreateCopyResultCallback(&error, &entry));
|
| - base::RunLoop().RunUntilIdle();
|
| -
|
| - EXPECT_EQ(HTTP_SUCCESS, error);
|
| - ASSERT_TRUE(entry);
|
| - // The copied entry should have the new resource ID and the title.
|
| - EXPECT_NE(kResourceId, entry->file_id());
|
| - EXPECT_EQ("new title", entry->title());
|
| - EXPECT_EQ(base::Time::FromUTCExploded(kModifiedDate), entry->modified_date());
|
| - EXPECT_TRUE(HasParent(entry->file_id(), kParentResourceId));
|
| - // Should be incremented as a new hosted document was created.
|
| - EXPECT_EQ(old_largest_change_id + 1,
|
| - fake_service_.about_resource().largest_change_id());
|
| - EXPECT_EQ(old_largest_change_id + 1, GetLargestChangeByAboutResource());
|
| -}
|
| -
|
| -TEST_F(FakeDriveServiceTest, CopyResource_NonExisting) {
|
| - ASSERT_TRUE(test_util::SetUpTestEntries(&fake_service_));
|
| -
|
| - const std::string kResourceId = "nonexisting_resource_id";
|
| - DriveApiErrorCode error = DRIVE_OTHER_ERROR;
|
| - scoped_ptr<FileResource> entry;
|
| - fake_service_.CopyResource(
|
| - kResourceId,
|
| - "1_folder_resource_id",
|
| - "new title",
|
| - base::Time(),
|
| - test_util::CreateCopyResultCallback(&error, &entry));
|
| - base::RunLoop().RunUntilIdle();
|
| -
|
| - EXPECT_EQ(HTTP_NOT_FOUND, error);
|
| -}
|
| -
|
| -TEST_F(FakeDriveServiceTest, CopyResource_EmptyParentResourceId) {
|
| - ASSERT_TRUE(test_util::SetUpTestEntries(&fake_service_));
|
| -
|
| - int64 old_largest_change_id = GetLargestChangeByAboutResource();
|
| -
|
| - const std::string kResourceId = "2_file_resource_id";
|
| - DriveApiErrorCode error = DRIVE_OTHER_ERROR;
|
| - scoped_ptr<FileResource> entry;
|
| - fake_service_.CopyResource(
|
| - kResourceId,
|
| - std::string(),
|
| - "new title",
|
| - base::Time(),
|
| - test_util::CreateCopyResultCallback(&error, &entry));
|
| - base::RunLoop().RunUntilIdle();
|
| -
|
| - EXPECT_EQ(HTTP_SUCCESS, error);
|
| - ASSERT_TRUE(entry);
|
| - // The copied entry should have the new resource ID and the title.
|
| - EXPECT_NE(kResourceId, entry->file_id());
|
| - EXPECT_EQ("new title", entry->title());
|
| - EXPECT_TRUE(HasParent(kResourceId, fake_service_.GetRootResourceId()));
|
| - // Should be incremented as a new hosted document was created.
|
| - EXPECT_EQ(old_largest_change_id + 1,
|
| - fake_service_.about_resource().largest_change_id());
|
| - EXPECT_EQ(old_largest_change_id + 1, GetLargestChangeByAboutResource());
|
| -}
|
| -
|
| -TEST_F(FakeDriveServiceTest, CopyResource_Offline) {
|
| - ASSERT_TRUE(test_util::SetUpTestEntries(&fake_service_));
|
| - fake_service_.set_offline(true);
|
| -
|
| - const std::string kResourceId = "2_file_resource_id";
|
| - DriveApiErrorCode error = DRIVE_OTHER_ERROR;
|
| - scoped_ptr<FileResource> entry;
|
| - fake_service_.CopyResource(
|
| - kResourceId,
|
| - "1_folder_resource_id",
|
| - "new title",
|
| - base::Time(),
|
| - test_util::CreateCopyResultCallback(&error, &entry));
|
| - base::RunLoop().RunUntilIdle();
|
| -
|
| - EXPECT_EQ(DRIVE_NO_CONNECTION, error);
|
| - EXPECT_FALSE(entry);
|
| -}
|
| -
|
| -TEST_F(FakeDriveServiceTest, UpdateResource) {
|
| - const base::Time::Exploded kModifiedDate = {2012, 7, 0, 19, 15, 59, 13, 123};
|
| - const base::Time::Exploded kViewedDate = {2013, 8, 1, 20, 16, 00, 14, 234};
|
| -
|
| - ASSERT_TRUE(test_util::SetUpTestEntries(&fake_service_));
|
| -
|
| - int64 old_largest_change_id = GetLargestChangeByAboutResource();
|
| -
|
| - const std::string kResourceId = "2_file_resource_id";
|
| - const std::string kParentResourceId = "2_folder_resource_id";
|
| - DriveApiErrorCode error = DRIVE_OTHER_ERROR;
|
| - scoped_ptr<FileResource> entry;
|
| - fake_service_.UpdateResource(
|
| - kResourceId, kParentResourceId, "new title",
|
| - base::Time::FromUTCExploded(kModifiedDate),
|
| - base::Time::FromUTCExploded(kViewedDate),
|
| - google_apis::drive::Properties(),
|
| - test_util::CreateCopyResultCallback(&error, &entry));
|
| - base::RunLoop().RunUntilIdle();
|
| -
|
| - EXPECT_EQ(HTTP_SUCCESS, error);
|
| - ASSERT_TRUE(entry);
|
| - // The updated entry should have the new title.
|
| - EXPECT_EQ(kResourceId, entry->file_id());
|
| - EXPECT_EQ("new title", entry->title());
|
| - EXPECT_EQ(base::Time::FromUTCExploded(kModifiedDate),
|
| - entry->modified_date());
|
| - EXPECT_EQ(base::Time::FromUTCExploded(kViewedDate),
|
| - entry->last_viewed_by_me_date());
|
| - EXPECT_TRUE(HasParent(kResourceId, kParentResourceId));
|
| - // Should be incremented as a new hosted document was created.
|
| - EXPECT_EQ(old_largest_change_id + 1,
|
| - fake_service_.about_resource().largest_change_id());
|
| - EXPECT_EQ(old_largest_change_id + 1, GetLargestChangeByAboutResource());
|
| -}
|
| -
|
| -TEST_F(FakeDriveServiceTest, UpdateResource_NonExisting) {
|
| - ASSERT_TRUE(test_util::SetUpTestEntries(&fake_service_));
|
| -
|
| - const std::string kResourceId = "nonexisting_resource_id";
|
| - DriveApiErrorCode error = DRIVE_OTHER_ERROR;
|
| - scoped_ptr<FileResource> entry;
|
| - fake_service_.UpdateResource(
|
| - kResourceId, "1_folder_resource_id", "new title", base::Time(),
|
| - base::Time(), google_apis::drive::Properties(),
|
| - test_util::CreateCopyResultCallback(&error, &entry));
|
| - base::RunLoop().RunUntilIdle();
|
| -
|
| - EXPECT_EQ(HTTP_NOT_FOUND, error);
|
| -}
|
| -
|
| -TEST_F(FakeDriveServiceTest, UpdateResource_EmptyParentResourceId) {
|
| - ASSERT_TRUE(test_util::SetUpTestEntries(&fake_service_));
|
| -
|
| - int64 old_largest_change_id = GetLargestChangeByAboutResource();
|
| -
|
| - const std::string kResourceId = "2_file_resource_id";
|
| -
|
| - // Just make sure that the resource is under root.
|
| - ASSERT_TRUE(HasParent(kResourceId, "fake_root"));
|
| -
|
| - DriveApiErrorCode error = DRIVE_OTHER_ERROR;
|
| - scoped_ptr<FileResource> entry;
|
| - fake_service_.UpdateResource(
|
| - kResourceId, std::string(), "new title", base::Time(), base::Time(),
|
| - google_apis::drive::Properties(),
|
| - test_util::CreateCopyResultCallback(&error, &entry));
|
| - base::RunLoop().RunUntilIdle();
|
| -
|
| - EXPECT_EQ(HTTP_SUCCESS, error);
|
| - ASSERT_TRUE(entry);
|
| - // The updated entry should have the new title.
|
| - EXPECT_EQ(kResourceId, entry->file_id());
|
| - EXPECT_EQ("new title", entry->title());
|
| - EXPECT_TRUE(HasParent(kResourceId, "fake_root"));
|
| - // Should be incremented as a new hosted document was created.
|
| - EXPECT_EQ(old_largest_change_id + 1,
|
| - fake_service_.about_resource().largest_change_id());
|
| - EXPECT_EQ(old_largest_change_id + 1, GetLargestChangeByAboutResource());
|
| -}
|
| -
|
| -TEST_F(FakeDriveServiceTest, UpdateResource_Offline) {
|
| - ASSERT_TRUE(test_util::SetUpTestEntries(&fake_service_));
|
| - fake_service_.set_offline(true);
|
| -
|
| - const std::string kResourceId = "2_file_resource_id";
|
| - DriveApiErrorCode error = DRIVE_OTHER_ERROR;
|
| - scoped_ptr<FileResource> entry;
|
| - fake_service_.UpdateResource(
|
| - kResourceId, std::string(), "new title", base::Time(), base::Time(),
|
| - google_apis::drive::Properties(),
|
| - test_util::CreateCopyResultCallback(&error, &entry));
|
| - base::RunLoop().RunUntilIdle();
|
| -
|
| - EXPECT_EQ(DRIVE_NO_CONNECTION, error);
|
| - EXPECT_FALSE(entry);
|
| -}
|
| -
|
| -TEST_F(FakeDriveServiceTest, UpdateResource_Forbidden) {
|
| - ASSERT_TRUE(test_util::SetUpTestEntries(&fake_service_));
|
| -
|
| - const std::string kResourceId = "2_file_resource_id";
|
| - EXPECT_EQ(HTTP_SUCCESS, fake_service_.SetUserPermission(
|
| - kResourceId, google_apis::drive::PERMISSION_ROLE_READER));
|
| -
|
| - DriveApiErrorCode error = DRIVE_OTHER_ERROR;
|
| - scoped_ptr<FileResource> entry;
|
| - fake_service_.UpdateResource(
|
| - kResourceId, std::string(), "new title", base::Time(), base::Time(),
|
| - google_apis::drive::Properties(),
|
| - test_util::CreateCopyResultCallback(&error, &entry));
|
| - base::RunLoop().RunUntilIdle();
|
| -
|
| - EXPECT_EQ(HTTP_FORBIDDEN, error);
|
| - EXPECT_FALSE(entry);
|
| -}
|
| -
|
| -TEST_F(FakeDriveServiceTest, AddResourceToDirectory_FileInRootDirectory) {
|
| - ASSERT_TRUE(test_util::SetUpTestEntries(&fake_service_));
|
| -
|
| - int64 old_largest_change_id = GetLargestChangeByAboutResource();
|
| -
|
| - const std::string kResourceId = "2_file_resource_id";
|
| - const std::string kOldParentResourceId = fake_service_.GetRootResourceId();
|
| - const std::string kNewParentResourceId = "1_folder_resource_id";
|
| -
|
| - // Here's the original parent link.
|
| - EXPECT_TRUE(HasParent(kResourceId, kOldParentResourceId));
|
| - EXPECT_FALSE(HasParent(kResourceId, kNewParentResourceId));
|
| -
|
| - DriveApiErrorCode error = DRIVE_OTHER_ERROR;
|
| - fake_service_.AddResourceToDirectory(
|
| - kNewParentResourceId,
|
| - kResourceId,
|
| - test_util::CreateCopyResultCallback(&error));
|
| - base::RunLoop().RunUntilIdle();
|
| -
|
| - EXPECT_EQ(HTTP_SUCCESS, error);
|
| -
|
| - // The parent link should now be changed.
|
| - EXPECT_TRUE(HasParent(kResourceId, kOldParentResourceId));
|
| - EXPECT_TRUE(HasParent(kResourceId, kNewParentResourceId));
|
| - // Should be incremented as a file was moved.
|
| - EXPECT_EQ(old_largest_change_id + 1,
|
| - fake_service_.about_resource().largest_change_id());
|
| - EXPECT_EQ(old_largest_change_id + 1, GetLargestChangeByAboutResource());
|
| -}
|
| -
|
| -TEST_F(FakeDriveServiceTest, AddResourceToDirectory_FileInNonRootDirectory) {
|
| - ASSERT_TRUE(test_util::SetUpTestEntries(&fake_service_));
|
| -
|
| - int64 old_largest_change_id = GetLargestChangeByAboutResource();
|
| -
|
| - const std::string kResourceId = "subdirectory_file_1_id";
|
| - const std::string kOldParentResourceId = "1_folder_resource_id";
|
| - const std::string kNewParentResourceId = "2_folder_resource_id";
|
| -
|
| - // Here's the original parent link.
|
| - EXPECT_TRUE(HasParent(kResourceId, kOldParentResourceId));
|
| - EXPECT_FALSE(HasParent(kResourceId, kNewParentResourceId));
|
| -
|
| - DriveApiErrorCode error = DRIVE_OTHER_ERROR;
|
| - fake_service_.AddResourceToDirectory(
|
| - kNewParentResourceId,
|
| - kResourceId,
|
| - test_util::CreateCopyResultCallback(&error));
|
| - base::RunLoop().RunUntilIdle();
|
| -
|
| - EXPECT_EQ(HTTP_SUCCESS, error);
|
| -
|
| - // The parent link should now be changed.
|
| - EXPECT_TRUE(HasParent(kResourceId, kOldParentResourceId));
|
| - EXPECT_TRUE(HasParent(kResourceId, kNewParentResourceId));
|
| - // Should be incremented as a file was moved.
|
| - EXPECT_EQ(old_largest_change_id + 1,
|
| - fake_service_.about_resource().largest_change_id());
|
| - EXPECT_EQ(old_largest_change_id + 1, GetLargestChangeByAboutResource());
|
| -}
|
| -
|
| -TEST_F(FakeDriveServiceTest, AddResourceToDirectory_NonexistingFile) {
|
| - ASSERT_TRUE(test_util::SetUpTestEntries(&fake_service_));
|
| -
|
| - const std::string kResourceId = "nonexisting_file";
|
| - const std::string kNewParentResourceId = "1_folder_resource_id";
|
| -
|
| - DriveApiErrorCode error = DRIVE_OTHER_ERROR;
|
| - fake_service_.AddResourceToDirectory(
|
| - kNewParentResourceId,
|
| - kResourceId,
|
| - test_util::CreateCopyResultCallback(&error));
|
| - base::RunLoop().RunUntilIdle();
|
| -
|
| - EXPECT_EQ(HTTP_NOT_FOUND, error);
|
| -}
|
| -
|
| -TEST_F(FakeDriveServiceTest, AddResourceToDirectory_OrphanFile) {
|
| - ASSERT_TRUE(test_util::SetUpTestEntries(&fake_service_));
|
| -
|
| - int64 old_largest_change_id = GetLargestChangeByAboutResource();
|
| -
|
| - const std::string kResourceId = "1_orphanfile_resource_id";
|
| - const std::string kNewParentResourceId = "1_folder_resource_id";
|
| -
|
| - // The file does not belong to any directory, even to the root.
|
| - EXPECT_FALSE(HasParent(kResourceId, kNewParentResourceId));
|
| - EXPECT_FALSE(HasParent(kResourceId, fake_service_.GetRootResourceId()));
|
| -
|
| - DriveApiErrorCode error = DRIVE_OTHER_ERROR;
|
| - fake_service_.AddResourceToDirectory(
|
| - kNewParentResourceId,
|
| - kResourceId,
|
| - test_util::CreateCopyResultCallback(&error));
|
| - base::RunLoop().RunUntilIdle();
|
| -
|
| - EXPECT_EQ(HTTP_SUCCESS, error);
|
| -
|
| - // The parent link should now be changed.
|
| - EXPECT_TRUE(HasParent(kResourceId, kNewParentResourceId));
|
| - EXPECT_FALSE(HasParent(kResourceId, fake_service_.GetRootResourceId()));
|
| - // Should be incremented as a file was moved.
|
| - EXPECT_EQ(old_largest_change_id + 1,
|
| - fake_service_.about_resource().largest_change_id());
|
| - EXPECT_EQ(old_largest_change_id + 1, GetLargestChangeByAboutResource());
|
| -}
|
| -
|
| -TEST_F(FakeDriveServiceTest, AddResourceToDirectory_Offline) {
|
| - ASSERT_TRUE(test_util::SetUpTestEntries(&fake_service_));
|
| - fake_service_.set_offline(true);
|
| -
|
| - const std::string kResourceId = "2_file_resource_id";
|
| - const std::string kNewParentResourceId = "1_folder_resource_id";
|
| -
|
| - DriveApiErrorCode error = DRIVE_OTHER_ERROR;
|
| - fake_service_.AddResourceToDirectory(
|
| - kNewParentResourceId,
|
| - kResourceId,
|
| - test_util::CreateCopyResultCallback(&error));
|
| - base::RunLoop().RunUntilIdle();
|
| -
|
| - EXPECT_EQ(DRIVE_NO_CONNECTION, error);
|
| -}
|
| -
|
| -TEST_F(FakeDriveServiceTest, RemoveResourceFromDirectory_ExistingFile) {
|
| - ASSERT_TRUE(test_util::SetUpTestEntries(&fake_service_));
|
| -
|
| - int64 old_largest_change_id = GetLargestChangeByAboutResource();
|
| -
|
| - const std::string kResourceId = "subdirectory_file_1_id";
|
| - const std::string kParentResourceId = "1_folder_resource_id";
|
| -
|
| - scoped_ptr<FileResource> entry = FindEntry(kResourceId);
|
| - ASSERT_TRUE(entry);
|
| - // The entry should have a parent now.
|
| - ASSERT_FALSE(entry->parents().empty());
|
| -
|
| - DriveApiErrorCode error = DRIVE_OTHER_ERROR;
|
| - fake_service_.RemoveResourceFromDirectory(
|
| - kParentResourceId,
|
| - kResourceId,
|
| - test_util::CreateCopyResultCallback(&error));
|
| - base::RunLoop().RunUntilIdle();
|
| -
|
| - EXPECT_EQ(HTTP_NO_CONTENT, error);
|
| -
|
| - entry = FindEntry(kResourceId);
|
| - ASSERT_TRUE(entry);
|
| - // The entry should have no parent now.
|
| - ASSERT_TRUE(entry->parents().empty());
|
| - // Should be incremented as a file was moved to the root directory.
|
| - EXPECT_EQ(old_largest_change_id + 1,
|
| - fake_service_.about_resource().largest_change_id());
|
| - EXPECT_EQ(old_largest_change_id + 1, GetLargestChangeByAboutResource());
|
| -}
|
| -
|
| -TEST_F(FakeDriveServiceTest, RemoveResourceFromDirectory_NonexistingFile) {
|
| - ASSERT_TRUE(test_util::SetUpTestEntries(&fake_service_));
|
| -
|
| - const std::string kResourceId = "nonexisting_file";
|
| - const std::string kParentResourceId = "1_folder_resource_id";
|
| -
|
| - DriveApiErrorCode error = DRIVE_OTHER_ERROR;
|
| - fake_service_.RemoveResourceFromDirectory(
|
| - kParentResourceId,
|
| - kResourceId,
|
| - test_util::CreateCopyResultCallback(&error));
|
| - base::RunLoop().RunUntilIdle();
|
| -
|
| - EXPECT_EQ(HTTP_NOT_FOUND, error);
|
| -}
|
| -
|
| -TEST_F(FakeDriveServiceTest, RemoveResourceFromDirectory_OrphanFile) {
|
| - ASSERT_TRUE(test_util::SetUpTestEntries(&fake_service_));
|
| -
|
| - const std::string kResourceId = "1_orphanfile_resource_id";
|
| - const std::string kParentResourceId = fake_service_.GetRootResourceId();
|
| -
|
| - DriveApiErrorCode error = DRIVE_OTHER_ERROR;
|
| - fake_service_.RemoveResourceFromDirectory(
|
| - kParentResourceId,
|
| - kResourceId,
|
| - test_util::CreateCopyResultCallback(&error));
|
| - base::RunLoop().RunUntilIdle();
|
| -
|
| - EXPECT_EQ(HTTP_NOT_FOUND, error);
|
| -}
|
| -
|
| -TEST_F(FakeDriveServiceTest, RemoveResourceFromDirectory_Offline) {
|
| - ASSERT_TRUE(test_util::SetUpTestEntries(&fake_service_));
|
| - fake_service_.set_offline(true);
|
| -
|
| - const std::string kResourceId = "subdirectory_file_1_id";
|
| - const std::string kParentResourceId = "1_folder_resource_id";
|
| -
|
| - DriveApiErrorCode error = DRIVE_OTHER_ERROR;
|
| - fake_service_.RemoveResourceFromDirectory(
|
| - kParentResourceId,
|
| - kResourceId,
|
| - test_util::CreateCopyResultCallback(&error));
|
| - base::RunLoop().RunUntilIdle();
|
| -
|
| - EXPECT_EQ(DRIVE_NO_CONNECTION, error);
|
| -}
|
| -
|
| -TEST_F(FakeDriveServiceTest, AddNewDirectory_EmptyParent) {
|
| - ASSERT_TRUE(test_util::SetUpTestEntries(&fake_service_));
|
| -
|
| - int64 old_largest_change_id = GetLargestChangeByAboutResource();
|
| -
|
| - DriveApiErrorCode error = DRIVE_OTHER_ERROR;
|
| - scoped_ptr<FileResource> entry;
|
| - fake_service_.AddNewDirectory(
|
| - std::string(), "new directory", AddNewDirectoryOptions(),
|
| - test_util::CreateCopyResultCallback(&error, &entry));
|
| - base::RunLoop().RunUntilIdle();
|
| -
|
| - EXPECT_EQ(HTTP_CREATED, error);
|
| - ASSERT_TRUE(entry);
|
| - EXPECT_TRUE(entry->IsDirectory());
|
| - EXPECT_EQ("resource_id_1", entry->file_id());
|
| - EXPECT_EQ("new directory", entry->title());
|
| - EXPECT_TRUE(HasParent(entry->file_id(), fake_service_.GetRootResourceId()));
|
| - // Should be incremented as a new directory was created.
|
| - EXPECT_EQ(old_largest_change_id + 1,
|
| - fake_service_.about_resource().largest_change_id());
|
| - EXPECT_EQ(old_largest_change_id + 1, GetLargestChangeByAboutResource());
|
| -}
|
| -
|
| -TEST_F(FakeDriveServiceTest, AddNewDirectory_ToRootDirectory) {
|
| - ASSERT_TRUE(test_util::SetUpTestEntries(&fake_service_));
|
| -
|
| - int64 old_largest_change_id = GetLargestChangeByAboutResource();
|
| -
|
| - DriveApiErrorCode error = DRIVE_OTHER_ERROR;
|
| - scoped_ptr<FileResource> entry;
|
| - fake_service_.AddNewDirectory(
|
| - fake_service_.GetRootResourceId(), "new directory",
|
| - AddNewDirectoryOptions(),
|
| - test_util::CreateCopyResultCallback(&error, &entry));
|
| - base::RunLoop().RunUntilIdle();
|
| -
|
| - EXPECT_EQ(HTTP_CREATED, error);
|
| - ASSERT_TRUE(entry);
|
| - EXPECT_TRUE(entry->IsDirectory());
|
| - EXPECT_EQ("resource_id_1", entry->file_id());
|
| - EXPECT_EQ("new directory", entry->title());
|
| - EXPECT_TRUE(HasParent(entry->file_id(), fake_service_.GetRootResourceId()));
|
| - // Should be incremented as a new directory was created.
|
| - EXPECT_EQ(old_largest_change_id + 1,
|
| - fake_service_.about_resource().largest_change_id());
|
| - EXPECT_EQ(old_largest_change_id + 1, GetLargestChangeByAboutResource());
|
| -}
|
| -
|
| -TEST_F(FakeDriveServiceTest, AddNewDirectory_ToRootDirectoryOnEmptyFileSystem) {
|
| - int64 old_largest_change_id = GetLargestChangeByAboutResource();
|
| -
|
| - DriveApiErrorCode error = DRIVE_OTHER_ERROR;
|
| - scoped_ptr<FileResource> entry;
|
| - fake_service_.AddNewDirectory(
|
| - fake_service_.GetRootResourceId(), "new directory",
|
| - AddNewDirectoryOptions(),
|
| - test_util::CreateCopyResultCallback(&error, &entry));
|
| - base::RunLoop().RunUntilIdle();
|
| -
|
| - EXPECT_EQ(HTTP_CREATED, error);
|
| - ASSERT_TRUE(entry);
|
| - EXPECT_TRUE(entry->IsDirectory());
|
| - EXPECT_EQ("resource_id_1", entry->file_id());
|
| - EXPECT_EQ("new directory", entry->title());
|
| - EXPECT_TRUE(HasParent(entry->file_id(), fake_service_.GetRootResourceId()));
|
| - // Should be incremented as a new directory was created.
|
| - EXPECT_EQ(old_largest_change_id + 1,
|
| - fake_service_.about_resource().largest_change_id());
|
| - EXPECT_EQ(old_largest_change_id + 1, GetLargestChangeByAboutResource());
|
| -}
|
| -
|
| -TEST_F(FakeDriveServiceTest, AddNewDirectory_ToNonRootDirectory) {
|
| - ASSERT_TRUE(test_util::SetUpTestEntries(&fake_service_));
|
| -
|
| - int64 old_largest_change_id = GetLargestChangeByAboutResource();
|
| -
|
| - const std::string kParentResourceId = "1_folder_resource_id";
|
| -
|
| - DriveApiErrorCode error = DRIVE_OTHER_ERROR;
|
| - scoped_ptr<FileResource> entry;
|
| - fake_service_.AddNewDirectory(
|
| - kParentResourceId, "new directory", AddNewDirectoryOptions(),
|
| - test_util::CreateCopyResultCallback(&error, &entry));
|
| - base::RunLoop().RunUntilIdle();
|
| -
|
| - EXPECT_EQ(HTTP_CREATED, error);
|
| - ASSERT_TRUE(entry);
|
| - EXPECT_TRUE(entry->IsDirectory());
|
| - EXPECT_EQ("resource_id_1", entry->file_id());
|
| - EXPECT_EQ("new directory", entry->title());
|
| - EXPECT_TRUE(HasParent(entry->file_id(), kParentResourceId));
|
| - // Should be incremented as a new directory was created.
|
| - EXPECT_EQ(old_largest_change_id + 1,
|
| - fake_service_.about_resource().largest_change_id());
|
| - EXPECT_EQ(old_largest_change_id + 1, GetLargestChangeByAboutResource());
|
| -}
|
| -
|
| -TEST_F(FakeDriveServiceTest, AddNewDirectory_ToNonexistingDirectory) {
|
| - ASSERT_TRUE(test_util::SetUpTestEntries(&fake_service_));
|
| -
|
| - const std::string kParentResourceId = "nonexisting_resource_id";
|
| -
|
| - DriveApiErrorCode error = DRIVE_OTHER_ERROR;
|
| - scoped_ptr<FileResource> entry;
|
| - fake_service_.AddNewDirectory(
|
| - kParentResourceId, "new directory", AddNewDirectoryOptions(),
|
| - test_util::CreateCopyResultCallback(&error, &entry));
|
| - base::RunLoop().RunUntilIdle();
|
| -
|
| - EXPECT_EQ(HTTP_NOT_FOUND, error);
|
| - EXPECT_FALSE(entry);
|
| -}
|
| -
|
| -TEST_F(FakeDriveServiceTest, AddNewDirectory_Offline) {
|
| - ASSERT_TRUE(test_util::SetUpTestEntries(&fake_service_));
|
| - fake_service_.set_offline(true);
|
| -
|
| - DriveApiErrorCode error = DRIVE_OTHER_ERROR;
|
| - scoped_ptr<FileResource> entry;
|
| - fake_service_.AddNewDirectory(
|
| - fake_service_.GetRootResourceId(), "new directory",
|
| - AddNewDirectoryOptions(),
|
| - test_util::CreateCopyResultCallback(&error, &entry));
|
| - base::RunLoop().RunUntilIdle();
|
| -
|
| - EXPECT_EQ(DRIVE_NO_CONNECTION, error);
|
| - EXPECT_FALSE(entry);
|
| -}
|
| -
|
| -TEST_F(FakeDriveServiceTest, InitiateUploadNewFile_Offline) {
|
| - ASSERT_TRUE(test_util::SetUpTestEntries(&fake_service_));
|
| - fake_service_.set_offline(true);
|
| -
|
| - DriveApiErrorCode error = DRIVE_OTHER_ERROR;
|
| - GURL upload_location;
|
| - fake_service_.InitiateUploadNewFile(
|
| - "test/foo", 13, "1_folder_resource_id", "new file.foo",
|
| - UploadNewFileOptions(),
|
| - test_util::CreateCopyResultCallback(&error, &upload_location));
|
| - base::RunLoop().RunUntilIdle();
|
| -
|
| - EXPECT_EQ(DRIVE_NO_CONNECTION, error);
|
| - EXPECT_TRUE(upload_location.is_empty());
|
| -}
|
| -
|
| -TEST_F(FakeDriveServiceTest, InitiateUploadNewFile_NotFound) {
|
| - ASSERT_TRUE(test_util::SetUpTestEntries(&fake_service_));
|
| -
|
| - DriveApiErrorCode error = DRIVE_OTHER_ERROR;
|
| - GURL upload_location;
|
| - fake_service_.InitiateUploadNewFile(
|
| - "test/foo", 13, "non_existent", "new file.foo", UploadNewFileOptions(),
|
| - test_util::CreateCopyResultCallback(&error, &upload_location));
|
| - base::RunLoop().RunUntilIdle();
|
| -
|
| - EXPECT_EQ(HTTP_NOT_FOUND, error);
|
| - EXPECT_TRUE(upload_location.is_empty());
|
| -}
|
| -
|
| -TEST_F(FakeDriveServiceTest, InitiateUploadNewFile) {
|
| - ASSERT_TRUE(test_util::SetUpTestEntries(&fake_service_));
|
| -
|
| - DriveApiErrorCode error = DRIVE_OTHER_ERROR;
|
| - GURL upload_location;
|
| - fake_service_.InitiateUploadNewFile(
|
| - "test/foo", 13, "1_folder_resource_id", "new file.foo",
|
| - UploadNewFileOptions(),
|
| - test_util::CreateCopyResultCallback(&error, &upload_location));
|
| - base::RunLoop().RunUntilIdle();
|
| -
|
| - EXPECT_EQ(HTTP_SUCCESS, error);
|
| - EXPECT_FALSE(upload_location.is_empty());
|
| - EXPECT_NE(GURL("https://1_folder_resumable_create_media_link?mode=newfile"),
|
| - upload_location);
|
| -}
|
| -
|
| -TEST_F(FakeDriveServiceTest, InitiateUploadExistingFile_Offline) {
|
| - ASSERT_TRUE(test_util::SetUpTestEntries(&fake_service_));
|
| - fake_service_.set_offline(true);
|
| -
|
| - DriveApiErrorCode error = DRIVE_OTHER_ERROR;
|
| - GURL upload_location;
|
| - fake_service_.InitiateUploadExistingFile(
|
| - "test/foo", 13, "2_file_resource_id", UploadExistingFileOptions(),
|
| - test_util::CreateCopyResultCallback(&error, &upload_location));
|
| - base::RunLoop().RunUntilIdle();
|
| -
|
| - EXPECT_EQ(DRIVE_NO_CONNECTION, error);
|
| - EXPECT_TRUE(upload_location.is_empty());
|
| -}
|
| -
|
| -TEST_F(FakeDriveServiceTest, InitiateUploadExistingFile_Forbidden) {
|
| - ASSERT_TRUE(test_util::SetUpTestEntries(&fake_service_));
|
| -
|
| - EXPECT_EQ(HTTP_SUCCESS, fake_service_.SetUserPermission(
|
| - "2_file_resource_id", google_apis::drive::PERMISSION_ROLE_READER));
|
| -
|
| - DriveApiErrorCode error = DRIVE_OTHER_ERROR;
|
| - GURL upload_location;
|
| - fake_service_.InitiateUploadExistingFile(
|
| - "test/foo", 13, "2_file_resource_id", UploadExistingFileOptions(),
|
| - test_util::CreateCopyResultCallback(&error, &upload_location));
|
| - base::RunLoop().RunUntilIdle();
|
| -
|
| - EXPECT_EQ(HTTP_FORBIDDEN, error);
|
| - EXPECT_TRUE(upload_location.is_empty());
|
| -}
|
| -
|
| -TEST_F(FakeDriveServiceTest, InitiateUploadExistingFile_NotFound) {
|
| - ASSERT_TRUE(test_util::SetUpTestEntries(&fake_service_));
|
| -
|
| - DriveApiErrorCode error = DRIVE_OTHER_ERROR;
|
| - GURL upload_location;
|
| - fake_service_.InitiateUploadExistingFile(
|
| - "test/foo", 13, "non_existent", UploadExistingFileOptions(),
|
| - test_util::CreateCopyResultCallback(&error, &upload_location));
|
| - base::RunLoop().RunUntilIdle();
|
| -
|
| - EXPECT_EQ(HTTP_NOT_FOUND, error);
|
| - EXPECT_TRUE(upload_location.is_empty());
|
| -}
|
| -
|
| -TEST_F(FakeDriveServiceTest, InitiateUploadExistingFile_WrongETag) {
|
| - ASSERT_TRUE(test_util::SetUpTestEntries(&fake_service_));
|
| -
|
| - UploadExistingFileOptions options;
|
| - options.etag = "invalid_etag";
|
| -
|
| - DriveApiErrorCode error = DRIVE_OTHER_ERROR;
|
| - GURL upload_location;
|
| - fake_service_.InitiateUploadExistingFile(
|
| - "text/plain",
|
| - 13,
|
| - "2_file_resource_id",
|
| - options,
|
| - test_util::CreateCopyResultCallback(&error, &upload_location));
|
| - base::RunLoop().RunUntilIdle();
|
| -
|
| - EXPECT_EQ(HTTP_PRECONDITION, error);
|
| - EXPECT_TRUE(upload_location.is_empty());
|
| -}
|
| -
|
| -TEST_F(FakeDriveServiceTest, InitiateUpload_ExistingFile) {
|
| - ASSERT_TRUE(test_util::SetUpTestEntries(&fake_service_));
|
| -
|
| - scoped_ptr<FileResource> entry = FindEntry("2_file_resource_id");
|
| - ASSERT_TRUE(entry);
|
| -
|
| - UploadExistingFileOptions options;
|
| - options.etag = entry->etag();
|
| -
|
| - DriveApiErrorCode error = DRIVE_OTHER_ERROR;
|
| - GURL upload_location;
|
| - fake_service_.InitiateUploadExistingFile(
|
| - "text/plain",
|
| - 13,
|
| - "2_file_resource_id",
|
| - options,
|
| - test_util::CreateCopyResultCallback(&error, &upload_location));
|
| - base::RunLoop().RunUntilIdle();
|
| -
|
| - EXPECT_EQ(HTTP_SUCCESS, error);
|
| - EXPECT_TRUE(upload_location.is_valid());
|
| -}
|
| -
|
| -TEST_F(FakeDriveServiceTest, ResumeUpload_Offline) {
|
| - ASSERT_TRUE(test_util::SetUpTestEntries(&fake_service_));
|
| -
|
| - DriveApiErrorCode error = DRIVE_OTHER_ERROR;
|
| - GURL upload_location;
|
| - fake_service_.InitiateUploadNewFile(
|
| - "test/foo", 15, "1_folder_resource_id", "new file.foo",
|
| - UploadNewFileOptions(),
|
| - test_util::CreateCopyResultCallback(&error, &upload_location));
|
| - base::RunLoop().RunUntilIdle();
|
| -
|
| - EXPECT_EQ(HTTP_SUCCESS, error);
|
| - EXPECT_FALSE(upload_location.is_empty());
|
| - EXPECT_NE(GURL("https://1_folder_resumable_create_media_link"),
|
| - upload_location);
|
| -
|
| - fake_service_.set_offline(true);
|
| -
|
| - UploadRangeResponse response;
|
| - scoped_ptr<FileResource> entry;
|
| - fake_service_.ResumeUpload(
|
| - upload_location,
|
| - 0, 13, 15, "test/foo",
|
| - base::FilePath(),
|
| - test_util::CreateCopyResultCallback(&response, &entry),
|
| - ProgressCallback());
|
| - base::RunLoop().RunUntilIdle();
|
| -
|
| - EXPECT_EQ(DRIVE_NO_CONNECTION, response.code);
|
| - EXPECT_FALSE(entry.get());
|
| -}
|
| -
|
| -TEST_F(FakeDriveServiceTest, ResumeUpload_NotFound) {
|
| - ASSERT_TRUE(test_util::SetUpTestEntries(&fake_service_));
|
| -
|
| - DriveApiErrorCode error = DRIVE_OTHER_ERROR;
|
| - GURL upload_location;
|
| - fake_service_.InitiateUploadNewFile(
|
| - "test/foo", 15, "1_folder_resource_id", "new file.foo",
|
| - UploadNewFileOptions(),
|
| - test_util::CreateCopyResultCallback(&error, &upload_location));
|
| - base::RunLoop().RunUntilIdle();
|
| -
|
| - ASSERT_EQ(HTTP_SUCCESS, error);
|
| -
|
| - UploadRangeResponse response;
|
| - scoped_ptr<FileResource> entry;
|
| - fake_service_.ResumeUpload(
|
| - GURL("https://foo.com/"),
|
| - 0, 13, 15, "test/foo",
|
| - base::FilePath(),
|
| - test_util::CreateCopyResultCallback(&response, &entry),
|
| - ProgressCallback());
|
| - base::RunLoop().RunUntilIdle();
|
| -
|
| - EXPECT_EQ(HTTP_NOT_FOUND, response.code);
|
| - EXPECT_FALSE(entry.get());
|
| -}
|
| -
|
| -TEST_F(FakeDriveServiceTest, ResumeUpload_ExistingFile) {
|
| - base::ScopedTempDir temp_dir;
|
| - ASSERT_TRUE(temp_dir.CreateUniqueTempDir());
|
| - base::FilePath local_file_path =
|
| - temp_dir.path().Append(FILE_PATH_LITERAL("File 1.txt"));
|
| - std::string contents("hogefugapiyo");
|
| - ASSERT_TRUE(test_util::WriteStringToFile(local_file_path, contents));
|
| -
|
| - ASSERT_TRUE(test_util::SetUpTestEntries(&fake_service_));
|
| -
|
| - scoped_ptr<FileResource> entry = FindEntry("2_file_resource_id");
|
| - ASSERT_TRUE(entry);
|
| -
|
| - UploadExistingFileOptions options;
|
| - options.etag = entry->etag();
|
| -
|
| - DriveApiErrorCode error = DRIVE_OTHER_ERROR;
|
| - GURL upload_location;
|
| - fake_service_.InitiateUploadExistingFile(
|
| - "text/plain",
|
| - contents.size(),
|
| - "2_file_resource_id",
|
| - options,
|
| - test_util::CreateCopyResultCallback(&error, &upload_location));
|
| - base::RunLoop().RunUntilIdle();
|
| -
|
| - ASSERT_EQ(HTTP_SUCCESS, error);
|
| -
|
| - UploadRangeResponse response;
|
| - entry.reset();
|
| - std::vector<test_util::ProgressInfo> upload_progress_values;
|
| - fake_service_.ResumeUpload(
|
| - upload_location,
|
| - 0, contents.size() / 2, contents.size(), "text/plain",
|
| - local_file_path,
|
| - test_util::CreateCopyResultCallback(&response, &entry),
|
| - base::Bind(&test_util::AppendProgressCallbackResult,
|
| - &upload_progress_values));
|
| - base::RunLoop().RunUntilIdle();
|
| -
|
| - EXPECT_EQ(HTTP_RESUME_INCOMPLETE, response.code);
|
| - EXPECT_FALSE(entry.get());
|
| - ASSERT_TRUE(!upload_progress_values.empty());
|
| - EXPECT_TRUE(base::STLIsSorted(upload_progress_values));
|
| - EXPECT_LE(0, upload_progress_values.front().first);
|
| - EXPECT_GE(static_cast<int64>(contents.size() / 2),
|
| - upload_progress_values.back().first);
|
| -
|
| - upload_progress_values.clear();
|
| - fake_service_.ResumeUpload(
|
| - upload_location,
|
| - contents.size() / 2, contents.size(), contents.size(), "text/plain",
|
| - local_file_path,
|
| - test_util::CreateCopyResultCallback(&response, &entry),
|
| - base::Bind(&test_util::AppendProgressCallbackResult,
|
| - &upload_progress_values));
|
| - base::RunLoop().RunUntilIdle();
|
| -
|
| - EXPECT_EQ(HTTP_SUCCESS, response.code);
|
| - EXPECT_TRUE(entry.get());
|
| - EXPECT_EQ(static_cast<int64>(contents.size()), entry->file_size());
|
| - EXPECT_TRUE(Exists(entry->file_id()));
|
| - ASSERT_TRUE(!upload_progress_values.empty());
|
| - EXPECT_TRUE(base::STLIsSorted(upload_progress_values));
|
| - EXPECT_LE(0, upload_progress_values.front().first);
|
| - EXPECT_GE(static_cast<int64>(contents.size() - contents.size() / 2),
|
| - upload_progress_values.back().first);
|
| - EXPECT_EQ(base::MD5String(contents), entry->md5_checksum());
|
| -}
|
| -
|
| -TEST_F(FakeDriveServiceTest, ResumeUpload_NewFile) {
|
| - base::ScopedTempDir temp_dir;
|
| - ASSERT_TRUE(temp_dir.CreateUniqueTempDir());
|
| - base::FilePath local_file_path =
|
| - temp_dir.path().Append(FILE_PATH_LITERAL("new file.foo"));
|
| - std::string contents("hogefugapiyo");
|
| - ASSERT_TRUE(test_util::WriteStringToFile(local_file_path, contents));
|
| -
|
| - ASSERT_TRUE(test_util::SetUpTestEntries(&fake_service_));
|
| -
|
| - DriveApiErrorCode error = DRIVE_OTHER_ERROR;
|
| - GURL upload_location;
|
| - fake_service_.InitiateUploadNewFile(
|
| - "test/foo", contents.size(), "1_folder_resource_id", "new file.foo",
|
| - UploadNewFileOptions(),
|
| - test_util::CreateCopyResultCallback(&error, &upload_location));
|
| - base::RunLoop().RunUntilIdle();
|
| -
|
| - EXPECT_EQ(HTTP_SUCCESS, error);
|
| - EXPECT_FALSE(upload_location.is_empty());
|
| - EXPECT_NE(GURL("https://1_folder_resumable_create_media_link"),
|
| - upload_location);
|
| -
|
| - UploadRangeResponse response;
|
| - scoped_ptr<FileResource> entry;
|
| - std::vector<test_util::ProgressInfo> upload_progress_values;
|
| - fake_service_.ResumeUpload(
|
| - upload_location,
|
| - 0, contents.size() / 2, contents.size(), "test/foo",
|
| - local_file_path,
|
| - test_util::CreateCopyResultCallback(&response, &entry),
|
| - base::Bind(&test_util::AppendProgressCallbackResult,
|
| - &upload_progress_values));
|
| - base::RunLoop().RunUntilIdle();
|
| -
|
| - EXPECT_EQ(HTTP_RESUME_INCOMPLETE, response.code);
|
| - EXPECT_FALSE(entry.get());
|
| - ASSERT_TRUE(!upload_progress_values.empty());
|
| - EXPECT_TRUE(base::STLIsSorted(upload_progress_values));
|
| - EXPECT_LE(0, upload_progress_values.front().first);
|
| - EXPECT_GE(static_cast<int64>(contents.size() / 2),
|
| - upload_progress_values.back().first);
|
| -
|
| - upload_progress_values.clear();
|
| - fake_service_.ResumeUpload(
|
| - upload_location,
|
| - contents.size() / 2, contents.size(), contents.size(), "test/foo",
|
| - local_file_path,
|
| - test_util::CreateCopyResultCallback(&response, &entry),
|
| - base::Bind(&test_util::AppendProgressCallbackResult,
|
| - &upload_progress_values));
|
| - base::RunLoop().RunUntilIdle();
|
| -
|
| - EXPECT_EQ(HTTP_CREATED, response.code);
|
| - EXPECT_TRUE(entry.get());
|
| - EXPECT_EQ(static_cast<int64>(contents.size()), entry->file_size());
|
| - EXPECT_TRUE(Exists(entry->file_id()));
|
| - ASSERT_TRUE(!upload_progress_values.empty());
|
| - EXPECT_TRUE(base::STLIsSorted(upload_progress_values));
|
| - EXPECT_LE(0, upload_progress_values.front().first);
|
| - EXPECT_GE(static_cast<int64>(contents.size() - contents.size() / 2),
|
| - upload_progress_values.back().first);
|
| - EXPECT_EQ(base::MD5String(contents), entry->md5_checksum());
|
| -}
|
| -
|
| -TEST_F(FakeDriveServiceTest, AddNewFile_ToRootDirectory) {
|
| - ASSERT_TRUE(test_util::SetUpTestEntries(&fake_service_));
|
| -
|
| - int64 old_largest_change_id = GetLargestChangeByAboutResource();
|
| -
|
| - const std::string kContentType = "text/plain";
|
| - const std::string kContentData = "This is some test content.";
|
| - const std::string kTitle = "new file";
|
| -
|
| - DriveApiErrorCode error = DRIVE_OTHER_ERROR;
|
| - scoped_ptr<FileResource> entry;
|
| - fake_service_.AddNewFile(
|
| - kContentType,
|
| - kContentData,
|
| - fake_service_.GetRootResourceId(),
|
| - kTitle,
|
| - false, // shared_with_me
|
| - test_util::CreateCopyResultCallback(&error, &entry));
|
| - base::RunLoop().RunUntilIdle();
|
| -
|
| - EXPECT_EQ(HTTP_CREATED, error);
|
| - ASSERT_TRUE(entry);
|
| - EXPECT_EQ(kContentType, entry->mime_type());
|
| - EXPECT_EQ(static_cast<int64>(kContentData.size()), entry->file_size());
|
| - EXPECT_EQ("resource_id_1", entry->file_id());
|
| - EXPECT_EQ(kTitle, entry->title());
|
| - EXPECT_TRUE(HasParent(entry->file_id(), fake_service_.GetRootResourceId()));
|
| - // Should be incremented as a new directory was created.
|
| - EXPECT_EQ(old_largest_change_id + 1,
|
| - fake_service_.about_resource().largest_change_id());
|
| - EXPECT_EQ(old_largest_change_id + 1, GetLargestChangeByAboutResource());
|
| - EXPECT_EQ(base::MD5String(kContentData), entry->md5_checksum());
|
| -}
|
| -
|
| -TEST_F(FakeDriveServiceTest, AddNewFile_ToRootDirectoryOnEmptyFileSystem) {
|
| - int64 old_largest_change_id = GetLargestChangeByAboutResource();
|
| -
|
| - const std::string kContentType = "text/plain";
|
| - const std::string kContentData = "This is some test content.";
|
| - const std::string kTitle = "new file";
|
| -
|
| - DriveApiErrorCode error = DRIVE_OTHER_ERROR;
|
| - scoped_ptr<FileResource> entry;
|
| - fake_service_.AddNewFile(
|
| - kContentType,
|
| - kContentData,
|
| - fake_service_.GetRootResourceId(),
|
| - kTitle,
|
| - false, // shared_with_me
|
| - test_util::CreateCopyResultCallback(&error, &entry));
|
| - base::RunLoop().RunUntilIdle();
|
| -
|
| - EXPECT_EQ(HTTP_CREATED, error);
|
| - ASSERT_TRUE(entry);
|
| - EXPECT_EQ(kContentType, entry->mime_type());
|
| - EXPECT_EQ(static_cast<int64>(kContentData.size()), entry->file_size());
|
| - EXPECT_EQ("resource_id_1", entry->file_id());
|
| - EXPECT_EQ(kTitle, entry->title());
|
| - EXPECT_TRUE(HasParent(entry->file_id(), fake_service_.GetRootResourceId()));
|
| - // Should be incremented as a new directory was created.
|
| - EXPECT_EQ(old_largest_change_id + 1,
|
| - fake_service_.about_resource().largest_change_id());
|
| - EXPECT_EQ(old_largest_change_id + 1, GetLargestChangeByAboutResource());
|
| - EXPECT_EQ(base::MD5String(kContentData), entry->md5_checksum());
|
| -}
|
| -
|
| -TEST_F(FakeDriveServiceTest, AddNewFile_ToNonRootDirectory) {
|
| - ASSERT_TRUE(test_util::SetUpTestEntries(&fake_service_));
|
| -
|
| - int64 old_largest_change_id = GetLargestChangeByAboutResource();
|
| -
|
| - const std::string kContentType = "text/plain";
|
| - const std::string kContentData = "This is some test content.";
|
| - const std::string kTitle = "new file";
|
| - const std::string kParentResourceId = "1_folder_resource_id";
|
| -
|
| - DriveApiErrorCode error = DRIVE_OTHER_ERROR;
|
| - scoped_ptr<FileResource> entry;
|
| - fake_service_.AddNewFile(
|
| - kContentType,
|
| - kContentData,
|
| - kParentResourceId,
|
| - kTitle,
|
| - false, // shared_with_me
|
| - test_util::CreateCopyResultCallback(&error, &entry));
|
| - base::RunLoop().RunUntilIdle();
|
| -
|
| - EXPECT_EQ(HTTP_CREATED, error);
|
| - ASSERT_TRUE(entry);
|
| - EXPECT_EQ(kContentType, entry->mime_type());
|
| - EXPECT_EQ(static_cast<int64>(kContentData.size()), entry->file_size());
|
| - EXPECT_EQ("resource_id_1", entry->file_id());
|
| - EXPECT_EQ(kTitle, entry->title());
|
| - EXPECT_TRUE(HasParent(entry->file_id(), kParentResourceId));
|
| - // Should be incremented as a new directory was created.
|
| - EXPECT_EQ(old_largest_change_id + 1,
|
| - fake_service_.about_resource().largest_change_id());
|
| - EXPECT_EQ(old_largest_change_id + 1, GetLargestChangeByAboutResource());
|
| - EXPECT_EQ(base::MD5String(kContentData), entry->md5_checksum());
|
| -}
|
| -
|
| -TEST_F(FakeDriveServiceTest, AddNewFile_ToNonexistingDirectory) {
|
| - ASSERT_TRUE(test_util::SetUpTestEntries(&fake_service_));
|
| -
|
| - const std::string kContentType = "text/plain";
|
| - const std::string kContentData = "This is some test content.";
|
| - const std::string kTitle = "new file";
|
| - const std::string kParentResourceId = "nonexisting_resource_id";
|
| -
|
| - DriveApiErrorCode error = DRIVE_OTHER_ERROR;
|
| - scoped_ptr<FileResource> entry;
|
| - fake_service_.AddNewFile(
|
| - kContentType,
|
| - kContentData,
|
| - kParentResourceId,
|
| - kTitle,
|
| - false, // shared_with_me
|
| - test_util::CreateCopyResultCallback(&error, &entry));
|
| - base::RunLoop().RunUntilIdle();
|
| -
|
| - EXPECT_EQ(HTTP_NOT_FOUND, error);
|
| - EXPECT_FALSE(entry);
|
| -}
|
| -
|
| -TEST_F(FakeDriveServiceTest, AddNewFile_Offline) {
|
| - ASSERT_TRUE(test_util::SetUpTestEntries(&fake_service_));
|
| - fake_service_.set_offline(true);
|
| -
|
| - const std::string kContentType = "text/plain";
|
| - const std::string kContentData = "This is some test content.";
|
| - const std::string kTitle = "new file";
|
| -
|
| - DriveApiErrorCode error = DRIVE_OTHER_ERROR;
|
| - scoped_ptr<FileResource> entry;
|
| - fake_service_.AddNewFile(
|
| - kContentType,
|
| - kContentData,
|
| - fake_service_.GetRootResourceId(),
|
| - kTitle,
|
| - false, // shared_with_me
|
| - test_util::CreateCopyResultCallback(&error, &entry));
|
| - base::RunLoop().RunUntilIdle();
|
| -
|
| - EXPECT_EQ(DRIVE_NO_CONNECTION, error);
|
| - EXPECT_FALSE(entry);
|
| -}
|
| -
|
| -TEST_F(FakeDriveServiceTest, AddNewFile_SharedWithMeLabel) {
|
| - ASSERT_TRUE(test_util::SetUpTestEntries(&fake_service_));
|
| -
|
| - const std::string kContentType = "text/plain";
|
| - const std::string kContentData = "This is some test content.";
|
| - const std::string kTitle = "new file";
|
| -
|
| - int64 old_largest_change_id = GetLargestChangeByAboutResource();
|
| -
|
| - DriveApiErrorCode error = DRIVE_OTHER_ERROR;
|
| - scoped_ptr<FileResource> entry;
|
| - fake_service_.AddNewFile(
|
| - kContentType,
|
| - kContentData,
|
| - fake_service_.GetRootResourceId(),
|
| - kTitle,
|
| - true, // shared_with_me
|
| - test_util::CreateCopyResultCallback(&error, &entry));
|
| - base::RunLoop().RunUntilIdle();
|
| -
|
| - EXPECT_EQ(HTTP_CREATED, error);
|
| - ASSERT_TRUE(entry);
|
| - EXPECT_EQ(kContentType, entry->mime_type());
|
| - EXPECT_EQ(static_cast<int64>(kContentData.size()), entry->file_size());
|
| - EXPECT_EQ("resource_id_1", entry->file_id());
|
| - EXPECT_EQ(kTitle, entry->title());
|
| - EXPECT_TRUE(HasParent(entry->file_id(), fake_service_.GetRootResourceId()));
|
| - EXPECT_FALSE(entry->shared_with_me_date().is_null());
|
| - // Should be incremented as a new directory was created.
|
| - EXPECT_EQ(old_largest_change_id + 1,
|
| - fake_service_.about_resource().largest_change_id());
|
| - EXPECT_EQ(old_largest_change_id + 1, GetLargestChangeByAboutResource());
|
| - EXPECT_EQ(base::MD5String(kContentData), entry->md5_checksum());
|
| -}
|
| -
|
| -TEST_F(FakeDriveServiceTest, SetLastModifiedTime_ExistingFile) {
|
| - ASSERT_TRUE(test_util::SetUpTestEntries(&fake_service_));
|
| -
|
| - const std::string kResourceId = "2_file_resource_id";
|
| - base::Time time;
|
| - ASSERT_TRUE(base::Time::FromString("1 April 2013 12:34:56", &time));
|
| -
|
| - DriveApiErrorCode error = DRIVE_OTHER_ERROR;
|
| - scoped_ptr<FileResource> entry;
|
| - fake_service_.SetLastModifiedTime(
|
| - kResourceId,
|
| - time,
|
| - test_util::CreateCopyResultCallback(&error, &entry));
|
| - base::RunLoop().RunUntilIdle();
|
| -
|
| - EXPECT_EQ(HTTP_SUCCESS, error);
|
| - ASSERT_TRUE(entry);
|
| - EXPECT_EQ(time, entry->modified_date());
|
| -}
|
| -
|
| -TEST_F(FakeDriveServiceTest, SetLastModifiedTime_NonexistingFile) {
|
| - ASSERT_TRUE(test_util::SetUpTestEntries(&fake_service_));
|
| -
|
| - const std::string kResourceId = "nonexisting_resource_id";
|
| - base::Time time;
|
| - ASSERT_TRUE(base::Time::FromString("1 April 2013 12:34:56", &time));
|
| -
|
| - DriveApiErrorCode error = DRIVE_OTHER_ERROR;
|
| - scoped_ptr<FileResource> entry;
|
| - fake_service_.SetLastModifiedTime(
|
| - kResourceId,
|
| - time,
|
| - test_util::CreateCopyResultCallback(&error, &entry));
|
| - base::RunLoop().RunUntilIdle();
|
| -
|
| - EXPECT_EQ(HTTP_NOT_FOUND, error);
|
| - EXPECT_FALSE(entry);
|
| -}
|
| -
|
| -TEST_F(FakeDriveServiceTest, SetLastModifiedTime_Offline) {
|
| - ASSERT_TRUE(test_util::SetUpTestEntries(&fake_service_));
|
| - fake_service_.set_offline(true);
|
| -
|
| - const std::string kResourceId = "2_file_resource_id";
|
| - base::Time time;
|
| - ASSERT_TRUE(base::Time::FromString("1 April 2013 12:34:56", &time));
|
| -
|
| - DriveApiErrorCode error = DRIVE_OTHER_ERROR;
|
| - scoped_ptr<FileResource> entry;
|
| - fake_service_.SetLastModifiedTime(
|
| - kResourceId,
|
| - time,
|
| - test_util::CreateCopyResultCallback(&error, &entry));
|
| - base::RunLoop().RunUntilIdle();
|
| -
|
| - EXPECT_EQ(DRIVE_NO_CONNECTION, error);
|
| - EXPECT_FALSE(entry);
|
| -}
|
| -
|
| -} // namespace
|
| -
|
| -} // namespace drive
|
|
|