#ifndef CONTENT_PUBLIC_BROWSER_DOWNLOAD_MOCK_DOWNLOAD_MANAGER_H_
#define CONTENT_PUBLIC_BROWSER_DOWNLOAD_MOCK_DOWNLOAD_MANAGER_H_
#include <vector>
#include "content/public/browser/download_manager.h"
#include "content/public/browser/download_save_info.h"
#include "content/public/browser/download_url_parameters.h"
#include "testing/gmock/include/gmock/gmock.h"
#include "testing/gtest/include/gtest/gtest.h"
#include "url/gurl.h"
class DownloadRequestHandle;
namespace content {
void PrintTo(const DownloadRequestHandle& params, std::ostream* os);
class MockDownloadManager : public DownloadManager {
public:
struct CreateDownloadItemAdapter {
uint32 id;
base::FilePath current_path;
base::FilePath target_path;
std::vector<GURL> url_chain;
GURL referrer_url;
base::Time start_time;
base::Time end_time;
std::string etag;
std::string last_modified;
int64 received_bytes;
int64 total_bytes;
DownloadItem::DownloadState state;
DownloadDangerType danger_type;
DownloadInterruptReason interrupt_reason;
bool opened;
CreateDownloadItemAdapter(
uint32 id,
const base::FilePath& current_path,
const base::FilePath& target_path,
const std::vector<GURL>& url_chain,
const GURL& referrer_url,
const base::Time& start_time,
const base::Time& end_time,
const std::string& etag,
const std::string& last_modified,
int64 received_bytes,
int64 total_bytes,
DownloadItem::DownloadState state,
DownloadDangerType danger_type,
DownloadInterruptReason interrupt_reason,
bool opened);
CreateDownloadItemAdapter(const CreateDownloadItemAdapter& rhs);
~CreateDownloadItemAdapter();
bool operator==(const CreateDownloadItemAdapter& rhs);
};
MockDownloadManager();
virtual ~MockDownloadManager();
MOCK_METHOD1(SetDelegate, void(DownloadManagerDelegate* delegate));
MOCK_CONST_METHOD0(GetDelegate, DownloadManagerDelegate*());
MOCK_METHOD0(Shutdown, void());
MOCK_METHOD1(GetAllDownloads, void(DownloadVector* downloads));
MOCK_METHOD1(Init, bool(BrowserContext* browser_context));
virtual void StartDownload(
scoped_ptr<DownloadCreateInfo> info,
scoped_ptr<ByteStreamReader> stream,
const DownloadUrlParameters::OnStartedCallback& callback) OVERRIDE;
MOCK_METHOD2(MockStartDownload,
void(DownloadCreateInfo*, ByteStreamReader*));
MOCK_METHOD2(RemoveDownloadsBetween, int(base::Time remove_begin,
base::Time remove_end));
MOCK_METHOD1(RemoveDownloads, int(base::Time remove_begin));
MOCK_METHOD0(RemoveAllDownloads, int());
MOCK_METHOD1(DownloadUrlMock, void(DownloadUrlParameters*));
virtual void DownloadUrl(scoped_ptr<DownloadUrlParameters> params) OVERRIDE {
DownloadUrlMock(params.get());
}
MOCK_METHOD1(AddObserver, void(Observer* observer));
MOCK_METHOD1(RemoveObserver, void(Observer* observer));
virtual DownloadItem* CreateDownloadItem(
uint32 id,
const base::FilePath& current_path,
const base::FilePath& target_path,
const std::vector<GURL>& url_chain,
const GURL& referrer_url,
const base::Time& start_time,
const base::Time& end_time,
const std::string& etag,
const std::string& last_modified,
int64 received_bytes,
int64 total_bytes,
DownloadItem::DownloadState state,
DownloadDangerType danger_type,
DownloadInterruptReason interrupt_reason,
bool opened) OVERRIDE;
MOCK_METHOD1(MockCreateDownloadItem,
DownloadItem*(CreateDownloadItemAdapter adapter));
MOCK_CONST_METHOD0(InProgressCount, int());
MOCK_CONST_METHOD0(NonMaliciousInProgressCount, int());
MOCK_CONST_METHOD0(GetBrowserContext, BrowserContext*());
MOCK_METHOD0(CheckForHistoryFilesRemoval, void());
MOCK_METHOD1(GetDownload, DownloadItem*(uint32 id));
};
}
#endif