Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(155)

Side by Side Diff: chrome/browser/chromeos/drive/file_task_executor.h

Issue 391003006: Make FileTaskExecutor testable. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Addressed review comments. Created 6 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « no previous file | chrome/browser/chromeos/drive/file_task_executor.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #ifndef CHROME_BROWSER_CHROMEOS_DRIVE_FILE_TASK_EXECUTOR_H_ 5 #ifndef CHROME_BROWSER_CHROMEOS_DRIVE_FILE_TASK_EXECUTOR_H_
6 #define CHROME_BROWSER_CHROMEOS_DRIVE_FILE_TASK_EXECUTOR_H_ 6 #define CHROME_BROWSER_CHROMEOS_DRIVE_FILE_TASK_EXECUTOR_H_
7 7
8 #include <string> 8 #include <string>
9 #include <vector> 9 #include <vector>
10 10
11 #include "base/callback.h" 11 #include "base/callback.h"
12 #include "base/memory/weak_ptr.h" 12 #include "base/memory/weak_ptr.h"
13 #include "chrome/browser/chromeos/drive/file_errors.h" 13 #include "chrome/browser/chromeos/drive/file_errors.h"
14 #include "chrome/browser/chromeos/file_manager/file_tasks.h" 14 #include "chrome/browser/chromeos/file_manager/file_tasks.h"
15 #include "google_apis/drive/gdata_errorcode.h" 15 #include "google_apis/drive/gdata_errorcode.h"
16 16
17 namespace drive { 17 namespace drive {
18 18
19 class DriveServiceInterface;
20 class FileSystemInterface;
19 class ResourceEntry; 21 class ResourceEntry;
20 22
23 // Delegate class for hooking fake instances and behaviors for testing.
24 class FileTaskExecutorDelegate {
25 public:
26 virtual ~FileTaskExecutorDelegate() {}
27
28 virtual FileSystemInterface* GetFileSystem() = 0;
29 virtual DriveServiceInterface* GetDriveService() = 0;
30 virtual void OpenBrowserWindow(const GURL& open_link) = 0;
31 };
32
21 // This class implements an "executor" class that will execute tasks for 33 // This class implements an "executor" class that will execute tasks for
22 // third party Drive apps that store data in Drive itself. To do that, it 34 // third party Drive apps that store data in Drive itself. To do that, it
23 // needs to find the file resource IDs and pass them to a server-side function 35 // needs to find the file resource IDs and pass them to a server-side function
24 // that will authorize the app to open the given document and return a URL 36 // that will authorize the app to open the given document and return a URL
25 // for opening the document in that app directly. 37 // for opening the document in that app directly.
26 class FileTaskExecutor { 38 class FileTaskExecutor {
27 public: 39 public:
40 // Creates FileTaskExecutor with delegate derived from |profile|. Used in
41 // product environment.
28 FileTaskExecutor(Profile* profile, const std::string& app_id); 42 FileTaskExecutor(Profile* profile, const std::string& app_id);
29 43
44 // Creates FileTaskExecutor with a specific delegate.
45 FileTaskExecutor(scoped_ptr<FileTaskExecutorDelegate> delegate,
46 const std::string& app_id);
47
30 // Executes file tasks, runs |done| and deletes |this|. 48 // Executes file tasks, runs |done| and deletes |this|.
31 void Execute( 49 void Execute(const std::vector<fileapi::FileSystemURL>& file_urls,
32 const std::vector<fileapi::FileSystemURL>& file_urls, 50 const file_manager::file_tasks::FileTaskFinishedCallback& done);
33 const file_manager::file_tasks::FileTaskFinishedCallback& done);
34 51
35 private: 52 private:
36 ~FileTaskExecutor(); 53 ~FileTaskExecutor();
37 54
38 void OnFileEntryFetched(FileError error, scoped_ptr<ResourceEntry> entry); 55 void OnFileEntryFetched(FileError error, scoped_ptr<ResourceEntry> entry);
39 void OnAppAuthorized(const std::string& resource_id, 56 void OnAppAuthorized(const std::string& resource_id,
40 google_apis::GDataErrorCode error, 57 google_apis::GDataErrorCode error,
41 const GURL& open_link); 58 const GURL& open_link);
42 59
43 // Calls |done_| with |success| status and deletes |this|. 60 // Calls |done_| with |success| status and deletes |this|.
44 void Done(bool success); 61 void Done(bool success);
45 62
46 Profile* profile_; 63 scoped_ptr<FileTaskExecutorDelegate> delegate_;
47 std::string app_id_; 64 std::string app_id_;
48 int current_index_; 65 int current_index_;
49 file_manager::file_tasks::FileTaskFinishedCallback done_; 66 file_manager::file_tasks::FileTaskFinishedCallback done_;
50 67
51 base::WeakPtrFactory<FileTaskExecutor> weak_ptr_factory_; 68 base::WeakPtrFactory<FileTaskExecutor> weak_ptr_factory_;
52 }; 69 };
53 70
54 } // namespace drive 71 } // namespace drive
55 72
56 #endif // CHROME_BROWSER_CHROMEOS_DRIVE_FILE_TASK_EXECUTOR_H_ 73 #endif // CHROME_BROWSER_CHROMEOS_DRIVE_FILE_TASK_EXECUTOR_H_
OLDNEW
« no previous file with comments | « no previous file | chrome/browser/chromeos/drive/file_task_executor.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698