| Index: components/policy/core/common/cloud/component_cloud_policy_service_unittest.cc
|
| diff --git a/components/policy/core/common/cloud/component_cloud_policy_service_unittest.cc b/components/policy/core/common/cloud/component_cloud_policy_service_unittest.cc
|
| index 2cd3440ef8a0124a55297508dde4c401ac4c2c1c..60699a0edfbbb280cdba7c00e23d80e6e0540dc5 100644
|
| --- a/components/policy/core/common/cloud/component_cloud_policy_service_unittest.cc
|
| +++ b/components/policy/core/common/cloud/component_cloud_policy_service_unittest.cc
|
| @@ -165,6 +165,7 @@ class ComponentCloudPolicyServiceTest : public testing::Test {
|
|
|
| // Also initialize the refresh scheduler, so that calls to
|
| // core()->RefreshSoon() trigger a FetchPolicy() call on the mock |client_|.
|
| + // The |service_| should never trigger new fetches.
|
| EXPECT_CALL(*client_, FetchPolicy());
|
| core_.StartRefreshScheduler();
|
| RunUntilIdle();
|
| @@ -256,7 +257,7 @@ TEST_F(ComponentCloudPolicyServiceTest, InitializedAtConstructionTime) {
|
| EXPECT_FALSE(service_->is_initialized());
|
|
|
| EXPECT_CALL(delegate_, OnComponentCloudPolicyUpdated());
|
| - EXPECT_CALL(*client_, FetchPolicy());
|
| + EXPECT_CALL(*client_, FetchPolicy()).Times(0);
|
| RunUntilIdle();
|
| Mock::VerifyAndClearExpectations(&client_);
|
| Mock::VerifyAndClearExpectations(&delegate_);
|
| @@ -268,7 +269,7 @@ TEST_F(ComponentCloudPolicyServiceTest, InitializedAtConstructionTime) {
|
| }
|
|
|
| TEST_F(ComponentCloudPolicyServiceTest, InitializeStoreThenRegistry) {
|
| - Connect(1u);
|
| + Connect(2u);
|
|
|
| EXPECT_CALL(delegate_, OnComponentCloudPolicyUpdated()).Times(0);
|
| EXPECT_CALL(*client_, FetchPolicy()).Times(0);
|
| @@ -278,7 +279,7 @@ TEST_F(ComponentCloudPolicyServiceTest, InitializeStoreThenRegistry) {
|
| EXPECT_FALSE(service_->is_initialized());
|
|
|
| EXPECT_CALL(delegate_, OnComponentCloudPolicyUpdated());
|
| - EXPECT_CALL(*client_, FetchPolicy());
|
| + EXPECT_CALL(*client_, FetchPolicy()).Times(0);
|
| InitializeRegistry();
|
| RunUntilIdle();
|
| Mock::VerifyAndClearExpectations(client_);
|
| @@ -290,7 +291,7 @@ TEST_F(ComponentCloudPolicyServiceTest, InitializeStoreThenRegistry) {
|
| }
|
|
|
| TEST_F(ComponentCloudPolicyServiceTest, InitializeRegistryThenStore) {
|
| - Connect(1u);
|
| + Connect(2u);
|
|
|
| EXPECT_CALL(delegate_, OnComponentCloudPolicyUpdated()).Times(0);
|
| EXPECT_CALL(*client_, FetchPolicy()).Times(0);
|
| @@ -301,7 +302,7 @@ TEST_F(ComponentCloudPolicyServiceTest, InitializeRegistryThenStore) {
|
| EXPECT_FALSE(service_->is_initialized());
|
|
|
| EXPECT_CALL(delegate_, OnComponentCloudPolicyUpdated());
|
| - EXPECT_CALL(*client_, FetchPolicy());
|
| + EXPECT_CALL(*client_, FetchPolicy()).Times(0);
|
| LoadStore();
|
| Mock::VerifyAndClearExpectations(client_);
|
| Mock::VerifyAndClearExpectations(&delegate_);
|
| @@ -313,10 +314,10 @@ TEST_F(ComponentCloudPolicyServiceTest, InitializeRegistryThenStore) {
|
|
|
| TEST_F(ComponentCloudPolicyServiceTest, InitializeWithCachedPolicy) {
|
| PopulateCache();
|
| - Connect(1u);
|
| + Connect(2u);
|
|
|
| EXPECT_CALL(delegate_, OnComponentCloudPolicyUpdated());
|
| - EXPECT_CALL(*client_, FetchPolicy());
|
| + EXPECT_CALL(*client_, FetchPolicy()).Times(0);
|
| InitializeRegistry();
|
| LoadStore();
|
| Mock::VerifyAndClearExpectations(client_);
|
| @@ -338,7 +339,7 @@ TEST_F(ComponentCloudPolicyServiceTest, InitializeWithCachedPolicy) {
|
| }
|
|
|
| TEST_F(ComponentCloudPolicyServiceTest, FetchPolicy) {
|
| - Connect(1u);
|
| + Connect(2u);
|
| // Initialize the store and create the backend.
|
| // A refresh is not needed, because no components are registered yet.
|
| EXPECT_CALL(delegate_, OnComponentCloudPolicyUpdated());
|
| @@ -350,13 +351,16 @@ TEST_F(ComponentCloudPolicyServiceTest, FetchPolicy) {
|
| Mock::VerifyAndClearExpectations(&delegate_);
|
| EXPECT_TRUE(service_->is_initialized());
|
|
|
| - // Register the components to fetch.
|
| - EXPECT_CALL(*client_, FetchPolicy());
|
| + // Register the components to fetch. The |service_| issues a new update
|
| + // because the new schema may filter different policies from the store.
|
| + EXPECT_CALL(*client_, FetchPolicy()).Times(0);
|
| + EXPECT_CALL(delegate_, OnComponentCloudPolicyUpdated());
|
| registry_.RegisterComponent(
|
| PolicyNamespace(POLICY_DOMAIN_EXTENSIONS, kTestExtension),
|
| CreateTestSchema());
|
| RunUntilIdle();
|
| Mock::VerifyAndClearExpectations(client_);
|
| + Mock::VerifyAndClearExpectations(&delegate_);
|
|
|
| // Send back a fake policy fetch response.
|
| client_->SetPolicy(PolicyNamespaceKey(dm_protocol::kChromeExtensionPolicyType,
|
| @@ -385,7 +389,7 @@ TEST_F(ComponentCloudPolicyServiceTest, FetchPolicy) {
|
| }
|
|
|
| TEST_F(ComponentCloudPolicyServiceTest, LoadAndPurgeCache) {
|
| - Connect(1u);
|
| + Connect(2u);
|
| // Insert data in the cache.
|
| PopulateCache();
|
| registry_.RegisterComponent(
|
| @@ -395,7 +399,7 @@ TEST_F(ComponentCloudPolicyServiceTest, LoadAndPurgeCache) {
|
|
|
| // Load the initial cache.
|
| EXPECT_CALL(delegate_, OnComponentCloudPolicyUpdated());
|
| - EXPECT_CALL(*client_, FetchPolicy());
|
| + EXPECT_CALL(*client_, FetchPolicy()).Times(0);
|
| LoadStore();
|
| Mock::VerifyAndClearExpectations(client_);
|
| Mock::VerifyAndClearExpectations(&delegate_);
|
| @@ -407,8 +411,10 @@ TEST_F(ComponentCloudPolicyServiceTest, LoadAndPurgeCache) {
|
| expected_bundle.Get(ns).CopyFrom(expected_policy_);
|
| EXPECT_TRUE(service_->policy().Equals(expected_bundle));
|
|
|
| - // Now purge one of the extensions.
|
| - EXPECT_CALL(delegate_, OnComponentCloudPolicyUpdated());
|
| + // Now purge one of the extensions. This generates 2 notifications: one for
|
| + // the new, immediate filtering, and another once the backend comes back
|
| + // after purging the cache.
|
| + EXPECT_CALL(delegate_, OnComponentCloudPolicyUpdated()).Times(2);
|
| registry_.UnregisterComponent(
|
| PolicyNamespace(POLICY_DOMAIN_EXTENSIONS, kTestExtension));
|
| RunUntilIdle();
|
| @@ -438,10 +444,12 @@ TEST_F(ComponentCloudPolicyServiceTest, SignInAfterStartup) {
|
| EXPECT_TRUE(service_->is_initialized());
|
|
|
| // Register an extension.
|
| + EXPECT_CALL(delegate_, OnComponentCloudPolicyUpdated());
|
| registry_.RegisterComponent(
|
| PolicyNamespace(POLICY_DOMAIN_EXTENSIONS, kTestExtension),
|
| CreateTestSchema());
|
| RunUntilIdle();
|
| + Mock::VerifyAndClearExpectations(&delegate_);
|
|
|
| // Now signin. A fetch will be requested for the new extension.
|
| Connect(2u);
|
|
|