Merge "Remove direct IMMS dependency from DevelopmentTiles"

This commit is contained in:
Wilson Wu
2021-07-14 09:00:31 +00:00
committed by Android (Google) Code Review
2 changed files with 21 additions and 42 deletions

View File

@@ -37,7 +37,7 @@ import android.os.RemoteException;
import android.view.IWindowManager;
import android.widget.Toast;
import com.android.internal.view.IInputMethodManager;
import com.android.internal.inputmethod.ImeTracing;
import com.android.settings.testutils.shadow.ShadowParcel;
import org.junit.After;
@@ -56,7 +56,7 @@ public class WinscopeTraceTest {
@Mock
private IWindowManager mWindowManager;
@Mock
private IInputMethodManager mInputMethodManager;
private ImeTracing mImeTracing;
@Mock
private IBinder mSurfaceFlinger;
@Mock
@@ -69,7 +69,7 @@ public class WinscopeTraceTest {
MockitoAnnotations.initMocks(this);
mWinscopeTrace = spy(new DevelopmentTiles.WinscopeTrace());
ReflectionHelpers.setField(mWinscopeTrace, "mWindowManager", mWindowManager);
ReflectionHelpers.setField(mWinscopeTrace, "mInputMethodManager", mInputMethodManager);
ReflectionHelpers.setField(mWinscopeTrace, "mImeTracing", mImeTracing);
ReflectionHelpers.setField(mWinscopeTrace, "mSurfaceFlinger", mSurfaceFlinger);
ReflectionHelpers.setField(mWinscopeTrace, "mToast", mToast);
}
@@ -93,7 +93,7 @@ public class WinscopeTraceTest {
public void sfReturnsTraceEnabled_shouldReturnEnabled() throws RemoteException {
// Assume Window Trace and Input Method Manager are disabled.
doReturn(false).when(mWindowManager).isWindowTraceEnabled();
doReturn(false).when(mInputMethodManager).isImeTraceEnabled();
doReturn(false).when(mImeTracing).isEnabled();
ShadowParcel.sReadBoolResult = true;
assertThat(mWinscopeTrace.isEnabled()).isTrue();
verify(mSurfaceFlinger)
@@ -114,7 +114,7 @@ public class WinscopeTraceTest {
public void wmAndSfAndImmReturnTraceDisabled_shouldReturnDisabled() throws RemoteException {
ShadowParcel.sReadBoolResult = false;
doReturn(false).when(mWindowManager).isWindowTraceEnabled();
doReturn(false).when(mInputMethodManager).isImeTraceEnabled();
doReturn(false).when(mImeTracing).isEnabled();
assertThat(mWinscopeTrace.isEnabled()).isFalse();
verify(mSurfaceFlinger)
.transact(eq(SURFACE_FLINGER_LAYER_TRACE_STATUS_CODE), any(), any(),
@@ -127,7 +127,7 @@ public class WinscopeTraceTest {
throws RemoteException {
ShadowParcel.sReadBoolResult = false;
doReturn(false).when(mWindowManager).isWindowTraceEnabled();
doReturn(true).when(mInputMethodManager).isImeTraceEnabled();
doReturn(true).when(mImeTracing).isEnabled();
assertThat(mWinscopeTrace.isEnabled()).isTrue();
verify(mSurfaceFlinger)
.transact(eq(SURFACE_FLINGER_LAYER_TRACE_STATUS_CODE), any(), any(),
@@ -140,7 +140,7 @@ public class WinscopeTraceTest {
public void immReturnsTraceEnabled_shouldReturnEnabled() throws RemoteException {
// Assume Window Manager and Surface Trace are disabled.
ShadowParcel.sReadBoolResult = false;
doReturn(true).when(mInputMethodManager).isImeTraceEnabled();
doReturn(true).when(mImeTracing).isEnabled();
assertThat(mWinscopeTrace.isEnabled()).isTrue();
}
@@ -149,7 +149,7 @@ public class WinscopeTraceTest {
public void immReturnsTraceDisabled_shouldReturnDisabled() throws RemoteException {
// Assume Window Manager and Surface Trace are disabled.
ShadowParcel.sReadBoolResult = false;
doReturn(false).when(mInputMethodManager).isImeTraceEnabled();
doReturn(false).when(mImeTracing).isEnabled();
assertThat(mWinscopeTrace.isEnabled()).isFalse();
}
@@ -167,7 +167,7 @@ public class WinscopeTraceTest {
public void sfUnavailableAndWmAndImmReturnTraceDisabled_shouldReturnDisabled()
throws RemoteException {
doReturn(false).when(mWindowManager).isWindowTraceEnabled();
doReturn(false).when(mInputMethodManager).isImeTraceEnabled();
doReturn(false).when(mImeTracing).isEnabled();
ReflectionHelpers.setField(mWinscopeTrace, "mSurfaceFlinger", null);
assertThat(mWinscopeTrace.isEnabled()).isFalse();
}
@@ -182,8 +182,8 @@ public class WinscopeTraceTest {
@Test
public void setIsEnableTrue_shouldEnableImeTrace() throws RemoteException {
mWinscopeTrace.setIsEnabled(true);
verify(mInputMethodManager).startImeTrace();
verifyNoMoreInteractions(mInputMethodManager);
verify(mImeTracing).startImeTrace();
verifyNoMoreInteractions(mImeTracing);
}
@Test
@@ -210,8 +210,8 @@ public class WinscopeTraceTest {
@Config(shadows = ShadowParcel.class)
public void setIsEnableFalse_shouldDisableImeTrace() throws RemoteException {
mWinscopeTrace.setIsEnabled(false);
verify(mInputMethodManager).stopImeTrace();
verifyNoMoreInteractions(mInputMethodManager);
verify(mImeTracing).stopImeTrace();
verifyNoMoreInteractions(mImeTracing);
verify(mToast).show();
}
@@ -244,17 +244,6 @@ public class WinscopeTraceTest {
mWinscopeTrace.setIsEnabled(true);
}
/**
* Verify when input method manager call throws a remote exception, it is handled without
* re-throwing the exception.
*/
@Test
public void setIsEnableAndImmThrowsRemoteException_shouldFailGracefully()
throws RemoteException {
doThrow(new RemoteException("Unknown")).when(mInputMethodManager).isImeTraceEnabled();
mWinscopeTrace.setIsEnabled(true);
}
/**
* Verify is surface flinger is not available not calls are made to it.
*/