Fix failing testOnPictureInPictureRequested

Fixes an issue where relying on a spy of ClientLifecyleManager caused
the test to fail with a TooManyActualInvocations error because
scheduleTransaction() was getting called more than once by mockito.
This change replaces the lifecyle manager spy with a mock.

Bug: 153709777
Test: atest WmTests:ActivityTaskManagerServiceTests
Change-Id: I5dfa780e28dabc4d634ef45667eb3688d07361b2
This commit is contained in:
jorgegil@google.com
2020-04-15 13:16:58 -07:00
parent b86e5a77a1
commit a72217160d

View File

@@ -89,13 +89,13 @@ public class ActivityTaskManagerServiceTests extends ActivityTestsBase {
public void testOnPictureInPictureRequested() throws RemoteException {
final ActivityStack stack = new StackBuilder(mRootWindowContainer).build();
final ActivityRecord activity = stack.getBottomMostTask().getTopNonFinishingActivity();
ClientLifecycleManager lifecycleManager = mService.getLifecycleManager();
doNothing().when(lifecycleManager).scheduleTransaction(any());
final ClientLifecycleManager mockLifecycleManager = mock(ClientLifecycleManager.class);
doReturn(mockLifecycleManager).when(mService).getLifecycleManager();
doReturn(true).when(activity).checkEnterPictureInPictureState(anyString(), anyBoolean());
mService.requestPictureInPictureMode(activity.token);
verify(lifecycleManager).scheduleTransaction(mClientTransactionCaptor.capture());
verify(mockLifecycleManager).scheduleTransaction(mClientTransactionCaptor.capture());
final ClientTransaction transaction = mClientTransactionCaptor.getValue();
// Check that only an enter pip request item callback was scheduled.
assertEquals(1, transaction.getCallbacks().size());