configuration_policy_pref_store_unittest.cc revision 4a5e2dc747d50c653511c68ccb2cfbfb740bd5a7
1bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen// Copyright (c) 2010 The Chromium Authors. All rights reserved. 2bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen// Use of this source code is governed by a BSD-style license that can be 3bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen// found in the LICENSE file. 4bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen 5bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen#include <gtest/gtest.h> 6bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen 7bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen#include "base/file_path.h" 8bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen#include "chrome/browser/policy/configuration_policy_pref_store.h" 9bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen#include "chrome/browser/policy/mock_configuration_policy_provider.h" 10bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen#include "chrome/common/pref_names.h" 11bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen#include "chrome/common/chrome_switches.h" 12bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen 13bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsennamespace policy { 14bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen 15bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen// Holds a set of test parameters, consisting of pref name and policy type. 16bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsenclass TypeAndName { 17bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen public: 18513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch TypeAndName(ConfigurationPolicyType type, const char* pref_name) 19bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen : type_(type), 20bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen pref_name_(pref_name) {} 21bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen 22513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch ConfigurationPolicyType type() const { return type_; } 23bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen const char* pref_name() const { return pref_name_; } 24bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen 25bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen private: 26513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch ConfigurationPolicyType type_; 27bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen const char* pref_name_; 28bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen}; 29bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen 30bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen// Test cases for list-valued policy settings. 31bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsenclass ConfigurationPolicyPrefStoreListTest 32bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen : public testing::TestWithParam<TypeAndName> { 33bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen}; 34bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen 35bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian MonsenTEST_P(ConfigurationPolicyPrefStoreListTest, GetDefault) { 36731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick ConfigurationPolicyPrefStore store(NULL); 37bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen ListValue* list = NULL; 38bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen EXPECT_FALSE(store.prefs()->GetList(GetParam().pref_name(), &list)); 39bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen} 40bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen 41bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian MonsenTEST_P(ConfigurationPolicyPrefStoreListTest, SetValue) { 42731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick ConfigurationPolicyPrefStore store(NULL); 43bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen ListValue* in_value = new ListValue(); 44bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen in_value->Append(Value::CreateStringValue("test1")); 45bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen in_value->Append(Value::CreateStringValue("test2,")); 46bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen store.Apply(GetParam().type(), in_value); 47bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen ListValue* list = NULL; 48bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen EXPECT_TRUE(store.prefs()->GetList(GetParam().pref_name(), &list)); 49bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen ListValue::const_iterator current(list->begin()); 50513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch const ListValue::const_iterator end(list->end()); 51bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen ASSERT_TRUE(current != end); 52bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen std::string value; 53bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen (*current)->GetAsString(&value); 54bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen EXPECT_EQ("test1", value); 55bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen ++current; 56bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen ASSERT_TRUE(current != end); 57bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen (*current)->GetAsString(&value); 58bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen EXPECT_EQ("test2,", value); 59bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen ++current; 60bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen EXPECT_TRUE(current == end); 61bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen} 62bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen 63bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian MonsenINSTANTIATE_TEST_CASE_P( 64bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen ConfigurationPolicyPrefStoreListTestInstance, 65bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen ConfigurationPolicyPrefStoreListTest, 66bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen testing::Values( 67513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch TypeAndName(kPolicyURLsToRestoreOnStartup, 68bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen prefs::kURLsToRestoreOnStartup), 69513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch TypeAndName(kPolicyExtensionInstallAllowList, 70bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen prefs::kExtensionInstallAllowList), 71513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch TypeAndName(kPolicyExtensionInstallDenyList, 72bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen prefs::kExtensionInstallDenyList), 73513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch TypeAndName(kPolicyDisabledPlugins, 74bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen prefs::kPluginsPluginsBlacklist))); 75bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen 76bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen// Test cases for string-valued policy settings. 77bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsenclass ConfigurationPolicyPrefStoreStringTest 78bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen : public testing::TestWithParam<TypeAndName> { 79bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen}; 80bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen 81bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian MonsenTEST_P(ConfigurationPolicyPrefStoreStringTest, GetDefault) { 82731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick ConfigurationPolicyPrefStore store(NULL); 83bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen std::string result; 84bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen EXPECT_FALSE(store.prefs()->GetString(GetParam().pref_name(), &result)); 85bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen} 86bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen 87bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian MonsenTEST_P(ConfigurationPolicyPrefStoreStringTest, SetValue) { 88731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick ConfigurationPolicyPrefStore store(NULL); 89bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen store.Apply(GetParam().type(), 90bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen Value::CreateStringValue("http://chromium.org")); 91bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen std::string result; 92bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen EXPECT_TRUE(store.prefs()->GetString(GetParam().pref_name(), &result)); 93bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen EXPECT_EQ(result, "http://chromium.org"); 94bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen} 95bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen 96bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian MonsenINSTANTIATE_TEST_CASE_P( 97bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen ConfigurationPolicyPrefStoreStringTestInstance, 98bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen ConfigurationPolicyPrefStoreStringTest, 99bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen testing::Values( 100513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch TypeAndName(kPolicyHomePage, 101bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen prefs::kHomePage), 102513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch TypeAndName(kPolicyProxyServer, 103bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen prefs::kProxyServer), 104513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch TypeAndName(kPolicyProxyPacUrl, 105bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen prefs::kProxyPacUrl), 106513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch TypeAndName(kPolicyProxyBypassList, 107bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen prefs::kProxyBypassList), 108513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch TypeAndName(kPolicyApplicationLocale, 1094a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch prefs::kApplicationLocale), 1104a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch TypeAndName(kPolicyApplicationLocale, 1114a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch prefs::kApplicationLocale), 1124a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch TypeAndName(kPolicyAuthSchemes, 1134a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch prefs::kAuthSchemes), 1144a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch TypeAndName(kPolicyAuthServerWhitelist, 1154a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch prefs::kAuthServerWhitelist), 1164a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch TypeAndName(kPolicyAuthNegotiateDelegateWhitelist, 1174a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch prefs::kAuthNegotiateDelegateWhitelist), 1184a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch TypeAndName(kPolicyGSSAPILibraryName, 1194a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch prefs::kGSSAPILibraryName))); 120bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen 121bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen// Test cases for boolean-valued policy settings. 122bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsenclass ConfigurationPolicyPrefStoreBooleanTest 123bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen : public testing::TestWithParam<TypeAndName> { 124bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen}; 125bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen 126bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian MonsenTEST_P(ConfigurationPolicyPrefStoreBooleanTest, GetDefault) { 127731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick ConfigurationPolicyPrefStore store(NULL); 128bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen bool result = false; 129bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen EXPECT_FALSE(store.prefs()->GetBoolean(GetParam().pref_name(), &result)); 130bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen} 131bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen 132bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian MonsenTEST_P(ConfigurationPolicyPrefStoreBooleanTest, SetValue) { 133731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick ConfigurationPolicyPrefStore store(NULL); 134bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen store.Apply(GetParam().type(), Value::CreateBooleanValue(false)); 135bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen bool result = true; 136bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen EXPECT_TRUE(store.prefs()->GetBoolean(GetParam().pref_name(), &result)); 137bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen EXPECT_FALSE(result); 138bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen 139bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen store.Apply(GetParam().type(), Value::CreateBooleanValue(true)); 140bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen result = false; 141bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen EXPECT_TRUE(store.prefs()->GetBoolean(GetParam().pref_name(), &result)); 142bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen EXPECT_TRUE(result); 143bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen} 144bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen 145bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian MonsenINSTANTIATE_TEST_CASE_P( 146bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen ConfigurationPolicyPrefStoreBooleanTestInstance, 147bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen ConfigurationPolicyPrefStoreBooleanTest, 148bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen testing::Values( 149513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch TypeAndName(kPolicyHomepageIsNewTabPage, 150bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen prefs::kHomePageIsNewTabPage), 151513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch TypeAndName(kPolicyAlternateErrorPagesEnabled, 152bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen prefs::kAlternateErrorPagesEnabled), 153513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch TypeAndName(kPolicySearchSuggestEnabled, 154bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen prefs::kSearchSuggestEnabled), 155513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch TypeAndName(kPolicyDnsPrefetchingEnabled, 156bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen prefs::kDnsPrefetchingEnabled), 157513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch TypeAndName(kPolicyDisableSpdy, 158731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick prefs::kDisableSpdy), 159513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch TypeAndName(kPolicySafeBrowsingEnabled, 160bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen prefs::kSafeBrowsingEnabled), 161513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch TypeAndName(kPolicyMetricsReportingEnabled, 162bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen prefs::kMetricsReportingEnabled), 163513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch TypeAndName(kPolicyPasswordManagerEnabled, 164bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen prefs::kPasswordManagerEnabled), 165513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch TypeAndName(kPolicyPasswordManagerAllowShowPasswords, 166bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen prefs::kPasswordManagerAllowShowPasswords), 167513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch TypeAndName(kPolicyShowHomeButton, 168bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen prefs::kShowHomeButton), 169513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch TypeAndName(kPolicyPrintingEnabled, 170bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen prefs::kPrintingEnabled), 171513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch TypeAndName(kPolicyJavascriptEnabled, 172731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick prefs::kWebKitJavascriptEnabled), 173513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch TypeAndName(kPolicySavingBrowserHistoryDisabled, 1744a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch prefs::kSavingBrowserHistoryDisabled), 1754a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch TypeAndName(kPolicySavingBrowserHistoryDisabled, 1764a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch prefs::kSavingBrowserHistoryDisabled), 1774a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch TypeAndName(kPolicyDisableAuthNegotiateCnameLookup, 1784a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch prefs::kDisableAuthNegotiateCnameLookup), 1794a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch TypeAndName(kPolicyEnableAuthNegotiatePort, 1804a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch prefs::kEnableAuthNegotiatePort))); 181731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick 182731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick#if defined(OS_CHROMEOS) 183731df977c0511bca2206b5f333555b1205ff1f43Iain MerrickINSTANTIATE_TEST_CASE_P( 184731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick CrosConfigurationPolicyPrefStoreBooleanTestInstance, 185731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick ConfigurationPolicyPrefStoreBooleanTest, 186731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick testing::Values( 187513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch TypeAndName(kPolicyChromeOsLockOnIdleSuspend, 188731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick prefs::kEnableScreenLock))); 189731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick#endif // defined(OS_CHROMEOS) 190bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen 191bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen// Test cases for integer-valued policy settings. 192bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsenclass ConfigurationPolicyPrefStoreIntegerTest 193bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen : public testing::TestWithParam<TypeAndName> { 194bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen}; 195bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen 196bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian MonsenTEST_P(ConfigurationPolicyPrefStoreIntegerTest, GetDefault) { 197731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick ConfigurationPolicyPrefStore store(NULL); 198bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen int result = 0; 199bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen EXPECT_FALSE(store.prefs()->GetInteger(GetParam().pref_name(), &result)); 200bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen} 201bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen 202bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian MonsenTEST_P(ConfigurationPolicyPrefStoreIntegerTest, SetValue) { 203731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick ConfigurationPolicyPrefStore store(NULL); 204bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen store.Apply(GetParam().type(), Value::CreateIntegerValue(2)); 205bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen int result = 0; 206bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen EXPECT_TRUE(store.prefs()->GetInteger(GetParam().pref_name(), &result)); 207bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen EXPECT_EQ(result, 2); 208bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen} 209bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen 210bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian MonsenINSTANTIATE_TEST_CASE_P( 211bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen ConfigurationPolicyPrefStoreIntegerTestInstance, 212bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen ConfigurationPolicyPrefStoreIntegerTest, 213bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen testing::Values( 214513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch TypeAndName(kPolicyRestoreOnStartup, 215bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen prefs::kRestoreOnStartup))); 216bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen 217bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen// Test cases for the proxy policy settings. 218bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsenclass ConfigurationPolicyPrefStoreProxyTest : public testing::Test { 219bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen}; 220bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen 221731df977c0511bca2206b5f333555b1205ff1f43Iain MerrickTEST_F(ConfigurationPolicyPrefStoreProxyTest, ManualOptions) { 222bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen scoped_ptr<MockConfigurationPolicyProvider> provider( 223bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen new MockConfigurationPolicyProvider()); 224513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch provider->AddPolicy(kPolicyProxyBypassList, 225513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch Value::CreateStringValue("http://chromium.org/override")); 226513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch provider->AddPolicy(kPolicyProxyPacUrl, 227513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch Value::CreateStringValue("http://short.org/proxy.pac")); 228513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch provider->AddPolicy(kPolicyProxyServer, 229513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch Value::CreateStringValue("chromium.org")); 230513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch provider->AddPolicy(kPolicyProxyServerMode, 231513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch Value::CreateIntegerValue( 232513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch kPolicyManuallyConfiguredProxyMode)); 233bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen 234731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick ConfigurationPolicyPrefStore store(provider.get()); 235bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen EXPECT_EQ(store.ReadPrefs(), PrefStore::PREF_READ_ERROR_NONE); 236bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen 237bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen std::string string_result; 238bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen EXPECT_TRUE(store.prefs()->GetString(prefs::kProxyBypassList, 239bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen &string_result)); 240731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick EXPECT_EQ("http://chromium.org/override", string_result); 241731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick EXPECT_TRUE(store.prefs()->GetString(prefs::kProxyPacUrl, &string_result)); 242513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch EXPECT_EQ("http://short.org/proxy.pac", string_result); 243731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick EXPECT_TRUE(store.prefs()->GetString(prefs::kProxyServer, &string_result)); 244731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick EXPECT_EQ("chromium.org", string_result); 245bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen bool bool_result; 246bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen EXPECT_TRUE(store.prefs()->GetBoolean(prefs::kNoProxyServer, &bool_result)); 247bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen EXPECT_FALSE(bool_result); 248731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick EXPECT_TRUE(store.prefs()->GetBoolean(prefs::kProxyAutoDetect, &bool_result)); 249bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen EXPECT_FALSE(bool_result); 250bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen} 251bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen 252bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian MonsenTEST_F(ConfigurationPolicyPrefStoreProxyTest, NoProxy) { 253bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen scoped_ptr<MockConfigurationPolicyProvider> provider( 254bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen new MockConfigurationPolicyProvider()); 255513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch provider->AddPolicy(kPolicyProxyBypassList, 256513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch Value::CreateStringValue("http://chromium.org/override")); 257513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch provider->AddPolicy(kPolicyProxyServerMode, 258513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch Value::CreateIntegerValue( 259513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch kPolicyNoProxyServerMode)); 260bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen 261731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick ConfigurationPolicyPrefStore store(provider.get()); 262bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen EXPECT_EQ(store.ReadPrefs(), PrefStore::PREF_READ_ERROR_NONE); 263bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen 264bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen std::string string_result; 265bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen EXPECT_FALSE(store.prefs()->GetString(prefs::kProxyBypassList, 266bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen &string_result)); 267bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen EXPECT_FALSE(store.prefs()->GetString(prefs::kProxyPacUrl, &string_result)); 268bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen EXPECT_FALSE(store.prefs()->GetString(prefs::kProxyServer, &string_result)); 269bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen bool bool_result; 270bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen EXPECT_TRUE(store.prefs()->GetBoolean(prefs::kNoProxyServer, &bool_result)); 271bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen EXPECT_TRUE(bool_result); 272731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick EXPECT_TRUE(store.prefs()->GetBoolean(prefs::kProxyAutoDetect, &bool_result)); 273bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen EXPECT_FALSE(bool_result); 274bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen} 275bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen 276bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian MonsenTEST_F(ConfigurationPolicyPrefStoreProxyTest, NoProxyReversedApplyOrder) { 277bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen scoped_ptr<MockConfigurationPolicyProvider> provider( 278bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen new MockConfigurationPolicyProvider()); 279513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch provider->AddPolicy(kPolicyProxyServerMode, 280513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch Value::CreateIntegerValue( 281513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch kPolicyNoProxyServerMode)); 282513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch provider->AddPolicy(kPolicyProxyBypassList, 283513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch Value::CreateStringValue("http://chromium.org/override")); 284bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen 285731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick ConfigurationPolicyPrefStore store(provider.get()); 286bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen EXPECT_EQ(store.ReadPrefs(), PrefStore::PREF_READ_ERROR_NONE); 287bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen 288bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen std::string string_result; 289bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen EXPECT_FALSE(store.prefs()->GetString(prefs::kProxyBypassList, 290bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen &string_result)); 291bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen EXPECT_FALSE(store.prefs()->GetString(prefs::kProxyPacUrl, &string_result)); 292bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen EXPECT_FALSE(store.prefs()->GetString(prefs::kProxyServer, &string_result)); 293bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen bool bool_result; 294bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen EXPECT_TRUE(store.prefs()->GetBoolean(prefs::kNoProxyServer, &bool_result)); 295bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen EXPECT_TRUE(bool_result); 296731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick EXPECT_TRUE(store.prefs()->GetBoolean(prefs::kProxyAutoDetect, &bool_result)); 297bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen EXPECT_FALSE(bool_result); 298bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen} 299bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen 300bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian MonsenTEST_F(ConfigurationPolicyPrefStoreProxyTest, AutoDetect) { 301bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen scoped_ptr<MockConfigurationPolicyProvider> provider( 302bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen new MockConfigurationPolicyProvider()); 303513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch provider->AddPolicy(kPolicyProxyServerMode, 304513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch Value::CreateIntegerValue( 305513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch kPolicyAutoDetectProxyMode)); 306bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen 307731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick ConfigurationPolicyPrefStore store(provider.get()); 308bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen EXPECT_EQ(store.ReadPrefs(), PrefStore::PREF_READ_ERROR_NONE); 309bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen 310bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen std::string string_result; 311731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick EXPECT_FALSE(store.prefs()->GetString(prefs::kProxyBypassList, 312731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick &string_result)); 313bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen EXPECT_FALSE(store.prefs()->GetString(prefs::kProxyPacUrl, &string_result)); 314bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen EXPECT_FALSE(store.prefs()->GetString(prefs::kProxyServer, &string_result)); 315bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen bool bool_result; 316bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen EXPECT_TRUE(store.prefs()->GetBoolean(prefs::kNoProxyServer, &bool_result)); 317bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen EXPECT_FALSE(bool_result); 318731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick EXPECT_TRUE(store.prefs()->GetBoolean(prefs::kProxyAutoDetect, &bool_result)); 319bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen EXPECT_TRUE(bool_result); 320bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen} 321bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen 322bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian MonsenTEST_F(ConfigurationPolicyPrefStoreProxyTest, UseSystem) { 323bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen scoped_ptr<MockConfigurationPolicyProvider> provider( 324bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen new MockConfigurationPolicyProvider()); 325513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch provider->AddPolicy(kPolicyProxyBypassList, 326513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch Value::CreateStringValue("http://chromium.org/override")); 327513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch provider->AddPolicy(kPolicyProxyServerMode, 328513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch Value::CreateIntegerValue( 329513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch kPolicyUseSystemProxyMode)); 330bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen 331731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick ConfigurationPolicyPrefStore store(provider.get()); 332bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen EXPECT_EQ(store.ReadPrefs(), PrefStore::PREF_READ_ERROR_NONE); 333bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen 334bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen std::string string_result; 335bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen EXPECT_FALSE(store.prefs()->GetString(prefs::kProxyBypassList, 336731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick &string_result)); 337bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen EXPECT_FALSE(store.prefs()->GetString(prefs::kProxyPacUrl, &string_result)); 338bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen EXPECT_FALSE(store.prefs()->GetString(prefs::kProxyServer, &string_result)); 339bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen bool bool_result; 340bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen EXPECT_FALSE(store.prefs()->GetBoolean(prefs::kNoProxyServer, &bool_result)); 341bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen EXPECT_FALSE(store.prefs()->GetBoolean(prefs::kProxyAutoDetect, 342bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen &bool_result)); 343bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen} 344bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen 345bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian MonsenTEST_F(ConfigurationPolicyPrefStoreProxyTest, UseSystemReversedApplyOrder) { 346bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen scoped_ptr<MockConfigurationPolicyProvider> provider( 347bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen new MockConfigurationPolicyProvider()); 348513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch provider->AddPolicy(kPolicyProxyServerMode, 349513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch Value::CreateIntegerValue( 350513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch kPolicyUseSystemProxyMode)); 351513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch provider->AddPolicy(kPolicyProxyBypassList, 352513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch Value::CreateStringValue("http://chromium.org/override")); 353bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen 354731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick ConfigurationPolicyPrefStore store(provider.get()); 355bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen EXPECT_EQ(store.ReadPrefs(), PrefStore::PREF_READ_ERROR_NONE); 356bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen 357bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen std::string string_result; 358bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen EXPECT_FALSE(store.prefs()->GetString(prefs::kProxyBypassList, 359731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick &string_result)); 360bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen EXPECT_FALSE(store.prefs()->GetString(prefs::kProxyPacUrl, &string_result)); 361bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen EXPECT_FALSE(store.prefs()->GetString(prefs::kProxyServer, &string_result)); 362bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen bool bool_result; 363bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen EXPECT_FALSE(store.prefs()->GetBoolean(prefs::kNoProxyServer, &bool_result)); 364bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen EXPECT_FALSE(store.prefs()->GetBoolean(prefs::kProxyAutoDetect, 365bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen &bool_result)); 366bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen} 367bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen 368bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsenclass ConfigurationPolicyPrefStoreDefaultSearchTest : public testing::Test { 369bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen}; 370bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen 371bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen// Checks that if the policy for default search is valid, i.e. there's a 372bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen// search URL, that all the elements have been given proper defaults. 373bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian MonsenTEST_F(ConfigurationPolicyPrefStoreDefaultSearchTest, MinimallyDefined) { 374513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch const char* const search_url = "http://test.com/search?t={searchTerms}"; 375bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen scoped_ptr<MockConfigurationPolicyProvider> provider( 376bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen new MockConfigurationPolicyProvider()); 377bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen provider->AddPolicy( 378513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch kPolicyDefaultSearchProviderEnabled, 379731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick Value::CreateBooleanValue(true)); 380731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick provider->AddPolicy( 381513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch kPolicyDefaultSearchProviderSearchURL, 382bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen Value::CreateStringValue(search_url)); 383bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen 384731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick ConfigurationPolicyPrefStore store(provider.get()); 385bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen 386bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen EXPECT_EQ(store.ReadPrefs(), PrefStore::PREF_READ_ERROR_NONE); 387513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch const DictionaryValue* prefs = store.prefs(); 388bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen 389bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen std::string string_result; 390bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen EXPECT_TRUE(prefs->GetString(prefs::kDefaultSearchProviderSearchURL, 391bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen &string_result)); 392bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen EXPECT_EQ(string_result, search_url); 393bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen 394bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen EXPECT_TRUE(prefs->GetString(prefs::kDefaultSearchProviderName, 395bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen &string_result)); 396bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen EXPECT_EQ(string_result, "test.com"); 397bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen 398bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen EXPECT_TRUE(prefs->GetString(prefs::kDefaultSearchProviderKeyword, 399bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen &string_result)); 400513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch EXPECT_EQ(string_result, std::string()); 401bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen 402bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen EXPECT_TRUE(prefs->GetString(prefs::kDefaultSearchProviderSuggestURL, 403bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen &string_result)); 404513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch EXPECT_EQ(string_result, std::string()); 405bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen 406bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen EXPECT_TRUE(prefs->GetString(prefs::kDefaultSearchProviderIconURL, 407bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen &string_result)); 408513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch EXPECT_EQ(string_result, std::string()); 409bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen 410bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen EXPECT_TRUE(prefs->GetString(prefs::kDefaultSearchProviderEncodings, 411bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen &string_result)); 412513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch EXPECT_EQ(string_result, std::string()); 413bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen} 414bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen 415bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen// Checks that for a fully defined search policy, all elements have been 416bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen// read properly. 417bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian MonsenTEST_F(ConfigurationPolicyPrefStoreDefaultSearchTest, FullyDefined) { 418513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch const char* const search_url = "http://test.com/search?t={searchTerms}"; 419513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch const char* const suggest_url = "http://test.com/sugg?={searchTerms}"; 420513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch const char* const icon_url = "http://test.com/icon.jpg"; 421513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch const char* const name = "MyName"; 422513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch const char* const keyword = "MyKeyword"; 423513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch const char* const encodings = "UTF-16;UTF-8"; 424bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen scoped_ptr<MockConfigurationPolicyProvider> provider( 425bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen new MockConfigurationPolicyProvider()); 426bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen provider->AddPolicy( 427513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch kPolicyDefaultSearchProviderEnabled, 428731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick Value::CreateBooleanValue(true)); 429731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick provider->AddPolicy( 430513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch kPolicyDefaultSearchProviderSearchURL, 431bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen Value::CreateStringValue(search_url)); 432bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen provider->AddPolicy( 433513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch kPolicyDefaultSearchProviderName, 434bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen Value::CreateStringValue(name)); 435bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen provider->AddPolicy( 436513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch kPolicyDefaultSearchProviderKeyword, 437bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen Value::CreateStringValue(keyword)); 438bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen provider->AddPolicy( 439513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch kPolicyDefaultSearchProviderSuggestURL, 440bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen Value::CreateStringValue(suggest_url)); 441bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen provider->AddPolicy( 442513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch kPolicyDefaultSearchProviderIconURL, 443bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen Value::CreateStringValue(icon_url)); 444bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen provider->AddPolicy( 445513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch kPolicyDefaultSearchProviderEncodings, 446bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen Value::CreateStringValue(encodings)); 447bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen 448731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick ConfigurationPolicyPrefStore store(provider.get()); 449bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen EXPECT_EQ(store.ReadPrefs(), PrefStore::PREF_READ_ERROR_NONE); 450513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch const DictionaryValue* prefs = store.prefs(); 451bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen 452bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen std::string result_search_url; 453bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen EXPECT_TRUE(prefs->GetString(prefs::kDefaultSearchProviderSearchURL, 454bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen &result_search_url)); 455bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen EXPECT_EQ(result_search_url, search_url); 456bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen 457bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen std::string result_name; 458bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen EXPECT_TRUE(prefs->GetString(prefs::kDefaultSearchProviderName, 459bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen &result_name)); 460bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen EXPECT_EQ(result_name, name); 461bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen 462bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen std::string result_keyword; 463bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen EXPECT_TRUE(prefs->GetString(prefs::kDefaultSearchProviderKeyword, 464bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen &result_keyword)); 465bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen EXPECT_EQ(result_keyword, keyword); 466bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen 467bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen std::string result_suggest_url; 468bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen EXPECT_TRUE(prefs->GetString(prefs::kDefaultSearchProviderSuggestURL, 469bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen &result_suggest_url)); 470bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen EXPECT_EQ(result_suggest_url, suggest_url); 471bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen 472bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen std::string result_icon_url; 473bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen EXPECT_TRUE(prefs->GetString(prefs::kDefaultSearchProviderIconURL, 474bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen &result_icon_url)); 475bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen EXPECT_EQ(result_icon_url, icon_url); 476bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen 477bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen std::string result_encodings; 478bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen EXPECT_TRUE(prefs->GetString(prefs::kDefaultSearchProviderEncodings, 479bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen &result_encodings)); 480bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen EXPECT_EQ(result_encodings, encodings); 481bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen} 482bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen 483bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen// Checks that if the default search policy is missing, that no elements of the 484bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen// default search policy will be present. 485bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian MonsenTEST_F(ConfigurationPolicyPrefStoreDefaultSearchTest, MissingUrl) { 486513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch const char* const suggest_url = "http://test.com/sugg?t={searchTerms}"; 487513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch const char* const icon_url = "http://test.com/icon.jpg"; 488513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch const char* const name = "MyName"; 489513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch const char* const keyword = "MyKeyword"; 490513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch const char* const encodings = "UTF-16;UTF-8"; 491bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen scoped_ptr<MockConfigurationPolicyProvider> provider( 492bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen new MockConfigurationPolicyProvider()); 493bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen provider->AddPolicy( 494513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch kPolicyDefaultSearchProviderEnabled, 495731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick Value::CreateBooleanValue(true)); 496731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick provider->AddPolicy( 497513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch kPolicyDefaultSearchProviderName, 498bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen Value::CreateStringValue(name)); 499bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen provider->AddPolicy( 500513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch kPolicyDefaultSearchProviderKeyword, 501bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen Value::CreateStringValue(keyword)); 502bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen provider->AddPolicy( 503513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch kPolicyDefaultSearchProviderSuggestURL, 504bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen Value::CreateStringValue(suggest_url)); 505bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen provider->AddPolicy( 506513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch kPolicyDefaultSearchProviderIconURL, 507bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen Value::CreateStringValue(icon_url)); 508bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen provider->AddPolicy( 509513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch kPolicyDefaultSearchProviderEncodings, 510bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen Value::CreateStringValue(encodings)); 511bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen 512731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick ConfigurationPolicyPrefStore store(provider.get()); 513bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen EXPECT_EQ(store.ReadPrefs(), PrefStore::PREF_READ_ERROR_NONE); 514513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch const DictionaryValue* prefs = store.prefs(); 515bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen 516bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen std::string string_result; 517bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen EXPECT_FALSE(prefs->GetString(prefs::kDefaultSearchProviderSearchURL, 518513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch &string_result)); 519bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen EXPECT_FALSE(prefs->GetString(prefs::kDefaultSearchProviderName, 520513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch &string_result)); 521bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen EXPECT_FALSE(prefs->GetString(prefs::kDefaultSearchProviderKeyword, 522513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch &string_result)); 523bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen EXPECT_FALSE(prefs->GetString(prefs::kDefaultSearchProviderSuggestURL, 524513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch &string_result)); 525bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen EXPECT_FALSE(prefs->GetString(prefs::kDefaultSearchProviderIconURL, 526513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch &string_result)); 527bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen EXPECT_FALSE(prefs->GetString(prefs::kDefaultSearchProviderEncodings, 528513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch &string_result)); 529bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen} 530bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen 531bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen// Checks that if the default search policy is invalid, that no elements of the 532bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen// default search policy will be present. 533bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian MonsenTEST_F(ConfigurationPolicyPrefStoreDefaultSearchTest, Invalid) { 534513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch const char* const bad_search_url = "http://test.com/noSearchTerms"; 535513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch const char* const suggest_url = "http://test.com/sugg?t={searchTerms}"; 536513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch const char* const icon_url = "http://test.com/icon.jpg"; 537513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch const char* const name = "MyName"; 538513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch const char* const keyword = "MyKeyword"; 539513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch const char* const encodings = "UTF-16;UTF-8"; 540bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen scoped_ptr<MockConfigurationPolicyProvider> provider( 541bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen new MockConfigurationPolicyProvider()); 542bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen provider->AddPolicy( 543513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch kPolicyDefaultSearchProviderEnabled, 544731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick Value::CreateBooleanValue(true)); 545731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick provider->AddPolicy( 546513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch kPolicyDefaultSearchProviderSearchURL, 547bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen Value::CreateStringValue(bad_search_url)); 548bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen provider->AddPolicy( 549513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch kPolicyDefaultSearchProviderName, 550bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen Value::CreateStringValue(name)); 551bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen provider->AddPolicy( 552513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch kPolicyDefaultSearchProviderKeyword, 553bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen Value::CreateStringValue(keyword)); 554bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen provider->AddPolicy( 555513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch kPolicyDefaultSearchProviderSuggestURL, 556bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen Value::CreateStringValue(suggest_url)); 557bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen provider->AddPolicy( 558513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch kPolicyDefaultSearchProviderIconURL, 559bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen Value::CreateStringValue(icon_url)); 560bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen provider->AddPolicy( 561513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch kPolicyDefaultSearchProviderEncodings, 562bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen Value::CreateStringValue(encodings)); 563bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen 564731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick ConfigurationPolicyPrefStore store(provider.get()); 565bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen EXPECT_EQ(store.ReadPrefs(), PrefStore::PREF_READ_ERROR_NONE); 566513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch const DictionaryValue* const prefs = store.prefs(); 567bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen 568bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen std::string string_result; 569731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick EXPECT_FALSE(prefs->GetString(prefs::kDefaultSearchProviderEnabled, 570513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch &string_result)); 571bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen EXPECT_FALSE(prefs->GetString(prefs::kDefaultSearchProviderSearchURL, 572513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch &string_result)); 573bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen EXPECT_FALSE(prefs->GetString(prefs::kDefaultSearchProviderName, 574513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch &string_result)); 575bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen EXPECT_FALSE(prefs->GetString(prefs::kDefaultSearchProviderKeyword, 576513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch &string_result)); 577bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen EXPECT_FALSE(prefs->GetString(prefs::kDefaultSearchProviderSuggestURL, 578513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch &string_result)); 579bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen EXPECT_FALSE(prefs->GetString(prefs::kDefaultSearchProviderIconURL, 580513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch &string_result)); 581bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen EXPECT_FALSE(prefs->GetString(prefs::kDefaultSearchProviderEncodings, 582513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch &string_result)); 583bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen} 584bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen 585bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen// Test cases for the Sync policy setting. 586bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsenclass ConfigurationPolicyPrefStoreSyncTest : public testing::Test { 587bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen}; 588bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen 589bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian MonsenTEST_F(ConfigurationPolicyPrefStoreSyncTest, Default) { 590731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick ConfigurationPolicyPrefStore store(NULL); 591bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen bool result = false; 592bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen EXPECT_FALSE(store.prefs()->GetBoolean(prefs::kSyncManaged, &result)); 593bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen} 594bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen 595bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian MonsenTEST_F(ConfigurationPolicyPrefStoreSyncTest, Enabled) { 596731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick ConfigurationPolicyPrefStore store(NULL); 597513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch store.Apply(kPolicySyncDisabled, Value::CreateBooleanValue(false)); 598bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen // Enabling Sync should not set the pref. 599bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen bool result = false; 600bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen EXPECT_FALSE(store.prefs()->GetBoolean(prefs::kSyncManaged, &result)); 601bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen} 602bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen 603bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian MonsenTEST_F(ConfigurationPolicyPrefStoreSyncTest, Disabled) { 604731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick ConfigurationPolicyPrefStore store(NULL); 605513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch store.Apply(kPolicySyncDisabled, Value::CreateBooleanValue(true)); 606bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen // Sync should be flagged as managed. 607bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen bool result = false; 608bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen EXPECT_TRUE(store.prefs()->GetBoolean(prefs::kSyncManaged, &result)); 609bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen EXPECT_TRUE(result); 610bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen} 611bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen 612bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen// Test cases for the AutoFill policy setting. 613bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsenclass ConfigurationPolicyPrefStoreAutoFillTest : public testing::Test { 614bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen}; 615bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen 616bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian MonsenTEST_F(ConfigurationPolicyPrefStoreAutoFillTest, Default) { 617731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick ConfigurationPolicyPrefStore store(NULL); 618bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen bool result = false; 619bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen EXPECT_FALSE(store.prefs()->GetBoolean(prefs::kAutoFillEnabled, &result)); 620bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen} 621bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen 622bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian MonsenTEST_F(ConfigurationPolicyPrefStoreAutoFillTest, Enabled) { 623731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick ConfigurationPolicyPrefStore store(NULL); 624513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch store.Apply(kPolicyAutoFillEnabled, Value::CreateBooleanValue(true)); 625bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen // Enabling AutoFill should not set the pref. 626bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen bool result = false; 627bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen EXPECT_FALSE(store.prefs()->GetBoolean(prefs::kAutoFillEnabled, &result)); 628bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen} 629bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen 630bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian MonsenTEST_F(ConfigurationPolicyPrefStoreAutoFillTest, Disabled) { 631731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick ConfigurationPolicyPrefStore store(NULL); 632513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch store.Apply(kPolicyAutoFillEnabled, Value::CreateBooleanValue(false)); 633bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen // Disabling AutoFill should switch the pref to managed. 634bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen bool result = true; 635bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen EXPECT_TRUE(store.prefs()->GetBoolean(prefs::kAutoFillEnabled, &result)); 636bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen EXPECT_FALSE(result); 637bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen} 638bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen 639bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen} // namespace policy 640