Chromium Code Reviews| 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 |