fake_server_invalidation_service.h revision 46d4c2bc3267f3f028f39e7e311b0f89aba2e4fd
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#ifndef CHROME_BROWSER_SYNC_TEST_INTEGRATION_FAKE_SERVER_INVALIDATION_SERVICE_H_ 6#define CHROME_BROWSER_SYNC_TEST_INTEGRATION_FAKE_SERVER_INVALIDATION_SERVICE_H_ 7 8#include <string> 9#include <utility> 10 11#include "base/basictypes.h" 12#include "chrome/browser/signin/fake_profile_oauth2_token_service.h" 13#include "components/invalidation/invalidation_service.h" 14#include "components/invalidation/invalidator_registrar.h" 15#include "google_apis/gaia/fake_identity_provider.h" 16#include "sync/internal_api/public/base/model_type.h" 17#include "sync/test/fake_server/fake_server.h" 18 19namespace content { 20class BrowserContext; 21} 22 23namespace invalidation { 24class InvalidationLogger; 25} 26 27namespace fake_server { 28 29// An InvalidationService that is used in conjunction with FakeServer. 30class FakeServerInvalidationService : public invalidation::InvalidationService, 31 public FakeServer::Observer { 32 public: 33 FakeServerInvalidationService(); 34 virtual ~FakeServerInvalidationService(); 35 36 static KeyedService* Build(content::BrowserContext* context); 37 38 virtual void RegisterInvalidationHandler( 39 syncer::InvalidationHandler* handler) OVERRIDE; 40 virtual void UpdateRegisteredInvalidationIds( 41 syncer::InvalidationHandler* handler, 42 const syncer::ObjectIdSet& ids) OVERRIDE; 43 virtual void UnregisterInvalidationHandler( 44 syncer::InvalidationHandler* handler) OVERRIDE; 45 46 virtual syncer::InvalidatorState GetInvalidatorState() const OVERRIDE; 47 virtual std::string GetInvalidatorClientId() const OVERRIDE; 48 virtual invalidation::InvalidationLogger* GetInvalidationLogger() OVERRIDE; 49 virtual void RequestDetailedStatus( 50 base::Callback<void(const base::DictionaryValue&)> caller) const OVERRIDE; 51 virtual IdentityProvider* GetIdentityProvider() OVERRIDE; 52 53 // Functions to enable or disable sending of self-notifications. In the real 54 // world, clients do not receive notifications of their own commits. 55 void EnableSelfNotifications(); 56 void DisableSelfNotifications(); 57 58 // FakeServer::Observer: 59 virtual void OnCommit( 60 const std::string& committer_id, 61 syncer::ModelTypeSet committed_model_types) OVERRIDE; 62 63 private: 64 std::string client_id_; 65 bool self_notify_; 66 67 syncer::InvalidatorRegistrar invalidator_registrar_; 68 FakeProfileOAuth2TokenService token_service_; 69 FakeIdentityProvider identity_provider_; 70 71 DISALLOW_COPY_AND_ASSIGN(FakeServerInvalidationService); 72}; 73 74} // namespace fake_server 75 76#endif // CHROME_BROWSER_SYNC_TEST_INTEGRATION_FAKE_SERVER_INVALIDATION_SERVICE_H_ 77