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_UPLOADER_H_ 6 #define CHROME_BROWSER_SYNC_FILE_SYSTEM_DRIVE_BACKEND_FAKE_DRIVE_UPLOADER_H_ 7 8 #include <string> 9 10 #include "base/files/file_util.h" 11 #include "base/strings/stringprintf.h" 12 #include "base/values.h" 13 #include "chrome/browser/drive/drive_uploader.h" 14 #include "chrome/browser/drive/fake_drive_service.h" 15 #include "chrome/browser/sync_file_system/drive_backend/fake_drive_service_helper.h" 16 #include "google_apis/drive/gdata_errorcode.h" 17 #include "google_apis/drive/test_util.h" 18 #include "net/base/escape.h" 19 20 namespace sync_file_system { 21 namespace drive_backend { 22 23 class FakeDriveServiceWrapper : public drive::FakeDriveService { 24 public: 25 FakeDriveServiceWrapper(); 26 virtual ~FakeDriveServiceWrapper(); 27 28 // DriveServiceInterface overrides. 29 virtual google_apis::CancelCallback AddNewDirectory( 30 const std::string& parent_resource_id, 31 const std::string& directory_name, 32 const AddNewDirectoryOptions& options, 33 const google_apis::FileResourceCallback& callback) OVERRIDE; 34 35 void set_make_directory_conflict(bool enable) { 36 make_directory_conflict_ = enable; 37 } 38 39 private: 40 bool make_directory_conflict_; 41 42 DISALLOW_COPY_AND_ASSIGN(FakeDriveServiceWrapper); 43 }; 44 45 // A fake implementation of DriveUploaderInterface, which provides fake 46 // behaviors for file uploading. 47 class FakeDriveUploader : public drive::DriveUploaderInterface { 48 public: 49 explicit FakeDriveUploader(FakeDriveServiceWrapper* fake_drive_service); 50 virtual ~FakeDriveUploader(); 51 52 // DriveUploaderInterface overrides. 53 virtual google_apis::CancelCallback UploadNewFile( 54 const std::string& parent_resource_id, 55 const base::FilePath& local_file_path, 56 const std::string& title, 57 const std::string& content_type, 58 const UploadNewFileOptions& options, 59 const drive::UploadCompletionCallback& callback, 60 const google_apis::ProgressCallback& progress_callback) OVERRIDE; 61 virtual google_apis::CancelCallback UploadExistingFile( 62 const std::string& resource_id, 63 const base::FilePath& local_file_path, 64 const std::string& content_type, 65 const UploadExistingFileOptions& options, 66 const drive::UploadCompletionCallback& callback, 67 const google_apis::ProgressCallback& progress_callback) OVERRIDE; 68 virtual google_apis::CancelCallback ResumeUploadFile( 69 const GURL& upload_location, 70 const base::FilePath& local_file_path, 71 const std::string& content_type, 72 const drive::UploadCompletionCallback& callback, 73 const google_apis::ProgressCallback& progress_callback) OVERRIDE; 74 75 void set_make_file_conflict(bool enable) { 76 make_file_conflict_ = enable; 77 } 78 79 private: 80 FakeDriveServiceWrapper* fake_drive_service_; 81 bool make_file_conflict_; 82 83 DISALLOW_COPY_AND_ASSIGN(FakeDriveUploader); 84 }; 85 86 } // namespace drive_backend 87 } // namespace sync_file_system 88 89 #endif // CHROME_BROWSER_SYNC_FILE_SYSTEM_DRIVE_BACKEND_FAKE_DRIVE_UPLOADER_H_ 90