1// Copyright 2014 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 COMPONENTS_INVALIDATION_FAKE_INVALIDATOR_H_
6#define COMPONENTS_INVALIDATION_FAKE_INVALIDATOR_H_
7
8#include <string>
9
10#include "base/callback_forward.h"
11#include "base/compiler_specific.h"
12#include "components/invalidation/invalidation_util.h"
13#include "components/invalidation/invalidator.h"
14#include "components/invalidation/invalidator_registrar.h"
15
16namespace syncer {
17
18class FakeInvalidator : public Invalidator {
19 public:
20  FakeInvalidator();
21  virtual ~FakeInvalidator();
22
23  bool IsHandlerRegistered(InvalidationHandler* handler) const;
24  ObjectIdSet GetRegisteredIds(InvalidationHandler* handler) const;
25  const std::string& GetUniqueId() const;
26  const std::string& GetCredentialsEmail() const;
27  const std::string& GetCredentialsToken() const;
28
29  void EmitOnInvalidatorStateChange(InvalidatorState state);
30  void EmitOnIncomingInvalidation(
31      const ObjectIdInvalidationMap& invalidation_map);
32
33  virtual void RegisterHandler(InvalidationHandler* handler) OVERRIDE;
34  virtual void UpdateRegisteredIds(InvalidationHandler* handler,
35                                   const ObjectIdSet& ids) OVERRIDE;
36  virtual void UnregisterHandler(InvalidationHandler* handler) OVERRIDE;
37  virtual InvalidatorState GetInvalidatorState() const OVERRIDE;
38  virtual void UpdateCredentials(
39      const std::string& email, const std::string& token) OVERRIDE;
40  virtual void RequestDetailedStatus(
41    base::Callback<void(const base::DictionaryValue&)> callback) const
42    OVERRIDE;
43
44 private:
45  InvalidatorRegistrar registrar_;
46  std::string state_;
47  std::string email_;
48  std::string token_;
49};
50
51}  // namespace syncer
52
53#endif  // COMPONENTS_INVALIDATION_FAKE_INVALIDATOR_H_
54