• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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 #include "base/compiler_specific.h"
6 #include "base/memory/scoped_ptr.h"
7 #include "sync/notifier/fake_invalidator.h"
8 #include "sync/notifier/invalidator_test_template.h"
9 #include "testing/gtest/include/gtest/gtest.h"
10 
11 namespace syncer {
12 
13 namespace {
14 
15 class FakeInvalidatorTestDelegate {
16  public:
FakeInvalidatorTestDelegate()17   FakeInvalidatorTestDelegate() {}
18 
~FakeInvalidatorTestDelegate()19   ~FakeInvalidatorTestDelegate() {
20     DestroyInvalidator();
21   }
22 
CreateInvalidator(const std::string & invalidator_client_id,const std::string & initial_state,const base::WeakPtr<InvalidationStateTracker> & invalidation_state_tracker)23   void CreateInvalidator(
24       const std::string& invalidator_client_id,
25       const std::string& initial_state,
26       const base::WeakPtr<InvalidationStateTracker>&
27           invalidation_state_tracker) {
28     DCHECK(!invalidator_.get());
29     invalidator_.reset(new FakeInvalidator());
30   }
31 
GetInvalidator()32   FakeInvalidator* GetInvalidator() {
33     return invalidator_.get();
34   }
35 
DestroyInvalidator()36   void DestroyInvalidator() {
37     invalidator_.reset();
38   }
39 
WaitForInvalidator()40   void WaitForInvalidator() {
41     // Do Nothing.
42   }
43 
TriggerOnInvalidatorStateChange(InvalidatorState state)44   void TriggerOnInvalidatorStateChange(InvalidatorState state) {
45     invalidator_->EmitOnInvalidatorStateChange(state);
46   }
47 
TriggerOnIncomingInvalidation(const ObjectIdInvalidationMap & invalidation_map)48   void TriggerOnIncomingInvalidation(
49       const ObjectIdInvalidationMap& invalidation_map) {
50     invalidator_->EmitOnIncomingInvalidation(invalidation_map);
51   }
52 
53  private:
54   scoped_ptr<FakeInvalidator> invalidator_;
55 };
56 
57 INSTANTIATE_TYPED_TEST_CASE_P(
58     FakeInvalidatorTest, InvalidatorTest,
59     FakeInvalidatorTestDelegate);
60 
61 }  // namespace
62 
63 }  // namespace syncer
64