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_INDEXED_DB_HELPER_H_
6#define CHROME_BROWSER_BROWSING_DATA_MOCK_BROWSING_DATA_INDEXED_DB_HELPER_H_
7
8#include <list>
9#include <map>
10
11#include "base/callback.h"
12#include "base/compiler_specific.h"
13#include "chrome/browser/browsing_data/browsing_data_indexed_db_helper.h"
14
15class Profile;
16
17// Mock for BrowsingDataIndexedDBHelper.
18// Use AddIndexedDBSamples() or add directly to response_ list, then
19// call Notify().
20class MockBrowsingDataIndexedDBHelper
21    : public BrowsingDataIndexedDBHelper {
22 public:
23  explicit MockBrowsingDataIndexedDBHelper(Profile* profile);
24
25  // Adds some IndexedDBInfo samples.
26  void AddIndexedDBSamples();
27
28  // Notifies the callback.
29  void Notify();
30
31  // Marks all indexed db files as existing.
32  void Reset();
33
34  // Returns true if all indexed db files were deleted since the last
35  // Reset() invokation.
36  bool AllDeleted();
37
38  // BrowsingDataIndexedDBHelper.
39  virtual void StartFetching(
40      const base::Callback<void(const std::list<content::IndexedDBInfo>&)>&
41          callback) OVERRIDE;
42  virtual void DeleteIndexedDB(const GURL& origin) OVERRIDE;
43
44 private:
45  virtual ~MockBrowsingDataIndexedDBHelper();
46
47  base::Callback<void(const std::list<content::IndexedDBInfo>&)> callback_;
48  std::map<GURL, bool> origins_;
49  std::list<content::IndexedDBInfo> response_;
50
51  DISALLOW_COPY_AND_ASSIGN(MockBrowsingDataIndexedDBHelper);
52};
53
54#endif  // CHROME_BROWSER_BROWSING_DATA_MOCK_BROWSING_DATA_INDEXED_DB_HELPER_H_
55