1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66
|
// Copyright 2013 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "components/invalidation/impl/fake_invalidation_service.h"
#include "components/invalidation/impl/invalidation_service_util.h"
#include "components/invalidation/public/invalidation.h"
#include "components/invalidation/public/invalidation_util.h"
#include "components/invalidation/public/invalidator_state.h"
namespace invalidation {
FakeInvalidationService::FakeInvalidationService()
: client_id_(GenerateInvalidatorClientId()) {
InvalidatorRegistrarWithMemory::RegisterProfilePrefs(
pref_service_.registry());
invalidator_registrar_ = std::make_unique<InvalidatorRegistrarWithMemory>(
&pref_service_, /*sender_id=*/"sender_id");
invalidator_registrar_->UpdateInvalidatorState(InvalidatorState::kEnabled);
}
FakeInvalidationService::~FakeInvalidationService() = default;
void FakeInvalidationService::AddObserver(InvalidationHandler* handler) {
invalidator_registrar_->AddObserver(handler);
}
bool FakeInvalidationService::HasObserver(
const InvalidationHandler* handler) const {
return invalidator_registrar_->HasObserver(handler);
}
bool FakeInvalidationService::UpdateInterestedTopics(
InvalidationHandler* handler,
const TopicSet& topic_set) {
TopicMap topic_map;
for (const auto& topic_name : topic_set) {
topic_map[topic_name] = TopicMetadata(handler->IsPublicTopic(topic_name));
}
return invalidator_registrar_->UpdateRegisteredTopics(handler, topic_map);
}
void FakeInvalidationService::RemoveObserver(
const InvalidationHandler* handler) {
invalidator_registrar_->RemoveObserver(handler);
}
InvalidatorState FakeInvalidationService::GetInvalidatorState() const {
return invalidator_registrar_->GetInvalidatorState();
}
std::string FakeInvalidationService::GetInvalidatorClientId() const {
return client_id_;
}
void FakeInvalidationService::SetInvalidatorState(InvalidatorState state) {
invalidator_registrar_->UpdateInvalidatorState(state);
}
void FakeInvalidationService::EmitInvalidationForTest(
const Invalidation& invalidation) {
invalidator_registrar_->DispatchInvalidationToHandlers(invalidation);
}
} // namespace invalidation
|