Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(655)

Side by Side Diff: chrome/browser/chromeos/arc/arc_policy_bridge_unittest.cc

Issue 2476493003: Remove FundamentalValue
Patch Set: Fix Created 4 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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> 6 #include <string>
7 7
8 #include "base/macros.h" 8 #include "base/macros.h"
9 #include "base/memory/ptr_util.h" 9 #include "base/memory/ptr_util.h"
10 #include "base/message_loop/message_loop.h" 10 #include "base/message_loop/message_loop.h"
11 #include "base/values.h" 11 #include "base/values.h"
12 #include "chrome/browser/chromeos/arc/policy/arc_policy_bridge.h" 12 #include "chrome/browser/chromeos/arc/arc_policy_bridge.h"
13 #include "components/arc/test/fake_arc_bridge_service.h" 13 #include "components/arc/test/fake_arc_bridge_service.h"
14 #include "components/arc/test/fake_policy_instance.h" 14 #include "components/arc/test/fake_policy_instance.h"
15 #include "components/policy/core/common/mock_policy_service.h" 15 #include "components/policy/core/common/mock_policy_service.h"
16 #include "components/policy/core/common/policy_map.h" 16 #include "components/policy/core/common/policy_map.h"
17 #include "components/policy/core/common/policy_namespace.h" 17 #include "components/policy/core/common/policy_namespace.h"
18 #include "components/policy/core/common/policy_types.h" 18 #include "components/policy/core/common/policy_types.h"
19 #include "components/policy/policy_constants.h" 19 #include "components/policy/policy_constants.h"
20 #include "mojo/public/cpp/bindings/string.h" 20 #include "mojo/public/cpp/bindings/string.h"
21 #include "testing/gmock/include/gmock/gmock.h" 21 #include "testing/gmock/include/gmock/gmock.h"
22 #include "testing/gtest/include/gtest/gtest.h" 22 #include "testing/gtest/include/gtest/gtest.h"
23 23
24 namespace { 24 namespace {
25 25
26 constexpr char kFakeONC[] = 26 char kFakeONC[] =
27 "{\"NetworkConfigurations\":[" 27 "{\"NetworkConfigurations\":["
28 "{\"GUID\":\"{485d6076-dd44-6b6d-69787465725f5040}\"," 28 "{\"GUID\":\"{485d6076-dd44-6b6d-69787465725f5040}\","
29 "\"Type\":\"WiFi\"," 29 "\"Type\":\"WiFi\","
30 "\"Name\":\"My WiFi Network\"," 30 "\"Name\":\"My WiFi Network\","
31 "\"WiFi\":{" 31 "\"WiFi\":{"
32 "\"HexSSID\":\"737369642D6E6F6E65\"," // "ssid-none" 32 "\"HexSSID\":\"737369642D6E6F6E65\"," // "ssid-none"
33 "\"Security\":\"None\"}" 33 "\"Security\":\"None\"}"
34 "}" 34 "}"
35 "]," 35 "],"
36 "\"GlobalNetworkConfiguration\":{" 36 "\"GlobalNetworkConfiguration\":{"
37 "\"AllowOnlyPolicyNetworksToAutoconnect\":true," 37 "\"AllowOnlyPolicyNetworksToAutoconnect\":true,"
38 "}," 38 "},"
39 "\"Certificates\":[" 39 "\"Certificates\":["
40 "{ \"GUID\":\"{f998f760-272b-6939-4c2beffe428697ac}\"," 40 "{ \"GUID\":\"{f998f760-272b-6939-4c2beffe428697ac}\","
41 "\"PKCS12\":\"abc\"," 41 "\"PKCS12\":\"abc\","
42 "\"Type\":\"Client\"}," 42 "\"Type\":\"Client\"},"
43 "{\"Type\":\"Authority\"," 43 "{\"Type\":\"Authority\","
44 "\"TrustBits\":[\"Web\"]," 44 "\"TrustBits\":[\"Web\"],"
45 "\"X509\":\"TWFuIGlzIGRpc3Rpbmd1aXNoZWQsIG5vdCBvbmx5IGJ5IGhpcyByZWFzb24sIGJ" 45 "\"X509\":\"TWFuIGlzIGRpc3Rpbmd1aXNoZWQsIG5vdCBvbmx5IGJ5IGhpcyByZWFzb24sIGJ"
46 "1dCBieSB0aGlzIHNpbmd1bGFyIHBhc3Npb24gZnJvbSBvdGhlciBhbmltYWxzLCB3aGljaCBpc" 46 "1dCBieSB0aGlzIHNpbmd1bGFyIHBhc3Npb24gZnJvbSBvdGhlciBhbmltYWxzLCB3aGljaCBpc"
47 "yBhIGx1c3Qgb2YgdGhlIG1pbmQsIHRoYXQgYnkgYSBwZXJzZXZlcmFuY2Ugb2YgZGVsaWdodCB" 47 "yBhIGx1c3Qgb2YgdGhlIG1pbmQsIHRoYXQgYnkgYSBwZXJzZXZlcmFuY2Ugb2YgZGVsaWdodCB"
48 "pbiB0aGUgY29udGludWVkIGFuZCBpbmRlZmF0aWdhYmxlIGdlbmVyYXRpb24gb2Yga25vd2xlZ" 48 "pbiB0aGUgY29udGludWVkIGFuZCBpbmRlZmF0aWdhYmxlIGdlbmVyYXRpb24gb2Yga25vd2xlZ"
49 "GdlLCBleGNlZWRzIHRoZSBzaG9ydCB2ZWhlbWVuY2Ugb2YgYW55IGNhcm5hbCBwbGVhc3VyZS4" 49 "GdlLCBleGNlZWRzIHRoZSBzaG9ydCB2ZWhlbWVuY2Ugb2YgYW55IGNhcm5hbCBwbGVhc3VyZS4"
50 "=\"," 50 "=\","
51 "\"GUID\":\"{00f79111-51e0-e6e0-76b3b55450d80a1b}\"}" 51 "\"GUID\":\"{00f79111-51e0-e6e0-76b3b55450d80a1b}\"}"
52 "]}"; 52 "]}";
53 53
54 constexpr char kPolicyCompliantResponse[] = "{ \"policyCompliant\": true }"; 54 // Helper class to define a PolicyStringCallback which verifies that it was run.
55 constexpr char kPolicyNonCompliantResponse[] = "{ \"policyCompliant\": false }";
56
57 // Helper class to define callbacks that verify that they were run.
58 // Wraps a bool initially set to |false| and verifies that it's been set to 55 // Wraps a bool initially set to |false| and verifies that it's been set to
59 // |true| before destruction. 56 // |true| before destruction.
60 class CheckedBoolean { 57 class CheckedBoolean {
61 public: 58 public:
62 CheckedBoolean() {} 59 CheckedBoolean() {}
63 ~CheckedBoolean() { EXPECT_TRUE(value_); } 60 ~CheckedBoolean() { EXPECT_TRUE(value_); }
64 61
65 void set_value(bool value) { value_ = value; } 62 void set_value(bool value) { value_ = value; }
66 63
67 private: 64 private:
68 bool value_ = false; 65 bool value_ = false;
69 66
70 DISALLOW_COPY_AND_ASSIGN(CheckedBoolean); 67 DISALLOW_COPY_AND_ASSIGN(CheckedBoolean);
71 }; 68 };
72 69
73 void ExpectString(std::unique_ptr<CheckedBoolean> was_run, 70 void ExpectPolicyString(std::unique_ptr<CheckedBoolean> was_run,
74 const std::string& expected, 71 mojo::String expected,
75 const std::string& received) { 72 mojo::String policies) {
76 EXPECT_EQ(expected, received); 73 EXPECT_EQ(expected, policies);
77 was_run->set_value(true); 74 was_run->set_value(true);
78 } 75 }
79 76
80 arc::ArcPolicyBridge::GetPoliciesCallback PolicyStringCallback( 77 arc::ArcPolicyBridge::GetPoliciesCallback PolicyStringCallback(
81 const std::string& expected) { 78 mojo::String expected) {
82 std::unique_ptr<CheckedBoolean> was_run(new CheckedBoolean());
83 return base::Bind(&ExpectString, base::Passed(&was_run), expected);
84 }
85
86 arc::ArcPolicyBridge::ReportComplianceCallback PolicyComplianceCallback(
87 const std::string& expected) {
88 std::unique_ptr<CheckedBoolean> was_run(new CheckedBoolean); 79 std::unique_ptr<CheckedBoolean> was_run(new CheckedBoolean);
89 return base::Bind(&ExpectString, base::Passed(&was_run), expected); 80 return base::Bind(&ExpectPolicyString, base::Passed(&was_run),
81 base::Passed(&expected));
90 } 82 }
91 83
92 } // namespace 84 } // namespace
93 85
94 using testing::_; 86 using testing::_;
95 using testing::ReturnRef; 87 using testing::ReturnRef;
96 88
97 namespace arc { 89 namespace arc {
98 90
99 class ArcPolicyBridgeTest : public testing::Test { 91 class ArcPolicyBridgeTest : public testing::Test {
(...skipping 19 matching lines...) Expand all
119 111
120 protected: 112 protected:
121 ArcPolicyBridge* policy_bridge() { return policy_bridge_.get(); } 113 ArcPolicyBridge* policy_bridge() { return policy_bridge_.get(); }
122 FakePolicyInstance* policy_instance() { return policy_instance_.get(); } 114 FakePolicyInstance* policy_instance() { return policy_instance_.get(); }
123 policy::PolicyMap& policy_map() { return policy_map_; } 115 policy::PolicyMap& policy_map() { return policy_map_; }
124 116
125 private: 117 private:
126 // Not an unused variable. Unit tests do not have a message loop by themselves 118 // Not an unused variable. Unit tests do not have a message loop by themselves
127 // and mojo needs a message loop for communication. 119 // and mojo needs a message loop for communication.
128 base::MessageLoop loop_; 120 base::MessageLoop loop_;
129 std::unique_ptr<FakeArcBridgeService> bridge_service_; 121 std::unique_ptr<arc::FakeArcBridgeService> bridge_service_;
130 std::unique_ptr<ArcPolicyBridge> policy_bridge_; 122 std::unique_ptr<arc::ArcPolicyBridge> policy_bridge_;
131 // Always keep policy_instance_ below bridge_service_, so that 123 // Always keep policy_instance_ below bridge_service_, so that
132 // policy_instance_ is destructed first. It needs to remove itself as 124 // policy_instance_ is destructed first. It needs to remove itself as
133 // observer. 125 // observer.
134 std::unique_ptr<FakePolicyInstance> policy_instance_; 126 std::unique_ptr<arc::FakePolicyInstance> policy_instance_;
135 policy::PolicyMap policy_map_; 127 policy::PolicyMap policy_map_;
136 policy::MockPolicyService policy_service_; 128 policy::MockPolicyService policy_service_;
137 129
138 DISALLOW_COPY_AND_ASSIGN(ArcPolicyBridgeTest); 130 DISALLOW_COPY_AND_ASSIGN(ArcPolicyBridgeTest);
139 }; 131 };
140 132
141 TEST_F(ArcPolicyBridgeTest, UnmanagedTest) { 133 TEST_F(ArcPolicyBridgeTest, UnmanagedTest) {
142 policy_bridge()->OverrideIsManagedForTesting(false); 134 policy_bridge()->OverrideIsManagedForTesting(false);
143 policy_bridge()->GetPolicies(PolicyStringCallback("")); 135 policy_bridge()->GetPolicies(PolicyStringCallback(""));
144 } 136 }
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
179 policy::key::kHomepageLocation, policy::POLICY_LEVEL_MANDATORY, 171 policy::key::kHomepageLocation, policy::POLICY_LEVEL_MANDATORY,
180 policy::POLICY_SCOPE_USER, policy::POLICY_SOURCE_CLOUD, 172 policy::POLICY_SCOPE_USER, policy::POLICY_SOURCE_CLOUD,
181 base::MakeUnique<base::StringValue>("http://chromium.org"), nullptr); 173 base::MakeUnique<base::StringValue>("http://chromium.org"), nullptr);
182 policy_bridge()->GetPolicies(PolicyStringCallback("{}")); 174 policy_bridge()->GetPolicies(PolicyStringCallback("{}"));
183 } 175 }
184 176
185 TEST_F(ArcPolicyBridgeTest, DisableScreenshotsTest) { 177 TEST_F(ArcPolicyBridgeTest, DisableScreenshotsTest) {
186 policy_map().Set(policy::key::kDisableScreenshots, 178 policy_map().Set(policy::key::kDisableScreenshots,
187 policy::POLICY_LEVEL_MANDATORY, policy::POLICY_SCOPE_USER, 179 policy::POLICY_LEVEL_MANDATORY, policy::POLICY_SCOPE_USER,
188 policy::POLICY_SOURCE_CLOUD, 180 policy::POLICY_SOURCE_CLOUD,
189 base::MakeUnique<base::FundamentalValue>(true), nullptr); 181 base::MakeUnique<base::Value>(true), nullptr);
190 policy_bridge()->GetPolicies( 182 policy_bridge()->GetPolicies(
191 PolicyStringCallback("{\"screenCaptureDisabled\":true}")); 183 PolicyStringCallback("{\"screenCaptureDisabled\":true}"));
192 } 184 }
193 185
194 TEST_F(ArcPolicyBridgeTest, VideoCaptureAllowedTest) { 186 TEST_F(ArcPolicyBridgeTest, VideoCaptureAllowedTest) {
195 policy_map().Set(policy::key::kVideoCaptureAllowed, 187 policy_map().Set(policy::key::kVideoCaptureAllowed,
196 policy::POLICY_LEVEL_MANDATORY, policy::POLICY_SCOPE_USER, 188 policy::POLICY_LEVEL_MANDATORY, policy::POLICY_SCOPE_USER,
197 policy::POLICY_SOURCE_CLOUD, 189 policy::POLICY_SOURCE_CLOUD,
198 base::MakeUnique<base::FundamentalValue>(false), nullptr); 190 base::MakeUnique<base::Value>(false), nullptr);
199 policy_bridge()->GetPolicies( 191 policy_bridge()->GetPolicies(
200 PolicyStringCallback("{\"cameraDisabled\":true}")); 192 PolicyStringCallback("{\"cameraDisabled\":true}"));
201 } 193 }
202 194
203 TEST_F(ArcPolicyBridgeTest, AudioCaptureAllowedTest) { 195 TEST_F(ArcPolicyBridgeTest, AudioCaptureAllowedTest) {
204 policy_map().Set(policy::key::kAudioCaptureAllowed, 196 policy_map().Set(policy::key::kAudioCaptureAllowed,
205 policy::POLICY_LEVEL_MANDATORY, policy::POLICY_SCOPE_USER, 197 policy::POLICY_LEVEL_MANDATORY, policy::POLICY_SCOPE_USER,
206 policy::POLICY_SOURCE_CLOUD, 198 policy::POLICY_SOURCE_CLOUD,
207 base::MakeUnique<base::FundamentalValue>(false), nullptr); 199 base::MakeUnique<base::Value>(false), nullptr);
208 policy_bridge()->GetPolicies( 200 policy_bridge()->GetPolicies(
209 PolicyStringCallback("{\"unmuteMicrophoneDisabled\":true}")); 201 PolicyStringCallback("{\"unmuteMicrophoneDisabled\":true}"));
210 } 202 }
211 203
212 TEST_F(ArcPolicyBridgeTest, DefaultGeolocationSettingTest) { 204 TEST_F(ArcPolicyBridgeTest, DefaultGeolocationSettingTest) {
213 policy_map().Set(policy::key::kDefaultGeolocationSetting, 205 policy_map().Set(policy::key::kDefaultGeolocationSetting,
214 policy::POLICY_LEVEL_MANDATORY, policy::POLICY_SCOPE_USER, 206 policy::POLICY_LEVEL_MANDATORY, policy::POLICY_SCOPE_USER,
215 policy::POLICY_SOURCE_CLOUD, 207 policy::POLICY_SOURCE_CLOUD,
216 base::MakeUnique<base::FundamentalValue>(1), nullptr); 208 base::MakeUnique<base::Value>(1), nullptr);
217 policy_bridge()->GetPolicies( 209 policy_bridge()->GetPolicies(
218 PolicyStringCallback("{\"shareLocationDisabled\":false}")); 210 PolicyStringCallback("{\"shareLocationDisabled\":false}"));
219 policy_map().Set(policy::key::kDefaultGeolocationSetting, 211 policy_map().Set(policy::key::kDefaultGeolocationSetting,
220 policy::POLICY_LEVEL_MANDATORY, policy::POLICY_SCOPE_USER, 212 policy::POLICY_LEVEL_MANDATORY, policy::POLICY_SCOPE_USER,
221 policy::POLICY_SOURCE_CLOUD, 213 policy::POLICY_SOURCE_CLOUD,
222 base::MakeUnique<base::FundamentalValue>(2), nullptr); 214 base::MakeUnique<base::Value>(2), nullptr);
223 policy_bridge()->GetPolicies( 215 policy_bridge()->GetPolicies(
224 PolicyStringCallback("{\"shareLocationDisabled\":true}")); 216 PolicyStringCallback("{\"shareLocationDisabled\":true}"));
225 policy_map().Set(policy::key::kDefaultGeolocationSetting, 217 policy_map().Set(policy::key::kDefaultGeolocationSetting,
226 policy::POLICY_LEVEL_MANDATORY, policy::POLICY_SCOPE_USER, 218 policy::POLICY_LEVEL_MANDATORY, policy::POLICY_SCOPE_USER,
227 policy::POLICY_SOURCE_CLOUD, 219 policy::POLICY_SOURCE_CLOUD,
228 base::MakeUnique<base::FundamentalValue>(3), nullptr); 220 base::MakeUnique<base::Value>(3), nullptr);
229 policy_bridge()->GetPolicies( 221 policy_bridge()->GetPolicies(
230 PolicyStringCallback("{\"shareLocationDisabled\":false}")); 222 PolicyStringCallback("{\"shareLocationDisabled\":false}"));
231 } 223 }
232 224
233 TEST_F(ArcPolicyBridgeTest, ExternalStorageDisabledTest) { 225 TEST_F(ArcPolicyBridgeTest, ExternalStorageDisabledTest) {
234 policy_map().Set(policy::key::kExternalStorageDisabled, 226 policy_map().Set(policy::key::kExternalStorageDisabled,
235 policy::POLICY_LEVEL_MANDATORY, policy::POLICY_SCOPE_USER, 227 policy::POLICY_LEVEL_MANDATORY, policy::POLICY_SCOPE_USER,
236 policy::POLICY_SOURCE_CLOUD, 228 policy::POLICY_SOURCE_CLOUD,
237 base::MakeUnique<base::FundamentalValue>(true), nullptr); 229 base::MakeUnique<base::Value>(true), nullptr);
238 policy_bridge()->GetPolicies( 230 policy_bridge()->GetPolicies(
239 PolicyStringCallback("{\"mountPhysicalMediaDisabled\":true}")); 231 PolicyStringCallback("{\"mountPhysicalMediaDisabled\":true}"));
240 } 232 }
241 233
242 TEST_F(ArcPolicyBridgeTest, URLBlacklistTest) { 234 TEST_F(ArcPolicyBridgeTest, URLBlacklistTest) {
243 base::ListValue blacklist; 235 base::ListValue blacklist;
244 blacklist.AppendString("www.blacklist1.com"); 236 blacklist.Append(new base::StringValue("www.blacklist1.com"));
245 blacklist.AppendString("www.blacklist2.com"); 237 blacklist.Append(new base::StringValue("www.blacklist2.com"));
246 policy_map().Set(policy::key::kURLBlacklist, policy::POLICY_LEVEL_MANDATORY, 238 policy_map().Set(policy::key::kURLBlacklist, policy::POLICY_LEVEL_MANDATORY,
247 policy::POLICY_SCOPE_USER, policy::POLICY_SOURCE_CLOUD, 239 policy::POLICY_SCOPE_USER, policy::POLICY_SOURCE_CLOUD,
248 blacklist.CreateDeepCopy(), nullptr); 240 blacklist.CreateDeepCopy(), nullptr);
249 policy_bridge()->GetPolicies( 241 policy_bridge()->GetPolicies(
250 PolicyStringCallback("{\"globalAppRestrictions\":" 242 PolicyStringCallback("{\"globalAppRestrictions\":"
251 "{\"com.android.browser:URLBlacklist\":" 243 "{\"com.android.browser:URLBlacklist\":"
252 "[\"www.blacklist1.com\"," 244 "[\"www.blacklist1.com\","
253 "\"www.blacklist2.com\"" 245 "\"www.blacklist2.com\""
254 "]}}")); 246 "]}}"));
255 } 247 }
256 248
257 TEST_F(ArcPolicyBridgeTest, URLWhitelistTest) { 249 TEST_F(ArcPolicyBridgeTest, URLWhitelistTest) {
258 base::ListValue whitelist; 250 base::ListValue whitelist;
259 whitelist.AppendString("www.whitelist1.com"); 251 whitelist.Append(new base::StringValue("www.whitelist1.com"));
260 whitelist.AppendString("www.whitelist2.com"); 252 whitelist.Append(new base::StringValue("www.whitelist2.com"));
261 policy_map().Set(policy::key::kURLWhitelist, policy::POLICY_LEVEL_MANDATORY, 253 policy_map().Set(policy::key::kURLWhitelist, policy::POLICY_LEVEL_MANDATORY,
262 policy::POLICY_SCOPE_USER, policy::POLICY_SOURCE_CLOUD, 254 policy::POLICY_SCOPE_USER, policy::POLICY_SOURCE_CLOUD,
263 whitelist.CreateDeepCopy(), nullptr); 255 whitelist.CreateDeepCopy(), nullptr);
264 policy_bridge()->GetPolicies( 256 policy_bridge()->GetPolicies(
265 PolicyStringCallback("{\"globalAppRestrictions\":" 257 PolicyStringCallback("{\"globalAppRestrictions\":"
266 "{\"com.android.browser:URLWhitelist\":" 258 "{\"com.android.browser:URLWhitelist\":"
267 "[\"www.whitelist1.com\"," 259 "[\"www.whitelist1.com\","
268 "\"www.whitelist2.com\"" 260 "\"www.whitelist2.com\""
269 "]}}")); 261 "]}}"));
270 } 262 }
271 263
272 TEST_F(ArcPolicyBridgeTest, CaCertificateTest) { 264 TEST_F(ArcPolicyBridgeTest, CaCertificateTest) {
273 // Enable CA certificates sync. 265 // Enable CA certificates sync.
274 policy_map().Set( 266 policy_map().Set(
275 policy::key::kArcCertificatesSyncMode, policy::POLICY_LEVEL_MANDATORY, 267 policy::key::kArcCertificatesSyncMode, policy::POLICY_LEVEL_MANDATORY,
276 policy::POLICY_SCOPE_USER, policy::POLICY_SOURCE_CLOUD, 268 policy::POLICY_SCOPE_USER, policy::POLICY_SOURCE_CLOUD,
277 base::MakeUnique<base::FundamentalValue>(ArcCertsSyncMode::COPY_CA_CERTS), 269 base::MakeUnique<base::Value>(ArcCertsSyncMode::COPY_CA_CERTS), nullptr);
278 nullptr);
279 policy_map().Set(policy::key::kOpenNetworkConfiguration, 270 policy_map().Set(policy::key::kOpenNetworkConfiguration,
280 policy::POLICY_LEVEL_MANDATORY, policy::POLICY_SCOPE_USER, 271 policy::POLICY_LEVEL_MANDATORY, policy::POLICY_SCOPE_USER,
281 policy::POLICY_SOURCE_CLOUD, 272 policy::POLICY_SOURCE_CLOUD,
282 base::MakeUnique<base::StringValue>(kFakeONC), nullptr); 273 base::MakeUnique<base::StringValue>(kFakeONC), nullptr);
283 policy_bridge()->GetPolicies(PolicyStringCallback( 274 policy_bridge()->GetPolicies(PolicyStringCallback(
284 "{\"caCerts\":" 275 "{\"caCerts\":"
285 "[{\"X509\":\"TWFuIGlzIGRpc3Rpbmd1aXNoZWQsIG5vdCBvbmx5IGJ5IGhpcyByZWFzb24" 276 "[{\"X509\":\"TWFuIGlzIGRpc3Rpbmd1aXNoZWQsIG5vdCBvbmx5IGJ5IGhpcyByZWFzb24"
286 "sIGJ1dCBieSB0aGlzIHNpbmd1bGFyIHBhc3Npb24gZnJvbSBvdGhlciBhbmltYWxzLCB3aGl" 277 "sIGJ1dCBieSB0aGlzIHNpbmd1bGFyIHBhc3Npb24gZnJvbSBvdGhlciBhbmltYWxzLCB3aGl"
287 "jaCBpcyBhIGx1c3Qgb2YgdGhlIG1pbmQsIHRoYXQgYnkgYSBwZXJzZXZlcmFuY2Ugb2YgZGV" 278 "jaCBpcyBhIGx1c3Qgb2YgdGhlIG1pbmQsIHRoYXQgYnkgYSBwZXJzZXZlcmFuY2Ugb2YgZGV"
288 "saWdodCBpbiB0aGUgY29udGludWVkIGFuZCBpbmRlZmF0aWdhYmxlIGdlbmVyYXRpb24gb2Y" 279 "saWdodCBpbiB0aGUgY29udGludWVkIGFuZCBpbmRlZmF0aWdhYmxlIGdlbmVyYXRpb24gb2Y"
289 "ga25vd2xlZGdlLCBleGNlZWRzIHRoZSBzaG9ydCB2ZWhlbWVuY2Ugb2YgYW55IGNhcm5hbCB" 280 "ga25vd2xlZGdlLCBleGNlZWRzIHRoZSBzaG9ydCB2ZWhlbWVuY2Ugb2YgYW55IGNhcm5hbCB"
290 "wbGVhc3VyZS4=\"}" 281 "wbGVhc3VyZS4=\"}"
291 "]}")); 282 "]}"));
292 283
293 // Disable CA certificates sync. 284 // Disable CA certificates sync.
294 policy_map().Set( 285 policy_map().Set(
295 policy::key::kArcCertificatesSyncMode, policy::POLICY_LEVEL_MANDATORY, 286 policy::key::kArcCertificatesSyncMode, policy::POLICY_LEVEL_MANDATORY,
296 policy::POLICY_SCOPE_USER, policy::POLICY_SOURCE_CLOUD, 287 policy::POLICY_SCOPE_USER, policy::POLICY_SOURCE_CLOUD,
297 base::MakeUnique<base::FundamentalValue>(ArcCertsSyncMode::SYNC_DISABLED), 288 base::MakeUnique<base::Value>(ArcCertsSyncMode::SYNC_DISABLED), nullptr);
298 nullptr);
299 policy_bridge()->GetPolicies(PolicyStringCallback("{}")); 289 policy_bridge()->GetPolicies(PolicyStringCallback("{}"));
300 } 290 }
301 291
302 TEST_F(ArcPolicyBridgeTest, DeveloperToolsDisabledTest) { 292 TEST_F(ArcPolicyBridgeTest, DeveloperToolsDisabledTest) {
303 policy_map().Set(policy::key::kDeveloperToolsDisabled, 293 policy_map().Set(policy::key::kDeveloperToolsDisabled,
304 policy::POLICY_LEVEL_MANDATORY, policy::POLICY_SCOPE_USER, 294 policy::POLICY_LEVEL_MANDATORY, policy::POLICY_SCOPE_USER,
305 policy::POLICY_SOURCE_CLOUD, 295 policy::POLICY_SOURCE_CLOUD,
306 base::MakeUnique<base::FundamentalValue>(true), nullptr); 296 base::MakeUnique<base::Value>(true), nullptr);
307 policy_bridge()->GetPolicies( 297 policy_bridge()->GetPolicies(
308 PolicyStringCallback("{\"debuggingFeaturesDisabled\":true}")); 298 PolicyStringCallback("{\"debuggingFeaturesDisabled\":true}"));
309 } 299 }
310 300
311 TEST_F(ArcPolicyBridgeTest, MultiplePoliciesTest) { 301 TEST_F(ArcPolicyBridgeTest, MultiplePoliciesTest) {
312 policy_map().Set( 302 policy_map().Set(
313 policy::key::kArcPolicy, policy::POLICY_LEVEL_MANDATORY, 303 policy::key::kArcPolicy, policy::POLICY_LEVEL_MANDATORY,
314 policy::POLICY_SCOPE_USER, policy::POLICY_SOURCE_CLOUD, 304 policy::POLICY_SCOPE_USER, policy::POLICY_SOURCE_CLOUD,
315 base::MakeUnique<base::StringValue>( 305 base::MakeUnique<base::StringValue>(
316 "{\"applications\":" 306 "{\"applications\":"
317 "[{\"packageName\":\"com.google.android.apps.youtube.kids\"," 307 "[{\"packageName\":\"com.google.android.apps.youtube.kids\","
318 "\"installType\":\"REQUIRED\"," 308 "\"installType\":\"REQUIRED\","
319 "\"lockTaskAllowed\":false," 309 "\"lockTaskAllowed\":false,"
320 "\"permissionGrants\":[]" 310 "\"permissionGrants\":[]"
321 "}]," 311 "}],"
322 "\"defaultPermissionPolicy\":\"GRANT\"}"), 312 "\"defaultPermissionPolicy\":\"GRANT\"}"),
323 nullptr); 313 nullptr);
324 policy_map().Set( 314 policy_map().Set(
325 policy::key::kHomepageLocation, policy::POLICY_LEVEL_MANDATORY, 315 policy::key::kHomepageLocation, policy::POLICY_LEVEL_MANDATORY,
326 policy::POLICY_SCOPE_USER, policy::POLICY_SOURCE_CLOUD, 316 policy::POLICY_SCOPE_USER, policy::POLICY_SOURCE_CLOUD,
327 base::MakeUnique<base::StringValue>("http://chromium.org"), nullptr); 317 base::MakeUnique<base::StringValue>("http://chromium.org"), nullptr);
328 policy_map().Set(policy::key::kVideoCaptureAllowed, 318 policy_map().Set(policy::key::kVideoCaptureAllowed,
329 policy::POLICY_LEVEL_MANDATORY, policy::POLICY_SCOPE_USER, 319 policy::POLICY_LEVEL_MANDATORY, policy::POLICY_SCOPE_USER,
330 policy::POLICY_SOURCE_CLOUD, 320 policy::POLICY_SOURCE_CLOUD,
331 base::MakeUnique<base::FundamentalValue>(false), nullptr); 321 base::MakeUnique<base::Value>(false), nullptr);
332 policy_bridge()->GetPolicies(PolicyStringCallback( 322 policy_bridge()->GetPolicies(PolicyStringCallback(
333 "{\"applications\":" 323 "{\"applications\":"
334 "[{\"installType\":\"REQUIRED\"," 324 "[{\"installType\":\"REQUIRED\","
335 "\"lockTaskAllowed\":false," 325 "\"lockTaskAllowed\":false,"
336 "\"packageName\":\"com.google.android.apps.youtube.kids\"," 326 "\"packageName\":\"com.google.android.apps.youtube.kids\","
337 "\"permissionGrants\":[]" 327 "\"permissionGrants\":[]"
338 "}]," 328 "}],"
339 "\"cameraDisabled\":true," 329 "\"cameraDisabled\":true,"
340 "\"defaultPermissionPolicy\":\"GRANT\"" 330 "\"defaultPermissionPolicy\":\"GRANT\""
341 "}")); 331 "}"));
342 } 332 }
343 333
344 // Disabled due to memory leak https://crbug.com/666371.
345 // TODO(poromov): Fix leak and re-enable.
346 TEST_F(ArcPolicyBridgeTest, DISABLED_EmptyReportComplianceTest) {
347 policy_bridge()->ReportCompliance(
348 "", PolicyComplianceCallback(kPolicyCompliantResponse));
349 }
350
351 // Disabled due to memory leak https://crbug.com/666371.
352 // TODO(poromov): Fix leak and re-enable.
353 TEST_F(ArcPolicyBridgeTest, DISABLED_ParsableReportComplianceTest) {
354 policy_bridge()->ReportCompliance(
355 "{\"nonComplianceDetails\" : []}",
356 PolicyComplianceCallback(kPolicyCompliantResponse));
357 }
358
359 // Disabled due to memory leak https://crbug.com/666371.
360 // TODO(poromov): Fix leak and re-enable.
361 TEST_F(ArcPolicyBridgeTest, DISABLED_NonParsableReportComplianceTest) {
362 policy_bridge()->ReportCompliance(
363 "\"nonComplianceDetails\" : [}",
364 PolicyComplianceCallback(kPolicyNonCompliantResponse));
365 }
366
367 // This and the following test send the policies through a mojo connection 334 // This and the following test send the policies through a mojo connection
368 // between a PolicyInstance and the PolicyBridge. 335 // between a PolicyInstance and the PolicyBridge.
369 TEST_F(ArcPolicyBridgeTest, PolicyInstanceUnmanagedTest) { 336 TEST_F(ArcPolicyBridgeTest, PolicyInstanceUnmanagedTest) {
370 policy_bridge()->OverrideIsManagedForTesting(false); 337 policy_bridge()->OverrideIsManagedForTesting(false);
371 policy_instance()->CallGetPolicies(PolicyStringCallback("")); 338 policy_instance()->CallGetPolicies(PolicyStringCallback(""));
372 } 339 }
373 340
374 TEST_F(ArcPolicyBridgeTest, PolicyInstanceManagedTest) { 341 TEST_F(ArcPolicyBridgeTest, PolicyInstanceManagedTest) {
375 policy_instance()->CallGetPolicies(PolicyStringCallback("{}")); 342 policy_instance()->CallGetPolicies(PolicyStringCallback("{}"));
376 } 343 }
377 344
378 } // namespace arc 345 } // namespace arc
OLDNEW
« no previous file with comments | « base/values_unittest.cc ('k') | chrome/browser/chromeos/arc/policy/arc_policy_bridge_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698