fake_server_invalidation_service.cc revision 010d83a9304c5a91596085d917d248abff47903a
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 "chrome/browser/sync/test/integration/fake_server_invalidation_service.h" 6 7#include <string> 8 9#include "base/macros.h" 10#include "chrome/browser/invalidation/invalidation_service_util.h" 11#include "sync/internal_api/public/base/invalidation.h" 12#include "sync/internal_api/public/base/model_type.h" 13#include "sync/notifier/object_id_invalidation_map.h" 14# 15 16namespace fake_server { 17 18FakeServerInvalidationService::FakeServerInvalidationService() 19 : client_id_(invalidation::GenerateInvalidatorClientId()), 20 identity_provider_(&token_service_) { 21 invalidator_registrar_.UpdateInvalidatorState(syncer::INVALIDATIONS_ENABLED); 22} 23 24FakeServerInvalidationService::~FakeServerInvalidationService() { 25} 26 27// static 28KeyedService* FakeServerInvalidationService::Build( 29 content::BrowserContext* context) { 30 return new FakeServerInvalidationService(); 31} 32 33void FakeServerInvalidationService::RegisterInvalidationHandler( 34 syncer::InvalidationHandler* handler) { 35 invalidator_registrar_.RegisterHandler(handler); 36} 37 38void FakeServerInvalidationService::UpdateRegisteredInvalidationIds( 39 syncer::InvalidationHandler* handler, 40 const syncer::ObjectIdSet& ids) { 41 invalidator_registrar_.UpdateRegisteredIds(handler, ids); 42} 43 44void FakeServerInvalidationService::UnregisterInvalidationHandler( 45 syncer::InvalidationHandler* handler) { 46 invalidator_registrar_.UnregisterHandler(handler); 47} 48 49syncer::InvalidatorState FakeServerInvalidationService::GetInvalidatorState() 50 const { 51 return invalidator_registrar_.GetInvalidatorState(); 52} 53 54std::string FakeServerInvalidationService::GetInvalidatorClientId() const { 55 return client_id_; 56} 57 58invalidation::InvalidationLogger* 59FakeServerInvalidationService::GetInvalidationLogger() { 60 return NULL; 61} 62 63void FakeServerInvalidationService::RequestDetailedStatus( 64 base::Callback<void(const base::DictionaryValue&)> caller) const { 65 base::DictionaryValue value; 66 caller.Run(value); 67} 68 69IdentityProvider* FakeServerInvalidationService::GetIdentityProvider() { 70 return &identity_provider_; 71} 72 73void FakeServerInvalidationService::OnCommit( 74 syncer::ModelTypeSet committed_model_types) { 75 syncer::ObjectIdSet object_ids = syncer::ModelTypeSetToObjectIdSet( 76 committed_model_types); 77 syncer::ObjectIdInvalidationMap invalidation_map; 78 for (syncer::ObjectIdSet::const_iterator it = object_ids.begin(); 79 it != object_ids.end(); ++it) { 80 // TODO(pvalenzuela): Create more refined invalidations instead of 81 // invalidating all items of a given type. 82 invalidation_map.Insert(syncer::Invalidation::InitUnknownVersion(*it)); 83 } 84 invalidator_registrar_.DispatchInvalidationsToHandlers(invalidation_map); 85} 86 87} // namespace fake_server 88