Index: components/policy/core/common/schema_registry_unittest.cc |
diff --git a/components/policy/core/common/schema_registry_unittest.cc b/components/policy/core/common/schema_registry_unittest.cc |
index 426e84a815669af07353992319fff7d94b7ab355..3609ee86ed652fb55f80ed048f041698fdbc701a 100644 |
--- a/components/policy/core/common/schema_registry_unittest.cc |
+++ b/components/policy/core/common/schema_registry_unittest.cc |
@@ -249,7 +249,8 @@ TEST(SchemaRegistryTest, Combined) { |
TEST(SchemaRegistryTest, ForwardingSchemaRegistry) { |
std::unique_ptr<SchemaRegistry> registry(new SchemaRegistry); |
- ForwardingSchemaRegistry forwarding(registry.get()); |
+ ForwardingSchemaRegistry forwarding(registry.get(), |
+ false /* forward_readiness */); |
MockSchemaRegistryObserver observer; |
forwarding.AddObserver(&observer); |
@@ -281,7 +282,8 @@ TEST(SchemaRegistryTest, ForwardingSchemaRegistry) { |
registry->SetReady(POLICY_DOMAIN_CHROME); |
EXPECT_TRUE(registry->IsReady()); |
- // The ForwardingSchemaRegistry becomes ready independently of the wrapped |
+ // The ForwardingSchemaRegistry, if constructed with forward_readiness |
+ // parameter equal to false, becomes ready independently of the wrapped |
// registry. |
EXPECT_FALSE(forwarding.IsReady()); |
@@ -308,4 +310,36 @@ TEST(SchemaRegistryTest, ForwardingSchemaRegistry) { |
forwarding.RemoveObserver(&observer); |
} |
+TEST(SchemaRegistryTest, ReadinessForwardingSchemaRegistry) { |
+ // Test ForwardingSchemaRegistry when constructed with forward_readiness equal |
+ // to true. |
+ |
+ std::unique_ptr<SchemaRegistry> registry(new SchemaRegistry); |
+ |
+ ForwardingSchemaRegistry forwarding_1(registry.get(), |
+ true /* forward_readiness */); |
+ EXPECT_FALSE(registry->IsReady()); |
+ EXPECT_FALSE(forwarding_1.IsReady()); |
+ |
+ // Once the wrapped registry gets ready, the forwarding schema registry |
+ // becomes ready too. |
+ registry->SetReady(POLICY_DOMAIN_CHROME); |
+ registry->SetReady(POLICY_DOMAIN_EXTENSIONS); |
+ registry->SetReady(POLICY_DOMAIN_SIGNIN_EXTENSIONS); |
+ EXPECT_TRUE(registry->IsReady()); |
+ EXPECT_TRUE(forwarding_1.IsReady()); |
+ |
+ // The wrapped registry was ready at the time when the forwarding registry was |
+ // constructed, so the forwarding registry is immediately ready too. |
+ ForwardingSchemaRegistry forwarding_2(registry.get(), |
+ true /* forward_readiness */); |
+ EXPECT_TRUE(forwarding_2.IsReady()); |
+ |
+ // Destruction of the wrapped registry doesn't change the readiness of |
+ // forwarding registry. |
+ registry.reset(); |
+ EXPECT_TRUE(forwarding_1.IsReady()); |
+ EXPECT_TRUE(forwarding_2.IsReady()); |
+} |
+ |
} // namespace policy |