| // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 
 | // Use of this source code is governed by a BSD-style license that can be | 
 | // found in the LICENSE file. | 
 |  | 
 | // This file contains mocks for classes in drive_service_interface.h | 
 |  | 
 | #ifndef CHROME_BROWSER_CHROMEOS_GDATA_MOCK_DRIVE_SERVICE_H_ | 
 | #define CHROME_BROWSER_CHROMEOS_GDATA_MOCK_DRIVE_SERVICE_H_ | 
 |  | 
 | #include <string> | 
 |  | 
 | #include "base/memory/scoped_ptr.h" | 
 | #include "chrome/browser/chromeos/gdata/drive_service_interface.h" | 
 | #include "testing/gmock/include/gmock/gmock.h" | 
 |  | 
 | class FilePath; | 
 |  | 
 | namespace gdata { | 
 |  | 
 | class MockDriveService : public DriveServiceInterface { | 
 |  public: | 
 |   // DriveService is usually owned and created by DriveFileSystem. | 
 |   MockDriveService(); | 
 |   virtual ~MockDriveService(); | 
 |  | 
 |   // DriveServiceInterface overrides. | 
 |   MOCK_METHOD1(Initialize, void(Profile* profile)); | 
 |   MOCK_METHOD1(AddObserver, void(DriveServiceObserver* observer)); | 
 |   MOCK_METHOD1(RemoveObserver, void(DriveServiceObserver* observer)); | 
 |   MOCK_CONST_METHOD0(CanStartOperation, bool()); | 
 |   MOCK_METHOD0(CancelAll, void(void)); | 
 |   MOCK_METHOD1(CancelForFilePath, bool(const FilePath& file_path)); | 
 |   MOCK_CONST_METHOD0(GetProgressStatusList, OperationProgressStatusList()); | 
 |   MOCK_METHOD1(Authenticate, void(const AuthStatusCallback& callback)); | 
 |   MOCK_METHOD5(GetDocuments, void(const GURL& feed_url, | 
 |                                   int64 start_changestamp, | 
 |                                   const std::string& search_string, | 
 |                                   const std::string& directory_resource_id, | 
 |                                   const GetDataCallback& callback)); | 
 |   MOCK_METHOD2(GetDocumentEntry, void(const std::string& resource_id, | 
 |                                       const GetDataCallback& callback)); | 
 |   MOCK_METHOD1(GetAccountMetadata, void(const GetDataCallback& callback)); | 
 |   MOCK_METHOD1(GetApplicationInfo, void(const GetDataCallback& callback)); | 
 |   MOCK_METHOD2(DeleteDocument, void(const GURL& document_url, | 
 |                                     const EntryActionCallback& callback)); | 
 |   MOCK_METHOD5(DownloadDocument, void(const FilePath& virtual_path, | 
 |                                       const FilePath& local_cache_path, | 
 |                                       const GURL& content_url, | 
 |                                       DocumentExportFormat format, | 
 |                                       const DownloadActionCallback& callback)); | 
 |   MOCK_METHOD3(CopyDocument, void(const std::string& resource_id, | 
 |                                   const FilePath::StringType& new_name, | 
 |                                   const GetDataCallback& callback)); | 
 |   MOCK_METHOD3(RenameResource, void(const GURL& resource_url, | 
 |                                     const FilePath::StringType& new_name, | 
 |                                     const EntryActionCallback& callback)); | 
 |   MOCK_METHOD3(AddResourceToDirectory, | 
 |                void(const GURL& parent_content_url, | 
 |                     const GURL& resource_url, | 
 |                     const EntryActionCallback& callback)); | 
 |   MOCK_METHOD4(RemoveResourceFromDirectory, | 
 |                void(const GURL& parent_content_url, | 
 |                     const GURL& resource_url, | 
 |                     const std::string& resource_id, | 
 |                     const EntryActionCallback& callback)); | 
 |   MOCK_METHOD3(CreateDirectory, | 
 |                void(const GURL& parent_content_url, | 
 |                     const FilePath::StringType& directory_name, | 
 |                     const GetDataCallback& callback)); | 
 |   MOCK_METHOD5(DownloadFile, | 
 |                void(const FilePath& virtual_path, | 
 |                     const FilePath& local_cache_path, | 
 |                     const GURL& content_url, | 
 |                     const DownloadActionCallback& donwload_action_callback, | 
 |                     const GetContentCallback& get_content_callback)); | 
 |   MOCK_METHOD2(InitiateUpload, | 
 |                void(const InitiateUploadParams& upload_file_info, | 
 |                     const InitiateUploadCallback& callback)); | 
 |   MOCK_METHOD2(ResumeUpload, void(const ResumeUploadParams& upload_file_info, | 
 |                                   const ResumeUploadCallback& callback)); | 
 |   MOCK_METHOD3(AuthorizeApp, void(const GURL& resource_url, | 
 |                                   const std::string& app_ids, | 
 |                                   const GetDataCallback& callback)); | 
 |   MOCK_CONST_METHOD0(HasAccessToken, bool()); | 
 |   MOCK_CONST_METHOD0(HasRefreshToken, bool()); | 
 |  | 
 |   void set_account_metadata(base::Value* account_metadata) { | 
 |     account_metadata_.reset(account_metadata); | 
 |   } | 
 |  | 
 |   void set_feed_data(base::Value* feed_data) { | 
 |     feed_data_.reset(feed_data); | 
 |   } | 
 |  | 
 |   void set_directory_data(base::Value* directory_data) { | 
 |     directory_data_.reset(directory_data); | 
 |   } | 
 |  | 
 |   void set_file_data(std::string* file_data) { | 
 |     file_data_.reset(file_data); | 
 |   } | 
 |  | 
 |   void set_search_result(const std::string& search_result_feed); | 
 |  | 
 |  private: | 
 |   // Helper stub methods for functions which take callbacks, so that | 
 |   // the callbacks get called with testable results. | 
 |  | 
 |   // Will call |callback| with HTTP_SUCCESS and the token "test_auth_token" | 
 |   // as the token. | 
 |   void AuthenticateStub(const AuthStatusCallback& callback); | 
 |  | 
 |   // Will call |callback| with HTTP_SUCCESS and a StringValue with the current | 
 |   // value of |feed_data_|. | 
 |   void GetDocumentsStub(const GURL& feed_url, | 
 |                         int64 start_changestamp, | 
 |                         const std::string& search_string, | 
 |                         const std::string& directory_resource_id, | 
 |                         const GetDataCallback& callback); | 
 |  | 
 |   // Will call |callback| with HTTP_SUCCESS and a StringValue with the current | 
 |   // value of |account_metadata_|. | 
 |   void GetAccountMetadataStub(const GetDataCallback& callback); | 
 |  | 
 |   // Will call |callback| with HTTP_SUCCESS and the |document_url|. | 
 |   void DeleteDocumentStub(const GURL& document_url, | 
 |                           const EntryActionCallback& callback); | 
 |  | 
 |   // Will call |callback| with HTTP_SUCCESS, the given URL, and the host+path | 
 |   // portion of the URL as the temporary file path. | 
 |   void DownloadDocumentStub(const FilePath& virtual_path, | 
 |                             const FilePath& local_tmp_path, | 
 |                             const GURL& content_url, | 
 |                             DocumentExportFormat format, | 
 |                             const DownloadActionCallback& callback); | 
 |  | 
 |   // Will call |callback| with HTTP_SUCCESS and the current value of | 
 |   // |document_data_|. | 
 |   void CopyDocumentStub(const std::string& resource_id, | 
 |                         const FilePath::StringType& new_name, | 
 |                         const GetDataCallback& callback); | 
 |  | 
 |   // Will call |callback| with HTTP_SUCCESS and the |document_url|. | 
 |   void RenameResourceStub(const GURL& document_url, | 
 |                           const FilePath::StringType& new_name, | 
 |                           const EntryActionCallback& callback); | 
 |  | 
 |   // Will call |callback| with HTTP_SUCCESS and the |resource_url|. | 
 |   void AddResourceToDirectoryStub(const GURL& parent_content_url, | 
 |                                   const GURL& resource_url, | 
 |                                   const EntryActionCallback& callback); | 
 |  | 
 |   // Will call |callback| with HTTP_SUCCESS and the |resource_url|. | 
 |   void RemoveResourceFromDirectoryStub(const GURL& parent_content_url, | 
 |                                        const GURL& resource_url, | 
 |                                        const std::string& resource_id, | 
 |                                        const EntryActionCallback& callback); | 
 |  | 
 |   // Will call |callback| with HTTP_SUCCESS and the current value of | 
 |   // |directory_data_|. | 
 |   void CreateDirectoryStub(const GURL& parent_content_url, | 
 |                            const FilePath::StringType& directory_name, | 
 |                            const GetDataCallback& callback); | 
 |  | 
 |   // Will call |callback| with HTTP_SUCCESS, the given URL, and the host+path | 
 |   // portion of the URL as the temporary file path. If |file_data_| is not null, | 
 |   // |file_data_| is written to the temporary file. | 
 |   void DownloadFileStub( | 
 |       const FilePath& virtual_path, | 
 |       const FilePath& local_tmp_path, | 
 |       const GURL& content_url, | 
 |       const DownloadActionCallback& download_action_callback, | 
 |       const GetContentCallback& get_content_callback); | 
 |  | 
 |   // Account meta data to be returned from GetAccountMetadata. | 
 |   scoped_ptr<base::Value> account_metadata_; | 
 |  | 
 |   // Feed data to be returned from GetDocuments. | 
 |   scoped_ptr<base::Value> feed_data_; | 
 |  | 
 |   // Feed data to be returned from CreateDirectory. | 
 |   scoped_ptr<base::Value> directory_data_; | 
 |  | 
 |   // Feed data to be returned from CopyDocument. | 
 |   scoped_ptr<base::Value> document_data_; | 
 |  | 
 |   // Feed data to be returned from GetDocuments if the search path is specified. | 
 |   // The feed contains subset of the root_feed. | 
 |   scoped_ptr<base::Value> search_result_; | 
 |  | 
 |   // File data to be written to the local temporary file when | 
 |   // DownloadDocumentStub is called. | 
 |   scoped_ptr<std::string> file_data_; | 
 | }; | 
 |  | 
 | }  // namespace gdata | 
 |  | 
 | #endif  // CHROME_BROWSER_CHROMEOS_GDATA_MOCK_DRIVE_SERVICE_H_ |