Index: chrome/browser/chromeos/drive/file_task_executor.h |
diff --git a/chrome/browser/chromeos/drive/file_task_executor.h b/chrome/browser/chromeos/drive/file_task_executor.h |
index 0bdf6bcae1e31986a735537397239e0290a61dbc..951b1a361260c2e67fdfbad1424ee7099f16a84e 100644 |
--- a/chrome/browser/chromeos/drive/file_task_executor.h |
+++ b/chrome/browser/chromeos/drive/file_task_executor.h |
@@ -16,8 +16,20 @@ |
namespace drive { |
+class DriveServiceInterface; |
+class FileSystemInterface; |
class ResourceEntry; |
+// Delegate class for hooking fake instances and behaviors for testing. |
+class FileTaskExecutorDelegate { |
+ public: |
+ virtual ~FileTaskExecutorDelegate() {} |
+ |
+ virtual FileSystemInterface* GetFileSystem() = 0; |
+ virtual DriveServiceInterface* GetDriveService() = 0; |
+ virtual void OpenBrowserWindow(const GURL& open_link) = 0; |
+}; |
+ |
// This class implements an "executor" class that will execute tasks for |
// third party Drive apps that store data in Drive itself. To do that, it |
// needs to find the file resource IDs and pass them to a server-side function |
@@ -25,12 +37,17 @@ class ResourceEntry; |
// for opening the document in that app directly. |
class FileTaskExecutor { |
public: |
+ // Creates FileTaskExecutor with delegate derived from |profile|. Used in |
+ // product environment. |
FileTaskExecutor(Profile* profile, const std::string& app_id); |
+ // Creates FileTaskExecutor with a specific delegate. |
+ FileTaskExecutor(scoped_ptr<FileTaskExecutorDelegate> delegate, |
+ const std::string& app_id); |
+ |
// Executes file tasks, runs |done| and deletes |this|. |
- void Execute( |
- const std::vector<fileapi::FileSystemURL>& file_urls, |
- const file_manager::file_tasks::FileTaskFinishedCallback& done); |
+ void Execute(const std::vector<fileapi::FileSystemURL>& file_urls, |
+ const file_manager::file_tasks::FileTaskFinishedCallback& done); |
private: |
~FileTaskExecutor(); |
@@ -43,7 +60,7 @@ class FileTaskExecutor { |
// Calls |done_| with |success| status and deletes |this|. |
void Done(bool success); |
- Profile* profile_; |
+ scoped_ptr<FileTaskExecutorDelegate> delegate_; |
std::string app_id_; |
int current_index_; |
file_manager::file_tasks::FileTaskFinishedCallback done_; |