diff options
author | hashimoto@chromium.org <hashimoto@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-02-05 08:15:47 +0000 |
---|---|---|
committer | hashimoto@chromium.org <hashimoto@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-02-05 08:15:47 +0000 |
commit | 5ed09e352eb667a3d4f76c06a21e6aafe9fbdd19 (patch) | |
tree | 6f2c6ee9b27a16ae8fd487bca7eb5647acca0371 /chrome | |
parent | 0efc4236a8157e7ffb3a3f74f069b66b29490e0f (diff) | |
download | chromium_src-5ed09e352eb667a3d4f76c06a21e6aafe9fbdd19.zip chromium_src-5ed09e352eb667a3d4f76c06a21e6aafe9fbdd19.tar.gz chromium_src-5ed09e352eb667a3d4f76c06a21e6aafe9fbdd19.tar.bz2 |
drive: Allow setting modified/accessed date with AddNewDirectory
Add AddNewDirectoryOptions() argument to AddNewDirectory.
Send date parameters with FilesInsertRequest.
TBR=benwells@chromium.org for chrome/browser/extensions/api/file_system/file_system_apitest_chromeos.cc
BUG=340553
TEST=unit_tests
Review URL: https://codereview.chromium.org/140513008
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@248916 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome')
23 files changed, 69 insertions, 15 deletions
diff --git a/chrome/browser/chromeos/drive/file_system/search_operation_unittest.cc b/chrome/browser/chromeos/drive/file_system/search_operation_unittest.cc index 437b270..9e4f944 100644 --- a/chrome/browser/chromeos/drive/file_system/search_operation_unittest.cc +++ b/chrome/browser/chromeos/drive/file_system/search_operation_unittest.cc @@ -57,6 +57,7 @@ TEST_F(SearchOperationTest, ContentSearchWithNewEntry) { fake_service()->AddNewDirectory( fake_service()->GetRootResourceId(), "New Directory 1!", + DriveServiceInterface::AddNewDirectoryOptions(), google_apis::test_util::CreateCopyResultCallback( &gdata_error, &resource_entry)); test_util::RunBlockingPoolTask(); diff --git a/chrome/browser/chromeos/drive/job_scheduler.cc b/chrome/browser/chromeos/drive/job_scheduler.cc index 175a832..794d5f5 100644 --- a/chrome/browser/chromeos/drive/job_scheduler.cc +++ b/chrome/browser/chromeos/drive/job_scheduler.cc @@ -577,6 +577,7 @@ void JobScheduler::AddNewDirectory( base::Unretained(drive_service_), parent_resource_id, directory_title, + DriveServiceInterface::AddNewDirectoryOptions(), base::Bind(&JobScheduler::OnGetResourceEntryJobDone, weak_ptr_factory_.GetWeakPtr(), new_job->job_info.job_id, diff --git a/chrome/browser/chromeos/drive/job_scheduler_unittest.cc b/chrome/browser/chromeos/drive/job_scheduler_unittest.cc index f3de1d4..1e0c1f7 100644 --- a/chrome/browser/chromeos/drive/job_scheduler_unittest.cc +++ b/chrome/browser/chromeos/drive/job_scheduler_unittest.cc @@ -280,6 +280,7 @@ TEST_F(JobSchedulerTest, GetChangeList) { fake_drive_service_->AddNewDirectory( fake_drive_service_->GetRootResourceId(), "new directory", + DriveServiceInterface::AddNewDirectoryOptions(), google_apis::test_util::CreateCopyResultCallback( &error, &resource_entry)); base::RunLoop().RunUntilIdle(); diff --git a/chrome/browser/chromeos/file_manager/file_manager_browsertest.cc b/chrome/browser/chromeos/file_manager/file_manager_browsertest.cc index 6561b41..99126cd 100644 --- a/chrome/browser/chromeos/file_manager/file_manager_browsertest.cc +++ b/chrome/browser/chromeos/file_manager/file_manager_browsertest.cc @@ -320,6 +320,7 @@ class DriveTestVolume { fake_drive_service_->AddNewDirectory( parent_id, target_name, + drive::DriveServiceInterface::AddNewDirectoryOptions(), google_apis::test_util::CreateCopyResultCallback(&error, &resource_entry)); base::MessageLoop::current()->RunUntilIdle(); diff --git a/chrome/browser/drive/drive_api_service.cc b/chrome/browser/drive/drive_api_service.cc index d4dd0c0..fc68e13 100644 --- a/chrome/browser/drive/drive_api_service.cc +++ b/chrome/browser/drive/drive_api_service.cc @@ -589,6 +589,7 @@ CancelCallback DriveAPIService::TrashResource( CancelCallback DriveAPIService::AddNewDirectory( const std::string& parent_resource_id, const std::string& directory_title, + const AddNewDirectoryOptions& options, const GetResourceEntryCallback& callback) { DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); DCHECK(!callback.is_null()); @@ -596,7 +597,9 @@ CancelCallback DriveAPIService::AddNewDirectory( FilesInsertRequest* request = new FilesInsertRequest( sender_.get(), url_generator_, base::Bind(&ConvertFileEntryToResourceEntryAndRun, callback)); + request->set_last_viewed_by_me_date(options.last_viewed_by_me_date); request->set_mime_type(kFolderMimeType); + request->set_modified_date(options.modified_date); request->add_parent(parent_resource_id); request->set_title(directory_title); request->set_fields(kFileResourceFields); diff --git a/chrome/browser/drive/drive_api_service.h b/chrome/browser/drive/drive_api_service.h index 9957db8..90da2dc 100644 --- a/chrome/browser/drive/drive_api_service.h +++ b/chrome/browser/drive/drive_api_service.h @@ -147,6 +147,7 @@ class DriveAPIService : public DriveServiceInterface, virtual google_apis::CancelCallback AddNewDirectory( const std::string& parent_resource_id, const std::string& directory_title, + const AddNewDirectoryOptions& options, const google_apis::GetResourceEntryCallback& callback) OVERRIDE; virtual google_apis::CancelCallback InitiateUploadNewFile( const std::string& content_type, diff --git a/chrome/browser/drive/drive_service_interface.cc b/chrome/browser/drive/drive_service_interface.cc index 163cd23..0823ebb 100644 --- a/chrome/browser/drive/drive_service_interface.cc +++ b/chrome/browser/drive/drive_service_interface.cc @@ -6,6 +6,12 @@ namespace drive { +DriveServiceInterface::AddNewDirectoryOptions::AddNewDirectoryOptions() { +} + +DriveServiceInterface::AddNewDirectoryOptions::~AddNewDirectoryOptions() { +} + DriveServiceInterface::InitiateUploadNewFileOptions:: InitiateUploadNewFileOptions() { } diff --git a/chrome/browser/drive/drive_service_interface.h b/chrome/browser/drive/drive_service_interface.h index 9a2ed09..0443ff9 100644 --- a/chrome/browser/drive/drive_service_interface.h +++ b/chrome/browser/drive/drive_service_interface.h @@ -42,6 +42,20 @@ class DriveServiceObserver { // URLFetcher that runs on UI thread. class DriveServiceInterface { public: + // Optional parameters for AddNewDirectory(). + struct AddNewDirectoryOptions { + AddNewDirectoryOptions(); + ~AddNewDirectoryOptions(); + + // modified_date of the directory. + // Pass the null Time if you are not interested in setting this property. + base::Time modified_date; + + // last_viewed_by_me_date of the directory. + // Pass the null Time if you are not interested in setting this property. + base::Time last_viewed_by_me_date; + }; + // Optional parameters for InitiateUploadNewFile(). struct InitiateUploadNewFileOptions { InitiateUploadNewFileOptions(); @@ -321,6 +335,7 @@ class DriveServiceInterface { virtual google_apis::CancelCallback AddNewDirectory( const std::string& parent_resource_id, const std::string& directory_title, + const AddNewDirectoryOptions& options, const google_apis::GetResourceEntryCallback& callback) = 0; // Downloads a file with |resourced_id|. The downloaded file will diff --git a/chrome/browser/drive/dummy_drive_service.cc b/chrome/browser/drive/dummy_drive_service.cc index 0f04f59..02388c3 100644 --- a/chrome/browser/drive/dummy_drive_service.cc +++ b/chrome/browser/drive/dummy_drive_service.cc @@ -150,6 +150,7 @@ CancelCallback DummyDriveService::RemoveResourceFromDirectory( CancelCallback DummyDriveService::AddNewDirectory( const std::string& parent_resource_id, const std::string& directory_title, + const AddNewDirectoryOptions& options, const GetResourceEntryCallback& callback) { return CancelCallback(); } CancelCallback DummyDriveService::InitiateUploadNewFile( diff --git a/chrome/browser/drive/dummy_drive_service.h b/chrome/browser/drive/dummy_drive_service.h index 8258ed7..fd9bbca 100644 --- a/chrome/browser/drive/dummy_drive_service.h +++ b/chrome/browser/drive/dummy_drive_service.h @@ -103,6 +103,7 @@ class DummyDriveService : public DriveServiceInterface { virtual google_apis::CancelCallback AddNewDirectory( const std::string& parent_resource_id, const std::string& directory_title, + const AddNewDirectoryOptions& options, const google_apis::GetResourceEntryCallback& callback) OVERRIDE; virtual google_apis::CancelCallback InitiateUploadNewFile( const std::string& content_type, diff --git a/chrome/browser/drive/fake_drive_service.cc b/chrome/browser/drive/fake_drive_service.cc index 45f13dc..25298b8 100644 --- a/chrome/browser/drive/fake_drive_service.cc +++ b/chrome/browser/drive/fake_drive_service.cc @@ -917,6 +917,7 @@ CancelCallback FakeDriveService::RemoveResourceFromDirectory( CancelCallback FakeDriveService::AddNewDirectory( const std::string& parent_resource_id, const std::string& directory_title, + const AddNewDirectoryOptions& options, const GetResourceEntryCallback& callback) { DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); DCHECK(!callback.is_null()); diff --git a/chrome/browser/drive/fake_drive_service.h b/chrome/browser/drive/fake_drive_service.h index 3eee223..1ddf094 100644 --- a/chrome/browser/drive/fake_drive_service.h +++ b/chrome/browser/drive/fake_drive_service.h @@ -197,6 +197,7 @@ class FakeDriveService : public DriveServiceInterface { virtual google_apis::CancelCallback AddNewDirectory( const std::string& parent_resource_id, const std::string& directory_title, + const AddNewDirectoryOptions& options, const google_apis::GetResourceEntryCallback& callback) OVERRIDE; virtual google_apis::CancelCallback InitiateUploadNewFile( const std::string& content_type, diff --git a/chrome/browser/drive/fake_drive_service_unittest.cc b/chrome/browser/drive/fake_drive_service_unittest.cc index 70f78ad..ac80d30 100644 --- a/chrome/browser/drive/fake_drive_service_unittest.cc +++ b/chrome/browser/drive/fake_drive_service_unittest.cc @@ -72,6 +72,7 @@ class FakeDriveServiceTest : public testing::Test { fake_service_.AddNewDirectory( parent_resource_id, directory_title, + DriveServiceInterface::AddNewDirectoryOptions(), test_util::CreateCopyResultCallback(&error, &resource_entry)); base::RunLoop().RunUntilIdle(); return error == HTTP_CREATED; @@ -1611,6 +1612,7 @@ TEST_F(FakeDriveServiceTest, AddNewDirectory_EmptyParent) { fake_service_.AddNewDirectory( std::string(), "new directory", + DriveServiceInterface::AddNewDirectoryOptions(), test_util::CreateCopyResultCallback(&error, &resource_entry)); base::RunLoop().RunUntilIdle(); @@ -1640,6 +1642,7 @@ TEST_F(FakeDriveServiceTest, AddNewDirectory_ToRootDirectory) { fake_service_.AddNewDirectory( fake_service_.GetRootResourceId(), "new directory", + DriveServiceInterface::AddNewDirectoryOptions(), test_util::CreateCopyResultCallback(&error, &resource_entry)); base::RunLoop().RunUntilIdle(); @@ -1669,6 +1672,7 @@ TEST_F(FakeDriveServiceTest, AddNewDirectory_ToRootDirectoryOnEmptyFileSystem) { fake_service_.AddNewDirectory( fake_service_.GetRootResourceId(), "new directory", + DriveServiceInterface::AddNewDirectoryOptions(), test_util::CreateCopyResultCallback(&error, &resource_entry)); base::RunLoop().RunUntilIdle(); @@ -1700,6 +1704,7 @@ TEST_F(FakeDriveServiceTest, AddNewDirectory_ToNonRootDirectory) { fake_service_.AddNewDirectory( kParentResourceId, "new directory", + DriveServiceInterface::AddNewDirectoryOptions(), test_util::CreateCopyResultCallback(&error, &resource_entry)); base::RunLoop().RunUntilIdle(); @@ -1726,6 +1731,7 @@ TEST_F(FakeDriveServiceTest, AddNewDirectory_ToNonexistingDirectory) { fake_service_.AddNewDirectory( kParentResourceId, "new directory", + DriveServiceInterface::AddNewDirectoryOptions(), test_util::CreateCopyResultCallback(&error, &resource_entry)); base::RunLoop().RunUntilIdle(); @@ -1743,6 +1749,7 @@ TEST_F(FakeDriveServiceTest, AddNewDirectory_Offline) { fake_service_.AddNewDirectory( fake_service_.GetRootResourceId(), "new directory", + DriveServiceInterface::AddNewDirectoryOptions(), test_util::CreateCopyResultCallback(&error, &resource_entry)); base::RunLoop().RunUntilIdle(); diff --git a/chrome/browser/drive/gdata_wapi_service.cc b/chrome/browser/drive/gdata_wapi_service.cc index 1ed23cf..c52f4a9 100644 --- a/chrome/browser/drive/gdata_wapi_service.cc +++ b/chrome/browser/drive/gdata_wapi_service.cc @@ -399,6 +399,7 @@ CancelCallback GDataWapiService::TrashResource( CancelCallback GDataWapiService::AddNewDirectory( const std::string& parent_resource_id, const std::string& directory_title, + const AddNewDirectoryOptions& options, const GetResourceEntryCallback& callback) { DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); DCHECK(!callback.is_null()); diff --git a/chrome/browser/drive/gdata_wapi_service.h b/chrome/browser/drive/gdata_wapi_service.h index a450d4d..5daf76d7 100644 --- a/chrome/browser/drive/gdata_wapi_service.h +++ b/chrome/browser/drive/gdata_wapi_service.h @@ -143,6 +143,7 @@ class GDataWapiService : public DriveServiceInterface, virtual google_apis::CancelCallback AddNewDirectory( const std::string& parent_resource_id, const std::string& directory_title, + const AddNewDirectoryOptions& options, const google_apis::GetResourceEntryCallback& callback) OVERRIDE; virtual google_apis::CancelCallback InitiateUploadNewFile( const std::string& content_type, diff --git a/chrome/browser/extensions/api/file_system/file_system_apitest_chromeos.cc b/chrome/browser/extensions/api/file_system/file_system_apitest_chromeos.cc index 65ffec6..3d94a4e 100644 --- a/chrome/browser/extensions/api/file_system/file_system_apitest_chromeos.cc +++ b/chrome/browser/extensions/api/file_system/file_system_apitest_chromeos.cc @@ -102,6 +102,7 @@ class FileSystemApiTestForDrive : public PlatformAppBrowserTest { google_apis::GDataErrorCode error = google_apis::GDATA_OTHER_ERROR; fake_drive_service_->AddNewDirectory( parent_id, title, + drive::DriveServiceInterface::AddNewDirectoryOptions(), google_apis::test_util::CreateCopyResultCallback(&error, &resource_entry)); content::RunAllPendingInMessageLoop(); diff --git a/chrome/browser/sync_file_system/drive_backend/fake_drive_service_helper.cc b/chrome/browser/sync_file_system/drive_backend/fake_drive_service_helper.cc index 0772f09..06cf70e 100644 --- a/chrome/browser/sync_file_system/drive_backend/fake_drive_service_helper.cc +++ b/chrome/browser/sync_file_system/drive_backend/fake_drive_service_helper.cc @@ -93,6 +93,7 @@ GDataErrorCode FakeDriveServiceHelper::AddFolder( scoped_ptr<ResourceEntry> folder; fake_drive_service_->AddNewDirectory( parent_folder_id, title, + drive::DriveServiceInterface::AddNewDirectoryOptions(), CreateResultReceiver(&error, &folder)); base::RunLoop().RunUntilIdle(); diff --git a/chrome/browser/sync_file_system/drive_backend/fake_drive_uploader.cc b/chrome/browser/sync_file_system/drive_backend/fake_drive_uploader.cc index 87d3019..e11d7bc 100644 --- a/chrome/browser/sync_file_system/drive_backend/fake_drive_uploader.cc +++ b/chrome/browser/sync_file_system/drive_backend/fake_drive_uploader.cc @@ -67,15 +67,17 @@ FakeDriveServiceWrapper::~FakeDriveServiceWrapper() {} CancelCallback FakeDriveServiceWrapper::AddNewDirectory( const std::string& parent_resource_id, const std::string& directory_name, + const AddNewDirectoryOptions& options, const GetResourceEntryCallback& callback) { if (make_directory_conflict_) { FakeDriveService::AddNewDirectory( parent_resource_id, directory_name, + options, base::Bind(&DidAddFileOrDirectoryForMakingConflict)); } return FakeDriveService::AddNewDirectory( - parent_resource_id, directory_name, callback); + parent_resource_id, directory_name, options, callback); } FakeDriveUploader::FakeDriveUploader( diff --git a/chrome/browser/sync_file_system/drive_backend/fake_drive_uploader.h b/chrome/browser/sync_file_system/drive_backend/fake_drive_uploader.h index 24bd7d4..ff8dbb0 100644 --- a/chrome/browser/sync_file_system/drive_backend/fake_drive_uploader.h +++ b/chrome/browser/sync_file_system/drive_backend/fake_drive_uploader.h @@ -29,6 +29,7 @@ class FakeDriveServiceWrapper : public drive::FakeDriveService { virtual google_apis::CancelCallback AddNewDirectory( const std::string& parent_resource_id, const std::string& directory_name, + const AddNewDirectoryOptions& options, const google_apis::GetResourceEntryCallback& callback) OVERRIDE; void set_make_directory_conflict(bool enable) { diff --git a/chrome/browser/sync_file_system/drive_backend/folder_creator.cc b/chrome/browser/sync_file_system/drive_backend/folder_creator.cc index fe87a90..acad956 100644 --- a/chrome/browser/sync_file_system/drive_backend/folder_creator.cc +++ b/chrome/browser/sync_file_system/drive_backend/folder_creator.cc @@ -42,6 +42,7 @@ void FolderCreator::Run(const FileIDCallback& callback) { drive_service_->AddNewDirectory( parent_folder_id_, title_, + drive::DriveServiceInterface::AddNewDirectoryOptions(), base::Bind(&FolderCreator::DidCreateFolder, weak_ptr_factory_.GetWeakPtr(), callback)); } diff --git a/chrome/browser/sync_file_system/drive_backend/sync_engine_initializer.cc b/chrome/browser/sync_file_system/drive_backend/sync_engine_initializer.cc index d665b194c..01d8129 100644 --- a/chrome/browser/sync_file_system/drive_backend/sync_engine_initializer.cc +++ b/chrome/browser/sync_file_system/drive_backend/sync_engine_initializer.cc @@ -277,6 +277,7 @@ void SyncEngineInitializer::CreateSyncRoot(const SyncStatusCallback& callback) { set_used_network(true); cancel_callback_ = drive_service_->AddNewDirectory( root_folder_id_, kSyncRootFolderTitle, + drive::DriveServiceInterface::AddNewDirectoryOptions(), base::Bind(&SyncEngineInitializer::DidCreateSyncRoot, weak_ptr_factory_.GetWeakPtr(), callback)); diff --git a/chrome/browser/sync_file_system/drive_backend/sync_engine_initializer_unittest.cc b/chrome/browser/sync_file_system/drive_backend/sync_engine_initializer_unittest.cc index 25c32f8..b25d19c 100644 --- a/chrome/browser/sync_file_system/drive_backend/sync_engine_initializer_unittest.cc +++ b/chrome/browser/sync_file_system/drive_backend/sync_engine_initializer_unittest.cc @@ -118,6 +118,7 @@ class SyncEngineInitializerTest : public testing::Test { scoped_ptr<google_apis::ResourceEntry> entry; fake_drive_service_.AddNewDirectory( parent_folder_id, title, + drive::DriveServiceInterface::AddNewDirectoryOptions(), CreateResultReceiver(&error, &entry)); base::RunLoop().RunUntilIdle(); diff --git a/chrome/browser/sync_file_system/drive_backend_v1/api_util.cc b/chrome/browser/sync_file_system/drive_backend_v1/api_util.cc index 947a397..ef2580b 100644 --- a/chrome/browser/sync_file_system/drive_backend_v1/api_util.cc +++ b/chrome/browser/sync_file_system/drive_backend_v1/api_util.cc @@ -340,13 +340,15 @@ void APIUtil::DidGetDirectory(const std::string& parent_resource_id, feed->entries(), title, resource_id, parent_type); if (!entry) { DVLOG(2) << "Directory not found. Creating: " << directory_name; - drive_service_->AddNewDirectory(resource_id, - directory_name, - base::Bind(&APIUtil::DidCreateDirectory, - AsWeakPtr(), - parent_resource_id, - title, - callback)); + drive_service_->AddNewDirectory( + resource_id, + directory_name, + drive::DriveServiceInterface::AddNewDirectoryOptions(), + base::Bind(&APIUtil::DidCreateDirectory, + AsWeakPtr(), + parent_resource_id, + title, + callback)); return; } DVLOG(2) << "Found Drive directory."; @@ -567,13 +569,15 @@ void APIUtil::CreateDirectory(const std::string& parent_resource_id, // directories if there're duplicated directories. This must be ok // for current design but we'll need to merge directories when we support // 'real' directories. - drive_service_->AddNewDirectory(parent_resource_id, - title, - base::Bind(&APIUtil::DidCreateDirectory, - AsWeakPtr(), - parent_resource_id, - title, - callback)); + drive_service_->AddNewDirectory( + parent_resource_id, + title, + drive::DriveServiceInterface::AddNewDirectoryOptions(), + base::Bind(&APIUtil::DidCreateDirectory, + AsWeakPtr(), + parent_resource_id, + title, + callback)); } void APIUtil::DeleteFile(const std::string& resource_id, |