| OLD | NEW |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "chrome/browser/chromeos/ownership/owner_settings_service_chromeos.h" | 5 #include "chrome/browser/chromeos/ownership/owner_settings_service_chromeos.h" |
| 6 | 6 |
| 7 #include <memory> | 7 #include <memory> |
| 8 #include <queue> | 8 #include <queue> |
| 9 #include <utility> | 9 #include <utility> |
| 10 | 10 |
| (...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 76 typedef std::pair<std::string, linked_ptr<base::Value>> SetRequest; | 76 typedef std::pair<std::string, linked_ptr<base::Value>> SetRequest; |
| 77 std::queue<SetRequest> set_requests_; | 77 std::queue<SetRequest> set_requests_; |
| 78 | 78 |
| 79 DISALLOW_COPY_AND_ASSIGN(PrefsChecker); | 79 DISALLOW_COPY_AND_ASSIGN(PrefsChecker); |
| 80 }; | 80 }; |
| 81 | 81 |
| 82 bool FindInListValue(const std::string& needle, const base::Value* haystack) { | 82 bool FindInListValue(const std::string& needle, const base::Value* haystack) { |
| 83 const base::ListValue* list; | 83 const base::ListValue* list; |
| 84 if (!haystack->GetAsList(&list)) | 84 if (!haystack->GetAsList(&list)) |
| 85 return false; | 85 return false; |
| 86 return list->end() != list->Find(base::StringValue(needle)); | 86 return list->end() != list->Find(base::Value(needle)); |
| 87 } | 87 } |
| 88 | 88 |
| 89 } // namespace | 89 } // namespace |
| 90 | 90 |
| 91 class OwnerSettingsServiceChromeOSTest : public DeviceSettingsTestBase { | 91 class OwnerSettingsServiceChromeOSTest : public DeviceSettingsTestBase { |
| 92 public: | 92 public: |
| 93 OwnerSettingsServiceChromeOSTest() | 93 OwnerSettingsServiceChromeOSTest() |
| 94 : service_(nullptr), | 94 : service_(nullptr), |
| 95 local_state_(TestingBrowserProcess::GetGlobal()), | 95 local_state_(TestingBrowserProcess::GetGlobal()), |
| 96 user_data_dir_override_(chrome::DIR_USER_DATA), | 96 user_data_dir_override_(chrome::DIR_USER_DATA), |
| (...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 137 ScopedTestingLocalState local_state_; | 137 ScopedTestingLocalState local_state_; |
| 138 std::unique_ptr<DeviceSettingsProvider> provider_; | 138 std::unique_ptr<DeviceSettingsProvider> provider_; |
| 139 base::ScopedPathOverride user_data_dir_override_; | 139 base::ScopedPathOverride user_data_dir_override_; |
| 140 bool management_settings_set_; | 140 bool management_settings_set_; |
| 141 | 141 |
| 142 private: | 142 private: |
| 143 DISALLOW_COPY_AND_ASSIGN(OwnerSettingsServiceChromeOSTest); | 143 DISALLOW_COPY_AND_ASSIGN(OwnerSettingsServiceChromeOSTest); |
| 144 }; | 144 }; |
| 145 | 145 |
| 146 TEST_F(OwnerSettingsServiceChromeOSTest, SingleSetTest) { | 146 TEST_F(OwnerSettingsServiceChromeOSTest, SingleSetTest) { |
| 147 TestSingleSet(service_, kReleaseChannel, base::StringValue("dev-channel")); | 147 TestSingleSet(service_, kReleaseChannel, base::Value("dev-channel")); |
| 148 TestSingleSet(service_, kReleaseChannel, base::StringValue("beta-channel")); | 148 TestSingleSet(service_, kReleaseChannel, base::Value("beta-channel")); |
| 149 TestSingleSet(service_, kReleaseChannel, base::StringValue("stable-channel")); | 149 TestSingleSet(service_, kReleaseChannel, base::Value("stable-channel")); |
| 150 } | 150 } |
| 151 | 151 |
| 152 TEST_F(OwnerSettingsServiceChromeOSTest, MultipleSetTest) { | 152 TEST_F(OwnerSettingsServiceChromeOSTest, MultipleSetTest) { |
| 153 base::Value allow_guest(false); | 153 base::Value allow_guest(false); |
| 154 base::StringValue release_channel("stable-channel"); | 154 base::Value release_channel("stable-channel"); |
| 155 base::Value show_user_names(true); | 155 base::Value show_user_names(true); |
| 156 | 156 |
| 157 PrefsChecker checker(service_, provider_.get()); | 157 PrefsChecker checker(service_, provider_.get()); |
| 158 | 158 |
| 159 checker.Set(kAccountsPrefAllowGuest, allow_guest); | 159 checker.Set(kAccountsPrefAllowGuest, allow_guest); |
| 160 checker.Set(kReleaseChannel, release_channel); | 160 checker.Set(kReleaseChannel, release_channel); |
| 161 checker.Set(kAccountsPrefShowUserNamesOnSignIn, show_user_names); | 161 checker.Set(kAccountsPrefShowUserNamesOnSignIn, show_user_names); |
| 162 | 162 |
| 163 FlushDeviceSettings(); | 163 FlushDeviceSettings(); |
| 164 checker.Wait(); | 164 checker.Wait(); |
| 165 } | 165 } |
| 166 | 166 |
| 167 TEST_F(OwnerSettingsServiceChromeOSTest, FailedSetRequest) { | 167 TEST_F(OwnerSettingsServiceChromeOSTest, FailedSetRequest) { |
| 168 device_settings_test_helper_.set_store_result(false); | 168 device_settings_test_helper_.set_store_result(false); |
| 169 std::string current_channel; | 169 std::string current_channel; |
| 170 ASSERT_TRUE(provider_->Get(kReleaseChannel)->GetAsString(¤t_channel)); | 170 ASSERT_TRUE(provider_->Get(kReleaseChannel)->GetAsString(¤t_channel)); |
| 171 ASSERT_NE(current_channel, "stable-channel"); | 171 ASSERT_NE(current_channel, "stable-channel"); |
| 172 | 172 |
| 173 // Check that DeviceSettingsProvider's cache is updated. | 173 // Check that DeviceSettingsProvider's cache is updated. |
| 174 PrefsChecker checker(service_, provider_.get()); | 174 PrefsChecker checker(service_, provider_.get()); |
| 175 checker.Set(kReleaseChannel, base::StringValue("stable-channel")); | 175 checker.Set(kReleaseChannel, base::Value("stable-channel")); |
| 176 FlushDeviceSettings(); | 176 FlushDeviceSettings(); |
| 177 checker.Wait(); | 177 checker.Wait(); |
| 178 | 178 |
| 179 // Check that DeviceSettingsService's policy isn't updated. | 179 // Check that DeviceSettingsService's policy isn't updated. |
| 180 ASSERT_EQ(current_channel, device_settings_service_.device_settings() | 180 ASSERT_EQ(current_channel, device_settings_service_.device_settings() |
| 181 ->release_channel() | 181 ->release_channel() |
| 182 .release_channel()); | 182 .release_channel()); |
| 183 } | 183 } |
| 184 | 184 |
| 185 TEST_F(OwnerSettingsServiceChromeOSTest, ForceWhitelist) { | 185 TEST_F(OwnerSettingsServiceChromeOSTest, ForceWhitelist) { |
| 186 EXPECT_FALSE(FindInListValue(device_policy_.policy_data().username(), | 186 EXPECT_FALSE(FindInListValue(device_policy_.policy_data().username(), |
| 187 provider_->Get(kAccountsPrefUsers))); | 187 provider_->Get(kAccountsPrefUsers))); |
| 188 // Force a settings write. | 188 // Force a settings write. |
| 189 TestSingleSet(service_, kReleaseChannel, base::StringValue("dev-channel")); | 189 TestSingleSet(service_, kReleaseChannel, base::Value("dev-channel")); |
| 190 EXPECT_TRUE(FindInListValue(device_policy_.policy_data().username(), | 190 EXPECT_TRUE(FindInListValue(device_policy_.policy_data().username(), |
| 191 provider_->Get(kAccountsPrefUsers))); | 191 provider_->Get(kAccountsPrefUsers))); |
| 192 } | 192 } |
| 193 | 193 |
| 194 class OwnerSettingsServiceChromeOSNoOwnerTest | 194 class OwnerSettingsServiceChromeOSNoOwnerTest |
| 195 : public OwnerSettingsServiceChromeOSTest { | 195 : public OwnerSettingsServiceChromeOSTest { |
| 196 public: | 196 public: |
| 197 OwnerSettingsServiceChromeOSNoOwnerTest() {} | 197 OwnerSettingsServiceChromeOSNoOwnerTest() {} |
| 198 ~OwnerSettingsServiceChromeOSNoOwnerTest() override {} | 198 ~OwnerSettingsServiceChromeOSNoOwnerTest() override {} |
| 199 | 199 |
| (...skipping 25 matching lines...) Expand all Loading... |
| 225 InitOwner(AccountId::FromUserEmail(device_policy_.policy_data().username()), | 225 InitOwner(AccountId::FromUserEmail(device_policy_.policy_data().username()), |
| 226 true); | 226 true); |
| 227 ReloadDeviceSettings(); | 227 ReloadDeviceSettings(); |
| 228 ASSERT_TRUE(service_->IsOwner()); | 228 ASSERT_TRUE(service_->IsOwner()); |
| 229 | 229 |
| 230 EXPECT_TRUE(FindInListValue(device_policy_.policy_data().username(), | 230 EXPECT_TRUE(FindInListValue(device_policy_.policy_data().username(), |
| 231 provider_->Get(kAccountsPrefUsers))); | 231 provider_->Get(kAccountsPrefUsers))); |
| 232 } | 232 } |
| 233 | 233 |
| 234 } // namespace chromeos | 234 } // namespace chromeos |
| OLD | NEW |