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

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: has_pending_changes -> HasPendingChanges 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 27 matching lines...) Expand all
38 : service_(service), provider_(provider) { 38 : service_(service), provider_(provider) {
39 CHECK(service_); 39 CHECK(service_);
40 CHECK(provider_); 40 CHECK(provider_);
41 service_->AddObserver(this); 41 service_->AddObserver(this);
42 } 42 }
43 43
44 ~PrefsChecker() override { service_->RemoveObserver(this); } 44 ~PrefsChecker() override { service_->RemoveObserver(this); }
45 45
46 // OwnerSettingsService::Observer implementation: 46 // OwnerSettingsService::Observer implementation:
47 void OnSignedPolicyStored(bool success) override { 47 void OnSignedPolicyStored(bool success) override {
48 if (service_->has_pending_changes()) 48 if (service_->HasPendingChanges())
49 return; 49 return;
50 50
51 while (!set_requests_.empty()) { 51 while (!set_requests_.empty()) {
52 SetRequest request = set_requests_.front(); 52 SetRequest request = set_requests_.front();
53 set_requests_.pop(); 53 set_requests_.pop();
54 const base::Value* value = provider_->Get(request.first); 54 const base::Value* value = provider_->Get(request.first);
55 ASSERT_TRUE(request.second->Equals(value)); 55 ASSERT_TRUE(request.second->Equals(value));
56 } 56 }
57 loop_.Quit(); 57 loop_.Quit();
58 } 58 }
(...skipping 12 matching lines...) Expand all
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 }
87
81 } // namespace 88 } // namespace
82 89
83 class OwnerSettingsServiceChromeOSTest : public DeviceSettingsTestBase { 90 class OwnerSettingsServiceChromeOSTest : public DeviceSettingsTestBase {
84 public: 91 public:
85 OwnerSettingsServiceChromeOSTest() 92 OwnerSettingsServiceChromeOSTest()
86 : service_(nullptr), 93 : service_(nullptr),
87 local_state_(TestingBrowserProcess::GetGlobal()), 94 local_state_(TestingBrowserProcess::GetGlobal()),
88 user_data_dir_override_(chrome::DIR_USER_DATA), 95 user_data_dir_override_(chrome::DIR_USER_DATA),
89 management_settings_set_(false) {} 96 management_settings_set_(false) {}
90 97
(...skipping 25 matching lines...) Expand all
116 PrefsChecker checker(service, provider_.get()); 123 PrefsChecker checker(service, provider_.get());
117 checker.Set(setting, in_value); 124 checker.Set(setting, in_value);
118 FlushDeviceSettings(); 125 FlushDeviceSettings();
119 checker.Wait(); 126 checker.Wait();
120 } 127 }
121 128
122 void OnManagementSettingsSet(bool success) { 129 void OnManagementSettingsSet(bool success) {
123 management_settings_set_ = success; 130 management_settings_set_ = success;
124 } 131 }
125 132
133 protected:
126 OwnerSettingsServiceChromeOS* service_; 134 OwnerSettingsServiceChromeOS* service_;
127 ScopedTestingLocalState local_state_; 135 ScopedTestingLocalState local_state_;
128 scoped_ptr<DeviceSettingsProvider> provider_; 136 scoped_ptr<DeviceSettingsProvider> provider_;
129 base::ScopedPathOverride user_data_dir_override_; 137 base::ScopedPathOverride user_data_dir_override_;
130 bool management_settings_set_; 138 bool management_settings_set_;
131 139
132 private: 140 private:
133 DISALLOW_COPY_AND_ASSIGN(OwnerSettingsServiceChromeOSTest); 141 DISALLOW_COPY_AND_ASSIGN(OwnerSettingsServiceChromeOSTest);
134 }; 142 };
135 143
(...skipping 151 matching lines...) Expand 10 before | Expand all | Expand 10 after
287 // Check that the loaded policy_data contains the expected values. 295 // Check that the loaded policy_data contains the expected values.
288 const em::PolicyData* policy_data = device_settings_service_.policy_data(); 296 const em::PolicyData* policy_data = device_settings_service_.policy_data();
289 EXPECT_EQ(policy::dm_protocol::kChromeDevicePolicyType, 297 EXPECT_EQ(policy::dm_protocol::kChromeDevicePolicyType,
290 policy_data->policy_type()); 298 policy_data->policy_type());
291 EXPECT_EQ(device_settings_service_.GetUsername(), policy_data->username()); 299 EXPECT_EQ(device_settings_service_.GetUsername(), policy_data->username());
292 EXPECT_EQ(em::PolicyData::CONSUMER_MANAGED, policy_data->management_mode()); 300 EXPECT_EQ(em::PolicyData::CONSUMER_MANAGED, policy_data->management_mode());
293 EXPECT_EQ("fake_request_token", policy_data->request_token()); 301 EXPECT_EQ("fake_request_token", policy_data->request_token());
294 EXPECT_EQ("fake_device_id", policy_data->device_id()); 302 EXPECT_EQ("fake_device_id", policy_data->device_id());
295 } 303 }
296 304
305 TEST_F(OwnerSettingsServiceChromeOSTest, ForceWhitelist) {
306 EXPECT_FALSE(FindInListValue(device_policy_.policy_data().username(),
307 provider_->Get(kAccountsPrefUsers)));
308 // Force a settings write.
309 TestSingleSet(service_, kReleaseChannel, base::StringValue("dev-channel"));
310 EXPECT_TRUE(FindInListValue(device_policy_.policy_data().username(),
311 provider_->Get(kAccountsPrefUsers)));
312 }
313
297 class OwnerSettingsServiceChromeOSNoOwnerTest 314 class OwnerSettingsServiceChromeOSNoOwnerTest
298 : public OwnerSettingsServiceChromeOSTest { 315 : public OwnerSettingsServiceChromeOSTest {
299 public: 316 public:
300 OwnerSettingsServiceChromeOSNoOwnerTest() {} 317 OwnerSettingsServiceChromeOSNoOwnerTest() {}
301 ~OwnerSettingsServiceChromeOSNoOwnerTest() override {} 318 ~OwnerSettingsServiceChromeOSNoOwnerTest() override {}
302 319
303 void SetUp() override { 320 void SetUp() override {
304 DeviceSettingsTestBase::SetUp(); 321 DeviceSettingsTestBase::SetUp();
305 provider_.reset(new DeviceSettingsProvider(base::Bind(&OnPrefChanged), 322 provider_.reset(new DeviceSettingsProvider(base::Bind(&OnPrefChanged),
306 &device_settings_service_)); 323 &device_settings_service_));
307 FlushDeviceSettings(); 324 FlushDeviceSettings();
308 service_ = OwnerSettingsServiceChromeOSFactory::GetForBrowserContext( 325 service_ = OwnerSettingsServiceChromeOSFactory::GetForBrowserContext(
309 profile_.get()); 326 profile_.get());
310 ASSERT_TRUE(service_); 327 ASSERT_TRUE(service_);
311 ASSERT_FALSE(service_->IsOwner()); 328 ASSERT_FALSE(service_->IsOwner());
312 } 329 }
313 330
314 void TearDown() override { DeviceSettingsTestBase::TearDown(); } 331 void TearDown() override { DeviceSettingsTestBase::TearDown(); }
315 332
316 private: 333 private:
317 DISALLOW_COPY_AND_ASSIGN(OwnerSettingsServiceChromeOSNoOwnerTest); 334 DISALLOW_COPY_AND_ASSIGN(OwnerSettingsServiceChromeOSNoOwnerTest);
318 }; 335 };
319 336
320 TEST_F(OwnerSettingsServiceChromeOSNoOwnerTest, SingleSetTest) { 337 TEST_F(OwnerSettingsServiceChromeOSNoOwnerTest, SingleSetTest) {
321 ASSERT_FALSE(service_->SetBoolean(kAccountsPrefAllowGuest, false)); 338 ASSERT_FALSE(service_->SetBoolean(kAccountsPrefAllowGuest, false));
322 } 339 }
323 340
341 TEST_F(OwnerSettingsServiceChromeOSNoOwnerTest, TakeOwnershipForceWhitelist) {
342 EXPECT_FALSE(FindInListValue(device_policy_.policy_data().username(),
343 provider_->Get(kAccountsPrefUsers)));
344 owner_key_util_->SetPrivateKey(device_policy_.GetSigningKey());
345 InitOwner(device_policy_.policy_data().username(), true);
346 ReloadDeviceSettings();
347 ASSERT_TRUE(service_->IsOwner());
348
349 EXPECT_TRUE(FindInListValue(device_policy_.policy_data().username(),
350 provider_->Get(kAccountsPrefUsers)));
351 }
352
324 } // namespace chromeos 353 } // 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