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