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 #include "base/compiler_specific.h" 6 #include "base/memory/scoped_ptr.h" 7 #include "components/invalidation/fake_invalidator.h" 8 #include "components/invalidation/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