1// Copyright 2014 The Chromium Authors. All rights reserved. 2// Use of this source code is governed by a BSD-style license that can be 3// found in the LICENSE file. 4 5#ifndef CHROME_BROWSER_SYNC_FILE_SYSTEM_DRIVE_BACKEND_FAKE_DRIVE_SERVICE_HELPER_H_ 6#define CHROME_BROWSER_SYNC_FILE_SYSTEM_DRIVE_BACKEND_FAKE_DRIVE_SERVICE_HELPER_H_ 7 8#include <string> 9 10#include "base/files/scoped_temp_dir.h" 11#include "chrome/browser/drive/drive_uploader.h" 12#include "chrome/browser/drive/fake_drive_service.h" 13#include "google_apis/drive/gdata_wapi_parser.h" 14 15namespace base { 16class FilePath; 17} 18 19namespace sync_file_system { 20namespace drive_backend { 21 22class FakeDriveServiceHelper { 23 public: 24 FakeDriveServiceHelper(drive::FakeDriveService* fake_drive_service, 25 drive::DriveUploaderInterface* drive_uploader, 26 const std::string& sync_root_folder_title); 27 virtual ~FakeDriveServiceHelper(); 28 29 google_apis::GDataErrorCode AddOrphanedFolder( 30 const std::string& title, 31 std::string* folder_id); 32 google_apis::GDataErrorCode AddFolder( 33 const std::string& parent_folder_id, 34 const std::string& title, 35 std::string* folder_id); 36 google_apis::GDataErrorCode AddFile( 37 const std::string& parent_folder_id, 38 const std::string& title, 39 const std::string& content, 40 std::string* file_id); 41 google_apis::GDataErrorCode UpdateFile( 42 const std::string& file_id, 43 const std::string& content); 44 google_apis::GDataErrorCode DeleteResource( 45 const std::string& file_id); 46 google_apis::GDataErrorCode TrashResource( 47 const std::string& file_id); 48 google_apis::GDataErrorCode UpdateModificationTime( 49 const std::string& file_id, 50 const base::Time& modification_time); 51 google_apis::GDataErrorCode RenameResource( 52 const std::string& file_id, 53 const std::string& new_title); 54 google_apis::GDataErrorCode AddResourceToDirectory( 55 const std::string& parent_folder_id, 56 const std::string& file_id); 57 google_apis::GDataErrorCode RemoveResourceFromDirectory( 58 const std::string& parent_folder_id, 59 const std::string& file_id); 60 google_apis::GDataErrorCode GetSyncRootFolderID( 61 std::string* sync_root_folder_id); 62 google_apis::GDataErrorCode ListFilesInFolder( 63 const std::string& folder_id, 64 ScopedVector<google_apis::ResourceEntry>* entries); 65 google_apis::GDataErrorCode SearchByTitle( 66 const std::string& folder_id, 67 const std::string& title, 68 ScopedVector<google_apis::ResourceEntry>* entries); 69 google_apis::GDataErrorCode GetFileResource( 70 const std::string& file_id, 71 scoped_ptr<google_apis::FileResource>* entry); 72 google_apis::GDataErrorCode ReadFile( 73 const std::string& file_id, 74 std::string* file_content); 75 google_apis::GDataErrorCode GetAboutResource( 76 scoped_ptr<google_apis::AboutResource>* about_resource); 77 78 base::FilePath base_dir_path() { return base_dir_.path(); } 79 80 private: 81 google_apis::GDataErrorCode CompleteListing( 82 scoped_ptr<google_apis::FileList> list, 83 ScopedVector<google_apis::ResourceEntry>* entries); 84 85 void Initialize(); 86 87 base::FilePath WriteToTempFile(const std::string& content); 88 89 base::ScopedTempDir base_dir_; 90 base::FilePath temp_dir_; 91 92 // Not own. 93 drive::FakeDriveService* fake_drive_service_; 94 drive::DriveUploaderInterface* drive_uploader_; 95 96 std::string sync_root_folder_title_; 97}; 98 99} // namespace drive_backend 100} // namespace sync_file_system 101 102#endif // CHROME_BROWSER_SYNC_FILE_SYSTEM_DRIVE_BACKEND_FAKE_DRIVE_SERVICE_HELPER_H_ 103