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 CHROME_BROWSER_BROWSING_DATA_MOCK_BROWSING_DATA_FILE_SYSTEM_HELPER_H_
6#define CHROME_BROWSER_BROWSING_DATA_MOCK_BROWSING_DATA_FILE_SYSTEM_HELPER_H_
7
8#include <list>
9#include <map>
10#include <string>
11
12#include "base/callback.h"
13#include "base/compiler_specific.h"
14#include "chrome/browser/browsing_data/browsing_data_file_system_helper.h"
15
16// Mock for BrowsingDataFileSystemHelper.
17// Use AddFileSystemSamples() or add directly to response_ list, then call
18// Notify().
19class MockBrowsingDataFileSystemHelper : public BrowsingDataFileSystemHelper {
20 public:
21  explicit MockBrowsingDataFileSystemHelper(Profile* profile);
22
23  // BrowsingDataFileSystemHelper implementation.
24  virtual void StartFetching(const base::Callback<
25      void(const std::list<FileSystemInfo>&)>& callback) OVERRIDE;
26  virtual void DeleteFileSystemOrigin(const GURL& origin) OVERRIDE;
27
28  // Adds a specific filesystem.
29  void AddFileSystem(const GURL& origin,
30                     bool has_persistent,
31                     bool has_temporary,
32                     bool has_syncable);
33
34  // Adds some FilesystemInfo samples.
35  void AddFileSystemSamples();
36
37  // Notifies the callback.
38  void Notify();
39
40  // Marks all filesystems as existing.
41  void Reset();
42
43  // Returns true if all filesystemss since the last Reset() invocation were
44  // deleted.
45  bool AllDeleted();
46
47  GURL last_deleted_origin_;
48
49 private:
50  virtual ~MockBrowsingDataFileSystemHelper();
51
52  base::Callback<void(const std::list<FileSystemInfo>&)> callback_;
53
54  // Stores which filesystems exist.
55  std::map<const std::string, bool> file_systems_;
56
57  std::list<FileSystemInfo> response_;
58
59  DISALLOW_COPY_AND_ASSIGN(MockBrowsingDataFileSystemHelper);
60};
61
62#endif  // CHROME_BROWSER_BROWSING_DATA_MOCK_BROWSING_DATA_FILE_SYSTEM_HELPER_H_
63