mock_download_manager.h revision 90dce4d38c5ff5333bea97d859d4e484e27edf0c
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 3// found in the LICENSE file. 4 5#ifndef CONTENT_PUBLIC_BROWSER_DOWNLOAD_MOCK_DOWNLOAD_MANAGER_H_ 6#define CONTENT_PUBLIC_BROWSER_DOWNLOAD_MOCK_DOWNLOAD_MANAGER_H_ 7 8#include <vector> 9 10#include "content/public/browser/download_manager.h" 11#include "content/public/browser/download_save_info.h" 12#include "content/public/browser/download_url_parameters.h" 13#include "googleurl/src/gurl.h" 14#include "testing/gmock/include/gmock/gmock.h" 15#include "testing/gtest/include/gtest/gtest.h" 16 17class DownloadRequestHandle; 18 19namespace content { 20 21// To avoid leaking download_request_handle.h to embedders. 22void PrintTo(const DownloadRequestHandle& params, std::ostream* os); 23 24class MockDownloadManager : public DownloadManager { 25 public: 26 // Structure to make it possible to match more than 10 arguments on 27 // CreateDownloadItem. 28 struct CreateDownloadItemAdapter { 29 base::FilePath current_path; 30 base::FilePath target_path; 31 std::vector<GURL> url_chain; 32 GURL referrer_url; 33 base::Time start_time; 34 base::Time end_time; 35 int64 received_bytes; 36 int64 total_bytes; 37 DownloadItem::DownloadState state; 38 DownloadDangerType danger_type; 39 DownloadInterruptReason interrupt_reason; 40 bool opened; 41 42 CreateDownloadItemAdapter( 43 const base::FilePath& current_path, 44 const base::FilePath& target_path, 45 const std::vector<GURL>& url_chain, 46 const GURL& referrer_url, 47 const base::Time& start_time, 48 const base::Time& end_time, 49 int64 received_bytes, 50 int64 total_bytes, 51 DownloadItem::DownloadState state, 52 DownloadDangerType danger_type, 53 DownloadInterruptReason interrupt_reason, 54 bool opened); 55 // Required by clang compiler. 56 CreateDownloadItemAdapter(const CreateDownloadItemAdapter& rhs); 57 ~CreateDownloadItemAdapter(); 58 59 bool operator==(const CreateDownloadItemAdapter& rhs); 60 }; 61 62 MockDownloadManager(); 63 virtual ~MockDownloadManager(); 64 65 // DownloadManager: 66 MOCK_METHOD1(SetDelegate, void(DownloadManagerDelegate* delegate)); 67 MOCK_CONST_METHOD0(GetDelegate, DownloadManagerDelegate*()); 68 MOCK_METHOD0(Shutdown, void()); 69 MOCK_METHOD1(GetAllDownloads, void(DownloadVector* downloads)); 70 MOCK_METHOD1(Init, bool(BrowserContext* browser_context)); 71 72 // Gasket for handling scoped_ptr arguments. 73 virtual DownloadItem* StartDownload( 74 scoped_ptr<DownloadCreateInfo> info, 75 scoped_ptr<ByteStreamReader> stream) OVERRIDE; 76 77 MOCK_METHOD2(MockStartDownload, 78 DownloadItem*(DownloadCreateInfo*, ByteStreamReader*)); 79 MOCK_METHOD1(CancelDownload, void(int32 download_id)); 80 MOCK_METHOD2(RemoveDownloadsBetween, int(base::Time remove_begin, 81 base::Time remove_end)); 82 MOCK_METHOD1(RemoveDownloads, int(base::Time remove_begin)); 83 MOCK_METHOD0(RemoveAllDownloads, int()); 84 MOCK_METHOD1(DownloadUrlMock, void(DownloadUrlParameters*)); 85 virtual void DownloadUrl(scoped_ptr<DownloadUrlParameters> params) OVERRIDE { 86 DownloadUrlMock(params.get()); 87 } 88 MOCK_METHOD1(AddObserver, void(Observer* observer)); 89 MOCK_METHOD1(RemoveObserver, void(Observer* observer)); 90 91 // Redirects to mock method to get around gmock 10 argument limit. 92 virtual DownloadItem* CreateDownloadItem( 93 const base::FilePath& current_path, 94 const base::FilePath& target_path, 95 const std::vector<GURL>& url_chain, 96 const GURL& referrer_url, 97 const base::Time& start_time, 98 const base::Time& end_time, 99 int64 received_bytes, 100 int64 total_bytes, 101 DownloadItem::DownloadState state, 102 DownloadDangerType danger_type, 103 DownloadInterruptReason interrupt_reason, 104 bool opened) OVERRIDE; 105 106 MOCK_METHOD1(MockCreateDownloadItem, 107 DownloadItem*(CreateDownloadItemAdapter adapter)); 108 109 MOCK_METHOD2(OnItemAddedToPersistentStore, void(int32 download_id, 110 int64 db_handle)); 111 MOCK_CONST_METHOD0(InProgressCount, int()); 112 MOCK_CONST_METHOD0(GetBrowserContext, BrowserContext*()); 113 MOCK_METHOD0(CheckForHistoryFilesRemoval, void()); 114 MOCK_METHOD1(GetDownloadItem, DownloadItem*(int id)); 115 MOCK_METHOD1(GetDownload, DownloadItem*(int id)); 116 MOCK_METHOD1(SavePageDownloadFinished, void(DownloadItem* download)); 117 MOCK_METHOD1(GetActiveDownloadItem, DownloadItem*(int id)); 118 MOCK_METHOD1(GetActiveDownload, DownloadItem*(int32 download_id)); 119}; 120 121} // namespace content 122 123#endif // CONTENT_PUBLIC_BROWSER_DOWNLOAD_MOCK_DOWNLOAD_MANAGER_H_ 124