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

Unified Diff: chrome/browser/policy/user_cloud_policy_manager_unittest.cc

Issue 11415094: Split UserCloudPolicyManager implementation. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Crazy ProfileKeyedService hackery. Created 8 years, 1 month 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/user_cloud_policy_manager_unittest.cc
diff --git a/chrome/browser/policy/user_cloud_policy_manager_unittest.cc b/chrome/browser/policy/user_cloud_policy_manager_unittest.cc
index 735926808af3358828cdb17cfe5180be54cd88a0..32042c38e800534740d3aba3bd88b7c7dfc9da20 100644
--- a/chrome/browser/policy/user_cloud_policy_manager_unittest.cc
+++ b/chrome/browser/policy/user_cloud_policy_manager_unittest.cc
@@ -7,13 +7,8 @@
#include "base/basictypes.h"
#include "base/memory/scoped_ptr.h"
#include "base/message_loop.h"
-#include "chrome/browser/policy/mock_cloud_policy_store.h"
#include "chrome/browser/policy/mock_configuration_policy_provider.h"
-#include "chrome/browser/policy/mock_device_management_service.h"
-#include "chrome/browser/policy/proto/device_management_backend.pb.h"
-#include "chrome/browser/prefs/browser_prefs.h"
-#include "chrome/test/base/testing_pref_service.h"
-#include "policy/policy_constants.h"
+#include "chrome/browser/policy/mock_user_cloud_policy_store.h"
#include "testing/gmock/include/gmock/gmock.h"
#include "testing/gtest/include/gtest/gtest.h"
@@ -33,23 +28,11 @@ class UserCloudPolicyManagerTest : public testing::Test {
: store_(NULL) {}
virtual void SetUp() OVERRIDE {
- chrome::RegisterLocalState(&prefs_);
-
// Set up a policy map for testing.
policy_map_.Set("key", POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER,
base::Value::CreateStringValue("value"));
expected_bundle_.Get(POLICY_DOMAIN_CHROME, std::string()).CopyFrom(
policy_map_);
-
- // Create a fake policy blob to deliver to the client.
- em::PolicyData policy_data;
- em::PolicyFetchResponse* policy_response =
- policy_blob_.mutable_policy_response()->add_response();
- ASSERT_TRUE(policy_data.SerializeToString(
- policy_response->mutable_policy_data()));
-
- EXPECT_CALL(device_management_service_, StartJob(_, _, _, _, _, _, _))
- .Times(AnyNumber());
}
virtual void TearDown() OVERRIDE {
@@ -59,43 +42,27 @@ class UserCloudPolicyManagerTest : public testing::Test {
}
}
- void CreateManager(bool wait_for_policy_fetch) {
- store_ = new MockCloudPolicyStore();
+ void CreateManager() {
+ store_ = new MockUserCloudPolicyStore();
EXPECT_CALL(*store_, Load());
manager_.reset(
- new UserCloudPolicyManager(scoped_ptr<CloudPolicyStore>(store_),
- wait_for_policy_fetch));
+ new UserCloudPolicyManager(NULL,
+ scoped_ptr<UserCloudPolicyStore>(store_)));
manager_->Init();
manager_->AddObserver(&observer_);
Mock::VerifyAndClearExpectations(store_);
}
- void CreateManagerWithPendingFetch() {
- CreateManager(true);
- manager_->Initialize(&prefs_, &device_management_service_,
- USER_AFFILIATION_NONE);
- EXPECT_FALSE(manager_->IsInitializationComplete());
-
- // Finishing the Load() operation shouldn't set the initialized flag.
- EXPECT_CALL(observer_, OnUpdatePolicy(_)).Times(0);
- store_->NotifyStoreLoaded();
- EXPECT_FALSE(manager_->IsInitializationComplete());
- Mock::VerifyAndClearExpectations(&observer_);
- }
-
// Required by the refresh scheduler that's created by the manager.
MessageLoop loop_;
// Convenience policy objects.
- em::DeviceManagementResponse policy_blob_;
PolicyMap policy_map_;
PolicyBundle expected_bundle_;
// Policy infrastructure.
- TestingPrefService prefs_;
MockConfigurationPolicyObserver observer_;
- MockDeviceManagementService device_management_service_;
- MockCloudPolicyStore* store_;
+ MockUserCloudPolicyStore* store_;
scoped_ptr<UserCloudPolicyManager> manager_;
private:
@@ -104,7 +71,7 @@ class UserCloudPolicyManagerTest : public testing::Test {
TEST_F(UserCloudPolicyManagerTest, ShutdownAndRemovePolicy) {
// Load policy, make sure it goes away when ShutdownAndRemove() is called.
- CreateManager(false);
+ CreateManager();
store_->policy_map_.CopyFrom(policy_map_);
EXPECT_CALL(observer_, OnUpdatePolicy(manager_.get()));
store_->NotifyStoreLoaded();
@@ -115,65 +82,5 @@ TEST_F(UserCloudPolicyManagerTest, ShutdownAndRemovePolicy) {
EXPECT_FALSE(manager_->cloud_policy_service());
}
-TEST_F(UserCloudPolicyManagerTest, WaitForPolicyFetch) {
- CreateManagerWithPendingFetch();
-
- // Setting the token should trigger the policy fetch.
- EXPECT_CALL(observer_, OnUpdatePolicy(_)).Times(0);
- MockDeviceManagementJob* fetch_request = NULL;
- EXPECT_CALL(device_management_service_,
- CreateJob(DeviceManagementRequestJob::TYPE_POLICY_FETCH))
- .WillOnce(device_management_service_.CreateAsyncJob(&fetch_request));
- manager_->cloud_policy_client()->SetupRegistration("dm_token", "client_id");
- ASSERT_TRUE(fetch_request);
- EXPECT_FALSE(manager_->IsInitializationComplete());
- Mock::VerifyAndClearExpectations(&observer_);
-
- // Respond to the policy fetch, which should trigger a write to |store_|.
- EXPECT_CALL(observer_, OnUpdatePolicy(_)).Times(0);
- EXPECT_CALL(*store_, Store(_));
- fetch_request->SendResponse(DM_STATUS_SUCCESS, policy_blob_);
- EXPECT_FALSE(manager_->IsInitializationComplete());
- Mock::VerifyAndClearExpectations(&observer_);
-
- // The load notification from |store_| should trigger the policy update and
- // flip the initialized bit.
- EXPECT_CALL(observer_, OnUpdatePolicy(manager_.get()));
- store_->NotifyStoreLoaded();
- EXPECT_TRUE(manager_->IsInitializationComplete());
- Mock::VerifyAndClearExpectations(&observer_);
-}
-
-TEST_F(UserCloudPolicyManagerTest, WaitForPolicyFetchError) {
- CreateManagerWithPendingFetch();
-
- // Setting the token should trigger the policy fetch.
- EXPECT_CALL(observer_, OnUpdatePolicy(_)).Times(0);
- MockDeviceManagementJob* fetch_request = NULL;
- EXPECT_CALL(device_management_service_,
- CreateJob(DeviceManagementRequestJob::TYPE_POLICY_FETCH))
- .WillOnce(device_management_service_.CreateAsyncJob(&fetch_request));
- manager_->cloud_policy_client()->SetupRegistration("dm_token", "client_id");
- ASSERT_TRUE(fetch_request);
- EXPECT_FALSE(manager_->IsInitializationComplete());
- Mock::VerifyAndClearExpectations(&observer_);
-
- // Make the policy fetch fail, at which point the manager should bail out.
- EXPECT_CALL(observer_, OnUpdatePolicy(manager_.get())).Times(AtLeast(1));
- fetch_request->SendResponse(DM_STATUS_REQUEST_FAILED, policy_blob_);
- EXPECT_TRUE(manager_->IsInitializationComplete());
- Mock::VerifyAndClearExpectations(&observer_);
-}
-
-TEST_F(UserCloudPolicyManagerTest, WaitForPolicyFetchCancel) {
- CreateManagerWithPendingFetch();
-
- // Cancelling the initial fetch should flip the flag.
- EXPECT_CALL(observer_, OnUpdatePolicy(manager_.get()));
- manager_->CancelWaitForPolicyFetch();
- EXPECT_TRUE(manager_->IsInitializationComplete());
- Mock::VerifyAndClearExpectations(&observer_);
-}
-
} // namespace
} // namespace policy

Powered by Google App Engine
This is Rietveld 408576698