1c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath// Copyright (c) 2012 The Chromium Authors. All rights reserved.
2c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath// Use of this source code is governed by a BSD-style license that can be
3c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath// found in the LICENSE file.
4c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath
5c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath#ifndef CHROME_BROWSER_BROWSING_DATA_MOCK_BROWSING_DATA_FILE_SYSTEM_HELPER_H_
6c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath#define CHROME_BROWSER_BROWSING_DATA_MOCK_BROWSING_DATA_FILE_SYSTEM_HELPER_H_
7c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath
8c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath#include <list>
9c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath#include <map>
10c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath#include <string>
11c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath
12c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath#include "base/callback.h"
13c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath#include "base/compiler_specific.h"
14c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath#include "chrome/browser/browsing_data/browsing_data_file_system_helper.h"
15c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath
16c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath// Mock for BrowsingDataFileSystemHelper.
17c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath// Use AddFileSystemSamples() or add directly to response_ list, then call
18c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath// Notify().
19c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamathclass MockBrowsingDataFileSystemHelper : public BrowsingDataFileSystemHelper {
20c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath public:
21c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath  explicit MockBrowsingDataFileSystemHelper(Profile* profile);
22c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath
23c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath  // BrowsingDataFileSystemHelper implementation.
24c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath  virtual void StartFetching(const base::Callback<
25c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath      void(const std::list<FileSystemInfo>&)>& callback) OVERRIDE;
26c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath  virtual void DeleteFileSystemOrigin(const GURL& origin) OVERRIDE;
27c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath
28c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath  // Adds a specific filesystem.
29c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath  void AddFileSystem(const GURL& origin,
30c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                     bool has_persistent,
31c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                     bool has_temporary,
32c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath                     bool has_syncable);
33c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath
34c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath  // Adds some FilesystemInfo samples.
35c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath  void AddFileSystemSamples();
36c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath
37c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath  // Notifies the callback.
38c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath  void Notify();
39c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath
40c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath  // Marks all filesystems as existing.
41c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath  void Reset();
42c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath
43c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath  // Returns true if all filesystemss since the last Reset() invocation were
44c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath  // deleted.
45c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath  bool AllDeleted();
46c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath
47c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath  GURL last_deleted_origin_;
48c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath
49c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath private:
50c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath  virtual ~MockBrowsingDataFileSystemHelper();
51c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath
52c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath  base::Callback<void(const std::list<FileSystemInfo>&)> callback_;
53c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath
54c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath  // Stores which filesystems exist.
55c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath  std::map<const std::string, bool> file_systems_;
56c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath
57c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath  std::list<FileSystemInfo> response_;
58c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath
59c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath  DISALLOW_COPY_AND_ASSIGN(MockBrowsingDataFileSystemHelper);
60c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath};
61c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath
62c981c48f5bc9aefeffc0bcb0cc3934c2fae179ddNarayan Kamath#endif  // CHROME_BROWSER_BROWSING_DATA_MOCK_BROWSING_DATA_FILE_SYSTEM_HELPER_H_
63