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.
5 #include "chrome/browser/sync/test/integration/fake_server_invalidation_service.h"
9 #include "base/macros.h"
10 #include "components/invalidation/impl/invalidation_service_util.h"
11 #include "components/invalidation/public/invalidation.h"
12 #include "components/invalidation/public/object_id_invalidation_map.h"
13 #include "components/sync_driver/invalidation_helper.h"
14 #include "sync/internal_api/public/base/model_type.h"
16 namespace fake_server
{
18 FakeServerInvalidationService::FakeServerInvalidationService()
19 : client_id_(invalidation::GenerateInvalidatorClientId()),
21 identity_provider_(&token_service_
) {
22 invalidator_registrar_
.UpdateInvalidatorState(syncer::INVALIDATIONS_ENABLED
);
25 FakeServerInvalidationService::~FakeServerInvalidationService() {
28 void FakeServerInvalidationService::RegisterInvalidationHandler(
29 syncer::InvalidationHandler
* handler
) {
30 invalidator_registrar_
.RegisterHandler(handler
);
33 bool FakeServerInvalidationService::UpdateRegisteredInvalidationIds(
34 syncer::InvalidationHandler
* handler
,
35 const syncer::ObjectIdSet
& ids
) {
36 return invalidator_registrar_
.UpdateRegisteredIds(handler
, ids
);
39 void FakeServerInvalidationService::UnregisterInvalidationHandler(
40 syncer::InvalidationHandler
* handler
) {
41 invalidator_registrar_
.UnregisterHandler(handler
);
44 syncer::InvalidatorState
FakeServerInvalidationService::GetInvalidatorState()
46 return invalidator_registrar_
.GetInvalidatorState();
49 std::string
FakeServerInvalidationService::GetInvalidatorClientId() const {
53 invalidation::InvalidationLogger
*
54 FakeServerInvalidationService::GetInvalidationLogger() {
58 void FakeServerInvalidationService::RequestDetailedStatus(
59 base::Callback
<void(const base::DictionaryValue
&)> caller
) const {
60 base::DictionaryValue value
;
64 IdentityProvider
* FakeServerInvalidationService::GetIdentityProvider() {
65 return &identity_provider_
;
68 void FakeServerInvalidationService::EnableSelfNotifications() {
72 void FakeServerInvalidationService::DisableSelfNotifications() {
76 void FakeServerInvalidationService::OnCommit(
77 const std::string
& committer_id
,
78 syncer::ModelTypeSet committed_model_types
) {
79 syncer::ObjectIdSet object_ids
= syncer::ModelTypeSetToObjectIdSet(
80 committed_model_types
);
81 syncer::ObjectIdInvalidationMap invalidation_map
;
82 for (syncer::ObjectIdSet::const_iterator it
= object_ids
.begin();
83 it
!= object_ids
.end(); ++it
) {
84 // TODO(pvalenzuela): Create more refined invalidations instead of
85 // invalidating all items of a given type.
87 if (self_notify_
|| client_id_
!= committer_id
) {
88 invalidation_map
.Insert(syncer::Invalidation::InitUnknownVersion(*it
));
91 invalidator_registrar_
.DispatchInvalidationsToHandlers(invalidation_map
);
94 } // namespace fake_server