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