Merge "Fix WindowMagnificationControllerTest flaky" into sc-dev am: 98c0d3c80b

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/14703472

Change-Id: Ibfe95a18a09b65d49d3d1e0ce9a377e4fb0bbeab
This commit is contained in:
Ryan Lin
2021-05-26 02:03:19 +00:00
committed by Automerger Merge Worker

View File

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