1 // Copyright 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 #include "base/prefs/pref_value_map.h"
6 #include "base/values.h"
7 #include "chrome/browser/sync/sync_policy_handler.h"
8 #include "chrome/common/pref_names.h"
9 #include "components/policy/core/common/policy_map.h"
10 #include "policy/policy_constants.h"
11 #include "testing/gtest/include/gtest/gtest.h"
13 namespace browser_sync
{
15 // Test cases for the Sync policy setting.
16 class SyncPolicyHandlerTest
: public testing::Test
{};
18 TEST_F(SyncPolicyHandlerTest
, Default
) {
19 policy::PolicyMap policy
;
20 SyncPolicyHandler handler
;
22 handler
.ApplyPolicySettings(policy
, &prefs
);
23 EXPECT_FALSE(prefs
.GetValue(prefs::kSyncManaged
, NULL
));
26 TEST_F(SyncPolicyHandlerTest
, Enabled
) {
27 policy::PolicyMap policy
;
28 policy
.Set(policy::key::kSyncDisabled
,
29 policy::POLICY_LEVEL_MANDATORY
,
30 policy::POLICY_SCOPE_USER
,
31 base::Value::CreateBooleanValue(false),
33 SyncPolicyHandler handler
;
35 handler
.ApplyPolicySettings(policy
, &prefs
);
37 // Enabling Sync should not set the pref.
38 EXPECT_FALSE(prefs
.GetValue(prefs::kSyncManaged
, NULL
));
41 TEST_F(SyncPolicyHandlerTest
, Disabled
) {
42 policy::PolicyMap policy
;
43 policy
.Set(policy::key::kSyncDisabled
,
44 policy::POLICY_LEVEL_MANDATORY
,
45 policy::POLICY_SCOPE_USER
,
46 base::Value::CreateBooleanValue(true),
48 SyncPolicyHandler handler
;
50 handler
.ApplyPolicySettings(policy
, &prefs
);
52 // Sync should be flagged as managed.
53 const base::Value
* value
= NULL
;
54 EXPECT_TRUE(prefs
.GetValue(prefs::kSyncManaged
, &value
));
56 bool sync_managed
= false;
57 bool result
= value
->GetAsBoolean(&sync_managed
);
59 EXPECT_TRUE(sync_managed
);
62 } // namespace browser_sync