android.app.Instrumentation Java Examples

The following examples show how to use android.app.Instrumentation. You can vote up the ones you like or vote down the ones you don't like, and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example #1
Source Project: android-sdk   Author: watson-developer-cloud   File: CameraHelperTest.java    License: Apache License 2.0 6 votes vote down vote up
@Test
public void testCameraFlow() {
  Bitmap icon = BitmapFactory.decodeResource(
      InstrumentationRegistry.getTargetContext().getResources(),
      R.mipmap.ic_launcher);

  Intent resultData = new Intent();
  resultData.putExtra("data", icon);
  Instrumentation.ActivityResult result = new Instrumentation.ActivityResult(Activity.RESULT_OK, resultData);

  intending(hasAction(MediaStore.ACTION_IMAGE_CAPTURE)).respondWith(result);

  Espresso.onView(withId(R.id.camera_button)).perform(click());

  intended(hasAction(MediaStore.ACTION_IMAGE_CAPTURE));
}
 
Example #2
Source Project: android-test   Author: android   File: InstrumentationResultPrinter.java    License: Apache License 2.0 6 votes vote down vote up
private void reportFailure(Failure failure) {
  String trace = failure.getTrace();
  if (trace.length() > MAX_TRACE_SIZE) {
    // Since AJUR needs to report failures back to AM via a binder IPC, we need to make sure that
    // we don't exceed the Binder transaction limit - which is 1MB per process.
    Log.w(
        TAG,
        String.format("Stack trace too long, trimmed to first %s characters.", MAX_TRACE_SIZE));
    trace = trace.substring(0, MAX_TRACE_SIZE) + "\n";
  }
  testResult.putString(REPORT_KEY_STACK, trace);
  // pretty printing
  testResult.putString(
      Instrumentation.REPORT_KEY_STREAMRESULT,
      String.format(
          "\nError in %s:\n%s", failure.getDescription().getDisplayName(), failure.getTrace()));
}
 
Example #3
Source Project: ListViewAnimations   Author: nhaarman   File: MotionEventUtils.java    License: Apache License 2.0 6 votes vote down vote up
public static void dispatchMotionEvents(final Instrumentation instrumentation, final Iterable<MotionEvent> motionEvents, final boolean wait) throws InterruptedException {
    for (final MotionEvent event : motionEvents) {
        int i = 0;
        boolean success = false;
        do {
            try {
                instrumentation.sendPointerSync(event);
                success = true;
            } catch (SecurityException e) {
                i++;
                if (i > 3) {
                    throw e;
                }
            }
        } while (i < 3 && !success);
        Thread.sleep(100);
    }

    if (wait) {
    /* We need to wait for the fling animation to complete */
        Thread.sleep(1500);
    }
}
 
Example #4
Source Project: droidkaigi2016   Author: konifar   File: SessionDetailActivityTest.java    License: Apache License 2.0 6 votes vote down vote up
@Before
public void setUp() {
    Context context = InstrumentationRegistry.getInstrumentation().getTargetContext();
    Intent intent = SessionDetailActivity.createIntent(context, SESSION);
    // The third argument of the constructor for ActivityTestRule needs to be false as explained
    // in the Javadoc for ActivityTestRule#launchActivity
    // http://developer.android.com/reference/android/support/test/rule/ActivityTestRule.html#launchActivity(android.content.Intent)
    activityRule.launchActivity(intent);

    // By default Espresso Intents does not stub any Intents. Stubbing needs to be setup before
    // every test run. In this case all external Intents will be blocked.
    intending(not(isInternal()))
            .respondWith(new Instrumentation.ActivityResult(Activity.RESULT_OK, null));


}
 
Example #5
Source Project: Neptune   Author: iqiyi   File: PluginLoadedApk.java    License: Apache License 2.0 6 votes vote down vote up
/**
 * 反射获取ActivityThread中的Instrumentation对象
 * 从而拦截Activity跳转
 */
@Deprecated
private void hookInstrumentation() {
    try {
        Context contextImpl = ((ContextWrapper) mHostContext).getBaseContext();
        Object activityThread = ReflectionUtils.getFieldValue(contextImpl, "mMainThread");
        Field instrumentationF = activityThread.getClass().getDeclaredField("mInstrumentation");
        instrumentationF.setAccessible(true);
        Instrumentation hostInstr = (Instrumentation) instrumentationF.get(activityThread);
        mPluginInstrument = new PluginInstrument(hostInstr, mPluginPackageName);
    } catch (Exception e) {
        ErrorUtil.throwErrorIfNeed(e);
        PluginManager.deliver(mHostContext, false, mPluginPackageName,
                ErrorType.ERROR_PLUGIN_HOOK_INSTRUMENTATION, "hookInstrumentation failed");
    }
}
 
Example #6
Source Project: android-test   Author: android   File: AndroidJUnitRunnerTest.java    License: Apache License 2.0 6 votes vote down vote up
@Before
public void setUp() throws Exception {
  MockitoAnnotations.initMocks(this);
  doReturn("/apps/foo.apk").when(mockContext).getPackageCodePath();
  androidJUnitRunner =
      new AndroidJUnitRunner() {

        @Override
        public Context getContext() {
          return mockContext;
        }

        @Override
        InstrumentationResultPrinter getInstrumentationResultPrinter() {
          return instrumentationResultPrinter;
        }

        @Override
        TestRequestBuilder createTestRequestBuilder(Instrumentation instr, Bundle arguments) {
          return testRequestBuilder;
        }
      };
}
 
Example #7
Source Project: android-test   Author: android   File: OrchestrationResultPrinter.java    License: Apache License 2.0 6 votes vote down vote up
/**
 * Produce a more meaningful crash report including stack trace and report it back to
 * Instrumentation results.
 */
public void reportProcessCrash(Throwable t) {
  try {
    testResultCode = REPORT_VALUE_RESULT_FAILURE;
    ParcelableFailure failure = new ParcelableFailure(description, t);
    testResult.putString(REPORT_KEY_STACK, failure.getTrace());
    // pretty printing
    testResult.putString(
        Instrumentation.REPORT_KEY_STREAMRESULT,
        String.format(
            "\nProcess crashed while executing %s:\n%s",
            description.getDisplayName(), failure.getTrace()));
    testFinished(description);
  } catch (Exception e) {
    if (null == description) {
      Log.e(LOG_TAG, "Failed to initialize test before process crash");
    } else {
      Log.e(
          LOG_TAG,
          "Failed to mark test "
              + description.getDisplayName()
              + " as finished after process crash");
    }
  }
}
 
Example #8
Source Project: ArgusAPM   Author: Qihoo360   File: InstrumentationHooker.java    License: Apache License 2.0 6 votes vote down vote up
private static void hookInstrumentation() throws ClassNotFoundException, NoSuchMethodException, InvocationTargetException, IllegalAccessException, NoSuchFieldException {
    Class<?> c = Class.forName("android.app.ActivityThread");
    Method currentActivityThread = c.getDeclaredMethod("currentActivityThread");
    boolean acc = currentActivityThread.isAccessible();
    if (!acc) {
        currentActivityThread.setAccessible(true);
    }
    Object o = currentActivityThread.invoke(null);
    if (!acc) {
        currentActivityThread.setAccessible(acc);
    }
    Field f = c.getDeclaredField("mInstrumentation");
    acc = f.isAccessible();
    if (!acc) {
        f.setAccessible(true);
    }
    Instrumentation currentInstrumentation = (Instrumentation) f.get(o);
    Instrumentation ins = new ApmInstrumentation(currentInstrumentation);
    f.set(o, ins);
    if (!acc) {
        f.setAccessible(acc);
    }
}
 
Example #9
Source Project: ListViewAnimations   Author: nhaarman   File: MotionEventUtils.java    License: Apache License 2.0 6 votes vote down vote up
public static void dispatchDragScrollDownMotionEvents(final Instrumentation instrumentation, final DynamicListView dynamicListView,
                                                      final int fromPosition) throws InterruptedException {
    int[] location = new int[2];
    dynamicListView.getLocationOnScreen(location);

    View view = dynamicListView.getChildAt(fromPosition);
    float fromY = (int) (view.getY()) + location[1];

    View toView = dynamicListView.getChildAt(dynamicListView.getLastVisiblePosition());
    float toY = (int) (toView.getY() + toView.getHeight()) + location[1] + 2;

    List<MotionEvent> motionEvents = createMotionEvents(dynamicListView, fromY, toY);
    MotionEvent upEvent = motionEvents.remove(motionEvents.size() - 1);
    dispatchMotionEvents(instrumentation, motionEvents, true);
    Thread.sleep(10000);
    dispatchMotionEvents(instrumentation, Arrays.asList(upEvent), true);
}
 
Example #10
Source Project: react-native-GPay   Author: hellochirag   File: ReactIdleDetectionUtil.java    License: MIT License 6 votes vote down vote up
private static void waitInner(ReactBridgeIdleSignaler idleSignaler, long timeToWait) {
  // TODO gets broken in gradle, do we need it?
  Instrumentation instrumentation = InstrumentationRegistry.getInstrumentation();
  long startTime = SystemClock.uptimeMillis();
  boolean bridgeWasIdle = false;
  while (SystemClock.uptimeMillis() - startTime < timeToWait) {
    boolean bridgeIsIdle = idleSignaler.isBridgeIdle();
    if (bridgeIsIdle && bridgeWasIdle) {
      return;
    }
    bridgeWasIdle = bridgeIsIdle;
    long newTimeToWait = Math.max(1, timeToWait - (SystemClock.uptimeMillis() - startTime));
    idleSignaler.waitForIdle(newTimeToWait);
    instrumentation.waitForIdleSync();
  }
  throw new RuntimeException("Timed out waiting for bridge and UI idle!");
}
 
Example #11
Source Project: android-galaxyzoo   Author: murraycu   File: LoginActivityTest.java    License: GNU General Public License v3.0 6 votes vote down vote up
@Test
public void testStateDestroy() {
    //final String TEST_SOMETHING = "test123456789";
    //TODO: mActivity.setSomething();
    mActivity.finish();

    // Based on this:
    // http://stackoverflow.com/a/33213279/1123654
    final Instrumentation instrumentation = InstrumentationRegistry.getInstrumentation();
    instrumentation.runOnMainSync(new Runnable() {
        @Override
        public void run() {
            mActivity.recreate();
        }
    });

    //TODOassertEquals(TEST_SOMETHING, mActivity.getSomething());

    //TODO: Do something like this too:
    //onView(withText("a string depending on XXX value")).check(doesNotExist())
}
 
Example #12
Source Project: android-test   Author: android   File: AndroidTestOrchestrator.java    License: Apache License 2.0 6 votes vote down vote up
@Override
public void onStart() {
  super.onStart();
  try {
    registerUserTracker();
    grantRuntimePermissions(RUNTIME_PERMISSIONS);
    connectOrchestratorService();
  } catch (RuntimeException e) {
    final String msg = "Fatal exception when setting up.";
    Log.e(TAG, msg, e);
    // Report the startup exception to instrumentation out.
    Bundle failureBundle = createResultBundle();
    failureBundle.putString(
        Instrumentation.REPORT_KEY_STREAMRESULT, msg + "\n" + Log.getStackTraceString(e));
    finish(Activity.RESULT_OK, failureBundle);
  }
}
 
Example #13
Source Project: google-authenticator-android   Author: google   File: AuthenticatorActivityTest.java    License: Apache License 2.0 5 votes vote down vote up
@Test
public void testClickEmptySpaceOnListUnselectItem() throws InterruptedException {
  accountDb.add(
      "first", "7777777777777777", OtpType.HOTP, null, null, AccountDb.GOOGLE_ISSUER_NAME);

  AuthenticatorActivity activity = activityTestRule.launchActivity(null);

  EmptySpaceClickableDragSortListView userList = activity.findViewById(R.id.user_list);

  assertThat(activity.actionMode).isNull();
  onView(equalTo(userList.getChildAt(0))).perform(longClick());
  assertThat(activity.actionMode).isNotNull();

  Point size = new Point();
  activity.getWindowManager().getDefaultDisplay().getSize(size);
  int height = size.y;
  int width = size.x;

  Instrumentation instr = InstrumentationRegistry.getInstrumentation();
  long downTime = SystemClock.uptimeMillis();
  long eventTime = SystemClock.uptimeMillis();

  instr.sendPointerSync(
      MotionEvent.obtain(downTime, eventTime, MotionEvent.ACTION_DOWN, height / 2, width / 2, 0));
  instr.sendPointerSync(
      MotionEvent.obtain(downTime, eventTime, MotionEvent.ACTION_UP, height / 2, width / 2, 0));

  // We need to delay to wait for the contextual action bar is completely removed.
  Thread.sleep(CLICK_DELAY_INTERVAL);
  assertThat(activity.actionMode).isNull();
}
 
Example #14
Source Project: Small   Author: wequick   File: ReflectAccelerator.java    License: Apache License 2.0 5 votes vote down vote up
public static Instrumentation.ActivityResult execStartActivity(
        Instrumentation instrumentation, Context who, IBinder contextThread, IBinder token,
        Activity target, Intent intent, int requestCode) {
    if (sInstrumentation_execStartActivityV20_method == null) {
        Class[] types = new Class[] {Context.class, IBinder.class, IBinder.class,
                Activity.class, Intent.class, int.class};
        sInstrumentation_execStartActivityV20_method = getMethod(Instrumentation.class,
                "execStartActivity", types);
    }
    if (sInstrumentation_execStartActivityV20_method == null) return null;
    return invoke(sInstrumentation_execStartActivityV20_method, instrumentation,
            who, contextThread, token, target, intent, requestCode);
}
 
Example #15
Source Project: ACDD   Author: woyaowenzi   File: AndroidHack.java    License: MIT License 5 votes vote down vote up
/***
 * get Instrumentation,should be  hacked Instrumentation
 */
public static Instrumentation getInstrumentation() throws Exception {
    Object activityThread = getActivityThread();
    if (activityThread != null) {
        return OpenAtlasHacks.ActivityThread_mInstrumentation
                .get(activityThread);
    }
    throw new Exception(
            "Failed to get ActivityThread.sCurrentActivityThread");
}
 
Example #16
Source Project: Android-Plugin-Framework   Author: limpoxe   File: HackInstrumentation.java    License: MIT License 5 votes vote down vote up
@TargetApi(Build.VERSION_CODES.JELLY_BEAN_MR1)
public Instrumentation.ActivityResult execStartActivity(Context who, IBinder contextThread, IBinder token, Activity target,
                                                        Intent intent, int requestCode, Bundle options, UserHandle user) {

    Object result = RefInvoker.invokeMethod(instance, Instrumentation.class.getName(),
            Method_execStartActivity, new Class[] { Context.class, IBinder.class, IBinder.class, Activity.class,
                    Intent.class, int.class, Bundle.class, UserHandle.class }, new Object[] { who, contextThread,
                    token, target, intent, requestCode, options, user });

    return (Instrumentation.ActivityResult) result;
}
 
Example #17
Source Project: AndroidRipper   Author: reverse-unina   File: Solo.java    License: GNU Affero General Public License v3.0 5 votes vote down vote up
/**
 * Private constructor.
 *
 * @param config the {@link Config} instance. If {@code null} one will be created.
 * @param instrumentation the {@link Instrumentation} instance
 * @param activity the start {@link Activity} or {@code null}
 * if no Activity is specified
 */

private Solo(Config config, Instrumentation instrumentation, Activity activity) {
	
	if(config.commandLogging){
		Log.d(config.commandLoggingTag, "Solo("+config+", "+instrumentation+", "+activity+")");
	}
	
	this.config = (config == null) ? new Config(): config;
	this.instrumentation = instrumentation;
	this.sleeper = new Sleeper(config.sleepDuration, config.sleepMiniDuration);
	this.sender = new Sender(instrumentation, sleeper);
	this.activityUtils = new ActivityUtils(config, instrumentation, activity, sleeper);
	this.viewFetcher = new ViewFetcher(instrumentation, sleeper);
	this.screenshotTaker = new ScreenshotTaker(config, instrumentation, activityUtils, viewFetcher, sleeper);
	this.dialogUtils = new DialogUtils(instrumentation, activityUtils, viewFetcher, sleeper);
	this.webUtils = new WebUtils(config, instrumentation,viewFetcher, sleeper);
	this.scroller = new Scroller(config, instrumentation, viewFetcher, sleeper);
	this.searcher = new Searcher(viewFetcher, webUtils, scroller, sleeper);
	this.waiter = new Waiter(instrumentation, activityUtils, viewFetcher, searcher,scroller, sleeper);
	this.getter = new Getter(instrumentation, activityUtils, waiter);
	this.clicker = new Clicker(activityUtils, viewFetcher,sender, instrumentation, sleeper, waiter, webUtils, dialogUtils);
	this.setter = new Setter(activityUtils, getter, clicker, waiter);
	this.asserter = new Asserter(activityUtils, waiter);
	this.checker = new Checker(viewFetcher, waiter);
	this.zoomer = new Zoomer(instrumentation);
	this.swiper = new Swiper(instrumentation);
	this.tapper =  new Tapper(instrumentation);
	this.illustrator = new Illustrator(instrumentation);
	this.rotator = new Rotator(instrumentation);
	this.presser = new Presser(viewFetcher, clicker, instrumentation, sleeper, waiter, dialogUtils);
	this.textEnterer = new TextEnterer(instrumentation, clicker, dialogUtils);
	this.systemUtils = new SystemUtils(instrumentation);
	initialize();
}
 
Example #18
Source Project: PluginLoader   Author: Tamicer   File: PluginInstrumentionWrapper.java    License: Apache License 2.0 5 votes vote down vote up
public ActivityResult execStartActivity(
		Context who, IBinder contextThread, IBinder token, Fragment target,
		Intent intent, int requestCode) {

	PluginIntentResolver.resolveActivity(intent);

	Object result = RefInvoker.invokeMethod(realInstrumention, android.app.Instrumentation.class.getName(),
			"execStartActivity", new Class[] { Context.class, IBinder.class, IBinder.class, Fragment.class,
					Intent.class, int.class }, new Object[] { who, contextThread,
					token, target, intent, requestCode });

	return (ActivityResult) result;
}
 
Example #19
Source Project: androidnative.pri   Author: benlau   File: ExampleActivityTest.java    License: Apache License 2.0 5 votes vote down vote up
private void startActivity() {
    if (launched)
        return;

    Instrumentation instrumentation = getInstrumentation();
    Intent intent = new Intent(getInstrumentation()
            .getTargetContext(), AndroidNativeActivity.class);
    intent.setFlags(intent.getFlags()  | Intent.FLAG_ACTIVITY_NEW_TASK);

    mActivity = instrumentation.startActivitySync(intent);
    launched = true;
    
    instrumentation.waitForIdleSync();
    sleep(5000);
}
 
Example #20
Source Project: fyber_mobile_offers   Author: mohsenoid   File: MainActivityDaggerTest.java    License: MIT License 5 votes vote down vote up
@Before
public void setUp() {
    Instrumentation instrumentation = InstrumentationRegistry.getInstrumentation();
    MockFyberApplication app = (MockFyberApplication) instrumentation.getTargetContext().getApplicationContext();
    TestApplicationComponent component = (TestApplicationComponent) app.getComponent();
    component.inject(this);

    // Set up the stub we want to return in the mock
    Offer offer = new Offer();
    offer.setTitle(TEST_OFFER_TITLE);
    offer.setTeaser(TEST_OFFER_TEASER);
    offer.setPayout(TEST_OFFER_PAYLOAD);

    expectedOffers = new Offer[1];
    expectedOffers[0] = offer;

    // put the test offer in a test api result
    expectedResult = new OfferResponse();
    expectedResult.setOffers(expectedOffers);
    expectedResult.setPages(1);
    expectedResult.setCode(Constants.CODE_OK);

    // Set up the mock
    when(api.getOffers(any(String.class), any(Integer.class), any(String.class), any(String.class), any(String.class), any(Long.class), any(String.class), any(String.class), any(Boolean.class), any(String.class), any(String.class), any(Integer.class), any(Integer.class), any(String.class)))
            .thenReturn(Observable.just(expectedResult));

    when(valueManager.isConnected()).thenReturn(true);
    when(valueManager.getAdId()).thenReturn("adId");
    when(valueManager.getAdIdEnabled()).thenReturn(false);
    when(valueManager.getApplicationId()).thenReturn(123);
    when(valueManager.getApiKey()).thenReturn("apiKey");
}
 
Example #21
Source Project: Indic-Keyboard   Author: smc   File: MoreKeySpecStringReferenceTests.java    License: Apache License 2.0 5 votes vote down vote up
@Override
protected void setUp() throws Exception {
    super.setUp();

    final Instrumentation instrumentation = getInstrumentation();
    final Context testContext = instrumentation.getContext();
    final Resources testRes = testContext.getResources();
    final String testPackageName = testRes.getResourcePackageName(R.string.empty_string);
    mTextsSet.setLocale(TEST_LOCALE, testRes, testPackageName);
}
 
Example #22
Source Project: atlas   Author: alibaba   File: AndroidHack.java    License: Apache License 2.0 5 votes vote down vote up
public static void injectInstrumentationHook(Instrumentation instrumentation) throws Exception {
    Object activityThread = getActivityThread();
    if (activityThread == null) {
        throw new Exception("Failed to get ActivityThread.sCurrentActivityThread");
    }
    //AtlasHacks.ActivityThread_mInstrumentation.on(activityThread).set(instrumentation);
    AtlasHacks.ActivityThread_mInstrumentation.set(activityThread,instrumentation);
}
 
Example #23
Source Project: android_9.0.0_r45   Author: lulululbj   File: ImmediateNavigationTest.java    License: Apache License 2.0 5 votes vote down vote up
@Test
public void testNavigateInOnResume() throws Throwable {
    Instrumentation instrumentation = InstrumentationRegistry.getInstrumentation();
    Intent intent = new Intent(instrumentation.getContext(),
            ImmediateNavigationActivity.class);

    final ImmediateNavigationActivity activity = mActivityRule.launchActivity(intent);
    instrumentation.waitForIdleSync();
    NavController navController = activity.getNavController();
    assertThat(navController.getCurrentDestination().getId(), is(R.id.deep_link_test));
}
 
Example #24
Source Project: android-test   Author: android   File: RunnerArgs.java    License: Apache License 2.0 5 votes vote down vote up
private BufferedReader openFile(Instrumentation instr, String filePath) throws IOException {
  // If we are running as an instant app, then read the file through the shell
  // since the APK is in the targetSandboxVersion="2" with restrictive SELinux
  // policy which prevents reading from /data/local.
  final boolean isInstantApp =
      Build.VERSION.SDK_INT >= 26 && instr.getContext().getPackageManager().isInstantApp();
  return new BufferedReader(
      isInstantApp
          ? new InputStreamReader(
              new AutoCloseInputStream(
                  instr.getUiAutomation().executeShellCommand("cat " + filePath)))
          : new FileReader(new File(filePath)));
}
 
Example #25
Source Project: AndroidRipper   Author: reverse-unina   File: DialogUtils.java    License: GNU Affero General Public License v3.0 5 votes vote down vote up
/**
 * Constructs this object.
 * 
 * @param activityUtils the {@code ActivityUtils} instance
 * @param viewFetcher the {@code ViewFetcher} instance
 * @param sleeper the {@code Sleeper} instance
 */

public DialogUtils(Instrumentation instrumentation, ActivityUtils activityUtils, ViewFetcher viewFetcher, Sleeper sleeper) {
	this.instrumentation = instrumentation;
	this.activityUtils = activityUtils;
	this.viewFetcher = viewFetcher;
	this.sleeper = sleeper;
}
 
Example #26
Source Project: atlas   Author: alibaba   File: AndroidHack.java    License: Apache License 2.0 5 votes vote down vote up
public static Instrumentation getInstrumentation() throws Exception {
    Object activityThread = getActivityThread();
    if (activityThread == null) {
        throw new Exception("Failed to get ActivityThread.sCurrentActivityThread");
    }
    //return (Instrumentation)AtlasHacks.ActivityThread_mInstrumentation.on(activityThread).get();
    return (Instrumentation)AtlasHacks.ActivityThread_mInstrumentation.get(activityThread);
}
 
Example #27
Source Project: container   Author: codehz   File: AppInstrumentation.java    License: GNU General Public License v3.0 5 votes vote down vote up
private static AppInstrumentation create() {
	Instrumentation instrumentation = ActivityThread.mInstrumentation.get(VirtualCore.mainThread());
	if (instrumentation instanceof AppInstrumentation) {
		return (AppInstrumentation) instrumentation;
	}
	return new AppInstrumentation(instrumentation);
}
 
Example #28
Source Project: Camera2   Author: Yuloran   File: ImageCapture.java    License: Apache License 2.0 5 votes vote down vote up
public void captureImages(String reportTag, Instrumentation inst)
{
    int total_num_of_images = CameraStressTestRunner.mImageIterations;
    Log.v(TAG, "no of images = " + total_num_of_images);

    //TODO(yslau): Need to integrate the outoput with the central dashboard,
    //write to a txt file as a temp solution
    boolean memoryResult = false;
    KeyEvent focusEvent = new KeyEvent(KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_FOCUS);

    try
    {
        testUtil.writeReportHeader(reportTag, total_num_of_images);
        for (int i = 0; i < total_num_of_images; i++)
        {
            Thread.sleep(WAIT_FOR_IMAGE_CAPTURE_TO_BE_TAKEN);
            inst.sendKeySync(focusEvent);
            inst.sendCharacterSync(KeyEvent.KEYCODE_CAMERA);
            Thread.sleep(WAIT_FOR_IMAGE_CAPTURE_TO_BE_TAKEN);
            testUtil.writeResult(i);
        }
    } catch (Exception e)
    {
        Log.v(TAG, "Got exception: " + e.toString());
        assertTrue("testImageCapture", false);
    }
}
 
Example #29
Source Project: google-authenticator-android   Author: google   File: TestUtilities.java    License: Apache License 2.0 5 votes vote down vote up
/** Sets the text of the provided {@link TextView} widget on the UI thread. */
public static void setText(Instrumentation instr, final TextView view, final String text) {
  runOnMainSyncWithTimeout(
      new Callable<Void>() {
        @Override
        public Void call() {
          view.setText(text);
          return null;
        }
      });
  instr.waitForIdleSync();
  Assert.assertEquals(text, view.getText().toString());
}
 
Example #30
Source Project: permissive   Author: jksiezni   File: PermissiveTesting.java    License: Apache License 2.0 5 votes vote down vote up
private void applyActivityResult(Instrumentation.ActivityResult result) {
  String[] permissions = result.getResultData().getStringArrayExtra(EXTRA_REQUEST_PERMISSIONS_NAMES);
  int[] resultPermissions = result.getResultData().getIntArrayExtra(EXTRA_REQUEST_PERMISSIONS_RESULTS);
  for (int i = 0; i < permissions.length; ++i) {
    if (resultPermissions[i] == PackageManager.PERMISSION_GRANTED) {
      grantFakePermission(permissions[i]);
    } else {
      revokeFakePermission(permissions[i]);
    }
  }
}