blob: 85835f7034e8dbb74d334e5274f7a9be49b9df4a [file] [log] [blame]
Adam Connors776c5552014-01-09 10:42:56 +00001/*
2 * Copyright (C) 2014 The Android Open Source Project
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16
17package com.android.server.devicepolicy;
18
Makoto Onukicc4bbeb2015-09-17 10:28:24 -070019import com.android.server.devicepolicy.DevicePolicyManagerServiceTestable.OwnersTestable;
20
Makoto Onukic9754cf2015-08-31 11:58:43 -070021import android.content.ComponentName;
Makoto Onuki58b684f2015-09-04 10:48:16 -070022import android.os.UserHandle;
Makoto Onukia18b7682017-05-18 17:24:20 -070023import android.test.suitebuilder.annotation.SmallTest;
Adam Connors776c5552014-01-09 10:42:56 +000024
25/**
26 * Tests for the DeviceOwner object that saves & loads device and policy owner information.
27 * run this test with:
Makoto Onuki58b684f2015-09-04 10:48:16 -070028 m FrameworksServicesTests &&
Makoto Onukic9754cf2015-08-31 11:58:43 -070029 adb install \
30 -r out/target/product/hammerhead/data/app/FrameworksServicesTests/FrameworksServicesTests.apk &&
Makoto Onuki2714d442015-09-02 16:44:42 -070031 adb shell am instrument -e class com.android.server.devicepolicy.OwnersTest \
Makoto Onukic9754cf2015-08-31 11:58:43 -070032 -w com.android.frameworks.servicestests/android.support.test.runner.AndroidJUnitRunner
Makoto Onuki58b684f2015-09-04 10:48:16 -070033
34 (mmma frameworks/base/services/tests/servicestests/ for non-ninja build)
Adam Connors776c5552014-01-09 10:42:56 +000035 */
Makoto Onukia18b7682017-05-18 17:24:20 -070036@SmallTest
Makoto Onukic9754cf2015-08-31 11:58:43 -070037public class OwnersTest extends DpmTestBase {
Makoto Onukic9754cf2015-08-31 11:58:43 -070038 public void testUpgrade01() throws Exception {
Pavel Grafov75c0a892017-05-18 17:28:27 +010039 getServices().addUsers(10, 11, 20, 21);
Makoto Onukic9754cf2015-08-31 11:58:43 -070040
41 // First, migrate.
42 {
Pavel Grafov75c0a892017-05-18 17:28:27 +010043 final OwnersTestable owners = new OwnersTestable(getServices());
Makoto Onukic9754cf2015-08-31 11:58:43 -070044
Makoto Onuki068c54a2015-10-13 14:34:03 -070045 DpmTestUtils.writeToFile(owners.getLegacyConfigFileWithTestOverride(),
46 DpmTestUtils.readAsset(mRealTestContext, "OwnersTest/test01/input.xml"));
Makoto Onukic9754cf2015-08-31 11:58:43 -070047
48 owners.load();
49
50 // The legacy file should be removed.
51 assertFalse(owners.getLegacyConfigFileWithTestOverride().exists());
52
53 // File was empty, so no new files should be created.
54 assertFalse(owners.getDeviceOwnerFileWithTestOverride().exists());
55
56 assertFalse(owners.getProfileOwnerFileWithTestOverride(10).exists());
57 assertFalse(owners.getProfileOwnerFileWithTestOverride(11).exists());
58 assertFalse(owners.getProfileOwnerFileWithTestOverride(20).exists());
59 assertFalse(owners.getProfileOwnerFileWithTestOverride(21).exists());
Makoto Onuki58b684f2015-09-04 10:48:16 -070060
61 assertFalse(owners.hasDeviceOwner());
62 assertEquals(UserHandle.USER_NULL, owners.getDeviceOwnerUserId());
Makoto Onuki58b684f2015-09-04 10:48:16 -070063 assertNull(owners.getSystemUpdatePolicy());
64 assertEquals(0, owners.getProfileOwnerKeys().size());
Makoto Onuki068c54a2015-10-13 14:34:03 -070065
66 assertFalse(owners.getDeviceOwnerUserRestrictionsNeedsMigration());
67 assertFalse(owners.getProfileOwnerUserRestrictionsNeedsMigration(10));
68 assertFalse(owners.getProfileOwnerUserRestrictionsNeedsMigration(11));
69 assertFalse(owners.getProfileOwnerUserRestrictionsNeedsMigration(20));
70 assertFalse(owners.getProfileOwnerUserRestrictionsNeedsMigration(21));
Makoto Onukic9754cf2015-08-31 11:58:43 -070071 }
72
73 // Then re-read and check.
74 {
Pavel Grafov75c0a892017-05-18 17:28:27 +010075 final OwnersTestable owners = new OwnersTestable(getServices());
Makoto Onukic9754cf2015-08-31 11:58:43 -070076 owners.load();
77
78 assertFalse(owners.hasDeviceOwner());
Makoto Onuki58b684f2015-09-04 10:48:16 -070079 assertEquals(UserHandle.USER_NULL, owners.getDeviceOwnerUserId());
Makoto Onukic9754cf2015-08-31 11:58:43 -070080 assertNull(owners.getSystemUpdatePolicy());
81 assertEquals(0, owners.getProfileOwnerKeys().size());
Makoto Onuki068c54a2015-10-13 14:34:03 -070082
83 assertFalse(owners.getDeviceOwnerUserRestrictionsNeedsMigration());
84 assertFalse(owners.getProfileOwnerUserRestrictionsNeedsMigration(10));
85 assertFalse(owners.getProfileOwnerUserRestrictionsNeedsMigration(11));
86 assertFalse(owners.getProfileOwnerUserRestrictionsNeedsMigration(20));
87 assertFalse(owners.getProfileOwnerUserRestrictionsNeedsMigration(21));
Makoto Onukic9754cf2015-08-31 11:58:43 -070088 }
89 }
90
91 public void testUpgrade02() throws Exception {
Pavel Grafov75c0a892017-05-18 17:28:27 +010092 getServices().addUsers(10, 11, 20, 21);
Makoto Onukic9754cf2015-08-31 11:58:43 -070093
94 // First, migrate.
95 {
Pavel Grafov75c0a892017-05-18 17:28:27 +010096 final OwnersTestable owners = new OwnersTestable(getServices());
Makoto Onukic9754cf2015-08-31 11:58:43 -070097
Makoto Onuki068c54a2015-10-13 14:34:03 -070098 DpmTestUtils.writeToFile(owners.getLegacyConfigFileWithTestOverride(),
99 DpmTestUtils.readAsset(mRealTestContext, "OwnersTest/test02/input.xml"));
Makoto Onukic9754cf2015-08-31 11:58:43 -0700100
101 owners.load();
102
103 // The legacy file should be removed.
104 assertFalse(owners.getLegacyConfigFileWithTestOverride().exists());
105
106 assertTrue(owners.getDeviceOwnerFileWithTestOverride().exists()); // TODO Check content
107
108 assertFalse(owners.getProfileOwnerFileWithTestOverride(10).exists());
109 assertFalse(owners.getProfileOwnerFileWithTestOverride(11).exists());
110 assertFalse(owners.getProfileOwnerFileWithTestOverride(20).exists());
111 assertFalse(owners.getProfileOwnerFileWithTestOverride(21).exists());
Makoto Onuki58b684f2015-09-04 10:48:16 -0700112
113 assertTrue(owners.hasDeviceOwner());
114 assertEquals(null, owners.getDeviceOwnerName());
115 assertEquals("com.google.android.testdpc", owners.getDeviceOwnerPackageName());
116 assertEquals(UserHandle.USER_SYSTEM, owners.getDeviceOwnerUserId());
117
Makoto Onuki58b684f2015-09-04 10:48:16 -0700118 assertNull(owners.getSystemUpdatePolicy());
119 assertEquals(0, owners.getProfileOwnerKeys().size());
Makoto Onuki068c54a2015-10-13 14:34:03 -0700120
121 assertTrue(owners.getDeviceOwnerUserRestrictionsNeedsMigration());
122 assertFalse(owners.getProfileOwnerUserRestrictionsNeedsMigration(10));
123 assertFalse(owners.getProfileOwnerUserRestrictionsNeedsMigration(11));
124 assertFalse(owners.getProfileOwnerUserRestrictionsNeedsMigration(20));
125 assertFalse(owners.getProfileOwnerUserRestrictionsNeedsMigration(21));
Makoto Onukic9754cf2015-08-31 11:58:43 -0700126 }
127
128 // Then re-read and check.
129 {
Pavel Grafov75c0a892017-05-18 17:28:27 +0100130 final OwnersTestable owners = new OwnersTestable(getServices());
Makoto Onukic9754cf2015-08-31 11:58:43 -0700131 owners.load();
132
133 assertTrue(owners.hasDeviceOwner());
134 assertEquals(null, owners.getDeviceOwnerName());
135 assertEquals("com.google.android.testdpc", owners.getDeviceOwnerPackageName());
Makoto Onuki58b684f2015-09-04 10:48:16 -0700136 assertEquals(UserHandle.USER_SYSTEM, owners.getDeviceOwnerUserId());
Makoto Onukic9754cf2015-08-31 11:58:43 -0700137
Makoto Onukic9754cf2015-08-31 11:58:43 -0700138 assertNull(owners.getSystemUpdatePolicy());
139 assertEquals(0, owners.getProfileOwnerKeys().size());
Makoto Onuki068c54a2015-10-13 14:34:03 -0700140
141 assertTrue(owners.getDeviceOwnerUserRestrictionsNeedsMigration());
142 assertFalse(owners.getProfileOwnerUserRestrictionsNeedsMigration(10));
143 assertFalse(owners.getProfileOwnerUserRestrictionsNeedsMigration(11));
144 assertFalse(owners.getProfileOwnerUserRestrictionsNeedsMigration(20));
145 assertFalse(owners.getProfileOwnerUserRestrictionsNeedsMigration(21));
Makoto Onukic9754cf2015-08-31 11:58:43 -0700146 }
147 }
148
149 public void testUpgrade03() throws Exception {
Pavel Grafov75c0a892017-05-18 17:28:27 +0100150 getServices().addUsers(10, 11, 20, 21);
Makoto Onukic9754cf2015-08-31 11:58:43 -0700151
152 // First, migrate.
153 {
Pavel Grafov75c0a892017-05-18 17:28:27 +0100154 final OwnersTestable owners = new OwnersTestable(getServices());
Makoto Onukic9754cf2015-08-31 11:58:43 -0700155
Makoto Onuki068c54a2015-10-13 14:34:03 -0700156 DpmTestUtils.writeToFile(owners.getLegacyConfigFileWithTestOverride(),
157 DpmTestUtils.readAsset(mRealTestContext, "OwnersTest/test03/input.xml"));
Makoto Onukic9754cf2015-08-31 11:58:43 -0700158
159 owners.load();
160
161 // The legacy file should be removed.
162 assertFalse(owners.getLegacyConfigFileWithTestOverride().exists());
163
164 assertFalse(owners.getDeviceOwnerFileWithTestOverride().exists());
165
166 assertTrue(owners.getProfileOwnerFileWithTestOverride(10).exists());
167 assertTrue(owners.getProfileOwnerFileWithTestOverride(11).exists());
168 assertFalse(owners.getProfileOwnerFileWithTestOverride(20).exists());
169 assertFalse(owners.getProfileOwnerFileWithTestOverride(21).exists());
Makoto Onuki58b684f2015-09-04 10:48:16 -0700170
171 assertFalse(owners.hasDeviceOwner());
172 assertEquals(UserHandle.USER_NULL, owners.getDeviceOwnerUserId());
Makoto Onuki58b684f2015-09-04 10:48:16 -0700173 assertNull(owners.getSystemUpdatePolicy());
174
175 assertEquals(2, owners.getProfileOwnerKeys().size());
176 assertEquals(new ComponentName("com.google.android.testdpc",
177 "com.google.android.testdpc.DeviceAdminReceiver0"),
178 owners.getProfileOwnerComponent(10));
179 assertEquals("0", owners.getProfileOwnerName(10));
180 assertEquals("com.google.android.testdpc", owners.getProfileOwnerPackage(10));
181
182 assertEquals(new ComponentName("com.google.android.testdpc1", ""),
183 owners.getProfileOwnerComponent(11));
184 assertEquals("1", owners.getProfileOwnerName(11));
185 assertEquals("com.google.android.testdpc1", owners.getProfileOwnerPackage(11));
Makoto Onuki068c54a2015-10-13 14:34:03 -0700186
187 assertFalse(owners.getDeviceOwnerUserRestrictionsNeedsMigration());
188 assertTrue(owners.getProfileOwnerUserRestrictionsNeedsMigration(10));
189 assertTrue(owners.getProfileOwnerUserRestrictionsNeedsMigration(11));
190 assertFalse(owners.getProfileOwnerUserRestrictionsNeedsMigration(20));
191 assertFalse(owners.getProfileOwnerUserRestrictionsNeedsMigration(21));
Makoto Onukic9754cf2015-08-31 11:58:43 -0700192 }
193
194 // Then re-read and check.
195 {
Pavel Grafov75c0a892017-05-18 17:28:27 +0100196 final OwnersTestable owners = new OwnersTestable(getServices());
Makoto Onukic9754cf2015-08-31 11:58:43 -0700197 owners.load();
198
199 assertFalse(owners.hasDeviceOwner());
Makoto Onuki58b684f2015-09-04 10:48:16 -0700200 assertEquals(UserHandle.USER_NULL, owners.getDeviceOwnerUserId());
Makoto Onukic9754cf2015-08-31 11:58:43 -0700201 assertNull(owners.getSystemUpdatePolicy());
202
203 assertEquals(2, owners.getProfileOwnerKeys().size());
204 assertEquals(new ComponentName("com.google.android.testdpc",
205 "com.google.android.testdpc.DeviceAdminReceiver0"),
206 owners.getProfileOwnerComponent(10));
207 assertEquals("0", owners.getProfileOwnerName(10));
208 assertEquals("com.google.android.testdpc", owners.getProfileOwnerPackage(10));
209
210 assertEquals(new ComponentName("com.google.android.testdpc1", ""),
211 owners.getProfileOwnerComponent(11));
212 assertEquals("1", owners.getProfileOwnerName(11));
213 assertEquals("com.google.android.testdpc1", owners.getProfileOwnerPackage(11));
Makoto Onuki068c54a2015-10-13 14:34:03 -0700214
215 assertFalse(owners.getDeviceOwnerUserRestrictionsNeedsMigration());
216 assertTrue(owners.getProfileOwnerUserRestrictionsNeedsMigration(10));
217 assertTrue(owners.getProfileOwnerUserRestrictionsNeedsMigration(11));
218 assertFalse(owners.getProfileOwnerUserRestrictionsNeedsMigration(20));
219 assertFalse(owners.getProfileOwnerUserRestrictionsNeedsMigration(21));
Makoto Onukic9754cf2015-08-31 11:58:43 -0700220 }
221 }
222
Makoto Onuki068c54a2015-10-13 14:34:03 -0700223 /**
224 * Note this also tests {@link Owners#setDeviceOwnerUserRestrictionsMigrated()}
225 * and {@link Owners#setProfileOwnerUserRestrictionsMigrated(int)}.
226 */
Makoto Onukic9754cf2015-08-31 11:58:43 -0700227 public void testUpgrade04() throws Exception {
Pavel Grafov75c0a892017-05-18 17:28:27 +0100228 getServices().addUsers(10, 11, 20, 21);
Makoto Onukic9754cf2015-08-31 11:58:43 -0700229
230 // First, migrate.
231 {
Pavel Grafov75c0a892017-05-18 17:28:27 +0100232 final OwnersTestable owners = new OwnersTestable(getServices());
Makoto Onukic9754cf2015-08-31 11:58:43 -0700233
Makoto Onuki068c54a2015-10-13 14:34:03 -0700234 DpmTestUtils.writeToFile(owners.getLegacyConfigFileWithTestOverride(),
235 DpmTestUtils.readAsset(mRealTestContext, "OwnersTest/test04/input.xml"));
Makoto Onukic9754cf2015-08-31 11:58:43 -0700236
237 owners.load();
238
239 // The legacy file should be removed.
240 assertFalse(owners.getLegacyConfigFileWithTestOverride().exists());
241
242 assertTrue(owners.getDeviceOwnerFileWithTestOverride().exists());
243
244 assertTrue(owners.getProfileOwnerFileWithTestOverride(10).exists());
245 assertTrue(owners.getProfileOwnerFileWithTestOverride(11).exists());
246 assertFalse(owners.getProfileOwnerFileWithTestOverride(20).exists());
247 assertFalse(owners.getProfileOwnerFileWithTestOverride(21).exists());
Makoto Onuki58b684f2015-09-04 10:48:16 -0700248
249 assertTrue(owners.hasDeviceOwner());
250 assertEquals(null, owners.getDeviceOwnerName());
251 assertEquals("com.google.android.testdpc", owners.getDeviceOwnerPackageName());
252 assertEquals(UserHandle.USER_SYSTEM, owners.getDeviceOwnerUserId());
253
Makoto Onuki58b684f2015-09-04 10:48:16 -0700254 assertNotNull(owners.getSystemUpdatePolicy());
255 assertEquals(5, owners.getSystemUpdatePolicy().getPolicyType());
256
257 assertEquals(2, owners.getProfileOwnerKeys().size());
258 assertEquals(new ComponentName("com.google.android.testdpc",
259 "com.google.android.testdpc.DeviceAdminReceiver0"),
260 owners.getProfileOwnerComponent(10));
261 assertEquals("0", owners.getProfileOwnerName(10));
262 assertEquals("com.google.android.testdpc", owners.getProfileOwnerPackage(10));
263
264 assertEquals(new ComponentName("com.google.android.testdpc1", ""),
265 owners.getProfileOwnerComponent(11));
266 assertEquals("1", owners.getProfileOwnerName(11));
267 assertEquals("com.google.android.testdpc1", owners.getProfileOwnerPackage(11));
Makoto Onuki068c54a2015-10-13 14:34:03 -0700268
269 assertTrue(owners.getDeviceOwnerUserRestrictionsNeedsMigration());
270 assertTrue(owners.getProfileOwnerUserRestrictionsNeedsMigration(10));
271 assertTrue(owners.getProfileOwnerUserRestrictionsNeedsMigration(11));
272 assertFalse(owners.getProfileOwnerUserRestrictionsNeedsMigration(20));
273 assertFalse(owners.getProfileOwnerUserRestrictionsNeedsMigration(21));
Makoto Onukic9754cf2015-08-31 11:58:43 -0700274 }
275
276 // Then re-read and check.
277 {
Pavel Grafov75c0a892017-05-18 17:28:27 +0100278 final OwnersTestable owners = new OwnersTestable(getServices());
Makoto Onukic9754cf2015-08-31 11:58:43 -0700279 owners.load();
280
281 assertTrue(owners.hasDeviceOwner());
282 assertEquals(null, owners.getDeviceOwnerName());
283 assertEquals("com.google.android.testdpc", owners.getDeviceOwnerPackageName());
Makoto Onuki58b684f2015-09-04 10:48:16 -0700284 assertEquals(UserHandle.USER_SYSTEM, owners.getDeviceOwnerUserId());
Makoto Onukic9754cf2015-08-31 11:58:43 -0700285
Makoto Onukic9754cf2015-08-31 11:58:43 -0700286 assertNotNull(owners.getSystemUpdatePolicy());
287 assertEquals(5, owners.getSystemUpdatePolicy().getPolicyType());
288
289 assertEquals(2, owners.getProfileOwnerKeys().size());
290 assertEquals(new ComponentName("com.google.android.testdpc",
291 "com.google.android.testdpc.DeviceAdminReceiver0"),
292 owners.getProfileOwnerComponent(10));
293 assertEquals("0", owners.getProfileOwnerName(10));
294 assertEquals("com.google.android.testdpc", owners.getProfileOwnerPackage(10));
295
296 assertEquals(new ComponentName("com.google.android.testdpc1", ""),
297 owners.getProfileOwnerComponent(11));
298 assertEquals("1", owners.getProfileOwnerName(11));
299 assertEquals("com.google.android.testdpc1", owners.getProfileOwnerPackage(11));
Makoto Onuki068c54a2015-10-13 14:34:03 -0700300
301 assertTrue(owners.getDeviceOwnerUserRestrictionsNeedsMigration());
302 assertTrue(owners.getProfileOwnerUserRestrictionsNeedsMigration(10));
303 assertTrue(owners.getProfileOwnerUserRestrictionsNeedsMigration(11));
304 assertFalse(owners.getProfileOwnerUserRestrictionsNeedsMigration(20));
305 assertFalse(owners.getProfileOwnerUserRestrictionsNeedsMigration(21));
306
307 owners.setDeviceOwnerUserRestrictionsMigrated();
308 }
309
310 {
Pavel Grafov75c0a892017-05-18 17:28:27 +0100311 final OwnersTestable owners = new OwnersTestable(getServices());
Makoto Onuki068c54a2015-10-13 14:34:03 -0700312 owners.load();
313
314 assertFalse(owners.getDeviceOwnerUserRestrictionsNeedsMigration());
315 assertTrue(owners.getProfileOwnerUserRestrictionsNeedsMigration(10));
316 assertTrue(owners.getProfileOwnerUserRestrictionsNeedsMigration(11));
317 assertFalse(owners.getProfileOwnerUserRestrictionsNeedsMigration(20));
318 assertFalse(owners.getProfileOwnerUserRestrictionsNeedsMigration(21));
319
320 owners.setProfileOwnerUserRestrictionsMigrated(11);
321 }
322
323 {
Pavel Grafov75c0a892017-05-18 17:28:27 +0100324 final OwnersTestable owners = new OwnersTestable(getServices());
Makoto Onuki068c54a2015-10-13 14:34:03 -0700325 owners.load();
326
327 assertFalse(owners.getDeviceOwnerUserRestrictionsNeedsMigration());
328 assertTrue(owners.getProfileOwnerUserRestrictionsNeedsMigration(10));
329 assertFalse(owners.getProfileOwnerUserRestrictionsNeedsMigration(11));
330 assertFalse(owners.getProfileOwnerUserRestrictionsNeedsMigration(20));
331 assertFalse(owners.getProfileOwnerUserRestrictionsNeedsMigration(21));
332
333 owners.setProfileOwnerUserRestrictionsMigrated(11);
Makoto Onukic9754cf2015-08-31 11:58:43 -0700334 }
335 }
336
337 public void testUpgrade05() throws Exception {
Pavel Grafov75c0a892017-05-18 17:28:27 +0100338 getServices().addUsers(10, 11, 20, 21);
Makoto Onukic9754cf2015-08-31 11:58:43 -0700339
340 // First, migrate.
341 {
Pavel Grafov75c0a892017-05-18 17:28:27 +0100342 final OwnersTestable owners = new OwnersTestable(getServices());
Makoto Onukic9754cf2015-08-31 11:58:43 -0700343
Makoto Onuki068c54a2015-10-13 14:34:03 -0700344 DpmTestUtils.writeToFile(owners.getLegacyConfigFileWithTestOverride(),
345 DpmTestUtils.readAsset(mRealTestContext, "OwnersTest/test05/input.xml"));
Makoto Onukic9754cf2015-08-31 11:58:43 -0700346
347 owners.load();
348
349 // The legacy file should be removed.
350 assertFalse(owners.getLegacyConfigFileWithTestOverride().exists());
351
Makoto Onukia52562c2015-10-01 16:12:31 -0700352 // Note device initializer is no longer supported. No need to write the DO file.
353 assertFalse(owners.getDeviceOwnerFileWithTestOverride().exists());
Makoto Onukic9754cf2015-08-31 11:58:43 -0700354
355 assertFalse(owners.getProfileOwnerFileWithTestOverride(10).exists());
356 assertFalse(owners.getProfileOwnerFileWithTestOverride(11).exists());
357 assertFalse(owners.getProfileOwnerFileWithTestOverride(20).exists());
Makoto Onuki58b684f2015-09-04 10:48:16 -0700358
359 assertFalse(owners.hasDeviceOwner());
360 assertEquals(UserHandle.USER_NULL, owners.getDeviceOwnerUserId());
361
Makoto Onuki58b684f2015-09-04 10:48:16 -0700362
363 assertNull(owners.getSystemUpdatePolicy());
364 assertEquals(0, owners.getProfileOwnerKeys().size());
Makoto Onuki068c54a2015-10-13 14:34:03 -0700365
366 assertFalse(owners.getDeviceOwnerUserRestrictionsNeedsMigration());
367 assertFalse(owners.getProfileOwnerUserRestrictionsNeedsMigration(10));
368 assertFalse(owners.getProfileOwnerUserRestrictionsNeedsMigration(11));
369 assertFalse(owners.getProfileOwnerUserRestrictionsNeedsMigration(20));
370 assertFalse(owners.getProfileOwnerUserRestrictionsNeedsMigration(21));
Makoto Onukic9754cf2015-08-31 11:58:43 -0700371 }
372
373 // Then re-read and check.
374 {
Pavel Grafov75c0a892017-05-18 17:28:27 +0100375 final OwnersTestable owners = new OwnersTestable(getServices());
Makoto Onukic9754cf2015-08-31 11:58:43 -0700376 owners.load();
377
378 assertFalse(owners.hasDeviceOwner());
Makoto Onuki58b684f2015-09-04 10:48:16 -0700379 assertEquals(UserHandle.USER_NULL, owners.getDeviceOwnerUserId());
Makoto Onukic9754cf2015-08-31 11:58:43 -0700380
Makoto Onukic9754cf2015-08-31 11:58:43 -0700381
382 assertNull(owners.getSystemUpdatePolicy());
383 assertEquals(0, owners.getProfileOwnerKeys().size());
Makoto Onuki068c54a2015-10-13 14:34:03 -0700384
385 assertFalse(owners.getDeviceOwnerUserRestrictionsNeedsMigration());
386 assertFalse(owners.getProfileOwnerUserRestrictionsNeedsMigration(10));
387 assertFalse(owners.getProfileOwnerUserRestrictionsNeedsMigration(11));
388 assertFalse(owners.getProfileOwnerUserRestrictionsNeedsMigration(20));
389 assertFalse(owners.getProfileOwnerUserRestrictionsNeedsMigration(21));
Makoto Onukic9754cf2015-08-31 11:58:43 -0700390 }
391 }
392
393 public void testUpgrade06() throws Exception {
Pavel Grafov75c0a892017-05-18 17:28:27 +0100394 getServices().addUsers(10, 11, 20, 21);
Makoto Onukic9754cf2015-08-31 11:58:43 -0700395
396 // First, migrate.
397 {
Pavel Grafov75c0a892017-05-18 17:28:27 +0100398 final OwnersTestable owners = new OwnersTestable(getServices());
Makoto Onukic9754cf2015-08-31 11:58:43 -0700399
Makoto Onuki068c54a2015-10-13 14:34:03 -0700400 DpmTestUtils.writeToFile(owners.getLegacyConfigFileWithTestOverride(),
401 DpmTestUtils.readAsset(mRealTestContext, "OwnersTest/test06/input.xml"));
Makoto Onukic9754cf2015-08-31 11:58:43 -0700402
403 owners.load();
404
405 // The legacy file should be removed.
406 assertFalse(owners.getLegacyConfigFileWithTestOverride().exists());
407
408 assertTrue(owners.getDeviceOwnerFileWithTestOverride().exists());
409
410 assertFalse(owners.getProfileOwnerFileWithTestOverride(10).exists());
411 assertFalse(owners.getProfileOwnerFileWithTestOverride(11).exists());
412 assertFalse(owners.getProfileOwnerFileWithTestOverride(20).exists());
Makoto Onuki58b684f2015-09-04 10:48:16 -0700413
414 assertFalse(owners.hasDeviceOwner());
415 assertEquals(UserHandle.USER_NULL, owners.getDeviceOwnerUserId());
Makoto Onuki58b684f2015-09-04 10:48:16 -0700416 assertEquals(0, owners.getProfileOwnerKeys().size());
417
418 assertNotNull(owners.getSystemUpdatePolicy());
419 assertEquals(5, owners.getSystemUpdatePolicy().getPolicyType());
Makoto Onuki068c54a2015-10-13 14:34:03 -0700420
421 assertFalse(owners.getDeviceOwnerUserRestrictionsNeedsMigration());
422 assertFalse(owners.getProfileOwnerUserRestrictionsNeedsMigration(10));
423 assertFalse(owners.getProfileOwnerUserRestrictionsNeedsMigration(11));
424 assertFalse(owners.getProfileOwnerUserRestrictionsNeedsMigration(20));
425 assertFalse(owners.getProfileOwnerUserRestrictionsNeedsMigration(21));
Makoto Onukic9754cf2015-08-31 11:58:43 -0700426 }
427
428 // Then re-read and check.
429 {
Pavel Grafov75c0a892017-05-18 17:28:27 +0100430 final OwnersTestable owners = new OwnersTestable(getServices());
Makoto Onukic9754cf2015-08-31 11:58:43 -0700431 owners.load();
432
433 assertFalse(owners.hasDeviceOwner());
Makoto Onuki58b684f2015-09-04 10:48:16 -0700434 assertEquals(UserHandle.USER_NULL, owners.getDeviceOwnerUserId());
Makoto Onukic9754cf2015-08-31 11:58:43 -0700435 assertEquals(0, owners.getProfileOwnerKeys().size());
436
437 assertNotNull(owners.getSystemUpdatePolicy());
438 assertEquals(5, owners.getSystemUpdatePolicy().getPolicyType());
Makoto Onuki068c54a2015-10-13 14:34:03 -0700439
440 assertFalse(owners.getDeviceOwnerUserRestrictionsNeedsMigration());
441 assertFalse(owners.getProfileOwnerUserRestrictionsNeedsMigration(10));
442 assertFalse(owners.getProfileOwnerUserRestrictionsNeedsMigration(11));
443 assertFalse(owners.getProfileOwnerUserRestrictionsNeedsMigration(20));
444 assertFalse(owners.getProfileOwnerUserRestrictionsNeedsMigration(21));
Makoto Onukic9754cf2015-08-31 11:58:43 -0700445 }
446 }
447
448 public void testRemoveExistingFiles() throws Exception {
Pavel Grafov75c0a892017-05-18 17:28:27 +0100449 getServices().addUsers(10, 11, 20, 21);
Makoto Onukic9754cf2015-08-31 11:58:43 -0700450
Pavel Grafov75c0a892017-05-18 17:28:27 +0100451 final OwnersTestable owners = new OwnersTestable(getServices());
Makoto Onukic9754cf2015-08-31 11:58:43 -0700452
453 // First, migrate to create new-style config files.
Makoto Onuki068c54a2015-10-13 14:34:03 -0700454 DpmTestUtils.writeToFile(owners.getLegacyConfigFileWithTestOverride(),
455 DpmTestUtils.readAsset(mRealTestContext, "OwnersTest/test04/input.xml"));
Makoto Onukic9754cf2015-08-31 11:58:43 -0700456
457 owners.load();
458
459 assertFalse(owners.getLegacyConfigFileWithTestOverride().exists());
460
461 assertTrue(owners.getDeviceOwnerFileWithTestOverride().exists());
462 assertTrue(owners.getProfileOwnerFileWithTestOverride(10).exists());
463 assertTrue(owners.getProfileOwnerFileWithTestOverride(11).exists());
464
465 // Then clear all information and save.
Makoto Onukic9754cf2015-08-31 11:58:43 -0700466 owners.clearDeviceOwner();
467 owners.clearSystemUpdatePolicy();
468 owners.removeProfileOwner(10);
469 owners.removeProfileOwner(11);
470
471 owners.writeDeviceOwner();
472 owners.writeProfileOwner(10);
473 owners.writeProfileOwner(11);
474 owners.writeProfileOwner(20);
475 owners.writeProfileOwner(21);
476
477 // Now all files should be removed.
478 assertFalse(owners.getDeviceOwnerFileWithTestOverride().exists());
479 assertFalse(owners.getProfileOwnerFileWithTestOverride(10).exists());
480 assertFalse(owners.getProfileOwnerFileWithTestOverride(11).exists());
481 }
Esteban Talavera8add5722014-12-23 17:15:29 +0000482}