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 | |
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
26 files changed, 104 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, diff --git a/google_apis/drive/drive_api_requests.cc b/google_apis/drive/drive_api_requests.cc index 4fc56df..6c997d7 100644 --- a/google_apis/drive/drive_api_requests.cc +++ b/google_apis/drive/drive_api_requests.cc @@ -210,9 +210,17 @@ bool FilesInsertRequest::GetContentData(std::string* upload_content_type, base::DictionaryValue root; + if (!last_viewed_by_me_date_.is_null()) { + root.SetString("lastViewedByMeDate", + util::FormatTimeAsString(last_viewed_by_me_date_)); + } + if (!mime_type_.empty()) root.SetString("mimeType", mime_type_); + if (!modified_date_.is_null()) + root.SetString("modifiedDate", util::FormatTimeAsString(modified_date_)); + if (!parents_.empty()) { base::ListValue* parents_value = new base::ListValue; for (size_t i = 0; i < parents_.size(); ++i) { diff --git a/google_apis/drive/drive_api_requests.h b/google_apis/drive/drive_api_requests.h index c534e09..c3e3dc5 100644 --- a/google_apis/drive/drive_api_requests.h +++ b/google_apis/drive/drive_api_requests.h @@ -140,11 +140,23 @@ class FilesInsertRequest : public DriveApiDataRequest { virtual ~FilesInsertRequest(); // Optional request body. + const base::Time& last_viewed_by_me_date() const { + return last_viewed_by_me_date_; + } + void set_last_viewed_by_me_date(const base::Time& last_viewed_by_me_date) { + last_viewed_by_me_date_ = last_viewed_by_me_date; + } + const std::string& mime_type() const { return mime_type_; } void set_mime_type(const std::string& mime_type) { mime_type_ = mime_type; } + const base::Time& modified_date() const { return modified_date_; } + void set_modified_date(const base::Time& modified_date) { + modified_date_ = modified_date; + } + const std::vector<std::string>& parents() const { return parents_; } void add_parent(const std::string& parent) { parents_.push_back(parent); } @@ -163,7 +175,9 @@ class FilesInsertRequest : public DriveApiDataRequest { private: const DriveApiUrlGenerator url_generator_; + base::Time last_viewed_by_me_date_; std::string mime_type_; + base::Time modified_date_; std::vector<std::string> parents_; std::string title_; diff --git a/google_apis/drive/drive_api_requests_unittest.cc b/google_apis/drive/drive_api_requests_unittest.cc index b05af4b..315eaa2 100644 --- a/google_apis/drive/drive_api_requests_unittest.cc +++ b/google_apis/drive/drive_api_requests_unittest.cc @@ -418,6 +418,10 @@ TEST_F(DriveApiRequestsTest, DriveApiDataRequest_Fields) { } TEST_F(DriveApiRequestsTest, FilesInsertRequest) { + const base::Time::Exploded kModifiedDate = {2012, 7, 0, 19, 15, 59, 13, 123}; + const base::Time::Exploded kLastViewedByMeDate = + {2013, 7, 0, 19, 15, 59, 13, 123}; + // Set an expected data file containing the directory's entry data. expected_data_file_path_ = test_util::GetTestFilePath("drive/directory_entry.json"); @@ -434,7 +438,10 @@ TEST_F(DriveApiRequestsTest, FilesInsertRequest) { test_util::CreateQuitCallback( &run_loop, test_util::CreateCopyResultCallback(&error, &file_resource))); + request->set_last_viewed_by_me_date( + base::Time::FromUTCExploded(kLastViewedByMeDate)); request->set_mime_type("application/vnd.google-apps.folder"); + request->set_modified_date(base::Time::FromUTCExploded(kModifiedDate)); request->add_parent("root"); request->set_title("new directory"); request_sender_->StartRequestWithRetry(request); @@ -447,6 +454,12 @@ TEST_F(DriveApiRequestsTest, FilesInsertRequest) { EXPECT_EQ("application/json", http_request_.headers["Content-Type"]); EXPECT_TRUE(http_request_.has_content); + EXPECT_EQ("{\"lastViewedByMeDate\":\"2013-07-19T15:59:13.123Z\"," + "\"mimeType\":\"application/vnd.google-apps.folder\"," + "\"modifiedDate\":\"2012-07-19T15:59:13.123Z\"," + "\"parents\":[{\"id\":\"root\"}]," + "\"title\":\"new directory\"}", + http_request_.content); scoped_ptr<FileResource> expected( FileResource::CreateFrom( |