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

Unified Diff: chrome/browser/chromeos/ownership/owner_settings_service_chromeos_unittest.cc

Issue 769703003: SetManagementSettings() is moved to OwnerSettingsServiceChromeOS. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fixes. Created 6 years 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/chromeos/ownership/owner_settings_service_chromeos_unittest.cc
diff --git a/chrome/browser/chromeos/ownership/owner_settings_service_chromeos_unittest.cc b/chrome/browser/chromeos/ownership/owner_settings_service_chromeos_unittest.cc
index d559ef6b0d4dd4adab9983f2ae5894e12b545d0d..6a7aa4d9317f523ffd4f6644b28791c22f2e70ce 100644
--- a/chrome/browser/chromeos/ownership/owner_settings_service_chromeos_unittest.cc
+++ b/chrome/browser/chromeos/ownership/owner_settings_service_chromeos_unittest.cc
@@ -22,6 +22,8 @@
#include "chromeos/settings/cros_settings_names.h"
#include "testing/gtest/include/gtest/gtest.h"
+namespace em = enterprise_management;
+
namespace chromeos {
namespace {
@@ -83,7 +85,8 @@ class OwnerSettingsServiceChromeOSTest : public DeviceSettingsTestBase {
OwnerSettingsServiceChromeOSTest()
: service_(nullptr),
local_state_(TestingBrowserProcess::GetGlobal()),
- user_data_dir_override_(chrome::DIR_USER_DATA) {}
+ user_data_dir_override_(chrome::DIR_USER_DATA),
+ management_settings_set_(false) {}
virtual void SetUp() override {
DeviceSettingsTestBase::SetUp();
@@ -97,6 +100,12 @@ class OwnerSettingsServiceChromeOSTest : public DeviceSettingsTestBase {
profile_.get());
ASSERT_TRUE(service_);
ASSERT_TRUE(service_->IsOwner());
+
+ device_policy_.policy_data().set_management_mode(
+ em::PolicyData::LOCAL_OWNER);
+ device_policy_.Build();
+ device_settings_test_helper_.set_policy_blob(device_policy_.GetBlob());
+ ReloadDeviceSettings();
}
virtual void TearDown() override { DeviceSettingsTestBase::TearDown(); }
@@ -110,10 +119,15 @@ class OwnerSettingsServiceChromeOSTest : public DeviceSettingsTestBase {
checker.Wait();
}
+ void OnManagementSettingsSet(bool success) {
+ management_settings_set_ = success;
+ }
+
OwnerSettingsServiceChromeOS* service_;
ScopedTestingLocalState local_state_;
scoped_ptr<DeviceSettingsProvider> provider_;
base::ScopedPathOverride user_data_dir_override_;
+ bool management_settings_set_;
private:
DISALLOW_COPY_AND_ASSIGN(OwnerSettingsServiceChromeOSTest);
@@ -158,6 +172,128 @@ TEST_F(OwnerSettingsServiceChromeOSTest, FailedSetRequest) {
.release_channel());
}
+TEST_F(OwnerSettingsServiceChromeOSTest, SetManagementSettingsModeTransition) {
+ ReloadDeviceSettings();
+ EXPECT_EQ(DeviceSettingsService::STORE_SUCCESS,
+ device_settings_service_.status());
+
+ // The initial management mode should be LOCAL_OWNER.
+ EXPECT_TRUE(device_settings_service_.policy_data()->has_management_mode());
+ EXPECT_EQ(em::PolicyData::LOCAL_OWNER,
+ device_settings_service_.policy_data()->management_mode());
+
+ OwnerSettingsServiceChromeOS::ManagementSettings management_settings;
+ management_settings.management_mode =
+ policy::MANAGEMENT_MODE_CONSUMER_MANAGED;
+ management_settings.request_token = "fake_request_token";
+ management_settings.device_id = "fake_device_id";
+ OwnerSettingsServiceChromeOS::OnManagementSettingsSetCallback
+ on_management_settings_set_callback =
+ base::Bind(&OwnerSettingsServiceChromeOSTest::OnManagementSettingsSet,
+ base::Unretained(this));
+
+ // LOCAL_OWNER -> CONSUMER_MANAGED: Okay.
+ service_->SetManagementSettings(management_settings,
+ on_management_settings_set_callback);
+ FlushDeviceSettings();
+
+ EXPECT_TRUE(management_settings_set_);
+ EXPECT_EQ(em::PolicyData::CONSUMER_MANAGED,
+ device_settings_service_.policy_data()->management_mode());
+
+ // CONSUMER_MANAGED -> ENTERPRISE_MANAGED: Invalid.
+ management_settings.management_mode =
+ policy::MANAGEMENT_MODE_ENTERPRISE_MANAGED;
+ service_->SetManagementSettings(management_settings,
+ on_management_settings_set_callback);
+ FlushDeviceSettings();
+
+ EXPECT_FALSE(management_settings_set_);
+ EXPECT_EQ(em::PolicyData::CONSUMER_MANAGED,
+ device_settings_service_.policy_data()->management_mode());
+
+ // CONSUMER_MANAGED -> LOCAL_OWNER: Okay.
+ management_settings.management_mode = policy::MANAGEMENT_MODE_LOCAL_OWNER;
+ service_->SetManagementSettings(management_settings,
+ on_management_settings_set_callback);
+ FlushDeviceSettings();
+
+ EXPECT_TRUE(management_settings_set_);
+ EXPECT_EQ(em::PolicyData::LOCAL_OWNER,
+ device_settings_service_.policy_data()->management_mode());
+
+ // LOCAL_OWNER -> ENTERPRISE_MANAGED: Invalid.
+ management_settings.management_mode =
+ policy::MANAGEMENT_MODE_ENTERPRISE_MANAGED;
+ service_->SetManagementSettings(management_settings,
+ on_management_settings_set_callback);
+ FlushDeviceSettings();
+
+ EXPECT_FALSE(management_settings_set_);
+ EXPECT_EQ(em::PolicyData::LOCAL_OWNER,
+ device_settings_service_.policy_data()->management_mode());
+
+ // Inject a policy data with management mode set to ENTERPRISE_MANAGED.
+ device_policy_.policy_data().set_management_mode(
+ em::PolicyData::ENTERPRISE_MANAGED);
+ device_policy_.Build();
+ device_settings_test_helper_.set_policy_blob(device_policy_.GetBlob());
+ ReloadDeviceSettings();
+ EXPECT_EQ(em::PolicyData::ENTERPRISE_MANAGED,
+ device_settings_service_.policy_data()->management_mode());
+
+ // ENTERPRISE_MANAGED -> LOCAL_OWNER: Invalid.
+ management_settings.management_mode = policy::MANAGEMENT_MODE_LOCAL_OWNER;
+ service_->SetManagementSettings(management_settings,
+ on_management_settings_set_callback);
+ FlushDeviceSettings();
+
+ EXPECT_FALSE(management_settings_set_);
+ EXPECT_EQ(em::PolicyData::ENTERPRISE_MANAGED,
+ device_settings_service_.policy_data()->management_mode());
+
+ // ENTERPRISE_MANAGED -> CONSUMER_MANAGED: Invalid.
+ management_settings.management_mode =
+ policy::MANAGEMENT_MODE_CONSUMER_MANAGED;
+ service_->SetManagementSettings(management_settings,
+ on_management_settings_set_callback);
+ FlushDeviceSettings();
+
+ EXPECT_FALSE(management_settings_set_);
+ EXPECT_EQ(em::PolicyData::ENTERPRISE_MANAGED,
+ device_settings_service_.policy_data()->management_mode());
+}
+
+TEST_F(OwnerSettingsServiceChromeOSTest, SetManagementSettingsSuccess) {
+ ReloadDeviceSettings();
+ EXPECT_EQ(DeviceSettingsService::STORE_SUCCESS,
+ device_settings_service_.status());
+
+ OwnerSettingsServiceChromeOS::ManagementSettings management_settings;
+ management_settings.management_mode =
+ policy::MANAGEMENT_MODE_CONSUMER_MANAGED;
+ management_settings.request_token = "fake_request_token";
+ management_settings.device_id = "fake_device_id";
+ service_->SetManagementSettings(
+ management_settings,
+ base::Bind(&OwnerSettingsServiceChromeOSTest::OnManagementSettingsSet,
+ base::Unretained(this)));
+ FlushDeviceSettings();
+
+ EXPECT_EQ(DeviceSettingsService::STORE_SUCCESS,
+ device_settings_service_.status());
+ ASSERT_TRUE(device_settings_service_.device_settings());
+
+ // Check that the loaded policy_data contains the expected values.
+ const em::PolicyData* policy_data = device_settings_service_.policy_data();
+ EXPECT_EQ(policy::dm_protocol::kChromeDevicePolicyType,
+ policy_data->policy_type());
+ EXPECT_EQ(device_settings_service_.GetUsername(), policy_data->username());
+ EXPECT_EQ(em::PolicyData::CONSUMER_MANAGED, policy_data->management_mode());
+ EXPECT_EQ("fake_request_token", policy_data->request_token());
+ EXPECT_EQ("fake_device_id", policy_data->device_id());
+}
+
class OwnerSettingsServiceChromeOSNoOwnerTest
: public OwnerSettingsServiceChromeOSTest {
public:

Powered by Google App Engine
This is Rietveld 408576698