Upstream version 5.34.104.0
[platform/framework/web/crosswalk.git] / src / chrome / browser / sync_file_system / drive_backend / fake_drive_uploader.h
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/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::GetResourceEntryCallback& 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_