Loading core/java/android/app/NotificationHistory.java +4 −0 Original line number Diff line number Diff line Loading @@ -256,6 +256,10 @@ public final class NotificationHistory implements Parcelable { mParcel.setDataPosition(0); mParcel.appendFrom(data, data.dataPosition(), listByteLength); mParcel.setDataSize(mParcel.dataPosition()); if (positionInParcel > mParcel.dataSize()) { throw new IllegalStateException( "Obtained an invalid position value(" + positionInParcel + " from Parcel."); } mParcel.setDataPosition(positionInParcel); } } Loading packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/row/NotificationGutsManagerWithScenesTest.kt +1 −0 Original line number Diff line number Diff line Loading @@ -84,6 +84,7 @@ import org.junit.Assert.assertTrue import org.junit.Before import org.junit.Test import org.junit.runner.RunWith import org.mockito.ArgumentMatchers import org.mockito.ArgumentMatchers.anyBoolean import org.mockito.ArgumentMatchers.anyInt import org.mockito.Mock Loading services/tests/wmtests/src/com/android/server/wm/BackgroundActivityStartControllerExemptionTests.java +53 −42 Original line number Diff line number Diff line Loading @@ -271,7 +271,7 @@ public class BackgroundActivityStartControllerExemptionTests { // setup state when(mVisibleActivityProcessTracker.hasVisibleActivity(eq(callingUid))).thenReturn(true); when(mVisibleActivityProcessTracker.hasVisibleNotPinnedActivity(eq(callingUid))) .thenReturn(true); .thenReturn(false); when(mService.getBalAppSwitchesState()).thenReturn(APP_SWITCH_ALLOW); // prepare call Loading @@ -284,7 +284,7 @@ public class BackgroundActivityStartControllerExemptionTests { originatingPendingIntent, allowBalExemptionForSystemProcess, mResultRecord, intent, checkedOptions); assertThat(balState.toString()).contains("callingUidHasVisibleActivity: true"); assertThat(balState.toString()).contains("callingUidHasVisibleNotPinnedActivity: true"); assertThat(balState.toString()).contains("callingUidHasVisibleNotPinnedActivity: false"); assertThat(balState.toString()).contains("callingUidHasNonAppVisibleWindow: false"); // call Loading @@ -295,11 +295,11 @@ public class BackgroundActivityStartControllerExemptionTests { // assertions assertWithMessage(balState + " -> " + callerVerdict) .that(callerVerdict.getCode()) .isEqualTo(BAL_ALLOW_VISIBLE_WINDOW); .isEqualTo(BAL_BLOCK); } @Test public void testCaller_appHasVisibleWindow() { public void testCaller_appHasVisiblePinnedWindow() { int callingUid = REGULAR_UID_1; int callingPid = REGULAR_PID_1; final String callingPackage = REGULAR_PACKAGE_1; Loading @@ -309,7 +309,7 @@ public class BackgroundActivityStartControllerExemptionTests { // setup state when(mVisibleActivityProcessTracker.hasVisibleActivity(eq(callingUid))).thenReturn(true); when(mVisibleActivityProcessTracker.hasVisibleNotPinnedActivity(eq(callingUid))) .thenReturn(false); .thenReturn(true); when(mService.getBalAppSwitchesState()).thenReturn(APP_SWITCH_ALLOW); // prepare call Loading @@ -322,7 +322,7 @@ public class BackgroundActivityStartControllerExemptionTests { originatingPendingIntent, allowBalExemptionForSystemProcess, mResultRecord, intent, checkedOptions); assertThat(balState.toString()).contains("callingUidHasVisibleActivity: true"); assertThat(balState.toString()).contains("callingUidHasVisibleNotPinnedActivity: false"); assertThat(balState.toString()).contains("callingUidHasVisibleNotPinnedActivity: true"); assertThat(balState.toString()).contains("callingUidHasNonAppVisibleWindow: false"); // call Loading @@ -333,11 +333,11 @@ public class BackgroundActivityStartControllerExemptionTests { // assertions assertWithMessage(balState + " -> " + callerVerdict) .that(callerVerdict.getCode()) .isEqualTo(BAL_BLOCK); .isEqualTo(BAL_ALLOW_VISIBLE_WINDOW); } @Test public void testCaller_appHasVisiblePinnedWindow() { public void testRealCaller_appHasVisibleWindow() { int callingUid = REGULAR_UID_1; int callingPid = REGULAR_PID_1; final String callingPackage = REGULAR_PACKAGE_1; Loading @@ -345,9 +345,10 @@ public class BackgroundActivityStartControllerExemptionTests { int realCallingPid = REGULAR_PID_2; // setup state when(mVisibleActivityProcessTracker.hasVisibleActivity(eq(callingUid))).thenReturn(true); when(mVisibleActivityProcessTracker.hasVisibleNotPinnedActivity(eq(callingUid))) when(mVisibleActivityProcessTracker.hasVisibleActivity(eq(realCallingUid))) .thenReturn(true); when(mVisibleActivityProcessTracker.hasVisibleNotPinnedActivity(eq(realCallingUid))) .thenReturn(false); when(mService.getBalAppSwitchesState()).thenReturn(APP_SWITCH_ALLOW); // prepare call Loading @@ -360,23 +361,21 @@ public class BackgroundActivityStartControllerExemptionTests { callingPid, callingPackage, realCallingUid, realCallingPid, mCallerApp, originatingPendingIntent, allowBalExemptionForSystemProcess, mResultRecord, intent, checkedOptions); assertThat(balState.toString()).contains("callingUidHasVisibleActivity: true"); assertThat(balState.toString()).contains("callingUidHasVisibleNotPinnedActivity: true"); assertThat(balState.toString()).contains("callingUidHasNonAppVisibleWindow: false"); assertThat(balState.toString()).contains("realCallingUidHasVisibleActivity: true"); assertThat(balState.toString()).contains("realCallingUidHasNonAppVisibleWindow: false"); // call BalVerdict callerVerdict = mController.checkBackgroundActivityStartAllowedByCaller( BalVerdict realCallerVerdict = mController.checkBackgroundActivityStartAllowedBySender( balState); balState.setResultForCaller(callerVerdict); balState.setResultForRealCaller(realCallerVerdict); // assertions assertWithMessage(balState + " -> " + callerVerdict) .that(callerVerdict.getCode()) .isEqualTo(BAL_ALLOW_VISIBLE_WINDOW); assertWithMessage(balState.toString()).that(realCallerVerdict.getCode()).isEqualTo( BAL_ALLOW_NON_APP_VISIBLE_WINDOW); } @Test public void testRealCaller_appHasVisibleWindow() { public void testCaller_appHasNonAppVisibleWindow() { int callingUid = REGULAR_UID_1; int callingPid = REGULAR_PID_1; final String callingPackage = REGULAR_PACKAGE_1; Loading @@ -384,8 +383,7 @@ public class BackgroundActivityStartControllerExemptionTests { int realCallingPid = REGULAR_PID_2; // setup state when(mVisibleActivityProcessTracker.hasVisibleActivity(eq(realCallingUid))).thenReturn( true); mActiveUids.onNonAppSurfaceVisibilityChanged(callingUid, true); when(mService.getBalAppSwitchesState()).thenReturn(APP_SWITCH_ALLOW); // prepare call Loading @@ -398,21 +396,21 @@ public class BackgroundActivityStartControllerExemptionTests { callingPid, callingPackage, realCallingUid, realCallingPid, mCallerApp, originatingPendingIntent, allowBalExemptionForSystemProcess, mResultRecord, intent, checkedOptions); assertThat(balState.toString()).contains("realCallingUidHasVisibleActivity: true"); assertThat(balState.toString()).contains("realCallingUidHasNonAppVisibleWindow: false"); assertThat(balState.toString()).contains("callingUidHasVisibleActivity: false"); assertThat(balState.toString()).contains("callingUidHasNonAppVisibleWindow: true"); // call BalVerdict realCallerVerdict = mController.checkBackgroundActivityStartAllowedBySender( BalVerdict callerVerdict = mController.checkBackgroundActivityStartAllowedByCaller( balState); balState.setResultForRealCaller(realCallerVerdict); balState.setResultForCaller(callerVerdict); // assertions assertWithMessage(balState.toString()).that(realCallerVerdict.getCode()).isEqualTo( assertWithMessage(balState.toString()).that(callerVerdict.getCode()).isEqualTo( BAL_ALLOW_NON_APP_VISIBLE_WINDOW); } @Test public void testCaller_appHasNonAppVisibleWindow() { public void testRealCaller_appHasNonAppVisibleWindow() { int callingUid = REGULAR_UID_1; int callingPid = REGULAR_PID_1; final String callingPackage = REGULAR_PACKAGE_1; Loading @@ -420,34 +418,36 @@ public class BackgroundActivityStartControllerExemptionTests { int realCallingPid = REGULAR_PID_2; // setup state mActiveUids.onNonAppSurfaceVisibilityChanged(callingUid, true); mActiveUids.onNonAppSurfaceVisibilityChanged(realCallingUid, true); when(mService.getBalAppSwitchesState()).thenReturn(APP_SWITCH_ALLOW); // prepare call PendingIntentRecord originatingPendingIntent = mPendingIntentRecord; BackgroundStartPrivileges allowBalExemptionForSystemProcess = BackgroundStartPrivileges.NONE; boolean allowBalExemptionForSystemProcess = false; Intent intent = TEST_INTENT; ActivityOptions checkedOptions = mCheckedOptions; BackgroundActivityStartController.BalState balState = mController.new BalState(callingUid, callingPid, callingPackage, realCallingUid, realCallingPid, mCallerApp, originatingPendingIntent, allowBalExemptionForSystemProcess, mResultRecord, intent, checkedOptions); assertThat(balState.toString()).contains("callingUidHasVisibleActivity: false"); assertThat(balState.toString()).contains("callingUidHasNonAppVisibleWindow: true"); assertThat(balState.toString()).contains("realCallingUidHasVisibleActivity: true"); assertThat(balState.toString()) .contains("realCallingUidHasVisibleNotPinnedActivity: false"); assertThat(balState.toString()).contains("realCallingUidHasNonAppVisibleWindow: false"); // call BalVerdict callerVerdict = mController.checkBackgroundActivityStartAllowedByCaller( BalVerdict realCallerVerdict = mController.checkBackgroundActivityStartAllowedByRealCaller( balState); balState.setResultForCaller(callerVerdict); balState.setResultForRealCaller(realCallerVerdict); // assertions assertWithMessage(balState.toString()).that(callerVerdict.getCode()).isEqualTo( BAL_ALLOW_NON_APP_VISIBLE_WINDOW); assertWithMessage(balState + " -> " + realCallerVerdict) .that(realCallerVerdict.getCode()) .isEqualTo(BAL_BLOCK); } @Test public void testRealCaller_appHasNonAppVisibleWindow() { public void testRealCaller_appHasNotPinnedVisibleWindow() { int callingUid = REGULAR_UID_1; int callingPid = REGULAR_PID_1; final String callingPackage = REGULAR_PACKAGE_1; Loading @@ -455,7 +455,10 @@ public class BackgroundActivityStartControllerExemptionTests { int realCallingPid = REGULAR_PID_2; // setup state mActiveUids.onNonAppSurfaceVisibilityChanged(realCallingUid, true); when(mVisibleActivityProcessTracker.hasVisibleActivity(eq(realCallingUid))) .thenReturn(true); when(mVisibleActivityProcessTracker.hasVisibleNotPinnedActivity(eq(realCallingUid))) .thenReturn(true); when(mService.getBalAppSwitchesState()).thenReturn(APP_SWITCH_ALLOW); // prepare call Loading @@ -468,6 +471,7 @@ public class BackgroundActivityStartControllerExemptionTests { originatingPendingIntent, allowBalExemptionForSystemProcess, mResultRecord, intent, checkedOptions); assertThat(balState.toString()).contains("realCallingUidHasVisibleActivity: true"); assertThat(balState.toString()).contains("realCallingUidHasVisibleNotPinnedActivity: true"); assertThat(balState.toString()).contains("realCallingUidHasNonAppVisibleWindow: false"); // call Loading @@ -476,8 +480,9 @@ public class BackgroundActivityStartControllerExemptionTests { balState.setResultForRealCaller(realCallerVerdict); // assertions assertWithMessage(balState.toString()).that(realCallerVerdict.getCode()).isEqualTo( BAL_ALLOW_VISIBLE_WINDOW); assertWithMessage(balState + " -> " + realCallerVerdict) .that(realCallerVerdict.getCode()) .isEqualTo(BAL_ALLOW_VISIBLE_WINDOW); } @Test Loading Loading @@ -561,6 +566,8 @@ public class BackgroundActivityStartControllerExemptionTests { // setup state when(mVisibleActivityProcessTracker.hasVisibleActivity(eq(callingUid))).thenReturn(true); when(mVisibleActivityProcessTracker.hasVisibleNotPinnedActivity(eq(callingUid))) .thenReturn(true); when(mService.getBalAppSwitchesState()).thenReturn(APP_SWITCH_ALLOW); // prepare call Loading @@ -575,6 +582,7 @@ public class BackgroundActivityStartControllerExemptionTests { originatingPendingIntent, allowBalExemptionForSystemProcess, mResultRecord, intent, checkedOptions); assertThat(balState.toString()).contains("callingUidHasVisibleActivity: true"); assertThat(balState.toString()).contains("callingUidHasVisibleNotPinnedActivity: true"); assertThat(balState.toString()).contains("callingUidHasNonAppVisibleWindow: false"); // call Loading @@ -597,8 +605,10 @@ public class BackgroundActivityStartControllerExemptionTests { int realCallingPid = REGULAR_PID_2; // setup state when(mVisibleActivityProcessTracker.hasVisibleActivity(eq(realCallingUid))).thenReturn( true); when(mVisibleActivityProcessTracker.hasVisibleActivity(eq(realCallingUid))) .thenReturn(true); when(mVisibleActivityProcessTracker.hasVisibleNotPinnedActivity(eq(realCallingUid))) .thenReturn(true); when(mService.getBalAppSwitchesState()).thenReturn(APP_SWITCH_ALLOW); // prepare call Loading @@ -613,6 +623,7 @@ public class BackgroundActivityStartControllerExemptionTests { originatingPendingIntent, allowBalExemptionForSystemProcess, mResultRecord, intent, checkedOptions); assertThat(balState.toString()).contains("realCallingUidHasVisibleActivity: true"); assertThat(balState.toString()).contains("realCallingUidHasVisibleNotPinnedActivity: true"); assertThat(balState.toString()).contains("realCallingUidHasNonAppVisibleWindow: false"); // call Loading services/tests/wmtests/src/com/android/server/wm/VisibleActivityProcessTrackerTests.java +0 −1 Original line number Diff line number Diff line Loading @@ -69,7 +69,6 @@ public class VisibleActivityProcessTrackerTests extends WindowTestsBase { assertThat(mTracker.hasVisibleActivity(wpc.mUid)).isFalse(); } @Test public void hasVisibleNotPinnedActivity_whenProcessHasNoActivities_returnsFalse() { WindowProcessController wpc = createWindowProcessController(); Loading Loading
core/java/android/app/NotificationHistory.java +4 −0 Original line number Diff line number Diff line Loading @@ -256,6 +256,10 @@ public final class NotificationHistory implements Parcelable { mParcel.setDataPosition(0); mParcel.appendFrom(data, data.dataPosition(), listByteLength); mParcel.setDataSize(mParcel.dataPosition()); if (positionInParcel > mParcel.dataSize()) { throw new IllegalStateException( "Obtained an invalid position value(" + positionInParcel + " from Parcel."); } mParcel.setDataPosition(positionInParcel); } } Loading
packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/row/NotificationGutsManagerWithScenesTest.kt +1 −0 Original line number Diff line number Diff line Loading @@ -84,6 +84,7 @@ import org.junit.Assert.assertTrue import org.junit.Before import org.junit.Test import org.junit.runner.RunWith import org.mockito.ArgumentMatchers import org.mockito.ArgumentMatchers.anyBoolean import org.mockito.ArgumentMatchers.anyInt import org.mockito.Mock Loading
services/tests/wmtests/src/com/android/server/wm/BackgroundActivityStartControllerExemptionTests.java +53 −42 Original line number Diff line number Diff line Loading @@ -271,7 +271,7 @@ public class BackgroundActivityStartControllerExemptionTests { // setup state when(mVisibleActivityProcessTracker.hasVisibleActivity(eq(callingUid))).thenReturn(true); when(mVisibleActivityProcessTracker.hasVisibleNotPinnedActivity(eq(callingUid))) .thenReturn(true); .thenReturn(false); when(mService.getBalAppSwitchesState()).thenReturn(APP_SWITCH_ALLOW); // prepare call Loading @@ -284,7 +284,7 @@ public class BackgroundActivityStartControllerExemptionTests { originatingPendingIntent, allowBalExemptionForSystemProcess, mResultRecord, intent, checkedOptions); assertThat(balState.toString()).contains("callingUidHasVisibleActivity: true"); assertThat(balState.toString()).contains("callingUidHasVisibleNotPinnedActivity: true"); assertThat(balState.toString()).contains("callingUidHasVisibleNotPinnedActivity: false"); assertThat(balState.toString()).contains("callingUidHasNonAppVisibleWindow: false"); // call Loading @@ -295,11 +295,11 @@ public class BackgroundActivityStartControllerExemptionTests { // assertions assertWithMessage(balState + " -> " + callerVerdict) .that(callerVerdict.getCode()) .isEqualTo(BAL_ALLOW_VISIBLE_WINDOW); .isEqualTo(BAL_BLOCK); } @Test public void testCaller_appHasVisibleWindow() { public void testCaller_appHasVisiblePinnedWindow() { int callingUid = REGULAR_UID_1; int callingPid = REGULAR_PID_1; final String callingPackage = REGULAR_PACKAGE_1; Loading @@ -309,7 +309,7 @@ public class BackgroundActivityStartControllerExemptionTests { // setup state when(mVisibleActivityProcessTracker.hasVisibleActivity(eq(callingUid))).thenReturn(true); when(mVisibleActivityProcessTracker.hasVisibleNotPinnedActivity(eq(callingUid))) .thenReturn(false); .thenReturn(true); when(mService.getBalAppSwitchesState()).thenReturn(APP_SWITCH_ALLOW); // prepare call Loading @@ -322,7 +322,7 @@ public class BackgroundActivityStartControllerExemptionTests { originatingPendingIntent, allowBalExemptionForSystemProcess, mResultRecord, intent, checkedOptions); assertThat(balState.toString()).contains("callingUidHasVisibleActivity: true"); assertThat(balState.toString()).contains("callingUidHasVisibleNotPinnedActivity: false"); assertThat(balState.toString()).contains("callingUidHasVisibleNotPinnedActivity: true"); assertThat(balState.toString()).contains("callingUidHasNonAppVisibleWindow: false"); // call Loading @@ -333,11 +333,11 @@ public class BackgroundActivityStartControllerExemptionTests { // assertions assertWithMessage(balState + " -> " + callerVerdict) .that(callerVerdict.getCode()) .isEqualTo(BAL_BLOCK); .isEqualTo(BAL_ALLOW_VISIBLE_WINDOW); } @Test public void testCaller_appHasVisiblePinnedWindow() { public void testRealCaller_appHasVisibleWindow() { int callingUid = REGULAR_UID_1; int callingPid = REGULAR_PID_1; final String callingPackage = REGULAR_PACKAGE_1; Loading @@ -345,9 +345,10 @@ public class BackgroundActivityStartControllerExemptionTests { int realCallingPid = REGULAR_PID_2; // setup state when(mVisibleActivityProcessTracker.hasVisibleActivity(eq(callingUid))).thenReturn(true); when(mVisibleActivityProcessTracker.hasVisibleNotPinnedActivity(eq(callingUid))) when(mVisibleActivityProcessTracker.hasVisibleActivity(eq(realCallingUid))) .thenReturn(true); when(mVisibleActivityProcessTracker.hasVisibleNotPinnedActivity(eq(realCallingUid))) .thenReturn(false); when(mService.getBalAppSwitchesState()).thenReturn(APP_SWITCH_ALLOW); // prepare call Loading @@ -360,23 +361,21 @@ public class BackgroundActivityStartControllerExemptionTests { callingPid, callingPackage, realCallingUid, realCallingPid, mCallerApp, originatingPendingIntent, allowBalExemptionForSystemProcess, mResultRecord, intent, checkedOptions); assertThat(balState.toString()).contains("callingUidHasVisibleActivity: true"); assertThat(balState.toString()).contains("callingUidHasVisibleNotPinnedActivity: true"); assertThat(balState.toString()).contains("callingUidHasNonAppVisibleWindow: false"); assertThat(balState.toString()).contains("realCallingUidHasVisibleActivity: true"); assertThat(balState.toString()).contains("realCallingUidHasNonAppVisibleWindow: false"); // call BalVerdict callerVerdict = mController.checkBackgroundActivityStartAllowedByCaller( BalVerdict realCallerVerdict = mController.checkBackgroundActivityStartAllowedBySender( balState); balState.setResultForCaller(callerVerdict); balState.setResultForRealCaller(realCallerVerdict); // assertions assertWithMessage(balState + " -> " + callerVerdict) .that(callerVerdict.getCode()) .isEqualTo(BAL_ALLOW_VISIBLE_WINDOW); assertWithMessage(balState.toString()).that(realCallerVerdict.getCode()).isEqualTo( BAL_ALLOW_NON_APP_VISIBLE_WINDOW); } @Test public void testRealCaller_appHasVisibleWindow() { public void testCaller_appHasNonAppVisibleWindow() { int callingUid = REGULAR_UID_1; int callingPid = REGULAR_PID_1; final String callingPackage = REGULAR_PACKAGE_1; Loading @@ -384,8 +383,7 @@ public class BackgroundActivityStartControllerExemptionTests { int realCallingPid = REGULAR_PID_2; // setup state when(mVisibleActivityProcessTracker.hasVisibleActivity(eq(realCallingUid))).thenReturn( true); mActiveUids.onNonAppSurfaceVisibilityChanged(callingUid, true); when(mService.getBalAppSwitchesState()).thenReturn(APP_SWITCH_ALLOW); // prepare call Loading @@ -398,21 +396,21 @@ public class BackgroundActivityStartControllerExemptionTests { callingPid, callingPackage, realCallingUid, realCallingPid, mCallerApp, originatingPendingIntent, allowBalExemptionForSystemProcess, mResultRecord, intent, checkedOptions); assertThat(balState.toString()).contains("realCallingUidHasVisibleActivity: true"); assertThat(balState.toString()).contains("realCallingUidHasNonAppVisibleWindow: false"); assertThat(balState.toString()).contains("callingUidHasVisibleActivity: false"); assertThat(balState.toString()).contains("callingUidHasNonAppVisibleWindow: true"); // call BalVerdict realCallerVerdict = mController.checkBackgroundActivityStartAllowedBySender( BalVerdict callerVerdict = mController.checkBackgroundActivityStartAllowedByCaller( balState); balState.setResultForRealCaller(realCallerVerdict); balState.setResultForCaller(callerVerdict); // assertions assertWithMessage(balState.toString()).that(realCallerVerdict.getCode()).isEqualTo( assertWithMessage(balState.toString()).that(callerVerdict.getCode()).isEqualTo( BAL_ALLOW_NON_APP_VISIBLE_WINDOW); } @Test public void testCaller_appHasNonAppVisibleWindow() { public void testRealCaller_appHasNonAppVisibleWindow() { int callingUid = REGULAR_UID_1; int callingPid = REGULAR_PID_1; final String callingPackage = REGULAR_PACKAGE_1; Loading @@ -420,34 +418,36 @@ public class BackgroundActivityStartControllerExemptionTests { int realCallingPid = REGULAR_PID_2; // setup state mActiveUids.onNonAppSurfaceVisibilityChanged(callingUid, true); mActiveUids.onNonAppSurfaceVisibilityChanged(realCallingUid, true); when(mService.getBalAppSwitchesState()).thenReturn(APP_SWITCH_ALLOW); // prepare call PendingIntentRecord originatingPendingIntent = mPendingIntentRecord; BackgroundStartPrivileges allowBalExemptionForSystemProcess = BackgroundStartPrivileges.NONE; boolean allowBalExemptionForSystemProcess = false; Intent intent = TEST_INTENT; ActivityOptions checkedOptions = mCheckedOptions; BackgroundActivityStartController.BalState balState = mController.new BalState(callingUid, callingPid, callingPackage, realCallingUid, realCallingPid, mCallerApp, originatingPendingIntent, allowBalExemptionForSystemProcess, mResultRecord, intent, checkedOptions); assertThat(balState.toString()).contains("callingUidHasVisibleActivity: false"); assertThat(balState.toString()).contains("callingUidHasNonAppVisibleWindow: true"); assertThat(balState.toString()).contains("realCallingUidHasVisibleActivity: true"); assertThat(balState.toString()) .contains("realCallingUidHasVisibleNotPinnedActivity: false"); assertThat(balState.toString()).contains("realCallingUidHasNonAppVisibleWindow: false"); // call BalVerdict callerVerdict = mController.checkBackgroundActivityStartAllowedByCaller( BalVerdict realCallerVerdict = mController.checkBackgroundActivityStartAllowedByRealCaller( balState); balState.setResultForCaller(callerVerdict); balState.setResultForRealCaller(realCallerVerdict); // assertions assertWithMessage(balState.toString()).that(callerVerdict.getCode()).isEqualTo( BAL_ALLOW_NON_APP_VISIBLE_WINDOW); assertWithMessage(balState + " -> " + realCallerVerdict) .that(realCallerVerdict.getCode()) .isEqualTo(BAL_BLOCK); } @Test public void testRealCaller_appHasNonAppVisibleWindow() { public void testRealCaller_appHasNotPinnedVisibleWindow() { int callingUid = REGULAR_UID_1; int callingPid = REGULAR_PID_1; final String callingPackage = REGULAR_PACKAGE_1; Loading @@ -455,7 +455,10 @@ public class BackgroundActivityStartControllerExemptionTests { int realCallingPid = REGULAR_PID_2; // setup state mActiveUids.onNonAppSurfaceVisibilityChanged(realCallingUid, true); when(mVisibleActivityProcessTracker.hasVisibleActivity(eq(realCallingUid))) .thenReturn(true); when(mVisibleActivityProcessTracker.hasVisibleNotPinnedActivity(eq(realCallingUid))) .thenReturn(true); when(mService.getBalAppSwitchesState()).thenReturn(APP_SWITCH_ALLOW); // prepare call Loading @@ -468,6 +471,7 @@ public class BackgroundActivityStartControllerExemptionTests { originatingPendingIntent, allowBalExemptionForSystemProcess, mResultRecord, intent, checkedOptions); assertThat(balState.toString()).contains("realCallingUidHasVisibleActivity: true"); assertThat(balState.toString()).contains("realCallingUidHasVisibleNotPinnedActivity: true"); assertThat(balState.toString()).contains("realCallingUidHasNonAppVisibleWindow: false"); // call Loading @@ -476,8 +480,9 @@ public class BackgroundActivityStartControllerExemptionTests { balState.setResultForRealCaller(realCallerVerdict); // assertions assertWithMessage(balState.toString()).that(realCallerVerdict.getCode()).isEqualTo( BAL_ALLOW_VISIBLE_WINDOW); assertWithMessage(balState + " -> " + realCallerVerdict) .that(realCallerVerdict.getCode()) .isEqualTo(BAL_ALLOW_VISIBLE_WINDOW); } @Test Loading Loading @@ -561,6 +566,8 @@ public class BackgroundActivityStartControllerExemptionTests { // setup state when(mVisibleActivityProcessTracker.hasVisibleActivity(eq(callingUid))).thenReturn(true); when(mVisibleActivityProcessTracker.hasVisibleNotPinnedActivity(eq(callingUid))) .thenReturn(true); when(mService.getBalAppSwitchesState()).thenReturn(APP_SWITCH_ALLOW); // prepare call Loading @@ -575,6 +582,7 @@ public class BackgroundActivityStartControllerExemptionTests { originatingPendingIntent, allowBalExemptionForSystemProcess, mResultRecord, intent, checkedOptions); assertThat(balState.toString()).contains("callingUidHasVisibleActivity: true"); assertThat(balState.toString()).contains("callingUidHasVisibleNotPinnedActivity: true"); assertThat(balState.toString()).contains("callingUidHasNonAppVisibleWindow: false"); // call Loading @@ -597,8 +605,10 @@ public class BackgroundActivityStartControllerExemptionTests { int realCallingPid = REGULAR_PID_2; // setup state when(mVisibleActivityProcessTracker.hasVisibleActivity(eq(realCallingUid))).thenReturn( true); when(mVisibleActivityProcessTracker.hasVisibleActivity(eq(realCallingUid))) .thenReturn(true); when(mVisibleActivityProcessTracker.hasVisibleNotPinnedActivity(eq(realCallingUid))) .thenReturn(true); when(mService.getBalAppSwitchesState()).thenReturn(APP_SWITCH_ALLOW); // prepare call Loading @@ -613,6 +623,7 @@ public class BackgroundActivityStartControllerExemptionTests { originatingPendingIntent, allowBalExemptionForSystemProcess, mResultRecord, intent, checkedOptions); assertThat(balState.toString()).contains("realCallingUidHasVisibleActivity: true"); assertThat(balState.toString()).contains("realCallingUidHasVisibleNotPinnedActivity: true"); assertThat(balState.toString()).contains("realCallingUidHasNonAppVisibleWindow: false"); // call Loading
services/tests/wmtests/src/com/android/server/wm/VisibleActivityProcessTrackerTests.java +0 −1 Original line number Diff line number Diff line Loading @@ -69,7 +69,6 @@ public class VisibleActivityProcessTrackerTests extends WindowTestsBase { assertThat(mTracker.hasVisibleActivity(wpc.mUid)).isFalse(); } @Test public void hasVisibleNotPinnedActivity_whenProcessHasNoActivities_returnsFalse() { WindowProcessController wpc = createWindowProcessController(); Loading