Home | History | Annotate | Download | only in invalidation
      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