172a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen// Copyright (c) 2011 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 "base/file_path.h" 6ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen#include "base/memory/ref_counted.h" 7bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen#include "chrome/browser/policy/configuration_policy_pref_store.h" 8bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen#include "chrome/browser/policy/mock_configuration_policy_provider.h" 972a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen#include "chrome/browser/prefs/proxy_config_dictionary.h" 1021d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen#include "chrome/common/pref_names.h" 1121d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen#include "chrome/common/pref_store_observer_mock.h" 12ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen#include "content/common/notification_service.h" 1321d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen#include "testing/gmock/include/gmock/gmock.h" 1421d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen#include "testing/gtest/include/gtest/gtest.h" 1521d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen 1621d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsenusing testing::_; 1721d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsenusing testing::Mock; 18bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen 19bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsennamespace policy { 20bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen 21bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen// Holds a set of test parameters, consisting of pref name and policy type. 22bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsenclass TypeAndName { 23bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen public: 24513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch TypeAndName(ConfigurationPolicyType type, const char* pref_name) 25bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen : type_(type), 26bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen pref_name_(pref_name) {} 27bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen 28513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch ConfigurationPolicyType type() const { return type_; } 29bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen const char* pref_name() const { return pref_name_; } 30bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen 31bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen private: 32513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch ConfigurationPolicyType type_; 33bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen const char* pref_name_; 34bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen}; 35bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen 3621d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsentemplate<typename TESTBASE> 3721d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsenclass ConfigurationPolicyPrefStoreTestBase : public TESTBASE { 3821d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen protected: 3921d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen ConfigurationPolicyPrefStoreTestBase() 4021d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen : provider_(), 4172a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen store_(new ConfigurationPolicyPrefStore(&provider_)) {} 4221d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen 4321d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen MockConfigurationPolicyProvider provider_; 4472a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen scoped_refptr<ConfigurationPolicyPrefStore> store_; 4521d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen}; 4621d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen 47bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen// Test cases for list-valued policy settings. 48bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsenclass ConfigurationPolicyPrefStoreListTest 4921d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen : public ConfigurationPolicyPrefStoreTestBase< 5021d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen testing::TestWithParam<TypeAndName> > { 51bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen}; 52bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen 53bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian MonsenTEST_P(ConfigurationPolicyPrefStoreListTest, GetDefault) { 5421d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen EXPECT_EQ(PrefStore::READ_NO_VALUE, 5572a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen store_->GetValue(GetParam().pref_name(), NULL)); 56bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen} 57bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen 58bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian MonsenTEST_P(ConfigurationPolicyPrefStoreListTest, SetValue) { 59bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen ListValue* in_value = new ListValue(); 60bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen in_value->Append(Value::CreateStringValue("test1")); 61bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen in_value->Append(Value::CreateStringValue("test2,")); 6221d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen provider_.AddPolicy(GetParam().type(), in_value); 6372a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen store_->OnUpdatePolicy(); 64ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen const Value* value; 6521d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen EXPECT_EQ(PrefStore::READ_OK, 6672a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen store_->GetValue(GetParam().pref_name(), &value)); 6721d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen EXPECT_TRUE(in_value->Equals(value)); 68bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen} 69bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen 70bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian MonsenINSTANTIATE_TEST_CASE_P( 71bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen ConfigurationPolicyPrefStoreListTestInstance, 72bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen ConfigurationPolicyPrefStoreListTest, 73bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen testing::Values( 7472a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen TypeAndName(kPolicyRestoreOnStartupURLs, 75bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen prefs::kURLsToRestoreOnStartup), 7672a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen TypeAndName(kPolicyExtensionInstallWhitelist, 77bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen prefs::kExtensionInstallAllowList), 7872a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen TypeAndName(kPolicyExtensionInstallBlacklist, 79bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen prefs::kExtensionInstallDenyList), 80513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch TypeAndName(kPolicyDisabledPlugins, 81dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen prefs::kPluginsDisabledPlugins), 82dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen TypeAndName(kPolicyDisabledPluginsExceptions, 83dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen prefs::kPluginsDisabledPluginsExceptions), 84dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen TypeAndName(kPolicyEnabledPlugins, 85ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen prefs::kPluginsEnabledPlugins), 86ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen TypeAndName(kPolicyDisabledSchemes, 87ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen prefs::kDisabledSchemes))); 88bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen 89bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen// Test cases for string-valued policy settings. 90bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsenclass ConfigurationPolicyPrefStoreStringTest 9121d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen : public ConfigurationPolicyPrefStoreTestBase< 9221d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen testing::TestWithParam<TypeAndName> > { 93bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen}; 94bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen 95bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian MonsenTEST_P(ConfigurationPolicyPrefStoreStringTest, GetDefault) { 9621d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen EXPECT_EQ(PrefStore::READ_NO_VALUE, 9772a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen store_->GetValue(GetParam().pref_name(), NULL)); 98bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen} 99bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen 100bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian MonsenTEST_P(ConfigurationPolicyPrefStoreStringTest, SetValue) { 10121d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen provider_.AddPolicy(GetParam().type(), 10221d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen Value::CreateStringValue("http://chromium.org")); 10372a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen store_->OnUpdatePolicy(); 104ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen const Value* value; 10521d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen EXPECT_EQ(PrefStore::READ_OK, 10672a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen store_->GetValue(GetParam().pref_name(), &value)); 10721d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen EXPECT_TRUE(StringValue("http://chromium.org").Equals(value)); 108bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen} 109bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen 110bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian MonsenINSTANTIATE_TEST_CASE_P( 111bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen ConfigurationPolicyPrefStoreStringTestInstance, 112bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen ConfigurationPolicyPrefStoreStringTest, 113bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen testing::Values( 11472a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen TypeAndName(kPolicyHomepageLocation, 115bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen prefs::kHomePage), 11672a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen TypeAndName(kPolicyApplicationLocaleValue, 1174a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch prefs::kApplicationLocale), 11872a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen TypeAndName(kPolicyApplicationLocaleValue, 1194a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch prefs::kApplicationLocale), 1204a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch TypeAndName(kPolicyAuthSchemes, 1214a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch prefs::kAuthSchemes), 1224a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch TypeAndName(kPolicyAuthServerWhitelist, 1234a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch prefs::kAuthServerWhitelist), 1244a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch TypeAndName(kPolicyAuthNegotiateDelegateWhitelist, 1254a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch prefs::kAuthNegotiateDelegateWhitelist), 126ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen TypeAndName(kPolicyDownloadDirectory, 127ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen prefs::kDownloadDefaultDirectory), 1284a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch TypeAndName(kPolicyGSSAPILibraryName, 1294a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch prefs::kGSSAPILibraryName))); 130bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen 131bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen// Test cases for boolean-valued policy settings. 132bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsenclass ConfigurationPolicyPrefStoreBooleanTest 13321d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen : public ConfigurationPolicyPrefStoreTestBase< 13421d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen testing::TestWithParam<TypeAndName> > { 135bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen}; 136bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen 137bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian MonsenTEST_P(ConfigurationPolicyPrefStoreBooleanTest, GetDefault) { 13821d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen EXPECT_EQ(PrefStore::READ_NO_VALUE, 13972a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen store_->GetValue(GetParam().pref_name(), NULL)); 140bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen} 141bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen 142bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian MonsenTEST_P(ConfigurationPolicyPrefStoreBooleanTest, SetValue) { 14321d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen provider_.AddPolicy(GetParam().type(), Value::CreateBooleanValue(false)); 14472a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen store_->OnUpdatePolicy(); 145ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen const Value* value; 146bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen bool result = true; 14721d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen EXPECT_EQ(PrefStore::READ_OK, 14872a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen store_->GetValue(GetParam().pref_name(), &value)); 14921d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen EXPECT_TRUE(FundamentalValue(false).Equals(value)); 150bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen 15121d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen provider_.AddPolicy(GetParam().type(), Value::CreateBooleanValue(true)); 15272a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen store_->OnUpdatePolicy(); 153bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen result = false; 15421d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen EXPECT_EQ(PrefStore::READ_OK, 15572a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen store_->GetValue(GetParam().pref_name(), &value)); 15621d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen EXPECT_TRUE(FundamentalValue(true).Equals(value)); 157bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen} 158bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen 159bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian MonsenINSTANTIATE_TEST_CASE_P( 160bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen ConfigurationPolicyPrefStoreBooleanTestInstance, 161bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen ConfigurationPolicyPrefStoreBooleanTest, 162bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen testing::Values( 163513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch TypeAndName(kPolicyHomepageIsNewTabPage, 164bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen prefs::kHomePageIsNewTabPage), 165513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch TypeAndName(kPolicyAlternateErrorPagesEnabled, 166bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen prefs::kAlternateErrorPagesEnabled), 167513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch TypeAndName(kPolicySearchSuggestEnabled, 168bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen prefs::kSearchSuggestEnabled), 169513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch TypeAndName(kPolicyDnsPrefetchingEnabled, 170ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen prefs::kNetworkPredictionEnabled), 171513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch TypeAndName(kPolicyDisableSpdy, 172731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick prefs::kDisableSpdy), 173513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch TypeAndName(kPolicySafeBrowsingEnabled, 174bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen prefs::kSafeBrowsingEnabled), 175513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch TypeAndName(kPolicyMetricsReportingEnabled, 176bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen prefs::kMetricsReportingEnabled), 177513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch TypeAndName(kPolicyPasswordManagerEnabled, 178bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen prefs::kPasswordManagerEnabled), 179513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch TypeAndName(kPolicyPasswordManagerAllowShowPasswords, 180bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen prefs::kPasswordManagerAllowShowPasswords), 181513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch TypeAndName(kPolicyShowHomeButton, 182bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen prefs::kShowHomeButton), 183513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch TypeAndName(kPolicyPrintingEnabled, 184bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen prefs::kPrintingEnabled), 185513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch TypeAndName(kPolicyJavascriptEnabled, 186731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick prefs::kWebKitJavascriptEnabled), 18772a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen TypeAndName(kPolicyIncognitoEnabled, 18872a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen prefs::kIncognitoEnabled), 18972a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen TypeAndName(kPolicyCloudPrintProxyEnabled, 19072a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen prefs::kCloudPrintProxyEnabled), 191513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch TypeAndName(kPolicySavingBrowserHistoryDisabled, 1924a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch prefs::kSavingBrowserHistoryDisabled), 1934a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch TypeAndName(kPolicySavingBrowserHistoryDisabled, 1944a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch prefs::kSavingBrowserHistoryDisabled), 1954a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch TypeAndName(kPolicyDisableAuthNegotiateCnameLookup, 1964a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch prefs::kDisableAuthNegotiateCnameLookup), 1974a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch TypeAndName(kPolicyEnableAuthNegotiatePort, 198ac1e49eb6695f711d72215fcdf9388548942a00dBen Murdoch prefs::kEnableAuthNegotiatePort), 19972a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen TypeAndName(kPolicyInstantEnabled, 20072a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen prefs::kInstantEnabled), 201ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen TypeAndName(kPolicyDisablePluginFinder, 202ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen prefs::kDisablePluginFinder), 203ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen TypeAndName(kPolicyClearSiteDataOnExit, 204ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen prefs::kClearSiteDataOnExit), 205ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen TypeAndName(kPolicyDefaultBrowserSettingEnabled, 206ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen prefs::kDefaultBrowserSettingEnabled), 207ac1e49eb6695f711d72215fcdf9388548942a00dBen Murdoch TypeAndName(kPolicyDisable3DAPIs, 208ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen prefs::kDisable3DAPIs), 209ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen TypeAndName(kPolicyTranslateEnabled, 210ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen prefs::kEnableTranslate), 211ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen TypeAndName(kPolicyAllowOutdatedPlugins, 212ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen prefs::kPluginsAllowOutdated), 213ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen TypeAndName(kPolicyBookmarkBarEnabled, 214ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen prefs::kEnableBookmarkBar), 215ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen TypeAndName(kPolicyEditBookmarksEnabled, 216ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen prefs::kEditBookmarksEnabled), 217ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen TypeAndName(kPolicyAllowFileSelectionDialogs, 218ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen prefs::kAllowFileSelectionDialogs))); 219731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick 220731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick#if defined(OS_CHROMEOS) 221731df977c0511bca2206b5f333555b1205ff1f43Iain MerrickINSTANTIATE_TEST_CASE_P( 222731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick CrosConfigurationPolicyPrefStoreBooleanTestInstance, 223731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick ConfigurationPolicyPrefStoreBooleanTest, 224731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick testing::Values( 225513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch TypeAndName(kPolicyChromeOsLockOnIdleSuspend, 226731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick prefs::kEnableScreenLock))); 227731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick#endif // defined(OS_CHROMEOS) 228bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen 229bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen// Test cases for integer-valued policy settings. 230bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsenclass ConfigurationPolicyPrefStoreIntegerTest 23121d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen : public ConfigurationPolicyPrefStoreTestBase< 23221d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen testing::TestWithParam<TypeAndName> > { 233bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen}; 234bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen 235bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian MonsenTEST_P(ConfigurationPolicyPrefStoreIntegerTest, GetDefault) { 23621d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen EXPECT_EQ(PrefStore::READ_NO_VALUE, 23772a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen store_->GetValue(GetParam().pref_name(), NULL)); 238bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen} 239bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen 240bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian MonsenTEST_P(ConfigurationPolicyPrefStoreIntegerTest, SetValue) { 24121d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen provider_.AddPolicy(GetParam().type(), Value::CreateIntegerValue(2)); 24272a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen store_->OnUpdatePolicy(); 243ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen const Value* value = NULL; 24421d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen EXPECT_EQ(PrefStore::READ_OK, 24572a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen store_->GetValue(GetParam().pref_name(), &value)); 24621d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen EXPECT_TRUE(FundamentalValue(2).Equals(value)); 247bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen} 248bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen 249bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian MonsenINSTANTIATE_TEST_CASE_P( 250bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen ConfigurationPolicyPrefStoreIntegerTestInstance, 251bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen ConfigurationPolicyPrefStoreIntegerTest, 252bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen testing::Values( 253513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch TypeAndName(kPolicyRestoreOnStartup, 25472a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen prefs::kRestoreOnStartup), 25572a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen TypeAndName(kPolicyPolicyRefreshRate, 256ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen prefs::kPolicyRefreshRate))); 257bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen 258bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen// Test cases for the proxy policy settings. 259bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsenclass ConfigurationPolicyPrefStoreProxyTest : public testing::Test { 26021d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen protected: 26121d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen // Verify that all the proxy prefs are set to the specified expected values. 26221d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen static void VerifyProxyPrefs( 26321d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen const ConfigurationPolicyPrefStore& store, 26421d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen const std::string& expected_proxy_server, 26521d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen const std::string& expected_proxy_pac_url, 26621d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen const std::string& expected_proxy_bypass_list, 26721d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen const ProxyPrefs::ProxyMode& expected_proxy_mode) { 268ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen const Value* value = NULL; 26972a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen ASSERT_EQ(PrefStore::READ_OK, 27072a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen store.GetValue(prefs::kProxy, &value)); 27172a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen ASSERT_EQ(Value::TYPE_DICTIONARY, value->GetType()); 272ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen ProxyConfigDictionary dict(static_cast<const DictionaryValue*>(value)); 27372a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen std::string s; 27421d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen if (expected_proxy_server.empty()) { 27572a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen EXPECT_FALSE(dict.GetProxyServer(&s)); 27621d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen } else { 27772a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen ASSERT_TRUE(dict.GetProxyServer(&s)); 27872a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen EXPECT_EQ(expected_proxy_server, s); 27921d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen } 28021d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen if (expected_proxy_pac_url.empty()) { 28172a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen EXPECT_FALSE(dict.GetPacUrl(&s)); 28221d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen } else { 28372a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen ASSERT_TRUE(dict.GetPacUrl(&s)); 28472a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen EXPECT_EQ(expected_proxy_pac_url, s); 28521d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen } 28621d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen if (expected_proxy_bypass_list.empty()) { 28772a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen EXPECT_FALSE(dict.GetBypassList(&s)); 28821d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen } else { 28972a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen ASSERT_TRUE(dict.GetBypassList(&s)); 29072a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen EXPECT_EQ(expected_proxy_bypass_list, s); 29121d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen } 29272a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen ProxyPrefs::ProxyMode mode; 29372a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen ASSERT_TRUE(dict.GetMode(&mode)); 29472a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen EXPECT_EQ(expected_proxy_mode, mode); 29521d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen } 296bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen}; 297bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen 298731df977c0511bca2206b5f333555b1205ff1f43Iain MerrickTEST_F(ConfigurationPolicyPrefStoreProxyTest, ManualOptions) { 29921d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen MockConfigurationPolicyProvider provider; 30021d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen provider.AddPolicy(kPolicyProxyBypassList, 30121d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen Value::CreateStringValue("http://chromium.org/override")); 30221d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen provider.AddPolicy(kPolicyProxyServer, 30321d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen Value::CreateStringValue("chromium.org")); 30472a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen provider.AddPolicy(kPolicyProxyServerMode, 30521d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen Value::CreateIntegerValue( 30672a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen kPolicyManuallyConfiguredProxyServerMode)); 30721d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen 30872a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen scoped_refptr<ConfigurationPolicyPrefStore> store( 30972a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen new ConfigurationPolicyPrefStore(&provider)); 31021d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen VerifyProxyPrefs( 31172a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen *store, "chromium.org", "", "http://chromium.org/override", 31221d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen ProxyPrefs::MODE_FIXED_SERVERS); 313bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen} 314bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen 31521d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian MonsenTEST_F(ConfigurationPolicyPrefStoreProxyTest, ManualOptionsReversedApplyOrder) { 31621d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen MockConfigurationPolicyProvider provider; 31772a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen provider.AddPolicy(kPolicyProxyServerMode, 31821d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen Value::CreateIntegerValue( 31972a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen kPolicyManuallyConfiguredProxyServerMode)); 32021d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen provider.AddPolicy(kPolicyProxyBypassList, 32121d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen Value::CreateStringValue("http://chromium.org/override")); 32221d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen provider.AddPolicy(kPolicyProxyServer, 32321d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen Value::CreateStringValue("chromium.org")); 32472a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen scoped_refptr<ConfigurationPolicyPrefStore> store( 32572a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen new ConfigurationPolicyPrefStore(&provider)); 32621d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen VerifyProxyPrefs( 32772a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen *store, "chromium.org", "", "http://chromium.org/override", 32821d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen ProxyPrefs::MODE_FIXED_SERVERS); 329bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen} 330bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen 331ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian MonsenTEST_F(ConfigurationPolicyPrefStoreProxyTest, ManualOptionsInvalid) { 332ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen MockConfigurationPolicyProvider provider; 333ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen provider.AddPolicy(kPolicyProxyServerMode, 334ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen Value::CreateIntegerValue( 335ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen kPolicyManuallyConfiguredProxyServerMode)); 336ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen 337ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen scoped_refptr<ConfigurationPolicyPrefStore> store( 338ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen new ConfigurationPolicyPrefStore(&provider)); 339ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen const Value* value = NULL; 340ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen EXPECT_EQ(PrefStore::READ_NO_VALUE, store->GetValue(prefs::kProxy, &value)); 341ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen} 342ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen 343ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen 34472a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian MonsenTEST_F(ConfigurationPolicyPrefStoreProxyTest, NoProxyServerMode) { 34521d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen MockConfigurationPolicyProvider provider; 34672a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen provider.AddPolicy(kPolicyProxyServerMode, 34721d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen Value::CreateIntegerValue(kPolicyNoProxyServerMode)); 34821d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen 34972a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen scoped_refptr<ConfigurationPolicyPrefStore> store( 35072a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen new ConfigurationPolicyPrefStore(&provider)); 35172a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen VerifyProxyPrefs(*store, "", "", "", ProxyPrefs::MODE_DIRECT); 352bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen} 353bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen 35472a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian MonsenTEST_F(ConfigurationPolicyPrefStoreProxyTest, NoProxyModeName) { 35521d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen MockConfigurationPolicyProvider provider; 35672a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen provider.AddPolicy( 35772a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen kPolicyProxyMode, 35872a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen Value::CreateStringValue(ProxyPrefs::kDirectProxyModeName)); 35972a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen 36072a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen scoped_refptr<ConfigurationPolicyPrefStore> store( 36172a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen new ConfigurationPolicyPrefStore(&provider)); 36272a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen VerifyProxyPrefs(*store, "", "", "", ProxyPrefs::MODE_DIRECT); 36372a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen} 36472a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen 36572a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian MonsenTEST_F(ConfigurationPolicyPrefStoreProxyTest, AutoDetectProxyServerMode) { 36672a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen MockConfigurationPolicyProvider provider; 36772a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen provider.AddPolicy( 36872a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen kPolicyProxyServerMode, 36972a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen Value::CreateIntegerValue(kPolicyAutoDetectProxyServerMode)); 37021d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen 37172a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen scoped_refptr<ConfigurationPolicyPrefStore> store( 37272a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen new ConfigurationPolicyPrefStore(&provider)); 37372a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen VerifyProxyPrefs(*store, "", "", "", ProxyPrefs::MODE_AUTO_DETECT); 37421d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen} 37521d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen 37672a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian MonsenTEST_F(ConfigurationPolicyPrefStoreProxyTest, AutoDetectProxyModeName) { 37772a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen MockConfigurationPolicyProvider provider; 37872a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen provider.AddPolicy( 37972a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen kPolicyProxyMode, 38072a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen Value::CreateStringValue(ProxyPrefs::kAutoDetectProxyModeName)); 38172a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen 38272a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen scoped_refptr<ConfigurationPolicyPrefStore> store( 38372a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen new ConfigurationPolicyPrefStore(&provider)); 38472a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen VerifyProxyPrefs(*store, "", "", "", ProxyPrefs::MODE_AUTO_DETECT); 38572a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen} 38672a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen 38772a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian MonsenTEST_F(ConfigurationPolicyPrefStoreProxyTest, PacScriptProxyMode) { 38821d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen MockConfigurationPolicyProvider provider; 38921d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen provider.AddPolicy(kPolicyProxyPacUrl, 39021d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen Value::CreateStringValue("http://short.org/proxy.pac")); 3913f50c38dc070f4bb515c1b64450dae14f316474eKristian Monsen provider.AddPolicy( 3923f50c38dc070f4bb515c1b64450dae14f316474eKristian Monsen kPolicyProxyMode, 39372a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen Value::CreateStringValue(ProxyPrefs::kPacScriptProxyModeName)); 39421d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen 39572a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen scoped_refptr<ConfigurationPolicyPrefStore> store( 39672a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen new ConfigurationPolicyPrefStore(&provider)); 39772a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen VerifyProxyPrefs(*store, "", "http://short.org/proxy.pac", "", 39872a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen ProxyPrefs::MODE_PAC_SCRIPT); 39972a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen} 40072a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen 401ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian MonsenTEST_F(ConfigurationPolicyPrefStoreProxyTest, PacScriptProxyModeInvalid) { 402ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen MockConfigurationPolicyProvider provider; 403ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen provider.AddPolicy( 404ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen kPolicyProxyMode, 405ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen Value::CreateStringValue(ProxyPrefs::kPacScriptProxyModeName)); 406ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen 407ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen scoped_refptr<ConfigurationPolicyPrefStore> store( 408ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen new ConfigurationPolicyPrefStore(&provider)); 409ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen const Value* value = NULL; 410ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen EXPECT_EQ(PrefStore::READ_NO_VALUE, store->GetValue(prefs::kProxy, &value)); 411ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen} 412ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen 413ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen// Regression test for http://crbug.com/78016, CPanel returns empty strings 414ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen// for unset properties. 415ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian MonsenTEST_F(ConfigurationPolicyPrefStoreProxyTest, PacScriptProxyModeBug78016) { 416ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen MockConfigurationPolicyProvider provider; 417ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen provider.AddPolicy(kPolicyProxyServer, 418ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen Value::CreateStringValue("")); 419ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen provider.AddPolicy(kPolicyProxyPacUrl, 420ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen Value::CreateStringValue("http://short.org/proxy.pac")); 421ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen provider.AddPolicy( 422ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen kPolicyProxyMode, 423ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen Value::CreateStringValue(ProxyPrefs::kPacScriptProxyModeName)); 424ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen 425ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen scoped_refptr<ConfigurationPolicyPrefStore> store( 426ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen new ConfigurationPolicyPrefStore(&provider)); 427ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen VerifyProxyPrefs(*store, "", "http://short.org/proxy.pac", "", 428ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen ProxyPrefs::MODE_PAC_SCRIPT); 429ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen} 430ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen 43172a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian MonsenTEST_F(ConfigurationPolicyPrefStoreProxyTest, UseSystemProxyServerMode) { 43272a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen MockConfigurationPolicyProvider provider; 43372a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen provider.AddPolicy( 43472a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen kPolicyProxyServerMode, 43572a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen Value::CreateIntegerValue(kPolicyUseSystemProxyServerMode)); 43672a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen 43772a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen scoped_refptr<ConfigurationPolicyPrefStore> store( 43872a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen new ConfigurationPolicyPrefStore(&provider)); 43972a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen VerifyProxyPrefs(*store, "", "", "", ProxyPrefs::MODE_SYSTEM); 440bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen} 441bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen 44272a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian MonsenTEST_F(ConfigurationPolicyPrefStoreProxyTest, UseSystemProxyMode) { 44321d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen MockConfigurationPolicyProvider provider; 44472a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen provider.AddPolicy( 44572a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen kPolicyProxyMode, 44672a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen Value::CreateStringValue(ProxyPrefs::kSystemProxyModeName)); 44721d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen 44872a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen scoped_refptr<ConfigurationPolicyPrefStore> store( 44972a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen new ConfigurationPolicyPrefStore(&provider)); 45072a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen VerifyProxyPrefs(*store, "", "", "", ProxyPrefs::MODE_SYSTEM); 45172a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen} 45272a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen 45372a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian MonsenTEST_F(ConfigurationPolicyPrefStoreProxyTest, 45472a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen ProxyModeOverridesProxyServerMode) { 45572a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen MockConfigurationPolicyProvider provider; 45672a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen provider.AddPolicy(kPolicyProxyServerMode, 45772a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen Value::CreateIntegerValue(kPolicyNoProxyServerMode)); 45872a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen provider.AddPolicy( 45972a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen kPolicyProxyMode, 46072a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen Value::CreateStringValue(ProxyPrefs::kAutoDetectProxyModeName)); 46172a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen 46272a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen scoped_refptr<ConfigurationPolicyPrefStore> store( 46372a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen new ConfigurationPolicyPrefStore(&provider)); 46472a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen VerifyProxyPrefs(*store, "", "", "", ProxyPrefs::MODE_AUTO_DETECT); 465bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen} 466bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen 46721d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian MonsenTEST_F(ConfigurationPolicyPrefStoreProxyTest, ProxyInvalid) { 46821d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen for (int i = 0; i < MODE_COUNT; ++i) { 46921d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen MockConfigurationPolicyProvider provider; 47072a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen provider.AddPolicy(kPolicyProxyServerMode, Value::CreateIntegerValue(i)); 47121d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen // No mode expects all three parameters being set. 47221d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen provider.AddPolicy(kPolicyProxyPacUrl, 47321d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen Value::CreateStringValue("http://short.org/proxy.pac")); 47421d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen provider.AddPolicy(kPolicyProxyBypassList, 47521d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen Value::CreateStringValue( 47621d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen "http://chromium.org/override")); 47721d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen provider.AddPolicy(kPolicyProxyServer, 47821d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen Value::CreateStringValue("chromium.org")); 47921d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen 48072a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen scoped_refptr<ConfigurationPolicyPrefStore> store( 48172a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen new ConfigurationPolicyPrefStore(&provider)); 482ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen const Value* value = NULL; 48321d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen EXPECT_EQ(PrefStore::READ_NO_VALUE, 48472a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen store->GetValue(prefs::kProxy, &value)); 48521d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen } 486bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen} 487bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen 488bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsenclass ConfigurationPolicyPrefStoreDefaultSearchTest : public testing::Test { 489bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen}; 490bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen 491bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen// Checks that if the policy for default search is valid, i.e. there's a 492bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen// search URL, that all the elements have been given proper defaults. 493bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian MonsenTEST_F(ConfigurationPolicyPrefStoreDefaultSearchTest, MinimallyDefined) { 494513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch const char* const search_url = "http://test.com/search?t={searchTerms}"; 49521d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen MockConfigurationPolicyProvider provider; 49621d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen provider.AddPolicy(kPolicyDefaultSearchProviderEnabled, 49721d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen Value::CreateBooleanValue(true)); 49821d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen provider.AddPolicy(kPolicyDefaultSearchProviderSearchURL, 49921d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen Value::CreateStringValue(search_url)); 50021d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen 50172a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen scoped_refptr<ConfigurationPolicyPrefStore> store( 50272a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen new ConfigurationPolicyPrefStore(&provider)); 50321d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen 504ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen const Value* value = NULL; 50521d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen EXPECT_EQ(PrefStore::READ_OK, 50672a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen store->GetValue(prefs::kDefaultSearchProviderSearchURL, &value)); 50721d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen EXPECT_TRUE(StringValue(search_url).Equals(value)); 50821d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen 50921d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen EXPECT_EQ(PrefStore::READ_OK, 51072a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen store->GetValue(prefs::kDefaultSearchProviderName, &value)); 51121d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen EXPECT_TRUE(StringValue("test.com").Equals(value)); 51221d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen 51321d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen EXPECT_EQ(PrefStore::READ_OK, 51472a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen store->GetValue(prefs::kDefaultSearchProviderKeyword, &value)); 51572a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen EXPECT_TRUE(StringValue(std::string()).Equals(value)); 51672a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen 51772a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen EXPECT_EQ(PrefStore::READ_OK, 51872a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen store->GetValue(prefs::kDefaultSearchProviderSuggestURL, &value)); 51921d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen EXPECT_TRUE(StringValue(std::string()).Equals(value)); 52021d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen 52121d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen EXPECT_EQ(PrefStore::READ_OK, 52272a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen store->GetValue(prefs::kDefaultSearchProviderIconURL, &value)); 52321d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen EXPECT_TRUE(StringValue(std::string()).Equals(value)); 52421d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen 52521d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen EXPECT_EQ(PrefStore::READ_OK, 52672a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen store->GetValue(prefs::kDefaultSearchProviderEncodings, &value)); 52721d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen EXPECT_TRUE(StringValue(std::string()).Equals(value)); 52821d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen 52921d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen EXPECT_EQ(PrefStore::READ_OK, 53072a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen store->GetValue(prefs::kDefaultSearchProviderInstantURL, &value)); 53121d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen EXPECT_TRUE(StringValue(std::string()).Equals(value)); 532bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen} 533bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen 534bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen// Checks that for a fully defined search policy, all elements have been 535bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen// read properly. 536bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian MonsenTEST_F(ConfigurationPolicyPrefStoreDefaultSearchTest, FullyDefined) { 537513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch const char* const search_url = "http://test.com/search?t={searchTerms}"; 538513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch const char* const suggest_url = "http://test.com/sugg?={searchTerms}"; 539513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch const char* const icon_url = "http://test.com/icon.jpg"; 540513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch const char* const name = "MyName"; 541513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch const char* const keyword = "MyKeyword"; 542513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch const char* const encodings = "UTF-16;UTF-8"; 54321d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen MockConfigurationPolicyProvider provider; 54421d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen provider.AddPolicy(kPolicyDefaultSearchProviderEnabled, 54521d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen Value::CreateBooleanValue(true)); 54621d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen provider.AddPolicy(kPolicyDefaultSearchProviderSearchURL, 54721d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen Value::CreateStringValue(search_url)); 54821d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen provider.AddPolicy(kPolicyDefaultSearchProviderName, 54921d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen Value::CreateStringValue(name)); 55021d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen provider.AddPolicy(kPolicyDefaultSearchProviderKeyword, 55121d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen Value::CreateStringValue(keyword)); 55221d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen provider.AddPolicy(kPolicyDefaultSearchProviderSuggestURL, 55321d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen Value::CreateStringValue(suggest_url)); 55421d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen provider.AddPolicy(kPolicyDefaultSearchProviderIconURL, 55521d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen Value::CreateStringValue(icon_url)); 55621d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen provider.AddPolicy(kPolicyDefaultSearchProviderEncodings, 55721d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen Value::CreateStringValue(encodings)); 55821d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen 55972a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen scoped_refptr<ConfigurationPolicyPrefStore> store( 56072a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen new ConfigurationPolicyPrefStore(&provider)); 56121d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen 562ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen const Value* value = NULL; 56321d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen EXPECT_EQ(PrefStore::READ_OK, 56472a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen store->GetValue(prefs::kDefaultSearchProviderSearchURL, &value)); 56521d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen EXPECT_TRUE(StringValue(search_url).Equals(value)); 56621d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen 56721d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen EXPECT_EQ(PrefStore::READ_OK, 56872a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen store->GetValue(prefs::kDefaultSearchProviderName, &value)); 56921d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen EXPECT_TRUE(StringValue(name).Equals(value)); 57021d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen 57121d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen EXPECT_EQ(PrefStore::READ_OK, 57272a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen store->GetValue(prefs::kDefaultSearchProviderKeyword, &value)); 57321d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen EXPECT_TRUE(StringValue(keyword).Equals(value)); 57421d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen 57521d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen EXPECT_EQ(PrefStore::READ_OK, 57672a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen store->GetValue(prefs::kDefaultSearchProviderSuggestURL, &value)); 57721d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen EXPECT_TRUE(StringValue(suggest_url).Equals(value)); 57821d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen 57921d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen EXPECT_EQ(PrefStore::READ_OK, 58072a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen store->GetValue(prefs::kDefaultSearchProviderIconURL, &value)); 58121d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen EXPECT_TRUE(StringValue(icon_url).Equals(value)); 58221d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen 58321d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen EXPECT_EQ(PrefStore::READ_OK, 58472a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen store->GetValue(prefs::kDefaultSearchProviderEncodings, &value)); 58521d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen EXPECT_TRUE(StringValue(encodings).Equals(value)); 586bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen} 587bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen 588bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen// Checks that if the default search policy is missing, that no elements of the 589bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen// default search policy will be present. 590bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian MonsenTEST_F(ConfigurationPolicyPrefStoreDefaultSearchTest, MissingUrl) { 591513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch const char* const suggest_url = "http://test.com/sugg?t={searchTerms}"; 592513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch const char* const icon_url = "http://test.com/icon.jpg"; 593513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch const char* const name = "MyName"; 594513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch const char* const keyword = "MyKeyword"; 595513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch const char* const encodings = "UTF-16;UTF-8"; 59621d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen MockConfigurationPolicyProvider provider; 59721d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen provider.AddPolicy(kPolicyDefaultSearchProviderEnabled, 59821d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen Value::CreateBooleanValue(true)); 59921d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen provider.AddPolicy(kPolicyDefaultSearchProviderName, 60021d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen Value::CreateStringValue(name)); 60121d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen provider.AddPolicy(kPolicyDefaultSearchProviderKeyword, 60221d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen Value::CreateStringValue(keyword)); 60321d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen provider.AddPolicy(kPolicyDefaultSearchProviderSuggestURL, 60421d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen Value::CreateStringValue(suggest_url)); 60521d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen provider.AddPolicy(kPolicyDefaultSearchProviderIconURL, 60621d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen Value::CreateStringValue(icon_url)); 60721d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen provider.AddPolicy(kPolicyDefaultSearchProviderEncodings, 60821d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen Value::CreateStringValue(encodings)); 60921d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen 61072a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen scoped_refptr<ConfigurationPolicyPrefStore> store( 61172a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen new ConfigurationPolicyPrefStore(&provider)); 61221d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen 61321d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen EXPECT_EQ(PrefStore::READ_NO_VALUE, 61472a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen store->GetValue(prefs::kDefaultSearchProviderSearchURL, NULL)); 61521d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen EXPECT_EQ(PrefStore::READ_NO_VALUE, 61672a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen store->GetValue(prefs::kDefaultSearchProviderName, NULL)); 61721d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen EXPECT_EQ(PrefStore::READ_NO_VALUE, 61872a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen store->GetValue(prefs::kDefaultSearchProviderKeyword, NULL)); 61921d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen EXPECT_EQ(PrefStore::READ_NO_VALUE, 62072a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen store->GetValue(prefs::kDefaultSearchProviderSuggestURL, NULL)); 62121d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen EXPECT_EQ(PrefStore::READ_NO_VALUE, 62272a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen store->GetValue(prefs::kDefaultSearchProviderIconURL, NULL)); 62321d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen EXPECT_EQ(PrefStore::READ_NO_VALUE, 62472a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen store->GetValue(prefs::kDefaultSearchProviderEncodings, NULL)); 625bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen} 626bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen 627bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen// Checks that if the default search policy is invalid, that no elements of the 628bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen// default search policy will be present. 629bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian MonsenTEST_F(ConfigurationPolicyPrefStoreDefaultSearchTest, Invalid) { 630513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch const char* const bad_search_url = "http://test.com/noSearchTerms"; 631513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch const char* const suggest_url = "http://test.com/sugg?t={searchTerms}"; 632513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch const char* const icon_url = "http://test.com/icon.jpg"; 633513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch const char* const name = "MyName"; 634513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch const char* const keyword = "MyKeyword"; 635513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch const char* const encodings = "UTF-16;UTF-8"; 63621d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen MockConfigurationPolicyProvider provider; 63721d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen provider.AddPolicy(kPolicyDefaultSearchProviderEnabled, 63821d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen Value::CreateBooleanValue(true)); 63921d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen provider.AddPolicy(kPolicyDefaultSearchProviderSearchURL, 64021d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen Value::CreateStringValue(bad_search_url)); 64121d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen provider.AddPolicy(kPolicyDefaultSearchProviderName, 64221d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen Value::CreateStringValue(name)); 64321d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen provider.AddPolicy(kPolicyDefaultSearchProviderKeyword, 64421d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen Value::CreateStringValue(keyword)); 64521d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen provider.AddPolicy(kPolicyDefaultSearchProviderSuggestURL, 64621d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen Value::CreateStringValue(suggest_url)); 64721d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen provider.AddPolicy(kPolicyDefaultSearchProviderIconURL, 64821d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen Value::CreateStringValue(icon_url)); 64921d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen provider.AddPolicy(kPolicyDefaultSearchProviderEncodings, 65021d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen Value::CreateStringValue(encodings)); 65121d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen 65272a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen scoped_refptr<ConfigurationPolicyPrefStore> store( 65372a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen new ConfigurationPolicyPrefStore(&provider)); 65421d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen 65521d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen EXPECT_EQ(PrefStore::READ_NO_VALUE, 65672a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen store->GetValue(prefs::kDefaultSearchProviderSearchURL, NULL)); 65721d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen EXPECT_EQ(PrefStore::READ_NO_VALUE, 65872a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen store->GetValue(prefs::kDefaultSearchProviderName, NULL)); 65921d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen EXPECT_EQ(PrefStore::READ_NO_VALUE, 66072a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen store->GetValue(prefs::kDefaultSearchProviderKeyword, NULL)); 66121d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen EXPECT_EQ(PrefStore::READ_NO_VALUE, 66272a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen store->GetValue(prefs::kDefaultSearchProviderSuggestURL, NULL)); 66321d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen EXPECT_EQ(PrefStore::READ_NO_VALUE, 66472a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen store->GetValue(prefs::kDefaultSearchProviderIconURL, NULL)); 66521d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen EXPECT_EQ(PrefStore::READ_NO_VALUE, 66672a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen store->GetValue(prefs::kDefaultSearchProviderEncodings, NULL)); 667bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen} 668bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen 669bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen// Test cases for the Sync policy setting. 67021d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsenclass ConfigurationPolicyPrefStoreSyncTest 67121d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen : public ConfigurationPolicyPrefStoreTestBase<testing::Test> { 672bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen}; 673bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen 674bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian MonsenTEST_F(ConfigurationPolicyPrefStoreSyncTest, Default) { 67521d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen EXPECT_EQ(PrefStore::READ_NO_VALUE, 67672a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen store_->GetValue(prefs::kSyncManaged, NULL)); 677bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen} 678bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen 679bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian MonsenTEST_F(ConfigurationPolicyPrefStoreSyncTest, Enabled) { 68021d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen provider_.AddPolicy(kPolicySyncDisabled, Value::CreateBooleanValue(false)); 68172a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen store_->OnUpdatePolicy(); 682bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen // Enabling Sync should not set the pref. 68321d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen EXPECT_EQ(PrefStore::READ_NO_VALUE, 68472a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen store_->GetValue(prefs::kSyncManaged, NULL)); 685bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen} 686bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen 687bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian MonsenTEST_F(ConfigurationPolicyPrefStoreSyncTest, Disabled) { 68821d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen provider_.AddPolicy(kPolicySyncDisabled, Value::CreateBooleanValue(true)); 68972a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen store_->OnUpdatePolicy(); 690bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen // Sync should be flagged as managed. 691ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen const Value* value = NULL; 69272a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen EXPECT_EQ(PrefStore::READ_OK, store_->GetValue(prefs::kSyncManaged, &value)); 69321d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen ASSERT_TRUE(value != NULL); 69421d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen EXPECT_TRUE(FundamentalValue(true).Equals(value)); 695bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen} 696bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen 697ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen// Test cases for the Autofill policy setting. 698ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsenclass ConfigurationPolicyPrefStoreAutofillTest 69921d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen : public ConfigurationPolicyPrefStoreTestBase<testing::Test> { 700bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen}; 701bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen 702ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian MonsenTEST_F(ConfigurationPolicyPrefStoreAutofillTest, Default) { 70321d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen EXPECT_EQ(PrefStore::READ_NO_VALUE, 70472a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen store_->GetValue(prefs::kSyncManaged, NULL)); 705bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen} 706bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen 707ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian MonsenTEST_F(ConfigurationPolicyPrefStoreAutofillTest, Enabled) { 70821d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen provider_.AddPolicy(kPolicyAutoFillEnabled, Value::CreateBooleanValue(true)); 70972a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen store_->OnUpdatePolicy(); 710ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen // Enabling Autofill should not set the pref. 71121d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen EXPECT_EQ(PrefStore::READ_NO_VALUE, 71272a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen store_->GetValue(prefs::kSyncManaged, NULL)); 713bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen} 714bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen 715ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian MonsenTEST_F(ConfigurationPolicyPrefStoreAutofillTest, Disabled) { 71621d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen provider_.AddPolicy(kPolicyAutoFillEnabled, Value::CreateBooleanValue(false)); 71772a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen store_->OnUpdatePolicy(); 718ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen // Disabling Autofill should switch the pref to managed. 719ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen const Value* value = NULL; 72021d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen EXPECT_EQ(PrefStore::READ_OK, 721ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen store_->GetValue(prefs::kAutofillEnabled, &value)); 72221d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen EXPECT_TRUE(FundamentalValue(false).Equals(value)); 72321d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen} 72421d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen 72521d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen// Exercises the policy refresh mechanism. 72621d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsenclass ConfigurationPolicyPrefStoreRefreshTest 72721d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen : public ConfigurationPolicyPrefStoreTestBase<testing::Test> { 72821d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen protected: 72921d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen virtual void SetUp() { 73072a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen store_->AddObserver(&observer_); 73121d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen } 73221d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen 73321d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen virtual void TearDown() { 73472a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen store_->RemoveObserver(&observer_); 73521d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen } 73621d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen 73721d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen PrefStoreObserverMock observer_; 73821d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen}; 73921d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen 74021d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian MonsenTEST_F(ConfigurationPolicyPrefStoreRefreshTest, Refresh) { 741ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen const Value* value = NULL; 74221d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen EXPECT_EQ(PrefStore::READ_NO_VALUE, 74372a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen store_->GetValue(prefs::kHomePage, NULL)); 74421d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen 74521d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen EXPECT_CALL(observer_, OnPrefValueChanged(prefs::kHomePage)).Times(1); 74672a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen provider_.AddPolicy(kPolicyHomepageLocation, 74721d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen Value::CreateStringValue("http://www.chromium.org")); 74872a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen store_->OnUpdatePolicy(); 74921d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen Mock::VerifyAndClearExpectations(&observer_); 75021d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen EXPECT_EQ(PrefStore::READ_OK, 75172a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen store_->GetValue(prefs::kHomePage, &value)); 75221d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen EXPECT_TRUE(StringValue("http://www.chromium.org").Equals(value)); 75321d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen 75421d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen EXPECT_CALL(observer_, OnPrefValueChanged(_)).Times(0); 75572a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen store_->OnUpdatePolicy(); 75621d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen Mock::VerifyAndClearExpectations(&observer_); 75721d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen 75821d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen EXPECT_CALL(observer_, OnPrefValueChanged(prefs::kHomePage)).Times(1); 75972a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen provider_.RemovePolicy(kPolicyHomepageLocation); 76072a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen store_->OnUpdatePolicy(); 76121d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen Mock::VerifyAndClearExpectations(&observer_); 76221d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen EXPECT_EQ(PrefStore::READ_NO_VALUE, 76372a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen store_->GetValue(prefs::kHomePage, NULL)); 76421d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen} 76521d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen 76621d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian MonsenTEST_F(ConfigurationPolicyPrefStoreRefreshTest, Initialization) { 76772a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen EXPECT_FALSE(store_->IsInitializationComplete()); 76821d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen 76921d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen EXPECT_CALL(observer_, OnInitializationCompleted()).Times(1); 77021d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen 77121d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen provider_.SetInitializationComplete(true); 77272a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen EXPECT_FALSE(store_->IsInitializationComplete()); 77321d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen 77472a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen store_->OnUpdatePolicy(); 77521d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen Mock::VerifyAndClearExpectations(&observer_); 77672a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen EXPECT_TRUE(store_->IsInitializationComplete()); 777bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen} 778bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen 779bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen} // namespace policy 780