Merge "Fix NotificationManagerServiceTest for AAOS." into sc-dev
This commit is contained in:
@@ -16,9 +16,11 @@
|
|||||||
|
|
||||||
package com.android.server.notification;
|
package com.android.server.notification;
|
||||||
|
|
||||||
|
import android.app.ActivityManager;
|
||||||
import android.net.Uri;
|
import android.net.Uri;
|
||||||
import android.os.IBinder;
|
import android.os.IBinder;
|
||||||
import android.os.UserHandle;
|
import android.os.UserHandle;
|
||||||
|
import android.os.UserManager;
|
||||||
import android.util.ArraySet;
|
import android.util.ArraySet;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -74,7 +76,9 @@ public final class InlineReplyUriRecord {
|
|||||||
*/
|
*/
|
||||||
public int getUserId() {
|
public int getUserId() {
|
||||||
int userId = mUser.getIdentifier();
|
int userId = mUser.getIdentifier();
|
||||||
if (userId == UserHandle.USER_ALL) {
|
if (UserManager.isHeadlessSystemUserMode() && userId == UserHandle.USER_ALL) {
|
||||||
|
return ActivityManager.getCurrentUser();
|
||||||
|
} else if (userId == UserHandle.USER_ALL) {
|
||||||
return UserHandle.USER_SYSTEM;
|
return UserHandle.USER_SYSTEM;
|
||||||
} else {
|
} else {
|
||||||
return userId;
|
return userId;
|
||||||
|
|||||||
@@ -233,6 +233,7 @@ import java.util.function.Consumer;
|
|||||||
@RunWithLooper
|
@RunWithLooper
|
||||||
public class NotificationManagerServiceTest extends UiServiceTestCase {
|
public class NotificationManagerServiceTest extends UiServiceTestCase {
|
||||||
private static final String TEST_CHANNEL_ID = "NotificationManagerServiceTestChannelId";
|
private static final String TEST_CHANNEL_ID = "NotificationManagerServiceTestChannelId";
|
||||||
|
private static final int UID_HEADLESS = 1000000;
|
||||||
|
|
||||||
private final int mUid = Binder.getCallingUid();
|
private final int mUid = Binder.getCallingUid();
|
||||||
private TestableNotificationManagerService mService;
|
private TestableNotificationManagerService mService;
|
||||||
@@ -6758,7 +6759,11 @@ public class NotificationManagerServiceTest extends UiServiceTestCase {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testGrantInlineReplyUriPermission_recordExists() throws Exception {
|
public void testGrantInlineReplyUriPermission_recordExists() throws Exception {
|
||||||
NotificationRecord nr = generateNotificationRecord(mTestNotificationChannel, 0);
|
int userId = UserManager.isHeadlessSystemUserMode()
|
||||||
|
? UserHandle.getUserId(UID_HEADLESS)
|
||||||
|
: USER_SYSTEM;
|
||||||
|
|
||||||
|
NotificationRecord nr = generateNotificationRecord(mTestNotificationChannel, userId);
|
||||||
mBinderService.enqueueNotificationWithTag(PKG, PKG, "tag",
|
mBinderService.enqueueNotificationWithTag(PKG, PKG, "tag",
|
||||||
nr.getSbn().getId(), nr.getSbn().getNotification(), nr.getSbn().getUserId());
|
nr.getSbn().getId(), nr.getSbn().getNotification(), nr.getSbn().getUserId());
|
||||||
waitForIdle();
|
waitForIdle();
|
||||||
@@ -6783,7 +6788,11 @@ public class NotificationManagerServiceTest extends UiServiceTestCase {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testGrantInlineReplyUriPermission_noRecordExists() throws Exception {
|
public void testGrantInlineReplyUriPermission_noRecordExists() throws Exception {
|
||||||
NotificationRecord nr = generateNotificationRecord(mTestNotificationChannel, 0);
|
int userId = UserManager.isHeadlessSystemUserMode()
|
||||||
|
? UserHandle.getUserId(UID_HEADLESS)
|
||||||
|
: USER_SYSTEM;
|
||||||
|
|
||||||
|
NotificationRecord nr = generateNotificationRecord(mTestNotificationChannel, userId);
|
||||||
waitForIdle();
|
waitForIdle();
|
||||||
|
|
||||||
// No notifications exist for the given record
|
// No notifications exist for the given record
|
||||||
@@ -6827,7 +6836,9 @@ public class NotificationManagerServiceTest extends UiServiceTestCase {
|
|||||||
// Target user for the grant is USER_ALL instead of USER_SYSTEM
|
// Target user for the grant is USER_ALL instead of USER_SYSTEM
|
||||||
verify(mUgm, times(1)).grantUriPermissionFromOwner(any(),
|
verify(mUgm, times(1)).grantUriPermissionFromOwner(any(),
|
||||||
eq(nr.getSbn().getUid()), eq(nr.getSbn().getPackageName()), eq(uri), anyInt(),
|
eq(nr.getSbn().getUid()), eq(nr.getSbn().getPackageName()), eq(uri), anyInt(),
|
||||||
anyInt(), eq(UserHandle.USER_SYSTEM));
|
anyInt(), UserManager.isHeadlessSystemUserMode()
|
||||||
|
? eq(UserHandle.getUserId(UID_HEADLESS))
|
||||||
|
: eq(USER_SYSTEM));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@@ -6870,7 +6881,11 @@ public class NotificationManagerServiceTest extends UiServiceTestCase {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testClearInlineReplyUriPermission_uriRecordExists() throws Exception {
|
public void testClearInlineReplyUriPermission_uriRecordExists() throws Exception {
|
||||||
NotificationRecord nr = generateNotificationRecord(mTestNotificationChannel, 0);
|
int userId = UserManager.isHeadlessSystemUserMode()
|
||||||
|
? UserHandle.getUserId(UID_HEADLESS)
|
||||||
|
: USER_SYSTEM;
|
||||||
|
|
||||||
|
NotificationRecord nr = generateNotificationRecord(mTestNotificationChannel, userId);
|
||||||
reset(mPackageManager);
|
reset(mPackageManager);
|
||||||
|
|
||||||
Uri uri1 = ContentUris.withAppendedId(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, 1);
|
Uri uri1 = ContentUris.withAppendedId(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, 1);
|
||||||
@@ -6932,7 +6947,10 @@ public class NotificationManagerServiceTest extends UiServiceTestCase {
|
|||||||
|
|
||||||
// permissionOwner destroyed for USER_SYSTEM, not USER_ALL
|
// permissionOwner destroyed for USER_SYSTEM, not USER_ALL
|
||||||
verify(mUgmInternal, times(1)).revokeUriPermissionFromOwner(
|
verify(mUgmInternal, times(1)).revokeUriPermissionFromOwner(
|
||||||
eq(record.getPermissionOwner()), eq(null), eq(~0), eq(USER_SYSTEM));
|
eq(record.getPermissionOwner()), eq(null), eq(~0),
|
||||||
|
UserManager.isHeadlessSystemUserMode()
|
||||||
|
? eq(UserHandle.getUserId(UID_HEADLESS))
|
||||||
|
: eq(USER_SYSTEM));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@@ -7425,6 +7443,10 @@ public class NotificationManagerServiceTest extends UiServiceTestCase {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void createConversationNotificationChannel() throws Exception {
|
public void createConversationNotificationChannel() throws Exception {
|
||||||
|
int userId = UserManager.isHeadlessSystemUserMode()
|
||||||
|
? UserHandle.getUserId(UID_HEADLESS)
|
||||||
|
: USER_SYSTEM;
|
||||||
|
|
||||||
NotificationChannel original = new NotificationChannel("a", "a", IMPORTANCE_HIGH);
|
NotificationChannel original = new NotificationChannel("a", "a", IMPORTANCE_HIGH);
|
||||||
original.setAllowBubbles(!original.canBubble());
|
original.setAllowBubbles(!original.canBubble());
|
||||||
original.setShowBadge(!original.canShowBadge());
|
original.setShowBadge(!original.canShowBadge());
|
||||||
@@ -7443,7 +7465,7 @@ public class NotificationManagerServiceTest extends UiServiceTestCase {
|
|||||||
PKG, mUid, orig, "friend");
|
PKG, mUid, orig, "friend");
|
||||||
|
|
||||||
NotificationChannel friendChannel = mBinderService.getConversationNotificationChannel(
|
NotificationChannel friendChannel = mBinderService.getConversationNotificationChannel(
|
||||||
PKG, 0, PKG, original.getId(), false, "friend");
|
PKG, userId, PKG, original.getId(), false, "friend");
|
||||||
|
|
||||||
assertEquals(original.getName(), friendChannel.getName());
|
assertEquals(original.getName(), friendChannel.getName());
|
||||||
assertEquals(original.getId(), friendChannel.getParentChannelId());
|
assertEquals(original.getId(), friendChannel.getParentChannelId());
|
||||||
|
|||||||
Reference in New Issue
Block a user