Upstream version 9.38.198.0
[platform/framework/web/crosswalk.git] / src / chrome / browser / sync / test / integration / fake_server_invalidation_service.cc
index c862519..3324d0c 100644 (file)
@@ -7,16 +7,17 @@
 #include <string>
 
 #include "base/macros.h"
-#include "chrome/browser/invalidation/invalidation_service_util.h"
-#include "sync/internal_api/public/base/invalidation.h"
+#include "chrome/browser/sync/glue/invalidation_helper.h"
+#include "components/invalidation/invalidation.h"
+#include "components/invalidation/invalidation_service_util.h"
+#include "components/invalidation/object_id_invalidation_map.h"
 #include "sync/internal_api/public/base/model_type.h"
-#include "sync/notifier/object_id_invalidation_map.h"
-#
 
 namespace fake_server {
 
 FakeServerInvalidationService::FakeServerInvalidationService()
     : client_id_(invalidation::GenerateInvalidatorClientId()),
+      self_notify_(true),
       identity_provider_(&token_service_) {
   invalidator_registrar_.UpdateInvalidatorState(syncer::INVALIDATIONS_ENABLED);
 }
@@ -24,12 +25,6 @@ FakeServerInvalidationService::FakeServerInvalidationService()
 FakeServerInvalidationService::~FakeServerInvalidationService() {
 }
 
-// static
-KeyedService* FakeServerInvalidationService::Build(
-    content::BrowserContext* context) {
-  return new FakeServerInvalidationService();
-}
-
 void FakeServerInvalidationService::RegisterInvalidationHandler(
       syncer::InvalidationHandler* handler) {
   invalidator_registrar_.RegisterHandler(handler);
@@ -70,7 +65,16 @@ IdentityProvider* FakeServerInvalidationService::GetIdentityProvider() {
   return &identity_provider_;
 }
 
+void FakeServerInvalidationService::EnableSelfNotifications() {
+  self_notify_ = true;
+}
+
+void FakeServerInvalidationService::DisableSelfNotifications() {
+  self_notify_ = false;
+}
+
 void FakeServerInvalidationService::OnCommit(
+    const std::string& committer_id,
     syncer::ModelTypeSet committed_model_types) {
   syncer::ObjectIdSet object_ids = syncer::ModelTypeSetToObjectIdSet(
       committed_model_types);
@@ -79,7 +83,10 @@ void FakeServerInvalidationService::OnCommit(
        it != object_ids.end(); ++it) {
     // TODO(pvalenzuela): Create more refined invalidations instead of
     // invalidating all items of a given type.
-    invalidation_map.Insert(syncer::Invalidation::InitUnknownVersion(*it));
+
+    if (self_notify_ || client_id_ != committer_id) {
+      invalidation_map.Insert(syncer::Invalidation::InitUnknownVersion(*it));
+    }
   }
   invalidator_registrar_.DispatchInvalidationsToHandlers(invalidation_map);
 }