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: 17 FakeInvalidatorTestDelegate() {} 18 19 ~FakeInvalidatorTestDelegate() { 20 DestroyInvalidator(); 21 } 22 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 32 FakeInvalidator* GetInvalidator() { 33 return invalidator_.get(); 34 } 35 36 void DestroyInvalidator() { 37 invalidator_.reset(); 38 } 39 40 void WaitForInvalidator() { 41 // Do Nothing. 42 } 43 44 void TriggerOnInvalidatorStateChange(InvalidatorState state) { 45 invalidator_->EmitOnInvalidatorStateChange(state); 46 } 47 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