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_BROWSER_DOWNLOAD_MOCK_DOWNLOAD_FILE_H_
6#define CONTENT_BROWSER_DOWNLOAD_MOCK_DOWNLOAD_FILE_H_
7
8#include <map>
9#include <string>
10
11#include "base/files/file_path.h"
12#include "base/memory/ref_counted.h"
13#include "content/browser/download/download_file.h"
14#include "content/public/browser/download_manager.h"
15#include "testing/gmock/include/gmock/gmock.h"
16#include "testing/gtest/include/gtest/gtest.h"
17
18namespace content {
19struct DownloadCreateInfo;
20
21class MockDownloadFile : virtual public DownloadFile {
22 public:
23  MockDownloadFile();
24  virtual ~MockDownloadFile();
25
26  // DownloadFile functions.
27  MOCK_METHOD1(Initialize, void(const InitializeCallback&));
28  MOCK_METHOD2(AppendDataToFile, DownloadInterruptReason(
29      const char* data, size_t data_len));
30  MOCK_METHOD1(Rename, DownloadInterruptReason(
31      const base::FilePath& full_path));
32  MOCK_METHOD2(RenameAndUniquify,
33               void(const base::FilePath& full_path,
34                    const RenameCompletionCallback& callback));
35  MOCK_METHOD2(RenameAndAnnotate,
36               void(const base::FilePath& full_path,
37                    const RenameCompletionCallback& callback));
38  MOCK_METHOD0(Detach, void());
39  MOCK_METHOD0(Cancel, void());
40  MOCK_METHOD0(Finish, void());
41  MOCK_CONST_METHOD0(FullPath, base::FilePath());
42  MOCK_CONST_METHOD0(InProgress, bool());
43  MOCK_CONST_METHOD0(BytesSoFar, int64());
44  MOCK_CONST_METHOD0(CurrentSpeed, int64());
45  MOCK_METHOD1(GetHash, bool(std::string* hash));
46  MOCK_METHOD0(GetHashState, std::string());
47  MOCK_METHOD0(SendUpdate, void());
48  MOCK_CONST_METHOD0(Id, int());
49  MOCK_METHOD0(GetDownloadManager, DownloadManager*());
50  MOCK_CONST_METHOD0(DebugString, std::string());
51  MOCK_METHOD1(SetClientGuid, void(const std::string&));
52};
53
54}  // namespace content
55
56#endif  // CONTENT_BROWSER_DOWNLOAD_MOCK_DOWNLOAD_FILE_H_
57