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

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

Issue 12189011: Split up chrome/browser/policy subdirectory (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Rebase, add chrome/browser/chromeos/policy/OWNERS Created 7 years, 9 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/device_cloud_policy_manager_chromeos_unittest.cc
diff --git a/chrome/browser/policy/device_cloud_policy_manager_chromeos_unittest.cc b/chrome/browser/policy/device_cloud_policy_manager_chromeos_unittest.cc
deleted file mode 100644
index a205a6c8ef4e038a3e6ab26cfe73c3be1a0420ba..0000000000000000000000000000000000000000
--- a/chrome/browser/policy/device_cloud_policy_manager_chromeos_unittest.cc
+++ /dev/null
@@ -1,348 +0,0 @@
-// Copyright (c) 2012 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "chrome/browser/policy/device_cloud_policy_manager_chromeos.h"
-
-#include "base/basictypes.h"
-#include "base/compiler_specific.h"
-#include "base/memory/scoped_ptr.h"
-#include "base/prefs/pref_registry_simple.h"
-#include "base/prefs/testing_pref_service.h"
-#include "base/run_loop.h"
-#include "chrome/browser/chromeos/cros/cryptohome_library.h"
-#include "chrome/browser/chromeos/settings/device_settings_test_helper.h"
-#include "chrome/browser/policy/cloud_policy_client.h"
-#include "chrome/browser/policy/device_cloud_policy_store_chromeos.h"
-#include "chrome/browser/policy/enterprise_install_attributes.h"
-#include "chrome/browser/policy/mock_device_management_service.h"
-#include "chrome/browser/policy/proto/chrome_device_policy.pb.h"
-#include "chrome/browser/policy/proto/device_management_backend.pb.h"
-#include "chrome/browser/prefs/browser_prefs.h"
-#include "policy/policy_constants.h"
-#include "testing/gmock/include/gmock/gmock.h"
-#include "testing/gtest/include/gtest/gtest.h"
-
-using testing::AnyNumber;
-using testing::AtMost;
-using testing::DoAll;
-using testing::Mock;
-using testing::SaveArg;
-using testing::_;
-
-namespace em = enterprise_management;
-
-namespace policy {
-namespace {
-
-class DeviceCloudPolicyManagerChromeOSTest
- : public chromeos::DeviceSettingsTestBase {
- protected:
- DeviceCloudPolicyManagerChromeOSTest()
- : cryptohome_library_(chromeos::CryptohomeLibrary::GetImpl(true)),
- install_attributes_(cryptohome_library_.get()),
- store_(new DeviceCloudPolicyStoreChromeOS(&device_settings_service_,
- &install_attributes_)),
- manager_(make_scoped_ptr(store_), &install_attributes_) {}
-
- virtual void SetUp() OVERRIDE {
- DeviceSettingsTestBase::SetUp();
- chrome::RegisterLocalState(local_state_.registry());
- manager_.Init();
- }
-
- virtual void TearDown() OVERRIDE {
- manager_.Shutdown();
- DeviceSettingsTestBase::TearDown();
- }
-
- scoped_ptr<chromeos::CryptohomeLibrary> cryptohome_library_;
- EnterpriseInstallAttributes install_attributes_;
-
- TestingPrefServiceSimple local_state_;
- MockDeviceManagementService device_management_service_;
-
- DeviceCloudPolicyStoreChromeOS* store_;
- DeviceCloudPolicyManagerChromeOS manager_;
-
- private:
- DISALLOW_COPY_AND_ASSIGN(DeviceCloudPolicyManagerChromeOSTest);
-};
-
-TEST_F(DeviceCloudPolicyManagerChromeOSTest, FreshDevice) {
- owner_key_util_->Clear();
- FlushDeviceSettings();
- EXPECT_TRUE(manager_.IsInitializationComplete(POLICY_DOMAIN_CHROME));
-
- manager_.Connect(&local_state_, &device_management_service_,
- scoped_ptr<CloudPolicyClient::StatusProvider>(NULL));
-
- PolicyBundle bundle;
- EXPECT_TRUE(manager_.policies().Equals(bundle));
-}
-
-TEST_F(DeviceCloudPolicyManagerChromeOSTest, EnrolledDevice) {
- ASSERT_EQ(EnterpriseInstallAttributes::LOCK_SUCCESS,
- install_attributes_.LockDevice(PolicyBuilder::kFakeUsername,
- DEVICE_MODE_ENTERPRISE,
- PolicyBuilder::kFakeDeviceId));
- FlushDeviceSettings();
- EXPECT_EQ(CloudPolicyStore::STATUS_OK, store_->status());
- EXPECT_TRUE(manager_.IsInitializationComplete(POLICY_DOMAIN_CHROME));
-
- PolicyBundle bundle;
- bundle.Get(PolicyNamespace(POLICY_DOMAIN_CHROME, std::string()))
- .Set(key::kDeviceMetricsReportingEnabled,
- POLICY_LEVEL_MANDATORY,
- POLICY_SCOPE_MACHINE,
- Value::CreateBooleanValue(false));
- EXPECT_TRUE(manager_.policies().Equals(bundle));
-
- manager_.Connect(&local_state_, &device_management_service_,
- scoped_ptr<CloudPolicyClient::StatusProvider>(NULL));
- EXPECT_TRUE(manager_.policies().Equals(bundle));
-
- manager_.Shutdown();
- EXPECT_TRUE(manager_.policies().Equals(bundle));
-}
-
-TEST_F(DeviceCloudPolicyManagerChromeOSTest, ConsumerDevice) {
- FlushDeviceSettings();
- EXPECT_EQ(CloudPolicyStore::STATUS_BAD_STATE, store_->status());
- EXPECT_TRUE(manager_.IsInitializationComplete(POLICY_DOMAIN_CHROME));
-
- PolicyBundle bundle;
- EXPECT_TRUE(manager_.policies().Equals(bundle));
-
- manager_.Connect(&local_state_, &device_management_service_,
- scoped_ptr<CloudPolicyClient::StatusProvider>(NULL));
- EXPECT_TRUE(manager_.policies().Equals(bundle));
-
- manager_.Shutdown();
- EXPECT_TRUE(manager_.policies().Equals(bundle));
-}
-
-class DeviceCloudPolicyManagerChromeOSEnrollmentTest
- : public DeviceCloudPolicyManagerChromeOSTest {
- public:
- void Done(EnrollmentStatus status) {
- status_ = status;
- done_ = true;
- }
-
- protected:
- DeviceCloudPolicyManagerChromeOSEnrollmentTest()
- : is_auto_enrollment_(false),
- register_status_(DM_STATUS_SUCCESS),
- fetch_status_(DM_STATUS_SUCCESS),
- store_result_(true),
- status_(EnrollmentStatus::ForStatus(EnrollmentStatus::STATUS_SUCCESS)),
- done_(false) {}
-
- virtual void SetUp() OVERRIDE {
- DeviceCloudPolicyManagerChromeOSTest::SetUp();
-
- // Set up test data.
- device_policy_.set_new_signing_key(
- PolicyBuilder::CreateTestNewSigningKey());
- device_policy_.policy_data().set_timestamp(
- (base::Time::NowFromSystemTime() -
- base::Time::UnixEpoch()).InMilliseconds());
- device_policy_.Build();
-
- register_response_.mutable_register_response()->set_device_management_token(
- PolicyBuilder::kFakeToken);
- fetch_response_.mutable_policy_response()->add_response()->CopyFrom(
- device_policy_.policy());
- loaded_blob_ = device_policy_.GetBlob();
-
- // Initialize the manager.
- FlushDeviceSettings();
- EXPECT_EQ(CloudPolicyStore::STATUS_BAD_STATE, store_->status());
- EXPECT_TRUE(manager_.IsInitializationComplete(POLICY_DOMAIN_CHROME));
-
- PolicyBundle bundle;
- EXPECT_TRUE(manager_.policies().Equals(bundle));
-
- manager_.Connect(&local_state_, &device_management_service_,
- scoped_ptr<CloudPolicyClient::StatusProvider>(NULL));
- }
-
- void ExpectFailedEnrollment(EnrollmentStatus::Status status) {
- EXPECT_EQ(status, status_.status());
- EXPECT_FALSE(store_->is_managed());
- PolicyBundle empty_bundle;
- EXPECT_TRUE(manager_.policies().Equals(empty_bundle));
- }
-
- void ExpectSuccessfulEnrollment() {
- EXPECT_EQ(EnrollmentStatus::STATUS_SUCCESS, status_.status());
- EXPECT_EQ(DEVICE_MODE_ENTERPRISE, install_attributes_.GetMode());
- EXPECT_TRUE(store_->has_policy());
- EXPECT_TRUE(store_->is_managed());
- ASSERT_TRUE(manager_.core()->client());
- EXPECT_TRUE(manager_.core()->client()->is_registered());
-
- PolicyBundle bundle;
- bundle.Get(PolicyNamespace(POLICY_DOMAIN_CHROME, std::string()))
- .Set(key::kDeviceMetricsReportingEnabled,
- POLICY_LEVEL_MANDATORY,
- POLICY_SCOPE_MACHINE,
- Value::CreateBooleanValue(false));
- EXPECT_TRUE(manager_.policies().Equals(bundle));
- }
-
- void RunTest() {
- // Trigger enrollment.
- MockDeviceManagementJob* register_job = NULL;
- EXPECT_CALL(device_management_service_,
- CreateJob(DeviceManagementRequestJob::TYPE_REGISTRATION))
- .Times(AtMost(1))
- .WillOnce(device_management_service_.CreateAsyncJob(&register_job));
- EXPECT_CALL(device_management_service_, StartJob(_, _, _, _, _, _, _))
- .Times(AtMost(1))
- .WillOnce(DoAll(SaveArg<5>(&client_id_),
- SaveArg<6>(&register_request_)));
- DeviceCloudPolicyManagerChromeOS::AllowedDeviceModes modes;
- modes[DEVICE_MODE_ENTERPRISE] = true;
- manager_.StartEnrollment(
- "auth token", is_auto_enrollment_, modes,
- base::Bind(&DeviceCloudPolicyManagerChromeOSEnrollmentTest::Done,
- base::Unretained(this)));
- Mock::VerifyAndClearExpectations(&device_management_service_);
-
- if (done_)
- return;
-
- // Process registration.
- ASSERT_TRUE(register_job);
- MockDeviceManagementJob* fetch_job = NULL;
- EXPECT_CALL(device_management_service_,
- CreateJob(DeviceManagementRequestJob::TYPE_POLICY_FETCH))
- .Times(AtMost(1))
- .WillOnce(device_management_service_.CreateAsyncJob(&fetch_job));
- EXPECT_CALL(device_management_service_, StartJob(_, _, _, _, _, _, _))
- .Times(AtMost(1));
- register_job->SendResponse(register_status_, register_response_);
- Mock::VerifyAndClearExpectations(&device_management_service_);
-
- if (done_)
- return;
-
- // Process policy fetch.
- ASSERT_TRUE(fetch_job);
- fetch_job->SendResponse(fetch_status_, fetch_response_);
-
- if (done_)
- return;
-
- // Process verification.
- base::RunLoop().RunUntilIdle();
-
- if (done_)
- return;
-
- // Process policy store.
- device_settings_test_helper_.set_store_result(store_result_);
- device_settings_test_helper_.FlushStore();
- EXPECT_EQ(device_policy_.GetBlob(),
- device_settings_test_helper_.policy_blob());
-
- if (done_)
- return;
-
- // Key installation and policy load.
- device_settings_test_helper_.set_policy_blob(loaded_blob_);
- owner_key_util_->SetPublicKeyFromPrivateKey(
- device_policy_.new_signing_key());
- ReloadDeviceSettings();
- }
-
- bool is_auto_enrollment_;
-
- DeviceManagementStatus register_status_;
- em::DeviceManagementResponse register_response_;
-
- DeviceManagementStatus fetch_status_;
- em::DeviceManagementResponse fetch_response_;
-
- bool store_result_;
- std::string loaded_blob_;
-
- em::DeviceManagementRequest register_request_;
- std::string client_id_;
- EnrollmentStatus status_;
-
- bool done_;
-
- private:
- DISALLOW_COPY_AND_ASSIGN(DeviceCloudPolicyManagerChromeOSEnrollmentTest);
-};
-
-TEST_F(DeviceCloudPolicyManagerChromeOSEnrollmentTest, Success) {
- RunTest();
- ExpectSuccessfulEnrollment();
-}
-
-TEST_F(DeviceCloudPolicyManagerChromeOSEnrollmentTest, AutoEnrollment) {
- is_auto_enrollment_ = true;
- RunTest();
- ExpectSuccessfulEnrollment();
- EXPECT_TRUE(register_request_.register_request().auto_enrolled());
-}
-
-TEST_F(DeviceCloudPolicyManagerChromeOSEnrollmentTest, Reenrollment) {
- ASSERT_EQ(EnterpriseInstallAttributes::LOCK_SUCCESS,
- install_attributes_.LockDevice(PolicyBuilder::kFakeUsername,
- DEVICE_MODE_ENTERPRISE,
- PolicyBuilder::kFakeDeviceId));
-
- RunTest();
- ExpectSuccessfulEnrollment();
- EXPECT_TRUE(register_request_.register_request().reregister());
- EXPECT_EQ(PolicyBuilder::kFakeDeviceId, client_id_);
-}
-
-TEST_F(DeviceCloudPolicyManagerChromeOSEnrollmentTest, RegistrationFailed) {
- register_status_ = DM_STATUS_REQUEST_FAILED;
- RunTest();
- ExpectFailedEnrollment(EnrollmentStatus::STATUS_REGISTRATION_FAILED);
- EXPECT_EQ(DM_STATUS_REQUEST_FAILED, status_.client_status());
-}
-
-TEST_F(DeviceCloudPolicyManagerChromeOSEnrollmentTest, PolicyFetchFailed) {
- fetch_status_ = DM_STATUS_REQUEST_FAILED;
- RunTest();
- ExpectFailedEnrollment(EnrollmentStatus::STATUS_POLICY_FETCH_FAILED);
- EXPECT_EQ(DM_STATUS_REQUEST_FAILED, status_.client_status());
-}
-
-TEST_F(DeviceCloudPolicyManagerChromeOSEnrollmentTest, ValidationFailed) {
- device_policy_.policy().set_policy_data_signature("bad");
- fetch_response_.clear_policy_response();
- fetch_response_.mutable_policy_response()->add_response()->CopyFrom(
- device_policy_.policy());
- RunTest();
- ExpectFailedEnrollment(EnrollmentStatus::STATUS_VALIDATION_FAILED);
- EXPECT_EQ(CloudPolicyValidatorBase::VALIDATION_BAD_INITIAL_SIGNATURE,
- status_.validation_status());
-}
-
-TEST_F(DeviceCloudPolicyManagerChromeOSEnrollmentTest, StoreError) {
- store_result_ = false;
- RunTest();
- ExpectFailedEnrollment(EnrollmentStatus::STATUS_STORE_ERROR);
- EXPECT_EQ(CloudPolicyStore::STATUS_STORE_ERROR,
- status_.store_status());
-}
-
-TEST_F(DeviceCloudPolicyManagerChromeOSEnrollmentTest, LoadError) {
- loaded_blob_.clear();
- RunTest();
- ExpectFailedEnrollment(EnrollmentStatus::STATUS_STORE_ERROR);
- EXPECT_EQ(CloudPolicyStore::STATUS_LOAD_ERROR,
- status_.store_status());
-}
-
-} // namespace
-} // namespace policy

Powered by Google App Engine
This is Rietveld 408576698