1ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen// Copyright (c) 2011 The Chromium Authors. All rights reserved. 2ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen// Use of this source code is governed by a BSD-style license that can be 3ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen// found in the LICENSE file. 4ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen 5ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen#include "chrome/browser/policy/configuration_policy_store_interface.h" 6ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen#include "chrome/browser/policy/mock_configuration_policy_store.h" 7ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen#include "testing/gtest/include/gtest/gtest.h" 8ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen 9ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsenusing ::testing::_; 10ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen 11ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsennamespace policy { 12ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen 13ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian MonsenTEST(ConfigurationPolicyStoreInterfaceTest, Observer) { 14ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen MockConfigurationPolicyStore store; 15ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen EXPECT_CALL(store, Apply(_, _)).Times(3); 16ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen ObservingPolicyStoreInterface observer(&store); 17ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen 18ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen EXPECT_FALSE(observer.IsProxyPolicyApplied()); 19ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen observer.Apply(kPolicyJavascriptEnabled, Value::CreateBooleanValue(true)); 20ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen EXPECT_FALSE(observer.IsProxyPolicyApplied()); 21ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen observer.Apply(kPolicyProxyMode, Value::CreateStringValue("direct")); 22ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen EXPECT_TRUE(observer.IsProxyPolicyApplied()); 23ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen observer.Apply(kPolicyIncognitoEnabled, Value::CreateBooleanValue(true)); 24ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen EXPECT_TRUE(observer.IsProxyPolicyApplied()); 25ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen 26ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen EXPECT_TRUE(store.Get(kPolicyJavascriptEnabled) != NULL); 27ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen EXPECT_TRUE(store.Get(kPolicyProxyMode) != NULL); 28ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen EXPECT_TRUE(store.Get(kPolicyIncognitoEnabled) != NULL); 29ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen EXPECT_TRUE(store.Get(kPolicyPrintingEnabled) == NULL); 30ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen} 31ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen 32ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian MonsenTEST(ConfigurationPolicyStoreInterfaceTest, Filter) { 33ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen MockConfigurationPolicyStore store_pass; 34ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen EXPECT_CALL(store_pass, Apply(_, _)).Times(1); 35ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen FilteringPolicyStoreInterface filter_pass(&store_pass, true); 36ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen 37ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen EXPECT_TRUE(store_pass.policy_map().empty()); 38ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen filter_pass.Apply(kPolicyJavascriptEnabled, Value::CreateBooleanValue(true)); 39ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen EXPECT_TRUE(store_pass.policy_map().empty()); 40ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen filter_pass.Apply(kPolicyProxyMode, Value::CreateStringValue("direct")); 41ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen EXPECT_FALSE(store_pass.policy_map().empty()); 42ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen EXPECT_EQ(store_pass.policy_map().size(), 1u); 43ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen EXPECT_TRUE(store_pass.Get(kPolicyJavascriptEnabled) == NULL); 44ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen EXPECT_TRUE(store_pass.Get(kPolicyProxyMode) != NULL); 45ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen 46ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen MockConfigurationPolicyStore store_block; 47ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen EXPECT_CALL(store_block, Apply(_, _)).Times(0); 48ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen FilteringPolicyStoreInterface filter_block(&store_block, false); 49ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen 50ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen EXPECT_TRUE(store_block.policy_map().empty()); 51ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen filter_block.Apply(kPolicyJavascriptEnabled, Value::CreateBooleanValue(true)); 52ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen EXPECT_TRUE(store_block.policy_map().empty()); 53ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen filter_block.Apply(kPolicyProxyMode, Value::CreateStringValue("direct")); 54ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen EXPECT_TRUE(store_block.policy_map().empty()); 55ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen} 56ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen 57ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen} // namespace policy 58