OLD | NEW |
1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2016 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include <memory> | 5 #include <memory> |
6 #include <string> | |
7 | 6 |
8 #include "base/macros.h" | 7 #include "base/macros.h" |
9 #include "base/values.h" | 8 #include "base/values.h" |
10 #include "chrome/browser/chromeos/arc/arc_policy_bridge.h" | 9 #include "chrome/browser/chromeos/arc/arc_policy_bridge.h" |
11 #include "components/arc/test/fake_arc_bridge_service.h" | 10 #include "components/arc/test/fake_arc_bridge_service.h" |
12 #include "components/policy/core/common/mock_policy_service.h" | 11 #include "components/policy/core/common/mock_policy_service.h" |
13 #include "components/policy/core/common/policy_map.h" | 12 #include "components/policy/core/common/policy_map.h" |
14 #include "components/policy/core/common/policy_namespace.h" | 13 #include "components/policy/core/common/policy_namespace.h" |
15 #include "components/policy/core/common/policy_types.h" | 14 #include "components/policy/core/common/policy_types.h" |
16 #include "mojo/public/cpp/bindings/string.h" | 15 #include "mojo/public/cpp/bindings/string.h" |
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
62 | 61 |
63 private: | 62 private: |
64 std::unique_ptr<arc::FakeArcBridgeService> bridge_service_; | 63 std::unique_ptr<arc::FakeArcBridgeService> bridge_service_; |
65 std::unique_ptr<arc::ArcPolicyBridge> policy_bridge_; | 64 std::unique_ptr<arc::ArcPolicyBridge> policy_bridge_; |
66 policy::PolicyMap policy_map_; | 65 policy::PolicyMap policy_map_; |
67 policy::MockPolicyService policy_service_; | 66 policy::MockPolicyService policy_service_; |
68 | 67 |
69 DISALLOW_COPY_AND_ASSIGN(ArcPolicyBridgeTest); | 68 DISALLOW_COPY_AND_ASSIGN(ArcPolicyBridgeTest); |
70 }; | 69 }; |
71 | 70 |
72 TEST_F(ArcPolicyBridgeTest, EmptyPolicyTest) { | 71 TEST_F(ArcPolicyBridgeTest, GetPoliciesTest) { |
73 // No policy is set, result should be empty. | 72 PolicyStringCallback empty_callback("{}"); |
74 policy_bridge()->GetPolicies(PolicyStringCallback("{}")); | 73 policy_bridge()->GetPolicies(empty_callback); |
75 } | 74 policy_map().Set("HomepageLocation", policy::POLICY_LEVEL_MANDATORY, |
76 | 75 policy::POLICY_SCOPE_USER, policy::POLICY_SOURCE_CLOUD, |
77 TEST_F(ArcPolicyBridgeTest, ArcApplicationPolicyTest) { | 76 new base::StringValue("http://chromium.org"), nullptr); |
| 77 policy_bridge()->GetPolicies(empty_callback); |
78 policy_map().Set( | 78 policy_map().Set( |
79 "ArcApplicationPolicy", policy::POLICY_LEVEL_MANDATORY, | 79 "ArcApplicationPolicy", policy::POLICY_LEVEL_MANDATORY, |
80 policy::POLICY_SCOPE_USER, policy::POLICY_SOURCE_CLOUD, | 80 policy::POLICY_SCOPE_USER, policy::POLICY_SOURCE_CLOUD, |
81 new base::StringValue( | 81 new base::StringValue("{\"application\": \"com.android.chrome\"}"), |
82 "{\"applications\":" | |
83 "[{\"packageName\":\"com.google.android.apps.youtube.kids\"," | |
84 "\"installType\":\"REQUIRED\"," | |
85 "\"lockTaskAllowed\":false," | |
86 "\"permissionGrants\":[]" | |
87 "}]," | |
88 "\"defaultPermissionPolicy\":\"GRANT\"" | |
89 "}"), | |
90 nullptr); | 82 nullptr); |
91 policy_bridge()->GetPolicies(PolicyStringCallback( | 83 PolicyStringCallback chrome_callback( |
92 "{\"applications\":" | 84 "{\"ArcApplicationPolicy\":" |
93 "[{\"installType\":\"REQUIRED\"," | 85 "\"{\\\"application\\\": \\\"com.android.chrome\\\"}\"}"); |
94 "\"lockTaskAllowed\":false," | 86 policy_bridge()->GetPolicies(chrome_callback); |
95 "\"packageName\":\"com.google.android.apps.youtube.kids\"," | |
96 "\"permissionGrants\":[]" | |
97 "}]," | |
98 "\"defaultPermissionPolicy\":\"GRANT\"" | |
99 "}")); | |
100 } | |
101 | |
102 TEST_F(ArcPolicyBridgeTest, HompageLocationTest) { | |
103 // This policy will not be passed on, result should be empty. | |
104 policy_map().Set("HomepageLocation", policy::POLICY_LEVEL_MANDATORY, | |
105 policy::POLICY_SCOPE_USER, policy::POLICY_SOURCE_CLOUD, | |
106 new base::StringValue("http://chromium.org"), nullptr); | |
107 policy_bridge()->GetPolicies(PolicyStringCallback("{}")); | |
108 } | |
109 | |
110 TEST_F(ArcPolicyBridgeTest, VideoCaptureAllowedTest) { | |
111 policy_map().Set("VideoCaptureAllowed", policy::POLICY_LEVEL_MANDATORY, | |
112 policy::POLICY_SCOPE_USER, policy::POLICY_SOURCE_CLOUD, | |
113 new base::FundamentalValue(false), nullptr); | |
114 policy_bridge()->GetPolicies( | |
115 PolicyStringCallback("{\"cameraDisabled\":true}")); | |
116 } | |
117 | |
118 TEST_F(ArcPolicyBridgeTest, AllPoliciesTest) { | |
119 // Keep them in alphabetical order. | |
120 policy_map().Set( | |
121 "ArcApplicationPolicy", policy::POLICY_LEVEL_MANDATORY, | |
122 policy::POLICY_SCOPE_USER, policy::POLICY_SOURCE_CLOUD, | |
123 new base::StringValue("{\"applications\":" | |
124 "[{\"packageName\":\"com.google.android.apps.youtube.kids\"," | |
125 "\"installType\":\"REQUIRED\"," | |
126 "\"lockTaskAllowed\":false," | |
127 "\"permissionGrants\":[]" | |
128 "}]," | |
129 "\"defaultPermissionPolicy\":\"GRANT\"}"), | |
130 nullptr); | |
131 policy_map().Set("HomepageLocation", policy::POLICY_LEVEL_MANDATORY, | |
132 policy::POLICY_SCOPE_USER, policy::POLICY_SOURCE_CLOUD, | |
133 new base::StringValue("http://chromium.org"), nullptr); | |
134 policy_map().Set("VideoCaptureAllowed", policy::POLICY_LEVEL_MANDATORY, | |
135 policy::POLICY_SCOPE_USER, policy::POLICY_SOURCE_CLOUD, | |
136 new base::FundamentalValue(false), nullptr); | |
137 policy_bridge()->GetPolicies(PolicyStringCallback( | |
138 "{\"applications\":" | |
139 "[{\"installType\":\"REQUIRED\"," | |
140 "\"lockTaskAllowed\":false," | |
141 "\"packageName\":\"com.google.android.apps.youtube.kids\"," | |
142 "\"permissionGrants\":[]" | |
143 "}]," | |
144 "\"cameraDisabled\":true," | |
145 "\"defaultPermissionPolicy\":\"GRANT\"" | |
146 "}")); | |
147 } | 87 } |
148 | 88 |
149 } // namespace arc | 89 } // namespace arc |
OLD | NEW |