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. 4 5 #include "base/prefs/pref_value_map.h" 6 #include "base/values.h" 7 #include "chrome/browser/policy/autofill_policy_handler.h" 8 #include "components/autofill/core/common/autofill_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" 12 13 namespace policy { 14 15 // Test cases for the Autofill policy setting. 16 class AutofillPolicyHandlerTest : public testing::Test {}; 17 18 TEST_F(AutofillPolicyHandlerTest, Default) { 19 PolicyMap policy; 20 PrefValueMap prefs; 21 AutofillPolicyHandler handler; 22 handler.ApplyPolicySettings(policy, &prefs); 23 EXPECT_FALSE(prefs.GetValue(autofill::prefs::kAutofillEnabled, NULL)); 24 } 25 26 TEST_F(AutofillPolicyHandlerTest, Enabled) { 27 PolicyMap policy; 28 policy.Set(key::kAutoFillEnabled, 29 POLICY_LEVEL_MANDATORY, 30 POLICY_SCOPE_USER, 31 base::Value::CreateBooleanValue(true), 32 NULL); 33 PrefValueMap prefs; 34 AutofillPolicyHandler handler; 35 handler.ApplyPolicySettings(policy, &prefs); 36 37 // Enabling Autofill should not set the pref. 38 EXPECT_FALSE(prefs.GetValue(autofill::prefs::kAutofillEnabled, NULL)); 39 } 40 41 TEST_F(AutofillPolicyHandlerTest, Disabled) { 42 PolicyMap policy; 43 policy.Set(key::kAutoFillEnabled, 44 POLICY_LEVEL_MANDATORY, 45 POLICY_SCOPE_USER, 46 base::Value::CreateBooleanValue(false), 47 NULL); 48 PrefValueMap prefs; 49 AutofillPolicyHandler handler; 50 handler.ApplyPolicySettings(policy, &prefs); 51 52 // Disabling Autofill should switch the pref to managed. 53 const base::Value* value = NULL; 54 EXPECT_TRUE(prefs.GetValue(autofill::prefs::kAutofillEnabled, &value)); 55 ASSERT_TRUE(value); 56 bool autofill_enabled = true; 57 bool result = value->GetAsBoolean(&autofill_enabled); 58 ASSERT_TRUE(result); 59 EXPECT_FALSE(autofill_enabled); 60 } 61 62 } // namespace policy 63