diff --git a/packages/SystemUI/tests/src/com/android/systemui/accessibility/WindowMagnificationControllerTest.java b/packages/SystemUI/tests/src/com/android/systemui/accessibility/WindowMagnificationControllerTest.java index 5fa63bc3d0619..ad99e4d5a7727 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/accessibility/WindowMagnificationControllerTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/accessibility/WindowMagnificationControllerTest.java @@ -59,6 +59,7 @@ import android.view.WindowManager; import android.view.accessibility.AccessibilityNodeInfo; import androidx.test.InstrumentationRegistry; +import androidx.test.filters.FlakyTest; import androidx.test.filters.LargeTest; import com.android.internal.graphics.SfVsyncFrameCallbackProvider; @@ -72,7 +73,6 @@ import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.Answers; -import org.mockito.ArgumentCaptor; import org.mockito.Mock; import org.mockito.Mockito; import org.mockito.MockitoAnnotations; @@ -91,7 +91,7 @@ public class WindowMagnificationControllerTest extends SysuiTestCase { @Mock private WindowMagnifierCallback mWindowMagnifierCallback; @Mock(answer = Answers.RETURNS_DEEP_STUBS) - private SurfaceControl.Transaction mTransaction; + private SurfaceControl.Transaction mTransaction = new SurfaceControl.Transaction(); private TestableWindowManager mWindowManager; private SysUiState mSysUiState = new SysUiState(); private Resources mResources; @@ -138,6 +138,7 @@ public class WindowMagnificationControllerTest extends SysuiTestCase { } @Test + @FlakyTest(bugId = 188889181) public void enableWindowMagnification_showControlAndNotifyBoundsChanged() { mInstrumentation.runOnMainSync(() -> { mWindowMagnificationController.enableWindowMagnification(Float.NaN, Float.NaN, @@ -145,16 +146,9 @@ public class WindowMagnificationControllerTest extends SysuiTestCase { }); verify(mMirrorWindowControl).showControl(); - ArgumentCaptor boundsCaptor = ArgumentCaptor.forClass(Rect.class); verify(mWindowMagnifierCallback, - timeout(LAYOUT_CHANGE_TIMEOUT_MS)).onWindowMagnifierBoundsChanged( - eq(mContext.getDisplayId()), boundsCaptor.capture()); - final Rect actualBounds = new Rect(); - final View mirrorView = mWindowManager.getAttachedView(); - assertNotNull(mirrorView); - mirrorView.getBoundsOnScreen(actualBounds); - assertEquals(actualBounds, boundsCaptor.getValue()); - + timeout(LAYOUT_CHANGE_TIMEOUT_MS).atLeastOnce()).onWindowMagnifierBoundsChanged( + eq(mContext.getDisplayId()), any(Rect.class)); } @Test @@ -203,6 +197,12 @@ public class WindowMagnificationControllerTest extends SysuiTestCase { @Test public void setScale_enabled_expectedValueAndUpdateStateDescription() { + doAnswer(invocation -> { + final Runnable runnable = invocation.getArgument(0); + runnable.run(); + return null; + }).when(mHandler).postDelayed(any(Runnable.class), anyLong()); + mInstrumentation.runOnMainSync( () -> mWindowMagnificationController.enableWindowMagnification(2.0f, Float.NaN, Float.NaN)); @@ -210,9 +210,6 @@ public class WindowMagnificationControllerTest extends SysuiTestCase { mInstrumentation.runOnMainSync(() -> mWindowMagnificationController.setScale(3.0f)); assertEquals(3.0f, mWindowMagnificationController.getScale(), 0); - ArgumentCaptor runnableArgumentCaptor = ArgumentCaptor.forClass(Runnable.class); - verify(mHandler).postDelayed(runnableArgumentCaptor.capture(), anyLong()); - runnableArgumentCaptor.getValue().run(); final View mirrorView = mWindowManager.getAttachedView(); assertNotNull(mirrorView); assertThat(mirrorView.getStateDescription().toString(), containsString("300"));