public void testRun() {
    // Wait for activity: 'course.labs.locationlab.PlaceViewActivity'
    solo.waitForActivity(course.labs.locationlab.PlaceViewActivity.class, 2000);

    // Set default small timeout to 55372 milliseconds
    Timeout.setSmallTimeout(55372);

    // Click on action bar item
    solo.clickOnActionBarItem(course.labs.locationlab.R.id.place_one);

    solo.sleep(2000);

    // Click on Get New Place
    solo.clickOnView(solo.getView(course.labs.locationlab.R.id.footer));

    solo.sleep(5000);

    // Click on action bar item
    solo.clickOnActionBarItem(course.labs.locationlab.R.id.print_badges);
  }
  public void testRun() {

    int delay = 2000;
    int longDelay = 5000;

    // Wait for activity: 'course.labs.locationlab.PlaceViewActivity'
    solo.waitForActivity(course.labs.locationlab.PlaceViewActivity.class, delay);

    // Click on action bar item
    solo.clickOnActionBarItem(course.labs.locationlab.R.id.place_one);

    solo.sleep(delay);

    // Click on Get New Place
    assertTrue(
        "Footer view isn't visible",
        solo.waitForView(course.labs.locationlab.R.id.footer, 0, delay));
    solo.clickOnView(solo.getView(course.labs.locationlab.R.id.footer));

    solo.sleep(2000);

    // Assert that PlaceBadge is shown
    assertTrue(
        "PlaceBadge is not shown!",
        solo.waitForText(solo.getString(R.string.the_greenhouse_string), 1, longDelay));

    // Click on action bar item
    solo.clickOnActionBarItem(course.labs.locationlab.R.id.place_one);

    solo.sleep(delay);

    // Click on Get New Place
    solo.clickOnView(solo.getView(course.labs.locationlab.R.id.footer));

    String samePlaceString =
        solo.getString(course.labs.locationlab.R.string.duplicate_location_string);

    // Assert that duplicate location Toast is shown
    assertTrue(samePlaceString + " is not shown!", solo.waitForText(samePlaceString, 1, longDelay));
  }
  /**
   * Test method to check if the Sales Management Game is loaded with proper default initialization
   */
  public void testPlayGridActivityLoadedWithData() {

    robotiumSolo.waitForActivity(com.shrikanthavale.salesmanagement.StartPageActivity.class, 2000);
    assertTrue(
        "com.shrikanthavale.salesmanagement.StartPageActivity is not found!",
        robotiumSolo.waitForActivity(com.shrikanthavale.salesmanagement.StartPageActivity.class));
    robotiumSolo.clickOnView(
        robotiumSolo.getView(com.shrikanthavale.salesmanagement.R.id.startPageStartButton));
    assertTrue(
        "com.shrikanthavale.salesmanagement.PlayGridActivity is not found!",
        robotiumSolo.waitForActivity(com.shrikanthavale.salesmanagement.PlayGridActivity.class));

    Timeout.setSmallTimeout(22015);

    while (true) {

      int randomNumber = (int) (Math.random() * (5 - 1)) + 1;
      System.out.println("****************" + randomNumber);

      switch (randomNumber) {
        case 1:
          robotiumSolo.clickOnView(
              robotiumSolo.getView(com.shrikanthavale.salesmanagement.R.id.upNavigation));
          robotiumSolo.clickOnView(
              robotiumSolo.getView(com.shrikanthavale.salesmanagement.R.id.upNavigation));
          robotiumSolo.clickOnView(
              robotiumSolo.getView(com.shrikanthavale.salesmanagement.R.id.leftNavigation));
          robotiumSolo.clickOnView(
              robotiumSolo.getView(com.shrikanthavale.salesmanagement.R.id.rightNavigation));
          robotiumSolo.clickOnView(
              robotiumSolo.getView(com.shrikanthavale.salesmanagement.R.id.downNavigation));
          robotiumSolo.clickOnView(
              robotiumSolo.getView(com.shrikanthavale.salesmanagement.R.id.rightNavigation));
          robotiumSolo.clickOnView(
              robotiumSolo.getView(com.shrikanthavale.salesmanagement.R.id.downNavigation));

          break;
        case 2:
          robotiumSolo.clickOnView(
              robotiumSolo.getView(com.shrikanthavale.salesmanagement.R.id.rightNavigation));
          robotiumSolo.clickOnView(
              robotiumSolo.getView(com.shrikanthavale.salesmanagement.R.id.leftNavigation));
          robotiumSolo.clickOnView(
              robotiumSolo.getView(com.shrikanthavale.salesmanagement.R.id.downNavigation));
          robotiumSolo.clickOnView(
              robotiumSolo.getView(com.shrikanthavale.salesmanagement.R.id.upNavigation));
          robotiumSolo.clickOnView(
              robotiumSolo.getView(com.shrikanthavale.salesmanagement.R.id.leftNavigation));
          robotiumSolo.clickOnView(
              robotiumSolo.getView(com.shrikanthavale.salesmanagement.R.id.downNavigation));
          robotiumSolo.clickOnView(
              robotiumSolo.getView(com.shrikanthavale.salesmanagement.R.id.upNavigation));
          robotiumSolo.clickOnView(
              robotiumSolo.getView(com.shrikanthavale.salesmanagement.R.id.leftNavigation));

        case 3:
          robotiumSolo.clickOnView(
              robotiumSolo.getView(com.shrikanthavale.salesmanagement.R.id.rightNavigation));
          robotiumSolo.clickOnView(
              robotiumSolo.getView(com.shrikanthavale.salesmanagement.R.id.leftNavigation));
          robotiumSolo.clickOnView(
              robotiumSolo.getView(com.shrikanthavale.salesmanagement.R.id.upNavigation));
          robotiumSolo.clickOnView(
              robotiumSolo.getView(com.shrikanthavale.salesmanagement.R.id.downNavigation));
          robotiumSolo.clickOnView(
              robotiumSolo.getView(com.shrikanthavale.salesmanagement.R.id.leftNavigation));
          robotiumSolo.clickOnView(
              robotiumSolo.getView(com.shrikanthavale.salesmanagement.R.id.upNavigation));
          robotiumSolo.clickOnView(
              robotiumSolo.getView(com.shrikanthavale.salesmanagement.R.id.downNavigation));
          robotiumSolo.clickOnView(
              robotiumSolo.getView(com.shrikanthavale.salesmanagement.R.id.leftNavigation));
        case 4:
          robotiumSolo.clickOnView(
              robotiumSolo.getView(com.shrikanthavale.salesmanagement.R.id.downNavigation));
          robotiumSolo.clickOnView(
              robotiumSolo.getView(com.shrikanthavale.salesmanagement.R.id.rightNavigation));
          robotiumSolo.clickOnView(
              robotiumSolo.getView(com.shrikanthavale.salesmanagement.R.id.leftNavigation));
          robotiumSolo.clickOnView(
              robotiumSolo.getView(com.shrikanthavale.salesmanagement.R.id.upNavigation));
          robotiumSolo.clickOnView(
              robotiumSolo.getView(com.shrikanthavale.salesmanagement.R.id.rightNavigation));
          robotiumSolo.clickOnView(
              robotiumSolo.getView(com.shrikanthavale.salesmanagement.R.id.leftNavigation));
          robotiumSolo.clickOnView(
              robotiumSolo.getView(com.shrikanthavale.salesmanagement.R.id.downNavigation));
          robotiumSolo.clickOnView(
              robotiumSolo.getView(com.shrikanthavale.salesmanagement.R.id.rightNavigation));
        default:
          break;
      }

      if (((PlayGridActivity) robotiumSolo.getCurrentActivity()).checkSufficientTimeCustomerTravel()
          || ((PlayGridActivity) robotiumSolo.getCurrentActivity())
              .checkSufficientTimeCustomerVisit()) {
        robotiumSolo.sendKey(Solo.MENU);
        robotiumSolo.sleep(1000);
        robotiumSolo.waitForText(robotiumSolo.getString(R.string.refreshGrid));
        robotiumSolo.clickOnActionBarItem(R.id.refresh_game);
        robotiumSolo.waitForDialogToOpen();
        robotiumSolo.clickOnButton(robotiumSolo.getString(R.string.popupdialogConfirmButton));
        robotiumSolo.waitForDialogToClose();
        robotiumSolo.waitForDialogToOpen();
        robotiumSolo.waitForDialogToClose();
        continue;
      }

      robotiumSolo.clickOnView(
          robotiumSolo.getView(com.shrikanthavale.salesmanagement.R.id.confirmSelection));

      // get the current focus button
      Button focusedButton =
          ((PlayGridActivity) robotiumSolo.getCurrentActivity()).getFocusedButton();

      if (focusedButton
              .getText()
              .toString()
              .trim()
              .equals(robotiumSolo.getString(R.string.emptystring))
          || focusedButton.getText().toString().trim().contains("Start")
          || focusedButton.getText().toString().trim().contains("R")) {
        // non customer node was clicked
        assertTrue(
            "Non Customer node clicked error message missing",
            robotiumSolo.searchText(robotiumSolo.getString(R.string.nonnodeclickederrormessage)));
        continue;

      } else if (((PlayGridActivity) robotiumSolo.getCurrentActivity())
          .getVisitedCustomers()
          .contains(focusedButton.getId())) {

        assertTrue(
            "Visited Customer node clicked error message missing",
            robotiumSolo.searchText(robotiumSolo.getString(R.string.alreadyvisitednode)));

        continue;

      } else {
        robotiumSolo.waitForDialogToOpen();
        robotiumSolo.waitForDialogToClose();
        assertTrue(
            "com.shrikanthavale.salesmanagement.CaseStudyDescriptionActivity is not found!",
            robotiumSolo.waitForActivity(
                com.shrikanthavale.salesmanagement.CaseStudyDescriptionActivity.class));
        break;
      }
    }

    robotiumSolo.clickOnView(robotiumSolo.getView(R.id.scrollView1));
    robotiumSolo.scrollDown();
    robotiumSolo.scrollUp();
    robotiumSolo.scrollDown();
    robotiumSolo.scrollUp();

    robotiumSolo.clickOnView(
        robotiumSolo.getView(com.shrikanthavale.salesmanagement.R.id.optionsNavigate));
    robotiumSolo.waitForDialogToOpen();
    assertTrue(
        "Loading Dialogue Missing",
        robotiumSolo.waitForText("Loading Option Details .... Please Wait"));
    robotiumSolo.waitForDialogToClose();
    assertTrue(
        "com.shrikanthavale.salesmanagement.CaseStudyDescriptionActivity is not found!",
        robotiumSolo.waitForActivity(
            com.shrikanthavale.salesmanagement.CaseStudyOptionsActivity.class));

    robotiumSolo.clickOnView(robotiumSolo.getView(R.id.scrollViewOptions));
    robotiumSolo.scrollDown();
    robotiumSolo.scrollUp();
    robotiumSolo.scrollDown();
    robotiumSolo.scrollUp();

    robotiumSolo.clickOnRadioButton(0);
    robotiumSolo.clickOnRadioButton(1);
    robotiumSolo.clickOnRadioButton(2);

    robotiumSolo.clickOnRadioButton(1);

    Display display = robotiumSolo.getCurrentActivity().getWindowManager().getDefaultDisplay();
    Instrumentation inst = getInstrumentation();
    PackageManager pm = robotiumSolo.getCurrentActivity().getPackageManager();

    Monkey monkey = new Monkey(display, packageToTest, inst, pm);

    for (int i = 0; i < NUM_EVENTS; i++) {
      monkey.nextRandomEvent();
    }
  }