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_LOCAL_STORAGE_HELPER_H_
6#define CHROME_BROWSER_BROWSING_DATA_MOCK_BROWSING_DATA_LOCAL_STORAGE_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_local_storage_helper.h"
14
15// Mock for BrowsingDataLocalStorageHelper.
16// Use AddLocalStorageSamples() or add directly to response_ list, then
17// call Notify().
18class MockBrowsingDataLocalStorageHelper
19    : public BrowsingDataLocalStorageHelper {
20 public:
21  explicit MockBrowsingDataLocalStorageHelper(Profile* profile);
22
23  // BrowsingDataLocalStorageHelper implementation.
24  virtual void StartFetching(
25      const base::Callback<void(const std::list<LocalStorageInfo>&)>& callback)
26          OVERRIDE;
27  virtual void DeleteOrigin(const GURL& origin) OVERRIDE;
28
29  // Adds some LocalStorageInfo samples.
30  void AddLocalStorageSamples();
31
32  // Notifies the callback.
33  void Notify();
34
35  // Marks all local storage files as existing.
36  void Reset();
37
38  // Returns true if all local storage files were deleted since the last Reset()
39  // invocation.
40  bool AllDeleted();
41
42  GURL last_deleted_origin_;
43
44 private:
45  virtual ~MockBrowsingDataLocalStorageHelper();
46
47  base::Callback<void(const std::list<LocalStorageInfo>&)> callback_;
48
49  std::map<const GURL, bool> origins_;
50
51  std::list<LocalStorageInfo> response_;
52};
53
54#endif  // CHROME_BROWSER_BROWSING_DATA_MOCK_BROWSING_DATA_LOCAL_STORAGE_HELPER_H_
55