15821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Copyright (c) 2011 The Chromium Authors. All rights reserved.
25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be
35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// found in the LICENSE file.
45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
55821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifndef BASE_PREFS_PREF_STORE_OBSERVER_MOCK_H_
65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define BASE_PREFS_PREF_STORE_OBSERVER_MOCK_H_
75821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
8effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch#include <string>
9effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch#include <vector>
10effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch
11effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch#include "base/compiler_specific.h"
12effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch#include "base/macros.h"
135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "base/prefs/pref_store.h"
145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
15effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch// A mock implementation of PrefStore::Observer.
165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class PrefStoreObserverMock : public PrefStore::Observer {
175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) public:
185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  PrefStoreObserverMock();
195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  virtual ~PrefStoreObserverMock();
205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
21effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch  void VerifyAndResetChangedKey(const std::string& expected);
22effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch
23effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch  // PrefStore::Observer implementation
24effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch  virtual void OnPrefValueChanged(const std::string& key) OVERRIDE;
25effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch  virtual void OnInitializationCompleted(bool success) OVERRIDE;
26effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch
27effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch  std::vector<std::string> changed_keys;
28effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch  bool initialized;
29effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch  bool initialization_success;  // Only valid if |initialized|.
305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) private:
325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  DISALLOW_COPY_AND_ASSIGN(PrefStoreObserverMock);
335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)};
345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif  // BASE_PREFS_PREF_STORE_OBSERVER_MOCK_H_
36