15d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)// Copyright 2014 The Chromium Authors. All rights reserved. 21e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 31e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)// found in the LICENSE file. 41e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) 51e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)#include "base/prefs/pref_value_map.h" 61e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)#include "base/values.h" 71e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)#include "components/autofill/core/common/autofill_pref_names.h" 85d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#include "components/policy/core/browser/autofill_policy_handler.h" 9f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)#include "components/policy/core/common/policy_map.h" 101e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)#include "policy/policy_constants.h" 111e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)#include "testing/gtest/include/gtest/gtest.h" 121e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) 131e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)namespace policy { 141e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) 151e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)// Test cases for the Autofill policy setting. 161e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)class AutofillPolicyHandlerTest : public testing::Test {}; 171e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) 181e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)TEST_F(AutofillPolicyHandlerTest, Default) { 191e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) PolicyMap policy; 201e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) PrefValueMap prefs; 211e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) AutofillPolicyHandler handler; 221e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) handler.ApplyPolicySettings(policy, &prefs); 231e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) EXPECT_FALSE(prefs.GetValue(autofill::prefs::kAutofillEnabled, NULL)); 241e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)} 251e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) 261e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)TEST_F(AutofillPolicyHandlerTest, Enabled) { 271e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) PolicyMap policy; 281e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) policy.Set(key::kAutoFillEnabled, 291e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) POLICY_LEVEL_MANDATORY, 301e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) POLICY_SCOPE_USER, 31116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch new base::FundamentalValue(true), 321e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) NULL); 331e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) PrefValueMap prefs; 341e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) AutofillPolicyHandler handler; 351e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) handler.ApplyPolicySettings(policy, &prefs); 361e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) 371e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) // Enabling Autofill should not set the pref. 381e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) EXPECT_FALSE(prefs.GetValue(autofill::prefs::kAutofillEnabled, NULL)); 391e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)} 401e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) 411e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)TEST_F(AutofillPolicyHandlerTest, Disabled) { 421e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) PolicyMap policy; 431e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) policy.Set(key::kAutoFillEnabled, 441e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) POLICY_LEVEL_MANDATORY, 451e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) POLICY_SCOPE_USER, 46116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch new base::FundamentalValue(false), 471e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) NULL); 481e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) PrefValueMap prefs; 491e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) AutofillPolicyHandler handler; 501e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) handler.ApplyPolicySettings(policy, &prefs); 511e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) 521e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) // Disabling Autofill should switch the pref to managed. 531e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) const base::Value* value = NULL; 541e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) EXPECT_TRUE(prefs.GetValue(autofill::prefs::kAutofillEnabled, &value)); 551e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) ASSERT_TRUE(value); 561e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) bool autofill_enabled = true; 571e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) bool result = value->GetAsBoolean(&autofill_enabled); 581e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) ASSERT_TRUE(result); 591e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) EXPECT_FALSE(autofill_enabled); 601e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)} 611e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) 621e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)} // namespace policy 63