/** * Dismiss system dialog if shown. * * @since Espresso Macchiato 0.4 */ public void dismissIfShown() { // uiautomator is only available since android v18 // early android version emulator rarely show ANR dialog if (Build.VERSION.SDK_INT > Build.VERSION_CODES.JELLY_BEAN_MR2) { try { throwIfUiAutomatorNotExist(); } catch (ClassNotFoundException e) { Log.w("EspressoMacchiato", "Missing uiautomator classes to dismiss possible ANR dialog."); return; } dismissIfShownInternal(); } }
@Test public void testMissingUiAutomator() { EspSystemDialog espSystemDialog = new EspSystemDialog() { @Override protected void throwIfUiAutomatorNotExist() throws ClassNotFoundException { throw new ClassNotFoundException(); } @Override protected void dismissIfShownInternal() { throw new UnsupportedOperationException(); } }; espSystemDialog.dismissIfShown(); // should not fail } }