Update To 11.40.268.0
[platform/framework/web/crosswalk.git] / src / components / invalidation / sync_invalidation_listener_unittest.cc
index f7ff05a..29fd0b2 100644 (file)
 #include "base/message_loop/message_loop.h"
 #include "base/stl_util.h"
 #include "components/invalidation/fake_invalidation_state_tracker.h"
+#include "components/invalidation/invalidation_util.h"
+#include "components/invalidation/object_id_invalidation_map.h"
 #include "components/invalidation/push_client_channel.h"
 #include "components/invalidation/sync_invalidation_listener.h"
+#include "components/invalidation/unacked_invalidation_set_test_util.h"
 #include "google/cacheinvalidation/include/invalidation-client.h"
 #include "google/cacheinvalidation/include/types.h"
 #include "jingle/notifier/listener/fake_push_client.h"
-#include "sync/internal_api/public/util/weak_handle.h"
-#include "sync/notifier/dropped_invalidation_tracker.h"
-#include "sync/notifier/invalidation_util.h"
-#include "sync/notifier/object_id_invalidation_map.h"
-#include "sync/notifier/unacked_invalidation_set_test_util.h"
 #include "testing/gtest/include/gtest/gtest.h"
 
 namespace syncer {
@@ -58,7 +56,7 @@ typedef std::set<AckHandle, AckHandleLessThan> AckHandleSet;
 class FakeInvalidationClient : public invalidation::InvalidationClient {
  public:
   FakeInvalidationClient() : started_(false) {}
-  virtual ~FakeInvalidationClient() {}
+  ~FakeInvalidationClient() override {}
 
   const ObjectIdSet& GetRegisteredIds() const {
     return registered_ids_;
@@ -74,15 +72,11 @@ class FakeInvalidationClient : public invalidation::InvalidationClient {
 
   // invalidation::InvalidationClient implementation.
 
-  virtual void Start() OVERRIDE {
-    started_ = true;
-  }
+  void Start() override { started_ = true; }
 
-  virtual void Stop() OVERRIDE {
-    started_ = false;
-  }
+  void Stop() override { started_ = false; }
 
-  virtual void Register(const ObjectId& object_id) OVERRIDE {
+  void Register(const ObjectId& object_id) override {
     if (!started_) {
       ADD_FAILURE();
       return;
@@ -90,8 +84,7 @@ class FakeInvalidationClient : public invalidation::InvalidationClient {
     registered_ids_.insert(object_id);
   }
 
-  virtual void Register(
-      const invalidation::vector<ObjectId>& object_ids) OVERRIDE {
+  void Register(const invalidation::vector<ObjectId>& object_ids) override {
     if (!started_) {
       ADD_FAILURE();
       return;
@@ -99,7 +92,7 @@ class FakeInvalidationClient : public invalidation::InvalidationClient {
     registered_ids_.insert(object_ids.begin(), object_ids.end());
   }
 
-  virtual void Unregister(const ObjectId& object_id) OVERRIDE {
+  void Unregister(const ObjectId& object_id) override {
     if (!started_) {
       ADD_FAILURE();
       return;
@@ -107,8 +100,7 @@ class FakeInvalidationClient : public invalidation::InvalidationClient {
     registered_ids_.erase(object_id);
   }
 
-  virtual void Unregister(
-      const invalidation::vector<ObjectId>& object_ids) OVERRIDE {
+  void Unregister(const invalidation::vector<ObjectId>& object_ids) override {
     if (!started_) {
       ADD_FAILURE();
       return;
@@ -119,7 +111,7 @@ class FakeInvalidationClient : public invalidation::InvalidationClient {
     }
   }
 
-  virtual void Acknowledge(const AckHandle& ack_handle) OVERRIDE {
+  void Acknowledge(const AckHandle& ack_handle) override {
     if (!started_) {
       ADD_FAILURE();
       return;
@@ -138,9 +130,8 @@ class FakeInvalidationClient : public invalidation::InvalidationClient {
 class FakeDelegate : public SyncInvalidationListener::Delegate {
  public:
   explicit FakeDelegate(SyncInvalidationListener* listener)
-      : state_(TRANSIENT_INVALIDATION_ERROR),
-        drop_handlers_deleter_(&drop_handlers_) {}
-  virtual ~FakeDelegate() {}
+      : state_(TRANSIENT_INVALIDATION_ERROR) {}
+  ~FakeDelegate() override {}
 
   size_t GetInvalidationCount(const ObjectId& id) const {
     Map::const_iterator it = invalidations_.find(id);
@@ -195,17 +186,6 @@ class FakeDelegate : public SyncInvalidationListener::Delegate {
     return state_;
   }
 
-  DroppedInvalidationTracker* GetDropTrackerForObject(const ObjectId& id) {
-    DropHandlers::iterator it = drop_handlers_.find(id);
-    if (it == drop_handlers_.end()) {
-      drop_handlers_.insert(
-          std::make_pair(id, new DroppedInvalidationTracker(id)));
-      return drop_handlers_.find(id)->second;
-    } else {
-      return it->second;
-    }
-  }
-
   void AcknowledgeNthInvalidation(const ObjectId& id, size_t n) {
     List& list = invalidations_[id];
     List::iterator it = list.begin() + n;
@@ -220,20 +200,23 @@ class FakeDelegate : public SyncInvalidationListener::Delegate {
   }
 
   void DropNthInvalidation(const ObjectId& id, size_t n) {
-    DroppedInvalidationTracker* drop_tracker = GetDropTrackerForObject(id);
     List& list = invalidations_[id];
     List::iterator it = list.begin() + n;
-    it->Drop(drop_tracker);
+    it->Drop();
+    dropped_invalidations_map_.erase(id);
+    dropped_invalidations_map_.insert(std::make_pair(id, *it));
   }
 
   void RecoverFromDropEvent(const ObjectId& id) {
-    DroppedInvalidationTracker* drop_tracker = GetDropTrackerForObject(id);
-    drop_tracker->RecordRecoveryFromDropEvent();
+    DropMap::iterator it = dropped_invalidations_map_.find(id);
+    if (it != dropped_invalidations_map_.end()) {
+      it->second.Acknowledge();
+      dropped_invalidations_map_.erase(it);
+    }
   }
 
   // SyncInvalidationListener::Delegate implementation.
-  virtual void OnInvalidate(
-      const ObjectIdInvalidationMap& invalidation_map) OVERRIDE {
+  void OnInvalidate(const ObjectIdInvalidationMap& invalidation_map) override {
     ObjectIdSet ids = invalidation_map.GetObjectIds();
     for (ObjectIdSet::iterator it = ids.begin(); it != ids.end(); ++it) {
       const SingleObjectInvalidationSet& incoming =
@@ -243,21 +226,18 @@ class FakeDelegate : public SyncInvalidationListener::Delegate {
     }
   }
 
-  virtual void OnInvalidatorStateChange(InvalidatorState state) OVERRIDE {
+  void OnInvalidatorStateChange(InvalidatorState state) override {
     state_ = state;
   }
 
  private:
   typedef std::vector<Invalidation> List;
   typedef std::map<ObjectId, List, ObjectIdLessThan> Map;
-  typedef std::map<ObjectId,
-                   DroppedInvalidationTracker*,
-                   ObjectIdLessThan> DropHandlers;
+  typedef std::map<ObjectId, Invalidation, ObjectIdLessThan> DropMap;
 
   Map invalidations_;
   InvalidatorState state_;
-  DropHandlers drop_handlers_;
-  STLValueDeleter<DropHandlers> drop_handlers_deleter_;
+  DropMap dropped_invalidations_map_;
 };
 
 invalidation::InvalidationClient* CreateFakeInvalidationClient(
@@ -284,7 +264,7 @@ class SyncInvalidationListenerTest : public testing::Test {
             scoped_ptr<notifier::PushClient>(fake_push_client_)))),
         fake_delegate_(&listener_) {}
 
-  virtual void SetUp() {
+  void SetUp() override {
     StartClient();
 
     registered_ids_.insert(kBookmarksId_);
@@ -292,9 +272,7 @@ class SyncInvalidationListenerTest : public testing::Test {
     listener_.UpdateRegisteredIds(registered_ids_);
   }
 
-  virtual void TearDown() {
-    StopClient();
-  }
+  void TearDown() override { StopClient(); }
 
   // Restart client without re-registering IDs.
   void RestartClient() {
@@ -304,12 +282,15 @@ class SyncInvalidationListenerTest : public testing::Test {
 
   void StartClient() {
     fake_invalidation_client_ = NULL;
-    listener_.Start(base::Bind(&CreateFakeInvalidationClient,
-                               &fake_invalidation_client_),
-                    kClientId, kClientInfo, kState,
-                    fake_tracker_.GetSavedInvalidations(),
-                    MakeWeakHandle(fake_tracker_.AsWeakPtr()),
-                    &fake_delegate_);
+    listener_.Start(
+        base::Bind(&CreateFakeInvalidationClient, &fake_invalidation_client_),
+        kClientId,
+        kClientInfo,
+        kState,
+        fake_tracker_.GetSavedInvalidations(),
+        fake_tracker_.AsWeakPtr(),
+        base::MessageLoopProxy::current(),
+        &fake_delegate_);
     DCHECK(fake_invalidation_client_);
   }
 
@@ -388,7 +369,10 @@ class SyncInvalidationListenerTest : public testing::Test {
       return SingleObjectInvalidationSet();
     }
     ObjectIdInvalidationMap map;
-    it->second.ExportInvalidations(WeakHandle<AckHandler>(), &map);
+    it->second.ExportInvalidations(
+        base::WeakPtr<AckHandler>(),
+        scoped_refptr<base::SingleThreadTaskRunner>(),
+        &map);
     if (map.Empty()) {
       return SingleObjectInvalidationSet();
     } else  {
@@ -1076,7 +1060,7 @@ TEST_F(SyncInvalidationListenerTest, InvalidationClientAuthError) {
 class SyncInvalidationListenerTest_WithInitialState
     : public SyncInvalidationListenerTest {
  public:
-  virtual void SetUp() {
+  void SetUp() override {
     UnackedInvalidationSet bm_state(kBookmarksId_);
     UnackedInvalidationSet ext_state(kExtensionsId_);