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

Unified Diff: chrome/browser/policy/cloud/cloud_policy_manager_unittest.cc

Issue 19733003: Implement cloud policy invalidations using the invalidation service framework. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 7 years, 5 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: chrome/browser/policy/cloud/cloud_policy_manager_unittest.cc
diff --git a/chrome/browser/policy/cloud/cloud_policy_manager_unittest.cc b/chrome/browser/policy/cloud/cloud_policy_manager_unittest.cc
index cbcb4d418e7ba566cbfb080405c2ddbdde9d8349..2ec6627bb019550d31e03d0f8fbc0f3fd82aeee2 100644
--- a/chrome/browser/policy/cloud/cloud_policy_manager_unittest.cc
+++ b/chrome/browser/policy/cloud/cloud_policy_manager_unittest.cc
@@ -9,6 +9,7 @@
#include "base/compiler_specific.h"
#include "base/memory/scoped_ptr.h"
#include "base/message_loop/message_loop.h"
+#include "chrome/browser/invalidation/fake_invalidation_service.h"
#include "chrome/browser/policy/cloud/cloud_policy_constants.h"
#include "chrome/browser/policy/cloud/mock_cloud_policy_client.h"
#include "chrome/browser/policy/cloud/mock_cloud_policy_store.h"
@@ -16,6 +17,7 @@
#include "chrome/browser/policy/configuration_policy_provider_test.h"
#include "chrome/browser/policy/external_data_fetcher.h"
#include "chrome/browser/policy/mock_configuration_policy_provider.h"
+#include "sync/notifier/invalidation_util.h"
#include "testing/gmock/include/gmock/gmock.h"
#include "testing/gtest/include/gtest/gtest.h"
@@ -143,6 +145,8 @@ class TestCloudPolicyManager : public CloudPolicyManager {
using CloudPolicyManager::store;
using CloudPolicyManager::service;
using CloudPolicyManager::CheckAndPublishPolicy;
+ using CloudPolicyManager::CreateInvalidator;
+ using CloudPolicyManager::UnregisterInvalidator;
private:
DISALLOW_COPY_AND_ASSIGN(TestCloudPolicyManager);
@@ -337,5 +341,32 @@ TEST_F(CloudPolicyManagerTest, SignalOnError) {
EXPECT_TRUE(manager_->IsInitializationComplete(POLICY_DOMAIN_CHROME));
}
+TEST_F(CloudPolicyManagerTest, CreateAndUnregisterInvalidator) {
+ // Add the invalidation registration info to the policy data.
+ em::PolicyData* policy_data = new em::PolicyData(policy_.policy_data());
+ policy_data->set_invalidation_source(12345);
+ policy_data->set_invalidation_name("12345");
+ store_.policy_.reset(policy_data);
+
+ // Expect registration to occur when the invalidator is created.
+ invalidation::FakeInvalidationService invalidation_service;
+ MockCloudPolicyClient* client = new MockCloudPolicyClient();
+ EXPECT_CALL(*client, SetupRegistration(_, _));
+ manager_->core()->Connect(scoped_ptr<CloudPolicyClient>(client));
+ manager_->core()->StartRefreshScheduler();
+ manager_->CreateInvalidator(&invalidation_service, true /* ignore_switch */);
+ syncer::ObjectIdSet object_ids =
+ invalidation_service.invalidator_registrar().GetAllRegisteredIds();
+ ASSERT_EQ(1U, object_ids.size());
+ EXPECT_EQ(12345, object_ids.begin()->source());
+ EXPECT_EQ("12345", object_ids.begin()->name());
+
+ // Expect unregistration to occur.
+ manager_->UnregisterInvalidator();
+ object_ids =
+ invalidation_service.invalidator_registrar().GetAllRegisteredIds();
+ EXPECT_TRUE(object_ids.empty());
+}
+
} // namespace
} // namespace policy

Powered by Google App Engine
This is Rietveld 408576698