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
3 // found in the LICENSE file.
5 #include "base/prefs/pref_value_map.h"
6 #include "base/values.h"
7 #include "components/autofill/core/common/autofill_pref_names.h"
8 #include "components/policy/core/browser/autofill_policy_handler.h"
9 #include "components/policy/core/common/policy_map.h"
10 #include "policy/policy_constants.h"
11 #include "testing/gtest/include/gtest/gtest.h"
15 // Test cases for the Autofill policy setting.
16 class AutofillPolicyHandlerTest
: public testing::Test
{};
18 TEST_F(AutofillPolicyHandlerTest
, Default
) {
21 AutofillPolicyHandler handler
;
22 handler
.ApplyPolicySettings(policy
, &prefs
);
23 EXPECT_FALSE(prefs
.GetValue(autofill::prefs::kAutofillEnabled
, NULL
));
26 TEST_F(AutofillPolicyHandlerTest
, Enabled
) {
28 policy
.Set(key::kAutoFillEnabled
,
29 POLICY_LEVEL_MANDATORY
,
31 base::Value::CreateBooleanValue(true),
34 AutofillPolicyHandler handler
;
35 handler
.ApplyPolicySettings(policy
, &prefs
);
37 // Enabling Autofill should not set the pref.
38 EXPECT_FALSE(prefs
.GetValue(autofill::prefs::kAutofillEnabled
, NULL
));
41 TEST_F(AutofillPolicyHandlerTest
, Disabled
) {
43 policy
.Set(key::kAutoFillEnabled
,
44 POLICY_LEVEL_MANDATORY
,
46 base::Value::CreateBooleanValue(false),
49 AutofillPolicyHandler handler
;
50 handler
.ApplyPolicySettings(policy
, &prefs
);
52 // Disabling Autofill should switch the pref to managed.
53 const base::Value
* value
= NULL
;
54 EXPECT_TRUE(prefs
.GetValue(autofill::prefs::kAutofillEnabled
, &value
));
56 bool autofill_enabled
= true;
57 bool result
= value
->GetAsBoolean(&autofill_enabled
);
59 EXPECT_FALSE(autofill_enabled
);