From 9a4da64c3f7b535ab518d81cd6b3a25c4b46a61c Mon Sep 17 00:00:00 2001 From: "[CSarp Misoglu" Date: Fri, 30 Dec 2022 10:45:43 +0000 Subject: [PATCH] Implement shadow for UserManager#getMainUser Not having the implementation causes B&R robolectric tests fail with a NPE. Bug: 263981306 Test: atest BackupFrameworksServicesRoboTests Change-Id: I47bf7ba42cf3bd23e472f8c9a21e4e657053ad42 --- .../server/backup/UserBackupManagerServiceTest.java | 4 +++- .../android/server/backup/internal/SetupObserverTest.java | 4 +++- .../server/backup/keyvalue/KeyValueBackupTaskTest.java | 4 +++- .../android/server/testing/shadows/ShadowUserManager.java | 7 +++++++ 4 files changed, 16 insertions(+), 3 deletions(-) diff --git a/services/robotests/backup/src/com/android/server/backup/UserBackupManagerServiceTest.java b/services/robotests/backup/src/com/android/server/backup/UserBackupManagerServiceTest.java index 159285a5ce5e5..2878743d8a5f3 100644 --- a/services/robotests/backup/src/com/android/server/backup/UserBackupManagerServiceTest.java +++ b/services/robotests/backup/src/com/android/server/backup/UserBackupManagerServiceTest.java @@ -67,6 +67,7 @@ import com.android.server.testing.shadows.ShadowBinder; import com.android.server.testing.shadows.ShadowKeyValueBackupJob; import com.android.server.testing.shadows.ShadowKeyValueBackupTask; import com.android.server.testing.shadows.ShadowSystemServiceRegistry; +import com.android.server.testing.shadows.ShadowUserManager; import org.junit.After; import org.junit.Before; @@ -101,7 +102,8 @@ import java.util.List; shadows = { ShadowBackupEligibilityRules.class, ShadowApplicationPackageManager.class, - ShadowSystemServiceRegistry.class + ShadowSystemServiceRegistry.class, + ShadowUserManager.class }) @Presubmit public class UserBackupManagerServiceTest { diff --git a/services/robotests/backup/src/com/android/server/backup/internal/SetupObserverTest.java b/services/robotests/backup/src/com/android/server/backup/internal/SetupObserverTest.java index e49425b003224..ed7bc74e7ceb8 100644 --- a/services/robotests/backup/src/com/android/server/backup/internal/SetupObserverTest.java +++ b/services/robotests/backup/src/com/android/server/backup/internal/SetupObserverTest.java @@ -33,6 +33,7 @@ import com.android.server.backup.UserBackupManagerService; import com.android.server.backup.testing.BackupManagerServiceTestUtils; import com.android.server.testing.shadows.ShadowApplicationPackageManager; import com.android.server.testing.shadows.ShadowSystemServiceRegistry; +import com.android.server.testing.shadows.ShadowUserManager; import org.junit.Before; import org.junit.Test; @@ -56,7 +57,8 @@ import java.io.File; shadows = { ShadowApplicationPackageManager.class, ShadowJobScheduler.class, - ShadowSystemServiceRegistry.class + ShadowSystemServiceRegistry.class, + ShadowUserManager.class }) @Presubmit public class SetupObserverTest { diff --git a/services/robotests/backup/src/com/android/server/backup/keyvalue/KeyValueBackupTaskTest.java b/services/robotests/backup/src/com/android/server/backup/keyvalue/KeyValueBackupTaskTest.java index 6af726910226e..1abcf38baff97 100644 --- a/services/robotests/backup/src/com/android/server/backup/keyvalue/KeyValueBackupTaskTest.java +++ b/services/robotests/backup/src/com/android/server/backup/keyvalue/KeyValueBackupTaskTest.java @@ -128,6 +128,7 @@ import com.android.server.testing.shadows.ShadowBackupDataInput; import com.android.server.testing.shadows.ShadowBackupDataOutput; import com.android.server.testing.shadows.ShadowEventLog; import com.android.server.testing.shadows.ShadowSystemServiceRegistry; +import com.android.server.testing.shadows.ShadowUserManager; import com.google.common.base.Charsets; import com.google.common.truth.IterableSubject; @@ -175,7 +176,8 @@ import java.util.stream.Stream; ShadowBackupDataOutput.class, ShadowEventLog.class, ShadowQueuedWork.class, - ShadowSystemServiceRegistry.class + ShadowSystemServiceRegistry.class, + ShadowUserManager.class }) @Presubmit public class KeyValueBackupTaskTest { diff --git a/services/robotests/src/com/android/server/testing/shadows/ShadowUserManager.java b/services/robotests/src/com/android/server/testing/shadows/ShadowUserManager.java index a9e4ee521f903..16ba21067a629 100644 --- a/services/robotests/src/com/android/server/testing/shadows/ShadowUserManager.java +++ b/services/robotests/src/com/android/server/testing/shadows/ShadowUserManager.java @@ -18,6 +18,7 @@ package com.android.server.testing.shadows; import android.annotation.NonNull; import android.annotation.UserIdInt; +import android.os.UserHandle; import android.os.UserManager; import org.robolectric.annotation.Implementation; @@ -50,6 +51,12 @@ public class ShadowUserManager extends org.robolectric.shadows.ShadowUserManager return profileIds.get(userId).stream().mapToInt(Number::intValue).toArray(); } + /** @see UserManager#getMainUser() */ + @Implementation + public UserHandle getMainUser() { + return null; + } + /** Add a collection of profile IDs, all within the same profile group. */ public void addProfileIds(@UserIdInt int... userIds) { final Set profileGroup = new HashSet<>();