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 a06337e392af313fa0a01d4d4800c38b49a320ff..55c0710e6b46c4bfd1a0debfaeee51570679c1c1 100644 |
--- a/chrome/browser/chromeos/ownership/owner_settings_service_chromeos_unittest.cc |
+++ b/chrome/browser/chromeos/ownership/owner_settings_service_chromeos_unittest.cc |
@@ -78,6 +78,12 @@ class PrefsChecker : public ownership::OwnerSettingsService::Observer { |
DISALLOW_COPY_AND_ASSIGN(PrefsChecker); |
}; |
+bool FindInListValue(const std::string& needle, const base::Value* haystack) { |
+ const base::ListValue* list; |
+ if (!haystack->GetAsList(&list)) |
+ return false; |
+ return list->end() != list->Find(base::StringValue(needle)); |
+} |
Mattias Nissler (ping if slow)
2015/03/26 12:29:42
nit: newline here
|
} // namespace |
class OwnerSettingsServiceChromeOSTest : public DeviceSettingsTestBase { |
@@ -123,6 +129,7 @@ class OwnerSettingsServiceChromeOSTest : public DeviceSettingsTestBase { |
management_settings_set_ = success; |
} |
+ protected: |
OwnerSettingsServiceChromeOS* service_; |
ScopedTestingLocalState local_state_; |
scoped_ptr<DeviceSettingsProvider> provider_; |
@@ -294,6 +301,15 @@ TEST_F(OwnerSettingsServiceChromeOSTest, SetManagementSettingsSuccess) { |
EXPECT_EQ("fake_device_id", policy_data->device_id()); |
} |
+TEST_F(OwnerSettingsServiceChromeOSTest, ForceWhitelist) { |
+ EXPECT_FALSE(FindInListValue(device_policy_.policy_data().username(), |
+ provider_->Get(kAccountsPrefUsers))); |
+ // Force a settings write. |
+ TestSingleSet(service_, kReleaseChannel, base::StringValue("dev-channel")); |
+ EXPECT_TRUE(FindInListValue(device_policy_.policy_data().username(), |
+ provider_->Get(kAccountsPrefUsers))); |
+} |
+ |
class OwnerSettingsServiceChromeOSNoOwnerTest |
: public OwnerSettingsServiceChromeOSTest { |
public: |
@@ -321,4 +337,16 @@ TEST_F(OwnerSettingsServiceChromeOSNoOwnerTest, SingleSetTest) { |
ASSERT_FALSE(service_->SetBoolean(kAccountsPrefAllowGuest, false)); |
} |
+TEST_F(OwnerSettingsServiceChromeOSNoOwnerTest, TakeOwnershipForceWhitelist) { |
+ EXPECT_FALSE(FindInListValue(device_policy_.policy_data().username(), |
+ provider_->Get(kAccountsPrefUsers))); |
+ owner_key_util_->SetPrivateKey(device_policy_.GetSigningKey()); |
+ InitOwner(device_policy_.policy_data().username(), true); |
+ ReloadDeviceSettings(); |
+ ASSERT_TRUE(service_->IsOwner()); |
+ |
+ EXPECT_TRUE(FindInListValue(device_policy_.policy_data().username(), |
+ provider_->Get(kAccountsPrefUsers))); |
+} |
+ |
} // namespace chromeos |