Index: chrome/browser/google_apis/fake_drive_service.cc |
diff --git a/chrome/browser/google_apis/fake_drive_service.cc b/chrome/browser/google_apis/fake_drive_service.cc |
index f0163ab0488cf5757b6484f7432136461f48f0e8..d35f33c496732bfdd9caa43553cec46afab30176 100644 |
--- a/chrome/browser/google_apis/fake_drive_service.cc |
+++ b/chrome/browser/google_apis/fake_drive_service.cc |
@@ -18,6 +18,7 @@ |
#include "chrome/browser/google_apis/drive_api_parser.h" |
#include "chrome/browser/google_apis/gdata_wapi_parser.h" |
#include "chrome/browser/google_apis/test_util.h" |
+#include "chrome/browser/google_apis/time_util.h" |
#include "content/public/browser/browser_thread.h" |
#include "net/base/escape.h" |
@@ -919,6 +920,79 @@ void FakeDriveService::AuthorizeApp(const std::string& resource_id, |
DCHECK(!callback.is_null()); |
} |
+void FakeDriveService::AddNewFile(const std::string& content_type, |
+ int64 content_length, |
+ const std::string& parent_resource_id, |
+ const std::string& title, |
+ const GetResourceEntryCallback& callback) { |
+ DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
+ DCHECK(!callback.is_null()); |
+ |
+ if (offline_) { |
+ scoped_ptr<ResourceEntry> null; |
+ MessageLoop::current()->PostTask( |
+ FROM_HERE, |
+ base::Bind(callback, |
+ GDATA_NO_CONNECTION, |
+ base::Passed(&null))); |
+ return; |
+ } |
+ |
+ const base::DictionaryValue* new_entry = AddNewEntry(content_type, |
+ content_length, |
+ parent_resource_id, |
+ title, |
+ "file"); |
+ if (!new_entry) { |
+ scoped_ptr<ResourceEntry> null; |
+ MessageLoop::current()->PostTask( |
+ FROM_HERE, |
+ base::Bind(callback, HTTP_NOT_FOUND, base::Passed(&null))); |
+ return; |
+ } |
+ |
+ scoped_ptr<ResourceEntry> parsed_entry( |
+ ResourceEntry::CreateFrom(*new_entry)); |
+ MessageLoop::current()->PostTask( |
+ FROM_HERE, |
+ base::Bind(callback, HTTP_CREATED, base::Passed(&parsed_entry))); |
+} |
+ |
+void FakeDriveService::SetLastModifiedTime( |
+ const std::string& resource_id, |
+ const base::Time& last_modified_time, |
+ const GetResourceEntryCallback& callback) { |
+ DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
+ DCHECK(!callback.is_null()); |
+ |
+ if (offline_) { |
+ scoped_ptr<ResourceEntry> null; |
+ MessageLoop::current()->PostTask( |
+ FROM_HERE, |
+ base::Bind(callback, |
+ GDATA_NO_CONNECTION, |
+ base::Passed(&null))); |
+ return; |
+ } |
+ |
+ base::DictionaryValue* entry = FindEntryByResourceId(resource_id); |
+ if (!entry) { |
+ scoped_ptr<ResourceEntry> null; |
+ MessageLoop::current()->PostTask( |
+ FROM_HERE, |
+ base::Bind(callback, HTTP_NOT_FOUND, base::Passed(&null))); |
+ return; |
+ } |
+ |
+ entry->SetString("updated.$t", util::FormatTimeAsString(last_modified_time)); |
+ |
+ scoped_ptr<ResourceEntry> parsed_entry( |
+ ResourceEntry::CreateFrom(*entry)); |
+ MessageLoop::current()->PostTask( |
+ FROM_HERE, |
+ base::Bind(callback, HTTP_SUCCESS, base::Passed(&parsed_entry))); |
+} |
+ |
base::DictionaryValue* FakeDriveService::FindEntryByResourceId( |
const std::string& resource_id) { |
DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |