public void chainAsyncFragmentCancel() {
   Log.d("BackgroundTasksTest", "chainAsyncFragmentCancel");
   solo.setActivityOrientation(Solo.PORTRAIT);
   solo.clickOnButton("Frg Chain");
   solo.sleep(1000);
   solo.setActivityOrientation(Solo.LANDSCAPE);
   solo.clickOnButton("Frg Cancel Chain");
   assertTrue("Chain did not cancel", solo.waitForLogMessage("onTaskCancel task 0", 3000));
 }
 public void singleAsyncCancel() {
   solo.clearLog();
   Log.d("BackgroundTasksTest", "singleAsyncCancel");
   solo.setActivityOrientation(Solo.PORTRAIT);
   solo.clickOnButton("Task");
   assertTrue("Task not started", solo.waitForLogMessage("onTaskReady task 0", 1000));
   solo.setActivityOrientation(Solo.LANDSCAPE);
   solo.clickOnButton("Cancel Task");
   assertTrue("Task did not cancel", solo.waitForLogMessage("onTaskCancel task 0", 3000));
 }
 public void singleAsyncFragment() {
   solo.clearLog();
   Log.d("BackgroundTasksTest", "singleAsyncFragment");
   solo.setActivityOrientation(Solo.PORTRAIT);
   solo.waitForActivity(MainActivity.class, 5000);
   solo.clickOnButton("Frg Task");
   assertTrue("Task not started", solo.waitForLogMessage("onTaskReady task 0", 1000));
   solo.setActivityOrientation(Solo.LANDSCAPE);
   assertTrue(
       "Task did not publish progress", solo.waitForLogMessage("onTaskProgress task 0", 3000));
   assertTrue("Task did not succeed", solo.waitForLogMessage("onTaskSuccess task 0", 5000));
 }
 public void chainAsync() {
   solo.clearLog();
   Log.d("BackgroundTasksTest", "chainAsync");
   solo.setActivityOrientation(Solo.PORTRAIT);
   solo.clickOnButton("Chain");
   assertTrue("Chain did not ready", solo.waitForLogMessage("onTaskReady task 0", 3000));
   assertTrue(
       "Chain did not publish progress", solo.waitForLogMessage("onTaskProgress task 0", 3000));
   assertTrue("Chain did not continue", solo.waitForLogMessage("onTaskSuccess task 0", 3000));
   solo.setActivityOrientation(Solo.LANDSCAPE);
   assertTrue("Chain did not ready", solo.waitForLogMessage("onTaskReady task 1", 3000));
   assertTrue(
       "Chain did not publish progress", solo.waitForLogMessage("onTaskProgress task 1", 3000));
   solo.setActivityOrientation(Solo.PORTRAIT);
   assertTrue("Chain did not continue", solo.waitForLogMessage("onTaskSuccess task 1", 3000));
 }
  public void testRun() {
    // Wait for activity: 'com.fitbit.onboarding.landing.LandingActivity_'
    solo.waitForActivity("LandingActivity_", 2000);
    // Wait for activity: 'com.fitbit.home.ui.HomeActivity_'
    assertTrue("HomeActivity_ is not found!", solo.waitForActivity("HomeActivity_"));
    // sleep - shot
    solo.sleep(500);

    // Click on -- bpm 64 bpm resting
    solo.clickInList(3, 0);

    // Wait for activity: 'com.fitbit.heartrate.landing.HeartRateLandingActivity'
    assertTrue(
        "HeartRateLandingActivity is not found!", solo.waitForActivity("HeartRateLandingActivity"));
    // sleep - shot
    solo.sleep(500);

    // Scroll View to the right side
    solo.scrollViewToSide(solo.getView(android.view.ViewGroup.class, 19), Solo.RIGHT);
    // sleep - shot
    solo.sleep(500);

    solo.clickOnText(java.util.regex.Pattern.quote("Minutes in"));
    // Wait for activity: 'com.fitbit.heartrate.charts.ExerciseHeartRateChartActivity_'
    assertTrue(
        "ExerciseHeartRateChartActivity is not found!",
        solo.waitForActivity("ExerciseHeartRateChartActivity"));

    // Rotate the screen
    solo.setActivityOrientation(Solo.LANDSCAPE);

    // Click on 1 WEEK
    solo.clickOnText(java.util.regex.Pattern.quote("1 WEEK"));

    // solo.clickOnText(java.util.regex.Pattern.quote("TIME IN HEART RATE ZONES"));

    solo.clickOnText(java.util.regex.Pattern.quote("Fat Burn"));
    solo.clickOnText(java.util.regex.Pattern.quote("Cardio"));
    solo.clickOnText(java.util.regex.Pattern.quote("Peak"));

    solo.scrollToSide(Solo.LEFT);
    solo.scrollToSide(Solo.LEFT);

    solo.scrollToSide(Solo.LEFT);
    solo.scrollToSide(Solo.LEFT);
    solo.scrollToSide(Solo.RIGHT);
    solo.scrollToSide(Solo.RIGHT);
    solo.scrollToSide(Solo.RIGHT);
    solo.scrollToSide(Solo.LEFT);
    solo.scrollToSide(Solo.RIGHT);

    solo.sleep(500);

    solo.goBack();
  }