/** * Removes the ActivityMonitor */ private void stopActivityMonitor(){ try { // Remove the monitor added during startup if (activityMonitor != null) { inst.removeMonitor(activityMonitor); activityMonitor = null; } } catch (Exception ignored) {} }
/** * Removes the AcitivityMonitor * * @param activityMonitor the ActivityMonitor to remove */ private void removeMonitor(ActivityMonitor activityMonitor){ try{ instrumentation.removeMonitor(activityMonitor); }catch (Exception ignored) {} }
@Override public void removeMonitor(ActivityMonitor monitor) { base.removeMonitor(monitor); }
@Override public void finishActivity() { super.finishActivity(); instrumentation.removeMonitor(welcomeMonitor); if (welcomeActivity != null) { welcomeActivity.finish(); } }
/** * Removes the ActivityMonitor */ private void stopActivityMonitor(){ try { // Remove the monitor added during startup if (activityMonitor != null) { inst.removeMonitor(activityMonitor); activityMonitor = null; } } catch (Exception ignored) {} }
/** * Removes the AcitivityMonitor * * @param activityMonitor the ActivityMonitor to remove */ private void removeMonitor(ActivityMonitor activityMonitor){ try{ instrumentation.removeMonitor(activityMonitor); }catch (Exception ignored) {} }
@Override public void removeMonitor(ActivityMonitor monitor) { base.removeMonitor(monitor); }
@Override public void removeMonitor(ActivityMonitor monitor) { base.removeMonitor(monitor); }
@UiThreadTest public void testListItemClickStartsActivity() { final Instrumentation inst = getInstrumentation(); final IntentFilter intentFilter = new IntentFilter(); // here add conditions to your filter, i.e. intentFilter.addAction() ActivityMonitor monitor = inst.addMonitor(intentFilter, null, false); assertEquals(0, monitor.getHits()); // here perform desired click on list monitor.waitForActivityWithTimeout(5000); assertEquals(1, monitor.getHits()); inst.removeMonitor(monitor); }
@Override @CallSuper public void removeMonitor(Instrumentation.ActivityMonitor monitor) { if (DEBUG) { Logger.d(TAG,"removeMonitor"); } mInstrumentation.removeMonitor(monitor); }
public static final HashSet<Class<? extends Activity>> TARGET_ACTIVITIES = new HashSet<Class<? extends Activity>>(); static { TARGET_ACTIVITIES.add(A1.class); TARGET_ACTIVITIES.add(A2.class); TARGET_ACTIVITIES.add(A3.class); } private static final int TIMEOUT = 7000; public void testRandomActivityStarted() { @SuppressWarnings("unused") ProgressActivity activity = getActivity(); final Instrumentation inst = getInstrumentation(); IntentFilter intentFilter = new IntentFilter(Intent.ACTION_MAIN); intentFilter.addCategory("MY_CATEGORY"); ActivityMonitor monitor = inst.addMonitor(intentFilter, null, false); // Wait, before the Activity started monitor.waitForActivityWithTimeout(TIMEOUT); assertEquals(1, monitor.getHits()); Activity randomActivity = monitor.getLastActivity(); Log.d(TAG, "monitor=" + monitor + " activity=" + randomActivity); // Unfortunately, it seems randomActivity is always null even after a match if ( randomActivity != null ) { assertTrue(TARGET_ACTIVITIES.contains(randomActivity.getClass())); } inst.removeMonitor(monitor); }
// register activity monitor for the send mail activity Instrumentation instrumentation = getInstrumentation(); IntentFilter filter = new IntentFilter(Intent.ACTION_SENDTO); ActivityMonitor monitor = new ActivityMonitor(filter, null, false); ActivityMonitor soloMonitor = solo.getActivityMonitor(); // Remove the solo monitor, so your monitor is first on the list. instrumentation.removeMonitor(soloMonitor); // add your own monitor. instrumentation.addMonitor(monitor); // Re-add the solo monitor instrumentation.addMonitor(soloMonitor); // click on the "Send Feedback" button (use Robotium here) solo.clickOnButton(0); // wait for the send mail activity to start Activity currentActivity = instrumentation.waitForMonitorWithTimeout(monitor, 5000); assertNotNull(currentActivity);
public static Activity restartActivity(Activity activity, Instrumentation instrumentation, Intent intent){ String className = activity.getClass().getName(); Instrumentation.ActivityMonitor monitor = instrumentation.addMonitor(className, null, false); intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); intent.setClassName(instrumentation.getTargetContext(), className ); instrumentation.startActivitySync(intent); Activity newActivity = instrumentation.waitForMonitor(monitor); instrumentation.removeMonitor(monitor); return newActivity; }
//set up the filter final Instrumentation inst = getInstrumentation(); IntentFilter intentFilter = new IntentFilter(Intent.ACTION_VIEW); intentFilter.addDataScheme("http"); intentFilter.addCategory(Intent.CATEGORY_BROWSABLE); //Set up the monitor //THE BOOLEAN ON THE END TELLS THE SYTEM TO BLOCK IT FROM OCCURING, you probably want true here ActivityMonitor monitor = inst.addMonitor(intentFilter, null, true); assertEquals(0,monitor.getHits()); //click the link here with whatever framework you are using solo. clickOnText("link text") //Wait for the activity to get hit monitor.waitForActivityWithTimeout(2000); //Here is where you actually check it happened assertEquals(1, monitor.getHits()); inst.removeMonitor(monitor);
@SuppressWarnings("unchecked") public static <T extends Activity> T monitorActivity(@NonNull Class<T> activityClass, int timeOut, @NonNull Runnable runnable) { Instrumentation.ActivityMonitor monitor = new Instrumentation.ActivityMonitor(activityClass.getCanonicalName(), null, false); try { InstrumentationRegistry.getInstrumentation().addMonitor(monitor); runnable.run(); return (T) monitor.waitForActivityWithTimeout(timeOut); } finally { InstrumentationRegistry.getInstrumentation().removeMonitor(monitor); } }