Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(627)

Unified Diff: components/invalidation/invalidator_test_template.h

Issue 1146533005: [Sync] InvalidationService shouldn't CHECK when registering ObjectId for more than one handler (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Addressed comments from Bartosz. Created 5 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: components/invalidation/invalidator_test_template.h
diff --git a/components/invalidation/invalidator_test_template.h b/components/invalidation/invalidator_test_template.h
index f6a8cef6e04a4106945c38c1c53701251f3dca0c..da4d455ad118eaa08cb187ce2bf15e0d33979ea5 100644
--- a/components/invalidation/invalidator_test_template.h
+++ b/components/invalidation/invalidator_test_template.h
@@ -146,7 +146,7 @@ TYPED_TEST_P(InvalidatorTest, Basic) {
ObjectIdSet ids;
ids.insert(this->id1);
ids.insert(this->id2);
- invalidator->UpdateRegisteredIds(&handler, ids);
+ EXPECT_TRUE(invalidator->UpdateRegisteredIds(&handler, ids));
this->delegate_.TriggerOnInvalidatorStateChange(INVALIDATIONS_ENABLED);
EXPECT_EQ(INVALIDATIONS_ENABLED, handler.GetInvalidatorState());
@@ -161,7 +161,7 @@ TYPED_TEST_P(InvalidatorTest, Basic) {
ids.erase(this->id1);
ids.insert(this->id3);
- invalidator->UpdateRegisteredIds(&handler, ids);
+ EXPECT_TRUE(invalidator->UpdateRegisteredIds(&handler, ids));
expected_invalidations = ObjectIdInvalidationMap();
expected_invalidations.Insert(Invalidation::Init(this->id2, 2, "2"));
@@ -210,13 +210,13 @@ TYPED_TEST_P(InvalidatorTest, MultipleHandlers) {
ObjectIdSet ids;
ids.insert(this->id1);
ids.insert(this->id2);
- invalidator->UpdateRegisteredIds(&handler1, ids);
+ EXPECT_TRUE(invalidator->UpdateRegisteredIds(&handler1, ids));
}
{
ObjectIdSet ids;
ids.insert(this->id3);
- invalidator->UpdateRegisteredIds(&handler2, ids);
+ EXPECT_TRUE(invalidator->UpdateRegisteredIds(&handler2, ids));
}
// Don't register any IDs for handler3.
@@ -224,7 +224,7 @@ TYPED_TEST_P(InvalidatorTest, MultipleHandlers) {
{
ObjectIdSet ids;
ids.insert(this->id4);
- invalidator->UpdateRegisteredIds(&handler4, ids);
+ EXPECT_TRUE(invalidator->UpdateRegisteredIds(&handler4, ids));
}
invalidator->UnregisterHandler(&handler4);
@@ -272,6 +272,28 @@ TYPED_TEST_P(InvalidatorTest, MultipleHandlers) {
invalidator->UnregisterHandler(&handler1);
}
+// Multiple registrations by different handlers on the same object ID should
+// return false.
+TYPED_TEST_P(InvalidatorTest, MultipleRegistrations) {
+ Invalidator* const invalidator = this->CreateAndInitializeInvalidator();
+
+ FakeInvalidationHandler handler1;
+ FakeInvalidationHandler handler2;
+
+ invalidator->RegisterHandler(&handler1);
+ invalidator->RegisterHandler(&handler2);
+
+ // Registering both handlers for the same ObjectId. First call should succeed,
+ // second should fail.
+ ObjectIdSet ids;
+ ids.insert(this->id1);
+ EXPECT_TRUE(invalidator->UpdateRegisteredIds(&handler1, ids));
+ EXPECT_FALSE(invalidator->UpdateRegisteredIds(&handler2, ids));
+
+ invalidator->UnregisterHandler(&handler2);
+ invalidator->UnregisterHandler(&handler1);
+}
+
// Make sure that passing an empty set to UpdateRegisteredIds clears the
// corresponding entries for the handler.
TYPED_TEST_P(InvalidatorTest, EmptySetUnregisters) {
@@ -289,18 +311,18 @@ TYPED_TEST_P(InvalidatorTest, EmptySetUnregisters) {
ObjectIdSet ids;
ids.insert(this->id1);
ids.insert(this->id2);
- invalidator->UpdateRegisteredIds(&handler1, ids);
+ EXPECT_TRUE(invalidator->UpdateRegisteredIds(&handler1, ids));
}
{
ObjectIdSet ids;
ids.insert(this->id3);
- invalidator->UpdateRegisteredIds(&handler2, ids);
+ EXPECT_TRUE(invalidator->UpdateRegisteredIds(&handler2, ids));
}
// Unregister the IDs for the first observer. It should not receive any
// further invalidations.
- invalidator->UpdateRegisteredIds(&handler1, ObjectIdSet());
+ EXPECT_TRUE(invalidator->UpdateRegisteredIds(&handler1, ObjectIdSet()));
this->delegate_.TriggerOnInvalidatorStateChange(INVALIDATIONS_ENABLED);
EXPECT_EQ(INVALIDATIONS_ENABLED, handler1.GetInvalidatorState());
@@ -369,7 +391,10 @@ TYPED_TEST_P(InvalidatorTest, GetInvalidatorStateAlwaysCurrent) {
}
REGISTER_TYPED_TEST_CASE_P(InvalidatorTest,
- Basic, MultipleHandlers, EmptySetUnregisters,
+ Basic,
+ MultipleHandlers,
+ MultipleRegistrations,
+ EmptySetUnregisters,
GetInvalidatorStateAlwaysCurrent);
} // namespace syncer
« no previous file with comments | « components/invalidation/invalidator_registrar_unittest.cc ('k') | components/invalidation/non_blocking_invalidator.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698