IndexedDBFactory now ForceCloses databases.
[chromium-blink-merge.git] / content / public / test / mock_download_manager.h
blobabf0305dee05d29ba908fffa2c8f45bb16d7fbaf
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.
5 #ifndef CONTENT_PUBLIC_BROWSER_DOWNLOAD_MOCK_DOWNLOAD_MANAGER_H_
6 #define CONTENT_PUBLIC_BROWSER_DOWNLOAD_MOCK_DOWNLOAD_MANAGER_H_
8 #include <vector>
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 "testing/gmock/include/gmock/gmock.h"
14 #include "testing/gtest/include/gtest/gtest.h"
15 #include "url/gurl.h"
17 class DownloadRequestHandle;
19 namespace content {
21 // To avoid leaking download_request_handle.h to embedders.
22 void PrintTo(const DownloadRequestHandle& params, std::ostream* os);
24 class MockDownloadManager : public DownloadManager {
25 public:
26 // Structure to make it possible to match more than 10 arguments on
27 // CreateDownloadItem.
28 struct CreateDownloadItemAdapter {
29 uint32 id;
30 base::FilePath current_path;
31 base::FilePath target_path;
32 std::vector<GURL> url_chain;
33 GURL referrer_url;
34 base::Time start_time;
35 base::Time end_time;
36 std::string etag;
37 std::string last_modified;
38 int64 received_bytes;
39 int64 total_bytes;
40 DownloadItem::DownloadState state;
41 DownloadDangerType danger_type;
42 DownloadInterruptReason interrupt_reason;
43 bool opened;
45 CreateDownloadItemAdapter(
46 uint32 id,
47 const base::FilePath& current_path,
48 const base::FilePath& target_path,
49 const std::vector<GURL>& url_chain,
50 const GURL& referrer_url,
51 const base::Time& start_time,
52 const base::Time& end_time,
53 const std::string& etag,
54 const std::string& last_modified,
55 int64 received_bytes,
56 int64 total_bytes,
57 DownloadItem::DownloadState state,
58 DownloadDangerType danger_type,
59 DownloadInterruptReason interrupt_reason,
60 bool opened);
61 // Required by clang compiler.
62 CreateDownloadItemAdapter(const CreateDownloadItemAdapter& rhs);
63 ~CreateDownloadItemAdapter();
65 bool operator==(const CreateDownloadItemAdapter& rhs);
68 MockDownloadManager();
69 virtual ~MockDownloadManager();
71 // DownloadManager:
72 MOCK_METHOD1(SetDelegate, void(DownloadManagerDelegate* delegate));
73 MOCK_CONST_METHOD0(GetDelegate, DownloadManagerDelegate*());
74 MOCK_METHOD0(Shutdown, void());
75 MOCK_METHOD1(GetAllDownloads, void(DownloadVector* downloads));
76 MOCK_METHOD1(Init, bool(BrowserContext* browser_context));
78 // Gasket for handling scoped_ptr arguments.
79 virtual void StartDownload(
80 scoped_ptr<DownloadCreateInfo> info,
81 scoped_ptr<ByteStreamReader> stream,
82 const DownloadUrlParameters::OnStartedCallback& callback) OVERRIDE;
84 MOCK_METHOD2(MockStartDownload,
85 void(DownloadCreateInfo*, ByteStreamReader*));
86 MOCK_METHOD2(RemoveDownloadsBetween, int(base::Time remove_begin,
87 base::Time remove_end));
88 MOCK_METHOD1(RemoveDownloads, int(base::Time remove_begin));
89 MOCK_METHOD0(RemoveAllDownloads, int());
90 MOCK_METHOD1(DownloadUrlMock, void(DownloadUrlParameters*));
91 virtual void DownloadUrl(scoped_ptr<DownloadUrlParameters> params) OVERRIDE {
92 DownloadUrlMock(params.get());
94 MOCK_METHOD1(AddObserver, void(Observer* observer));
95 MOCK_METHOD1(RemoveObserver, void(Observer* observer));
97 // Redirects to mock method to get around gmock 10 argument limit.
98 virtual DownloadItem* CreateDownloadItem(
99 uint32 id,
100 const base::FilePath& current_path,
101 const base::FilePath& target_path,
102 const std::vector<GURL>& url_chain,
103 const GURL& referrer_url,
104 const base::Time& start_time,
105 const base::Time& end_time,
106 const std::string& etag,
107 const std::string& last_modified,
108 int64 received_bytes,
109 int64 total_bytes,
110 DownloadItem::DownloadState state,
111 DownloadDangerType danger_type,
112 DownloadInterruptReason interrupt_reason,
113 bool opened) OVERRIDE;
115 MOCK_METHOD1(MockCreateDownloadItem,
116 DownloadItem*(CreateDownloadItemAdapter adapter));
118 MOCK_CONST_METHOD0(InProgressCount, int());
119 MOCK_CONST_METHOD0(NonMaliciousInProgressCount, int());
120 MOCK_CONST_METHOD0(GetBrowserContext, BrowserContext*());
121 MOCK_METHOD0(CheckForHistoryFilesRemoval, void());
122 MOCK_METHOD1(GetDownload, DownloadItem*(uint32 id));
125 } // namespace content
127 #endif // CONTENT_PUBLIC_BROWSER_DOWNLOAD_MOCK_DOWNLOAD_MANAGER_H_