| Index: chrome/browser/chromeos/drive/drive_file_system_unittest.cc
|
| diff --git a/chrome/browser/chromeos/drive/drive_file_system_unittest.cc b/chrome/browser/chromeos/drive/drive_file_system_unittest.cc
|
| index 1c5f8643a839358525760e941a74a01adb8512d1..4f09c97aea98e0e05acd07a9e5126b021c2d6502 100644
|
| --- a/chrome/browser/chromeos/drive/drive_file_system_unittest.cc
|
| +++ b/chrome/browser/chromeos/drive/drive_file_system_unittest.cc
|
| @@ -30,7 +30,6 @@
|
| #include "chrome/browser/google_apis/drive_api_parser.h"
|
| #include "chrome/browser/google_apis/drive_uploader.h"
|
| #include "chrome/browser/google_apis/mock_drive_service.h"
|
| -#include "chrome/browser/google_apis/mock_drive_uploader.h"
|
| #include "chrome/common/chrome_paths.h"
|
| #include "chrome/test/base/testing_profile.h"
|
| #include "content/public/browser/browser_thread.h"
|
| @@ -91,41 +90,6 @@ ACTION_P2(MockGetDocumentEntry, status, value) {
|
| }
|
|
|
| // Action used to set mock expectations for
|
| -// DriveUploaderInterface::UploadExistingFile().
|
| -ACTION_P4(MockUploadExistingFile,
|
| - error, drive_path, local_file_path, document_entry) {
|
| - scoped_ptr<google_apis::DocumentEntry> scoped_document_entry(document_entry);
|
| - base::MessageLoopProxy::current()->PostTask(FROM_HERE,
|
| - base::Bind(arg5,
|
| - error,
|
| - drive_path,
|
| - local_file_path,
|
| - base::Passed(&scoped_document_entry)));
|
| -
|
| - const int kUploadId = 123;
|
| - return kUploadId;
|
| -}
|
| -
|
| -// Action used to set mock expectations for
|
| -// DriveUploaderInterface::UploadNewFile().
|
| -ACTION(MockUploadNewFile) {
|
| - scoped_ptr<base::Value> value =
|
| - google_apis::test_util::LoadJSONFile("gdata/uploaded_file.json");
|
| - scoped_ptr<google_apis::DocumentEntry> document_entry(
|
| - google_apis::DocumentEntry::ExtractAndParse(*value));
|
| -
|
| - base::MessageLoopProxy::current()->PostTask(FROM_HERE,
|
| - base::Bind(arg7,
|
| - google_apis::DRIVE_UPLOAD_OK,
|
| - arg1,
|
| - arg2,
|
| - base::Passed(&document_entry)));
|
| -
|
| - const int kUploadId = 123;
|
| - return kUploadId;
|
| -}
|
| -
|
| -// Action used to set mock expectations for
|
| // DriveFileSystem::CopyDocument().
|
| ACTION_P2(MockCopyDocument, status, value) {
|
| base::MessageLoopProxy::current()->PostTask(
|
| @@ -150,6 +114,122 @@ int CountFiles(const DriveEntryProtoVector& entries) {
|
| return num_files;
|
| }
|
|
|
| +// A fake implementation of DriveUploaderInterface, which provides fake
|
| +// behaviors for file uploading.
|
| +class FakeDriveUploader : public google_apis::DriveUploaderInterface {
|
| + public:
|
| + FakeDriveUploader() {}
|
| + virtual ~FakeDriveUploader() {}
|
| +
|
| + // DriveUploaderInterface overrides.
|
| +
|
| + // Pretends that a new file was uploaded successfully, and returns the
|
| + // contents of "gdata/uploaded_file.json" to the caller.
|
| + virtual int UploadNewFile(
|
| + const GURL& upload_location,
|
| + const FilePath& drive_file_path,
|
| + const FilePath& local_file_path,
|
| + const std::string& title,
|
| + const std::string& content_type,
|
| + int64 content_length,
|
| + int64 file_size,
|
| + const google_apis::UploadCompletionCallback& completion_callback,
|
| + const google_apis::UploaderReadyCallback& ready_callback) OVERRIDE {
|
| + scoped_ptr<base::Value> value =
|
| + google_apis::test_util::LoadJSONFile("gdata/uploaded_file.json");
|
| + scoped_ptr<google_apis::DocumentEntry> document_entry(
|
| + google_apis::DocumentEntry::ExtractAndParse(*value));
|
| +
|
| + base::MessageLoopProxy::current()->PostTask(
|
| + FROM_HERE,
|
| + base::Bind(completion_callback,
|
| + google_apis::DRIVE_UPLOAD_OK,
|
| + drive_file_path,
|
| + local_file_path,
|
| + base::Passed(&document_entry)));
|
| +
|
| + const int kUploadId = 123;
|
| + return kUploadId;
|
| + }
|
| +
|
| + virtual int StreamExistingFile(
|
| + const GURL& upload_location,
|
| + const FilePath& drive_file_path,
|
| + const FilePath& local_file_path,
|
| + const std::string& content_type,
|
| + int64 content_length,
|
| + int64 file_size,
|
| + const google_apis::UploadCompletionCallback& completion_callback,
|
| + const google_apis::UploaderReadyCallback& ready_callback) OVERRIDE {
|
| + NOTREACHED();
|
| + return 0;
|
| + }
|
| +
|
| + // Pretends that an existing file ("drive/File 1.txt") was uploaded
|
| + // successfully, and returns an entry for the file in
|
| + // "gdata/root_feed.json" to the caller.
|
| + virtual int UploadExistingFile(
|
| + const GURL& upload_location,
|
| + const FilePath& drive_file_path,
|
| + const FilePath& local_file_path,
|
| + const std::string& content_type,
|
| + int64 file_size,
|
| + const google_apis::UploadCompletionCallback& completion_callback,
|
| + const google_apis::UploaderReadyCallback& ready_callback) {
|
| + // This function can only handle "drive/File 1.txt" whose resource ID is
|
| + // "file:2_file_resource_id".
|
| + DCHECK_EQ("drive/File 1.txt", drive_file_path.value());
|
| + const std::string kResourceId = "file:2_file_resource_id";
|
| +
|
| + // Create a google_apis::DocumentEntry, which is needed to return a value
|
| + // from this function. TODO(satorux): This should be cleaned
|
| + // up. crbug.com/134240.
|
| + scoped_ptr<google_apis::DocumentEntry> document_entry;
|
| + scoped_ptr<base::Value> value =
|
| + google_apis::test_util::LoadJSONFile("gdata/root_feed.json");
|
| + if (!value.get())
|
| + return -1;
|
| +
|
| + base::DictionaryValue* as_dict = NULL;
|
| + base::ListValue* entry_list = NULL;
|
| + if (value->GetAsDictionary(&as_dict) &&
|
| + as_dict->GetList("feed.entry", &entry_list)) {
|
| + for (size_t i = 0; i < entry_list->GetSize(); ++i) {
|
| + base::DictionaryValue* entry = NULL;
|
| + std::string resource_id;
|
| + if (entry_list->GetDictionary(i, &entry) &&
|
| + entry->GetString("gd$resourceId.$t", &resource_id) &&
|
| + resource_id == kResourceId) {
|
| + document_entry = google_apis::DocumentEntry::CreateFrom(*entry);
|
| + }
|
| + }
|
| + }
|
| + if (!document_entry)
|
| + return -1;
|
| +
|
| + base::MessageLoopProxy::current()->PostTask(
|
| + FROM_HERE,
|
| + base::Bind(completion_callback,
|
| + google_apis::DRIVE_UPLOAD_OK,
|
| + drive_file_path,
|
| + local_file_path,
|
| + base::Passed(&document_entry)));
|
| +
|
| + const int kUploadId = 123;
|
| + return kUploadId;
|
| + }
|
| +
|
| + virtual void UpdateUpload(int upload_id,
|
| + content::DownloadItem* download) OVERRIDE {
|
| + NOTREACHED();
|
| + }
|
| +
|
| + virtual int64 GetUploadedBytes(int upload_id) const OVERRIDE {
|
| + NOTREACHED();
|
| + return 0;
|
| + }
|
| +};
|
| +
|
| } // namespace
|
|
|
| class DriveFileSystemTest : public testing::Test {
|
| @@ -198,14 +278,14 @@ class DriveFileSystemTest : public testing::Test {
|
| cache_ = DriveCache::CreateDriveCache(
|
| DriveCache::GetCacheRootPath(profile_.get()), blocking_task_runner_);
|
|
|
| - mock_uploader_.reset(new StrictMock<google_apis::MockDriveUploader>);
|
| + fake_uploader_.reset(new FakeDriveUploader);
|
| mock_webapps_registry_.reset(new StrictMock<MockDriveWebAppsRegistry>);
|
|
|
| ASSERT_FALSE(file_system_);
|
| file_system_ = new DriveFileSystem(profile_.get(),
|
| cache_,
|
| mock_drive_service_,
|
| - mock_uploader_.get(),
|
| + fake_uploader_.get(),
|
| mock_webapps_registry_.get(),
|
| blocking_task_runner_);
|
|
|
| @@ -811,7 +891,7 @@ class DriveFileSystemTest : public testing::Test {
|
| scoped_ptr<TestingProfile> profile_;
|
| scoped_refptr<CallbackHelper> callback_helper_;
|
| DriveCache* cache_;
|
| - scoped_ptr<StrictMock<google_apis::MockDriveUploader> > mock_uploader_;
|
| + scoped_ptr<FakeDriveUploader> fake_uploader_;
|
| DriveFileSystem* file_system_;
|
| StrictMock<google_apis::MockDriveService>* mock_drive_service_;
|
| scoped_ptr<StrictMock<MockDriveWebAppsRegistry> > mock_webapps_registry_;
|
| @@ -1291,9 +1371,6 @@ TEST_F(DriveFileSystemTest, TransferFileFromLocalToRemote_RegularFile) {
|
| scoped_ptr<google_apis::DocumentEntry> document_entry(
|
| google_apis::DocumentEntry::ExtractAndParse(*value));
|
|
|
| - EXPECT_CALL(*mock_uploader_, UploadNewFile(_, _, _, _, _, _, _, _, _))
|
| - .WillOnce(MockUploadNewFile());
|
| -
|
| // Transfer the local file to Drive.
|
| file_system_->TransferFileFromLocalToRemote(
|
| local_src_file_path, remote_dest_file_path, callback);
|
| @@ -2403,45 +2480,6 @@ TEST_F(DriveFileSystemTest, UpdateFileByResourceId_PersistentFile) {
|
| ASSERT_TRUE(file_util::PathExists(dirty_cache_file_path));
|
| ASSERT_TRUE(file_util::PathExists(outgoing_symlink_path));
|
|
|
| - // Create a google_apis::DocumentEntry, which is needed to mock
|
| - // DriveUploaderInterface::UploadExistingFile().
|
| - // TODO(satorux): This should be cleaned up. crbug.com/134240.
|
| - scoped_ptr<google_apis::DocumentEntry> document_entry;
|
| - scoped_ptr<base::Value> value =
|
| - google_apis::test_util::LoadJSONFile("gdata/root_feed.json");
|
| - ASSERT_TRUE(value.get());
|
| - base::DictionaryValue* as_dict = NULL;
|
| - base::ListValue* entry_list = NULL;
|
| - if (value->GetAsDictionary(&as_dict) &&
|
| - as_dict->GetList("feed.entry", &entry_list)) {
|
| - for (size_t i = 0; i < entry_list->GetSize(); ++i) {
|
| - base::DictionaryValue* entry = NULL;
|
| - std::string resource_id;
|
| - if (entry_list->GetDictionary(i, &entry) &&
|
| - entry->GetString("gd$resourceId.$t", &resource_id) &&
|
| - resource_id == kResourceId) {
|
| - // This will be deleted by UploadExistingFile().
|
| - document_entry = google_apis::DocumentEntry::CreateFrom(*entry);
|
| - }
|
| - }
|
| - }
|
| - ASSERT_TRUE(document_entry);
|
| -
|
| - // The mock uploader will be used to simulate a file upload.
|
| - EXPECT_CALL(*mock_uploader_, UploadExistingFile(
|
| - GURL("https://file_link_resumable_edit_media/"),
|
| - kFilePath,
|
| - dirty_cache_file_path,
|
| - "audio/mpeg",
|
| - kDummyCacheContent.size(), // The size after modification must be used.
|
| - _, // Completion callback.
|
| - _)) // Ready callback.
|
| - .WillOnce(MockUploadExistingFile(
|
| - google_apis::DRIVE_UPLOAD_OK,
|
| - FilePath::FromUTF8Unsafe("drive/File1"),
|
| - dirty_cache_file_path,
|
| - document_entry.release()));
|
| -
|
| // We'll notify the directory change to the observer upon completion.
|
| EXPECT_CALL(*mock_directory_observer_,
|
| OnDirectoryChanged(Eq(FilePath(kDriveRootDirectory)))).Times(1);
|
|
|