OLD | NEW |
| (Empty) |
1 // Copyright 2013 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/policy_transformations.h" | |
6 | |
7 #include "base/memory/scoped_ptr.h" | |
8 #include "base/values.h" | |
9 #include "components/policy/core/common/policy_bundle.h" | |
10 #include "components/policy/core/common/policy_map.h" | |
11 #include "policy/policy_constants.h" | |
12 #include "testing/gtest/include/gtest/gtest.h" | |
13 | |
14 namespace policy { | |
15 | |
16 TEST(PolicyTransformationsTest, FixDeprecatedPolicies) { | |
17 PolicyBundle policy_bundle; | |
18 PolicyMap& policy_map = | |
19 policy_bundle.Get(PolicyNamespace(POLICY_DOMAIN_CHROME, std::string())); | |
20 | |
21 // Individual proxy policy values in the Chrome namespace should be collected | |
22 // into a dictionary. | |
23 policy_map.Set(key::kProxyServerMode, | |
24 POLICY_LEVEL_MANDATORY, | |
25 POLICY_SCOPE_USER, | |
26 base::Value::CreateIntegerValue(3), | |
27 NULL); | |
28 | |
29 // Both these policies should be ignored, since there's a higher priority | |
30 // policy available. | |
31 policy_map.Set(key::kProxyMode, | |
32 POLICY_LEVEL_RECOMMENDED, | |
33 POLICY_SCOPE_USER, | |
34 base::Value::CreateStringValue("pac_script"), | |
35 NULL); | |
36 policy_map.Set(key::kProxyPacUrl, | |
37 POLICY_LEVEL_RECOMMENDED, | |
38 POLICY_SCOPE_USER, | |
39 base::Value::CreateStringValue("http://example.com/wpad.dat"), | |
40 NULL); | |
41 | |
42 // Add a value to a non-Chrome namespace. | |
43 policy_bundle.Get(PolicyNamespace(POLICY_DOMAIN_EXTENSIONS, std::string())) | |
44 .Set(key::kProxyServerMode, | |
45 POLICY_LEVEL_MANDATORY, | |
46 POLICY_SCOPE_USER, | |
47 base::Value::CreateIntegerValue(3), | |
48 NULL); | |
49 | |
50 PolicyBundle actual_bundle; | |
51 actual_bundle.CopyFrom(policy_bundle); | |
52 FixDeprecatedPolicies(&actual_bundle); | |
53 | |
54 PolicyBundle expected_bundle; | |
55 // The resulting Chrome namespace map should have the collected policy. | |
56 PolicyMap& expected_map = | |
57 expected_bundle.Get(PolicyNamespace(POLICY_DOMAIN_CHROME, std::string())); | |
58 scoped_ptr<base::DictionaryValue> expected_value(new base::DictionaryValue); | |
59 expected_value->SetInteger(key::kProxyServerMode, 3); | |
60 expected_map.Set(key::kProxySettings, | |
61 POLICY_LEVEL_MANDATORY, | |
62 POLICY_SCOPE_USER, | |
63 expected_value.release(), | |
64 NULL); | |
65 // The resulting Extensions namespace map shouldn't have been modified. | |
66 expected_bundle.Get(PolicyNamespace(POLICY_DOMAIN_EXTENSIONS, std::string())) | |
67 .Set(key::kProxyServerMode, | |
68 POLICY_LEVEL_MANDATORY, | |
69 POLICY_SCOPE_USER, | |
70 base::Value::CreateIntegerValue(3), | |
71 NULL); | |
72 | |
73 EXPECT_TRUE(expected_bundle.Equals(actual_bundle)); | |
74 } | |
75 | |
76 } // namespace policy | |
OLD | NEW |