| Index: components/invalidation/invalidation_service_test_template.h
|
| diff --git a/components/invalidation/invalidation_service_test_template.h b/components/invalidation/invalidation_service_test_template.h
|
| index dc4a8419c03b34adcec3ed5247ee355a427f60f8..3f2e764691513dd8413228f47f663dc1a85dbae2 100644
|
| --- a/components/invalidation/invalidation_service_test_template.h
|
| +++ b/components/invalidation/invalidation_service_test_template.h
|
| @@ -134,7 +134,7 @@ TYPED_TEST_P(InvalidationServiceTest, Basic) {
|
| syncer::ObjectIdSet ids;
|
| ids.insert(this->id1);
|
| ids.insert(this->id2);
|
| - invalidator->UpdateRegisteredInvalidationIds(&handler, ids);
|
| + EXPECT_TRUE(invalidator->UpdateRegisteredInvalidationIds(&handler, ids));
|
|
|
| this->delegate_.TriggerOnInvalidatorStateChange(
|
| syncer::INVALIDATIONS_ENABLED);
|
| @@ -150,7 +150,7 @@ TYPED_TEST_P(InvalidationServiceTest, Basic) {
|
|
|
| ids.erase(this->id1);
|
| ids.insert(this->id3);
|
| - invalidator->UpdateRegisteredInvalidationIds(&handler, ids);
|
| + EXPECT_TRUE(invalidator->UpdateRegisteredInvalidationIds(&handler, ids));
|
|
|
| expected_invalidations = syncer::ObjectIdInvalidationMap();
|
| expected_invalidations.Insert(syncer::Invalidation::Init(this->id2, 2, "2"));
|
| @@ -201,13 +201,13 @@ TYPED_TEST_P(InvalidationServiceTest, MultipleHandlers) {
|
| syncer::ObjectIdSet ids;
|
| ids.insert(this->id1);
|
| ids.insert(this->id2);
|
| - invalidator->UpdateRegisteredInvalidationIds(&handler1, ids);
|
| + EXPECT_TRUE(invalidator->UpdateRegisteredInvalidationIds(&handler1, ids));
|
| }
|
|
|
| {
|
| syncer::ObjectIdSet ids;
|
| ids.insert(this->id3);
|
| - invalidator->UpdateRegisteredInvalidationIds(&handler2, ids);
|
| + EXPECT_TRUE(invalidator->UpdateRegisteredInvalidationIds(&handler2, ids));
|
| }
|
|
|
| // Don't register any IDs for handler3.
|
| @@ -215,7 +215,7 @@ TYPED_TEST_P(InvalidationServiceTest, MultipleHandlers) {
|
| {
|
| syncer::ObjectIdSet ids;
|
| ids.insert(this->id4);
|
| - invalidator->UpdateRegisteredInvalidationIds(&handler4, ids);
|
| + EXPECT_TRUE(invalidator->UpdateRegisteredInvalidationIds(&handler4, ids));
|
| }
|
|
|
| invalidator->UnregisterInvalidationHandler(&handler4);
|
| @@ -272,6 +272,29 @@ TYPED_TEST_P(InvalidationServiceTest, MultipleHandlers) {
|
| invalidator->UnregisterInvalidationHandler(&handler1);
|
| }
|
|
|
| +// Multiple registrations by different handlers on the same object ID should
|
| +// return false.
|
| +TYPED_TEST_P(InvalidationServiceTest, MultipleRegistrations) {
|
| + invalidation::InvalidationService* const invalidator =
|
| + this->CreateAndInitializeInvalidationService();
|
| +
|
| + syncer::FakeInvalidationHandler handler1;
|
| + syncer::FakeInvalidationHandler handler2;
|
| +
|
| + invalidator->RegisterInvalidationHandler(&handler1);
|
| + invalidator->RegisterInvalidationHandler(&handler2);
|
| +
|
| + // Registering both handlers for the same ObjectId. First call should succeed,
|
| + // second should fail.
|
| + syncer::ObjectIdSet ids;
|
| + ids.insert(this->id1);
|
| + EXPECT_TRUE(invalidator->UpdateRegisteredInvalidationIds(&handler1, ids));
|
| + EXPECT_FALSE(invalidator->UpdateRegisteredInvalidationIds(&handler2, ids));
|
| +
|
| + invalidator->UnregisterInvalidationHandler(&handler2);
|
| + invalidator->UnregisterInvalidationHandler(&handler1);
|
| +}
|
| +
|
| // Make sure that passing an empty set to UpdateRegisteredInvalidationIds clears
|
| // the corresponding entries for the handler.
|
| TYPED_TEST_P(InvalidationServiceTest, EmptySetUnregisters) {
|
| @@ -290,19 +313,19 @@ TYPED_TEST_P(InvalidationServiceTest, EmptySetUnregisters) {
|
| syncer::ObjectIdSet ids;
|
| ids.insert(this->id1);
|
| ids.insert(this->id2);
|
| - invalidator->UpdateRegisteredInvalidationIds(&handler1, ids);
|
| + EXPECT_TRUE(invalidator->UpdateRegisteredInvalidationIds(&handler1, ids));
|
| }
|
|
|
| {
|
| syncer::ObjectIdSet ids;
|
| ids.insert(this->id3);
|
| - invalidator->UpdateRegisteredInvalidationIds(&handler2, ids);
|
| + EXPECT_TRUE(invalidator->UpdateRegisteredInvalidationIds(&handler2, ids));
|
| }
|
|
|
| // Unregister the IDs for the first observer. It should not receive any
|
| // further invalidations.
|
| - invalidator->UpdateRegisteredInvalidationIds(&handler1,
|
| - syncer::ObjectIdSet());
|
| + EXPECT_TRUE(invalidator->UpdateRegisteredInvalidationIds(
|
| + &handler1, syncer::ObjectIdSet()));
|
|
|
| this->delegate_.TriggerOnInvalidatorStateChange(
|
| syncer::INVALIDATIONS_ENABLED);
|
| @@ -381,7 +404,10 @@ TYPED_TEST_P(InvalidationServiceTest, GetInvalidatorStateAlwaysCurrent) {
|
| }
|
|
|
| REGISTER_TYPED_TEST_CASE_P(InvalidationServiceTest,
|
| - Basic, MultipleHandlers, EmptySetUnregisters,
|
| + Basic,
|
| + MultipleHandlers,
|
| + MultipleRegistrations,
|
| + EmptySetUnregisters,
|
| GetInvalidatorStateAlwaysCurrent);
|
|
|
| #endif // COMPONENTS_INVALIDATION_INVALIDATION_SERVICE_TEST_TEMPLATE_H_
|
|
|