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

Side by Side Diff: chrome/browser/chromeos/ownership/owner_settings_service_chromeos_unittest.cc

Issue 985093002: Fix up Owner settings on first load (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Added test to see that changes take effect on ownership. Created 5 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 unified diff | Download patch
« no previous file with comments | « chrome/browser/chromeos/ownership/owner_settings_service_chromeos.cc ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 <queue> 5 #include <queue>
6 #include <utility> 6 #include <utility>
7 7
8 #include "base/macros.h" 8 #include "base/macros.h"
9 #include "base/memory/linked_ptr.h" 9 #include "base/memory/linked_ptr.h"
10 #include "base/memory/scoped_ptr.h" 10 #include "base/memory/scoped_ptr.h"
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after
71 OwnerSettingsServiceChromeOS* service_; 71 OwnerSettingsServiceChromeOS* service_;
72 DeviceSettingsProvider* provider_; 72 DeviceSettingsProvider* provider_;
73 base::RunLoop loop_; 73 base::RunLoop loop_;
74 74
75 typedef std::pair<std::string, linked_ptr<base::Value>> SetRequest; 75 typedef std::pair<std::string, linked_ptr<base::Value>> SetRequest;
76 std::queue<SetRequest> set_requests_; 76 std::queue<SetRequest> set_requests_;
77 77
78 DISALLOW_COPY_AND_ASSIGN(PrefsChecker); 78 DISALLOW_COPY_AND_ASSIGN(PrefsChecker);
79 }; 79 };
80 80
81 bool FindInListValue(const std::string& needle, const base::Value* haystack) {
82 const base::ListValue* list;
83 if (!haystack->GetAsList(&list))
84 return false;
85 return list->end() != list->Find(base::StringValue(needle));
86 }
Mattias Nissler (ping if slow) 2015/03/26 12:29:42 nit: newline here
81 } // namespace 87 } // namespace
82 88
83 class OwnerSettingsServiceChromeOSTest : public DeviceSettingsTestBase { 89 class OwnerSettingsServiceChromeOSTest : public DeviceSettingsTestBase {
84 public: 90 public:
85 OwnerSettingsServiceChromeOSTest() 91 OwnerSettingsServiceChromeOSTest()
86 : service_(nullptr), 92 : service_(nullptr),
87 local_state_(TestingBrowserProcess::GetGlobal()), 93 local_state_(TestingBrowserProcess::GetGlobal()),
88 user_data_dir_override_(chrome::DIR_USER_DATA), 94 user_data_dir_override_(chrome::DIR_USER_DATA),
89 management_settings_set_(false) {} 95 management_settings_set_(false) {}
90 96
(...skipping 25 matching lines...) Expand all
116 PrefsChecker checker(service, provider_.get()); 122 PrefsChecker checker(service, provider_.get());
117 checker.Set(setting, in_value); 123 checker.Set(setting, in_value);
118 FlushDeviceSettings(); 124 FlushDeviceSettings();
119 checker.Wait(); 125 checker.Wait();
120 } 126 }
121 127
122 void OnManagementSettingsSet(bool success) { 128 void OnManagementSettingsSet(bool success) {
123 management_settings_set_ = success; 129 management_settings_set_ = success;
124 } 130 }
125 131
132 protected:
126 OwnerSettingsServiceChromeOS* service_; 133 OwnerSettingsServiceChromeOS* service_;
127 ScopedTestingLocalState local_state_; 134 ScopedTestingLocalState local_state_;
128 scoped_ptr<DeviceSettingsProvider> provider_; 135 scoped_ptr<DeviceSettingsProvider> provider_;
129 base::ScopedPathOverride user_data_dir_override_; 136 base::ScopedPathOverride user_data_dir_override_;
130 bool management_settings_set_; 137 bool management_settings_set_;
131 138
132 private: 139 private:
133 DISALLOW_COPY_AND_ASSIGN(OwnerSettingsServiceChromeOSTest); 140 DISALLOW_COPY_AND_ASSIGN(OwnerSettingsServiceChromeOSTest);
134 }; 141 };
135 142
(...skipping 151 matching lines...) Expand 10 before | Expand all | Expand 10 after
287 // Check that the loaded policy_data contains the expected values. 294 // Check that the loaded policy_data contains the expected values.
288 const em::PolicyData* policy_data = device_settings_service_.policy_data(); 295 const em::PolicyData* policy_data = device_settings_service_.policy_data();
289 EXPECT_EQ(policy::dm_protocol::kChromeDevicePolicyType, 296 EXPECT_EQ(policy::dm_protocol::kChromeDevicePolicyType,
290 policy_data->policy_type()); 297 policy_data->policy_type());
291 EXPECT_EQ(device_settings_service_.GetUsername(), policy_data->username()); 298 EXPECT_EQ(device_settings_service_.GetUsername(), policy_data->username());
292 EXPECT_EQ(em::PolicyData::CONSUMER_MANAGED, policy_data->management_mode()); 299 EXPECT_EQ(em::PolicyData::CONSUMER_MANAGED, policy_data->management_mode());
293 EXPECT_EQ("fake_request_token", policy_data->request_token()); 300 EXPECT_EQ("fake_request_token", policy_data->request_token());
294 EXPECT_EQ("fake_device_id", policy_data->device_id()); 301 EXPECT_EQ("fake_device_id", policy_data->device_id());
295 } 302 }
296 303
304 TEST_F(OwnerSettingsServiceChromeOSTest, ForceWhitelist) {
305 EXPECT_FALSE(FindInListValue(device_policy_.policy_data().username(),
306 provider_->Get(kAccountsPrefUsers)));
307 // Force a settings write.
308 TestSingleSet(service_, kReleaseChannel, base::StringValue("dev-channel"));
309 EXPECT_TRUE(FindInListValue(device_policy_.policy_data().username(),
310 provider_->Get(kAccountsPrefUsers)));
311 }
312
297 class OwnerSettingsServiceChromeOSNoOwnerTest 313 class OwnerSettingsServiceChromeOSNoOwnerTest
298 : public OwnerSettingsServiceChromeOSTest { 314 : public OwnerSettingsServiceChromeOSTest {
299 public: 315 public:
300 OwnerSettingsServiceChromeOSNoOwnerTest() {} 316 OwnerSettingsServiceChromeOSNoOwnerTest() {}
301 ~OwnerSettingsServiceChromeOSNoOwnerTest() override {} 317 ~OwnerSettingsServiceChromeOSNoOwnerTest() override {}
302 318
303 void SetUp() override { 319 void SetUp() override {
304 DeviceSettingsTestBase::SetUp(); 320 DeviceSettingsTestBase::SetUp();
305 provider_.reset(new DeviceSettingsProvider(base::Bind(&OnPrefChanged), 321 provider_.reset(new DeviceSettingsProvider(base::Bind(&OnPrefChanged),
306 &device_settings_service_)); 322 &device_settings_service_));
307 FlushDeviceSettings(); 323 FlushDeviceSettings();
308 service_ = OwnerSettingsServiceChromeOSFactory::GetForBrowserContext( 324 service_ = OwnerSettingsServiceChromeOSFactory::GetForBrowserContext(
309 profile_.get()); 325 profile_.get());
310 ASSERT_TRUE(service_); 326 ASSERT_TRUE(service_);
311 ASSERT_FALSE(service_->IsOwner()); 327 ASSERT_FALSE(service_->IsOwner());
312 } 328 }
313 329
314 void TearDown() override { DeviceSettingsTestBase::TearDown(); } 330 void TearDown() override { DeviceSettingsTestBase::TearDown(); }
315 331
316 private: 332 private:
317 DISALLOW_COPY_AND_ASSIGN(OwnerSettingsServiceChromeOSNoOwnerTest); 333 DISALLOW_COPY_AND_ASSIGN(OwnerSettingsServiceChromeOSNoOwnerTest);
318 }; 334 };
319 335
320 TEST_F(OwnerSettingsServiceChromeOSNoOwnerTest, SingleSetTest) { 336 TEST_F(OwnerSettingsServiceChromeOSNoOwnerTest, SingleSetTest) {
321 ASSERT_FALSE(service_->SetBoolean(kAccountsPrefAllowGuest, false)); 337 ASSERT_FALSE(service_->SetBoolean(kAccountsPrefAllowGuest, false));
322 } 338 }
323 339
340 TEST_F(OwnerSettingsServiceChromeOSNoOwnerTest, TakeOwnershipForceWhitelist) {
341 EXPECT_FALSE(FindInListValue(device_policy_.policy_data().username(),
342 provider_->Get(kAccountsPrefUsers)));
343 owner_key_util_->SetPrivateKey(device_policy_.GetSigningKey());
344 InitOwner(device_policy_.policy_data().username(), true);
345 ReloadDeviceSettings();
346 ASSERT_TRUE(service_->IsOwner());
347
348 EXPECT_TRUE(FindInListValue(device_policy_.policy_data().username(),
349 provider_->Get(kAccountsPrefUsers)));
350 }
351
324 } // namespace chromeos 352 } // namespace chromeos
OLDNEW
« no previous file with comments | « chrome/browser/chromeos/ownership/owner_settings_service_chromeos.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698