public static void checkFilterLayout(Solo solo) throws Exception {

    View ScrollBar = solo.getView("seekbar", 0);
    View TableRowOne = solo.getView("tableRow1", 0);
    View TableRowTwo = solo.getView("tableRow2", 0);
    View TableRowThree = solo.getView("tableRow3", 0);
    solo.sleep(3000);
    boolean views =
        ScrollBar.isShown()
            && TableRowOne.isShown()
            && TableRowTwo.isShown()
            && TableRowThree.isShown();
    junit.framework.Assert.assertTrue("views not found.", views);
  }
  public void testValidLoginActivity() throws Exception {
    // Unlock the lock screen.
    solo.unlockScreen();
    // Assert that LoginActivity is opened.
    solo.assertCurrentActivity("Expected LoginActivity", "LoginActivity");
    // Enter a valid Email and password
    solo.enterText((EditText) solo.getView("email_address"), "*****@*****.**");
    solo.enterText((EditText) solo.getView("password"), "abc123456");
    // Click on login button
    Activity currentAcctivity = solo.getCurrentActivity();
    int id =
        currentAcctivity
            .getResources()
            .getIdentifier("btn_login", "id", currentAcctivity.getPackageName());
    Button login_btn = (Button) solo.getView(id);
    solo.clickOnView(login_btn);
    System.out.print(solo.getCurrentActivity());

    //        Activity activity = solo.getCurrentActivity();
    //        boolean authSuceess = !activity.equals(LoginActivity.class);
    //        assertTrue("Sucessfully log in", authSuceess);
    solo.sleep(1000);
    System.out.print(solo.getCurrentActivity());
    solo.clickOnMenuItem("Logout", true);
    ;
    solo.sleep(300);
  }
  public void testInvalidLoginActivity() throws Exception {
    // Unlock the lock screen.
    solo.unlockScreen();
    // Assert that LoginActivity is opened.
    Activity currentAcctivity = solo.getCurrentActivity();
    solo.assertCurrentActivity("Expected LoginActivity", "LoginActivity");
    solo.sleep(3000);
    // if user session
    isLogin = solo.waitForActivity("LoginActivity");
    if (!isLogin) {
      solo.clickOnMenuItem("Logout", true);
    }
    // Enter a valid Email and password
    solo.enterText((EditText) solo.getView("email_address"), "*****@*****.**");
    solo.enterText((EditText) solo.getView("password"), "wrongPassword");
    // Click on login button
    int id =
        currentAcctivity
            .getResources()
            .getIdentifier("btn_login", "id", currentAcctivity.getPackageName());
    Button login_btn = (Button) solo.getView(id);
    solo.clickOnView(login_btn);
    // Check if login
    solo.assertCurrentActivity("Invalid user can not log in, test pass!", LoginActivity.class);
    solo.sleep(2000);
    isLogin = solo.waitForActivity("LoginActivity");
    if (!isLogin) {

      solo.clickOnMenuItem("Logout", true);
    }
  }
  public void testRun() {
    // Wait for activity: 'com.fitbit.onboarding.landing.LandingActivity_'
    solo.waitForActivity("LandingActivity_", 500);
    // Wait for activity: 'com.fitbit.home.ui.HomeActivity_'
    assertTrue("HomeActivity_ is not found!", solo.waitForActivity("HomeActivity_"));
    solo.sleep(500);
    solo.clickOnView(solo.getView("tile_content", 1));

    // Wait for activity: 'com.fitbit.runtrack.ui.ExerciseListActivity'
    assertTrue("ExerciseListActivity is not found!", solo.waitForActivity("ExerciseListActivity"));
    // sleep for x seconds
    solo.sleep(500);

    // Click on Empty Text View
    solo.clickOnView(solo.getView("new_exercise"));
    // Wait for activity: 'com.fitbit.runtrack.ui.RecordExerciseActivity'
    assertTrue(
        "RecordExerciseActivity is not found!", solo.waitForActivity("RecordExerciseActivity"));
    // sleep for x seconds
    solo.sleep(500);

    solo.goBack();

    solo.scrollToSide(Solo.LEFT);

    solo.clickOnView(solo.getView("track_type"));
    // Click on Walk
    solo.clickOnView(solo.getView(android.R.id.text1, 1));
    solo.sleep(500);
  }
  public void testRun() {
    // Wait for activity: 'com.fitbit.onboarding.landing.LandingActivity_'
    solo.waitForActivity("LandingActivity_", 500);
    // Wait for activity: 'com.fitbit.home.ui.HomeActivity_'
    assertTrue("HomeActivity_ is not found!", solo.waitForActivity("HomeActivity_"));
    solo.sleep(500);
    solo.clickOnView(solo.getView("tile_content", 1));

    // Wait for activity: 'com.fitbit.runtrack.ui.ExerciseListActivity'
    assertTrue("ExerciseListActivity is not found!", solo.waitForActivity("ExerciseListActivity"));
    // sleep for x seconds
    solo.sleep(500);

    // Click on Empty Text View
    solo.clickOnView(solo.getView("new_exercise"));
    // Wait for activity: 'com.fitbit.runtrack.ui.RecordExerciseActivity'
    assertTrue(
        "RecordExerciseActivity is not found!", solo.waitForActivity("RecordExerciseActivity"));
    // sleep for x seconds
    solo.sleep(500);
    solo.clickOnText(java.util.regex.Pattern.quote("Log Previous"));

    solo.enterText(0, "yoga");
    solo.clickOnText(java.util.regex.Pattern.quote("Yoga"));

    solo.clickOnText(java.util.regex.Pattern.quote("30:00"));
    solo.setTimePicker(0, 23, 59);
    solo.clickOnView(solo.getView(android.R.id.button1));

    solo.clickOnView(solo.getView("confirm"));
    solo.clickOnView(solo.getView(android.R.id.button1));
  }
Exemple #6
0
  public void testLocationHandling() {
    solo.clickOnToggleButton(startStopButton.getText().toString());

    solo.sleep(1000);
    System.out.println("DEBUG: CLICKED");
    Location locationA = createLocation((float) 47.058765, (float) 15.459198, 355.112);
    System.out.println("DEBUG: Send first Location");
    sendLocation(locationA);

    solo.sleep(1100);

    assertEquals("Is first Location send", "0.0m", distanceTextView.getText().toString());
    assertEquals("Is altitude set correct", "0.0m", altitudeTextView.getText().toString());

    Location locationB = createLocation((float) 47.069523, (float) 15.450572, 354.110);
    sendLocation(locationB);
    solo.sleep(1000);

    double altitude = 355.112 - 354.110;
    System.out.println("DEBUG: expected distance " + locationB.distanceTo(locationA));
    assertEquals(
        "Is second Location send",
        locationB.distanceTo(locationA) + "m",
        distanceTextView.getText().toString());
    assertEquals(
        "Is altitude calculated correct?", altitude + "m", altitudeTextView.getText().toString());
  }
  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();
  }
  /**
   * Test if the button is navigating user between activities correctly. Since the GUI is skeleton
   * now, this button is not tested: Stats
   */
  public void testRes_Navigation() {
    innerFunction(childrenButton, childrenList.class);
    innerFunction(locationButton, locationList.class);

    solo.clickOnView(logOutButton);
    solo.sleep(500);
    solo.assertCurrentActivity("ERR - Could not jump to login screen.", Login.class);
  }
 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));
 }
 // the function just for help to minimize and reuse the code
 private void innerFunction(Button btn, Class cls) {
   solo.clickOnView(btn);
   solo.sleep(500);
   solo.assertCurrentActivity("ERR - Could not jump to children list.", cls);
   solo.hideSoftKeyboard();
   solo.goBack();
   solo.goBack();
   solo.assertCurrentActivity("ERR - Could not jump back from children list.", researcher.class);
 }
  public void testRun() {
    // Wait for activity: 'com.fitbit.onboarding.landing.LandingActivity_'
    solo.waitForActivity("LandingActivity_", 2000);
    // Sleep for x milliseconds
    solo.sleep(500);
    // screenshot
    solo.takeScreenshot("d_e_termsPrivacy_a_launch");
    // Click on Join Fitbit
    solo.clickOnView(solo.getView("btn_join_fitbit"));
    // Wait for activity: 'com.fitbit.onboarding.setup.CheckDeviceActivity_'
    assertTrue("CheckDeviceActivity_ is not found!", solo.waitForActivity("CheckDeviceActivity_"));
    // Wait for activity: 'com.fitbit.device.ui.setup.choose.ChooseTrackerActivity_'
    assertTrue(
        "ChooseTrackerActivity_ is not found!", solo.waitForActivity("ChooseTrackerActivity_"));
    // Sleep for x milliseconds
    solo.sleep(500);
    // screenshot
    solo.takeScreenshot("d_e_termsPrivacy_b_deviceList");
    // Click on Charge HR Wireless Heart Rate + sleep wristband with display
    solo.clickInList(2, 0);
    // Wait for activity: 'com.fitbit.device.ui.setup.choose.ConfirmDeviceActivity_'
    assertTrue(
        "ConfirmDeviceActivity_ is not found!", solo.waitForActivity("ConfirmDeviceActivity_"));
    // Sleep for x milliseconds
    solo.sleep(500);
    // screenshot
    solo.takeScreenshot("d_e_termsPrivacy_c_chargeHR");
    // Click on Set up your Charge HR
    solo.clickOnView(solo.getView("btn_setup"));
    // Wait for activity: 'com.fitbit.onboarding.login.LoginActivity'
    assertTrue("LoginActivity is not found!", solo.waitForActivity("LoginActivity"));

    solo.enterText(0, "*****@*****.**");
    solo.enterText(1, "spoon123");

    solo.clickOnView(solo.getView("termsCheckBox"));

    // Click on Create an account
    solo.clickOnView(solo.getView("login_button"));
    // Wait for activity: 'com.fitbit.onboarding.profile.AboutYouActivity_'
    assertTrue("AboutYouActivity is not found!", solo.waitForActivity("AboutYouActivity"));
  }
  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);
  }
  // Check whether the application is first started.
  public static void testFirstLaunch(Solo solo) throws Exception {
    solo.sleep(3000);
    SharedPreferences prefs =
        PreferenceManager.getDefaultSharedPreferences(solo.getCurrentActivity());
    boolean flag = prefs.getBoolean("Time", false);
    if (!flag) {
      solo.sleep(3000);
      solo.clickOnView(solo.getView("welcome_skip"));
      solo.sleep(2000);
      solo.clickOnView(solo.getView("category_editor_ok_btn"));
      solo.sleep(2000);
      SharedPreferences.Editor editor = prefs.edit();
      editor.putBoolean("Time", true);
      editor.commit();
      junit.framework.Assert.assertTrue("Not the first time launch app", true);

    } else {
      junit.framework.Assert.assertTrue("Not the first time launch app", true);
    }
  }
  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));
  }
 public void testRun() {
   // Wait for activity: 'it.feio.android.omninotes.MainActivity'
   solo.waitForActivity(it.feio.android.omninotes.MainActivity.class, 4000);
   // Set default small timeout to 30522 milliseconds
   Timeout.setSmallTimeout(30522);
   // Click on ImageView
   solo.clickOnView(solo.getView(it.feio.android.omninotes.R.id.fab_expand_menu_button));
   // Click on LinearLayout
   solo.clickOnView(solo.getView(it.feio.android.omninotes.R.id.reminder_layout));
   // Check that no reminder is set
   assertEquals(
       ((TextView) solo.getView(it.feio.android.omninotes.R.id.datetime))
           .getText()
           .toString()
           .length(),
       0);
   // Wait for dialog
   solo.waitForDialogToOpen(5000);
   // Click on Done
   solo.clickOnView(solo.getView(it.feio.android.omninotes.R.id.done));
   // Wait for dialog
   solo.waitForDialogToOpen(5000);
   // Click on Done
   solo.clickOnView(solo.getView(it.feio.android.omninotes.R.id.done_button));
   // Check if a reminder is present
   assertNotNull(
       ((TextView) solo.getView(it.feio.android.omninotes.R.id.datetime)).getText().toString());
   // Click on Empty Text View
   solo.clickOnView(solo.getView(it.feio.android.omninotes.R.id.menu_attachment));
   // Click on Sketch
   solo.clickOnView(solo.getView(it.feio.android.omninotes.R.id.sketch));
   // Draw a line
   solo.drag(222.79372F, 470.5643F, 590.6923F, 1048.4539F, 40);
   // Click on ImageView
   solo.clickOnView(solo.getView(android.widget.ImageButton.class, 0));
   // Wait for thumbnail
   solo.sleep(1000);
   // Click on RelativeLayout
   solo.clickInList(1, 0);
   // Wait for activity: 'it.feio.android.omninotes.GalleryActivity'
   assertTrue(
       "it.feio.android.omninotes.GalleryActivity is not found!",
       solo.waitForActivity(it.feio.android.omninotes.GalleryActivity.class));
   // Click on ImageView
   solo.clickOnView(solo.getView(android.widget.ImageView.class, 0));
   // Click on ImageView
   solo.clickOnView(solo.getView(android.widget.ImageView.class, 0));
   // Click on ImageView
   solo.clickOnView(solo.getView(android.widget.ImageButton.class, 0));
   // Click on ImageView
   solo.clickOnView(solo.getView(android.widget.ImageButton.class, 0));
 }
  public void testRun() {
    // Wait for activity: 'com.fitbit.onboarding.landing.LandingActivity_'
    solo.waitForActivity("LandingActivity_", 500);
    // Wait for activity: 'com.fitbit.home.ui.HomeActivity_'
    assertTrue("HomeActivity is not found!", solo.waitForActivity("HomeActivity"));
    // Sleep
    solo.sleep(500);

    // Click on steps
    solo.clickOnText(java.util.regex.Pattern.quote("floors"));

    solo.takeScreenshot("b_tileDetails_a_a_steps_b_tapTile");
    // Wait for activity: 'com.fitbit.activity.ui.landing.ActivityLandingActivity_'
    assertTrue(
        "ActivityLandingActivity is not found!", solo.waitForActivity("ActivityLandingActivity"));
    // Sleep
    solo.sleep(500);

    solo.clickOnText(java.util.regex.Pattern.quote("Aug 5"));

    solo.clickOnText(java.util.regex.Pattern.quote("floors"));
  }
  public void testRun() {

    int delay = 2000;

    // Wait for activity: 'com.example.ignaciogiagante.modernartui.MainActivity'
    solo.waitForActivity(com.example.ignaciogiagante.modernartui.MainActivity.class, delay);

    // Wait for view: 'R.id.seekbar'
    assertTrue("progressBar not found", solo.waitForView(R.id.seekbar));

    View view = solo.getCurrentActivity().findViewById(R.id.first_vertical);
    ColorDrawable colorDrawable = (ColorDrawable) view.getBackground();

    SeekBar seekBar = (SeekBar) solo.getCurrentActivity().findViewById(R.id.seekbar);

    // Check color with progress bar position 0
    solo.setProgressBar(seekBar, 0);
    solo.sleep(delay);
    int intColor = colorDrawable.getColor();
    String strColor = String.format("#%06X", 0xFFFFFF & intColor);
    assertEquals("#6A77B7", strColor);

    // Check color with progress bar position 51
    solo.setProgressBar(seekBar, 51);
    solo.sleep(delay);
    intColor = colorDrawable.getColor();
    strColor = String.format("#%06X", 0xFFFFFF & intColor);
    assertEquals("#78B2C6", strColor);

    // Check color with progress bar position 102
    solo.setProgressBar(seekBar, 102);
    solo.sleep(delay);
    intColor = colorDrawable.getColor();
    strColor = String.format("#%06X", 0xFFFFFF & intColor);
    assertEquals("#86D4BC", strColor);

    // Check color with progress bar position 153
    solo.setProgressBar(seekBar, 153);
    solo.sleep(delay);
    intColor = colorDrawable.getColor();
    strColor = String.format("#%06X", 0xFFFFFF & intColor);
    assertEquals("#96E3A1", strColor);

    // Check color with progress bar position 204
    solo.setProgressBar(seekBar, 204);
    solo.sleep(delay);
    intColor = colorDrawable.getColor();
    strColor = String.format("#%06X", 0xFFFFFF & intColor);
    assertEquals("#C7F1A6", strColor);

    // Check color with progress bar position 255
    solo.setProgressBar(seekBar, 255);
    solo.sleep(delay);
    intColor = colorDrawable.getColor();
    strColor = String.format("#%06X", 0xFFFFFF & intColor);
    assertEquals("#FFFFB7", strColor);
  }
  public void testRun() {
    // Wait for activity: 'com.fitbit.onboarding.landing.LandingActivity_'
    solo.waitForActivity("LandingActivity_", 2000);

    solo.clickOnText(java.util.regex.Pattern.quote("asleep"));
    solo.takeScreenshot("f_sleep_e1");
    // Wait for activity: 'com.fitbit.sleep.ui.landing.SleepLoggingLandingActivity'
    assertTrue(
        "SleepLoggingLandingActivity is not found!",
        solo.waitForActivity("SleepLoggingLandingActivity"));
    // Sleep
    solo.sleep(1000);
    solo.takeScreenshot("f_sleep_e2");

    // Click on Empty Text View
    // solo.clickOnView(solo.getView(android.widget.TextView.class, 24));
    solo.clickOnScreen(1290, 255);
    // Sleep
    solo.sleep(1000);
    // solo.takeScreenshot("f_sleep_a3");
    // Click on Begin Sleep Now
    solo.clickInList(2, 0);
    // Wait for activity: 'com.fitbit.sleep.ui.SleepRecordActivity'
    assertTrue("SleepRecordActivity is not found!", solo.waitForActivity("SleepRecordActivity"));
    // Sleep
    solo.sleep(65000);
    solo.takeScreenshot("f_sleep_e4");
    // Click on I'm Awake
    solo.clickOnView(solo.getView("awakeButton"));
    // Sleep
    solo.sleep(1000);
    solo.takeScreenshot("f_sleep_e5");
    // Click on View Summary
    solo.clickOnView(solo.getView("awakeButton"));
    // Sleep
    solo.sleep(1500);
    solo.takeScreenshot("f_sleep_e6");
    solo.goBack();
    // Sleep
    solo.sleep(1500);
    solo.takeScreenshot("f_sleep_e7");
  }
  /*

      This test will simulate a user accept a request for her ride and create a group.
      Since we can not accept requests now, this test can only create a group.

  */
  public void testAcceptance_4() throws Exception {

    // Email : [email protected] Password:123

    // Unlock the lock screen.
    solo.unlockScreen();
    solo.enterText((EditText) solo.getView("email_address"), email);
    solo.enterText((EditText) solo.getView("password"), password);
    // Click on login button
    currentActivity = solo.getCurrentActivity();
    int id_login =
        currentActivity
            .getResources()
            .getIdentifier("btn_login", "id", currentActivity.getPackageName());
    Button login_btn = (Button) solo.getView(id_login);
    solo.clickOnView(login_btn);
    solo.sleep(1000);
    currentActivity = solo.getCurrentActivity();

    // click menu item
    int id_groups =
        currentActivity
            .getResources()
            .getIdentifier("my_groups", "id", currentActivity.getPackageName());
    solo.sleep(500);
    solo.clickOnView(solo.getView(id_groups));
    solo.sleep(1000);
    currentActivity = solo.getCurrentActivity();
    int id_createAGroup =
        currentActivity
            .getResources()
            .getIdentifier("button_createagroup", "id", currentActivity.getPackageName());
    solo.clickOnView(solo.getView(id_createAGroup));

    solo.sleep(1000);

    // Wait for CreateAGroupActivity
    solo.waitForActivity("CreateAGroupActivity");
    Activity currentAcctivity = solo.getCurrentActivity();
    solo.enterText((EditText) solo.getView("createGroupName"), "TestGroup");
    // select group type

    int GroupCategroyId =
        currentAcctivity
            .getResources()
            .getIdentifier("pasttimeButton", "id", currentAcctivity.getPackageName());
    RadioButton pasttimeButton = (RadioButton) solo.getView(GroupCategroyId);
    solo.clickOnView(pasttimeButton);

    solo.enterText(
        (EditText) solo.getView("createGroupDescription"),
        "This group is created to test this function.");
    int mapButton =
        currentAcctivity
            .getResources()
            .getIdentifier("createFixedPointAddress", "id", currentAcctivity.getPackageName());
    Button createFixedPointAddress = (Button) solo.getView(mapButton);
    solo.clickOnView(createFixedPointAddress);

    // select pin
    boolean initialID =
        solo.waitForFragmentById(
            R.id
                .map); // where id.satellite is defined in the R file, eventually would time out and
                       // throw error if fragment was not present
    solo.sleep(1000);
    Activity mapActivity = solo.getCurrentActivity();
    int map =
        mapActivity.getResources().getIdentifier("map", "id", currentAcctivity.getPackageName());
    View mapView = solo.getView(map);
    solo.clickOnView(mapView);
    solo.sleep(1000);
    int mapSubmit =
        currentAcctivity
            .getResources()
            .getIdentifier("submit", "id", currentAcctivity.getPackageName());
    Button btn_mapSubmit = (Button) solo.getView(mapSubmit);
    solo.clickOnView(btn_mapSubmit);
    solo.sleep(1000);

    //        boolean back = solo.waitForActivity("creatAGroupActivity");
    //        assertTrue("Sucessfully back to activity", back);
    currentAcctivity = solo.getCurrentActivity();
    int GroupTypeId =
        currentAcctivity
            .getResources()
            .getIdentifier("p1privateButton", "id", currentAcctivity.getPackageName());
    RadioButton p1privateButton = (RadioButton) solo.getView(GroupTypeId);
    solo.clickOnView(p1privateButton);
    solo.sleep(500);
    int submit =
        currentAcctivity
            .getResources()
            .getIdentifier("btn_submit", "id", currentAcctivity.getPackageName());
    Button btn_submit = (Button) solo.getView(submit);
    solo.clickOnView(btn_submit);
    solo.sleep(1000);

    solo.clickOnMenuItem("Logout", true);
  }
  /**
   * 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();
    }
  }
 @Override
 protected void setUp() throws Exception {
   solo = new Solo(getInstrumentation(), getActivity());
   solo.sleep(5000);
 }
  public void testCase1() {
    Log.d("xiacj", "test1()");
    SharedPreferences preferences =
        getInstrumentation()
            .getTargetContext()
            .getSharedPreferences("com.tencent.mm_preferences", 0);
    String login_user_name = preferences.getString("login_user_name", "");
    // 判断当前界面
    String className = solo.getCurrentActivity().getClass().getSimpleName();
    Log.e(TAG, "className:" + className + "  user:"******"LauncherUI")) {
      Boolean b1 = solo.searchText("快捷方式");
      if (b1) {
        Log.d(TAG, "found 界面:  快捷方式");
        solo.clickOnButton("取消");
      }

      Boolean b2 = solo.searchText("登录");
      Boolean b3 = solo.searchText("语言");
      if (b2 && b3) {
        Log.d(TAG, "found 界面:  登录、语言");
        solo.clickOnButton("登录");
        solo.sleep(2000);

        EditText editText;
        String str;
        editText = solo.getEditText(0);
        str = editText.getHint().toString();
        Log.e(TAG, "hint text: " + str);
        solo.enterText(editText, name1);

        editText = solo.getEditText(0);
        str = editText.getHint().toString();
        Log.e(TAG, "hint text: " + str);
        solo.enterText(editText, password);
        solo.clickOnText("登录");
      } else {
        Boolean b4 = solo.searchText("遇到问题");
        if (b4) {
          Log.d(TAG, "found 界面:  遇到问题");
          EditText editText = solo.getEditText(0);
          String str = editText.getHint().toString();
          Log.e(TAG, "hint text: " + str);
          solo.enterText(editText, password);
          solo.clickOnText("登录");
        }
      }
    } else {
      solo.assertCurrentActivity("进入LoginHistoryUI", "LoginHistoryUI");
      solo.waitForText("切换帐号");
      solo.clickOnText("切换帐号");

      solo.waitForView(ListView.class);
      ListView lv = solo.getView(ListView.class, 0);
      View itemView = lv.getChildAt(1);
      solo.clickOnView(itemView);
      solo.sleep(1000);

      // 断言进入登录界面
      solo.assertCurrentActivity("进入LoginUI", "LoginUI");
      solo.waitForView(solo.getButton(0));
      solo.enterText(0, name);
      solo.enterText(1, password);
      solo.clickOnButton(0);
      solo.sleep(1000 * 3);
    }

    try {
      Log.e(TAG, "try>>>>>>>>>>>>>>>>>>>>>>>>");
      solo.assertCurrentActivity("进入LauncherUI", "LauncherUI");
      if (true) {
        // 点击发现
        solo.waitForText("发现");
        solo.clickOnText("发现");
        solo.sleep(1000);
        Boolean b = solo.searchText("朋友圈") && solo.searchText("购物");
        if (b) {
          Log.d(TAG, "进入发现");
        }
        solo.sleep(2000);
      }
    } catch (Exception e) {
      Log.e(TAG, "catch:Exception e:" + e.getMessage());
    } finally {
      Log.e(TAG, "finally>>>>>>>>>>>>>>>>>>>>>>>>doFinally");
      // doFinally();
    }
    solo.sleep(1000 * 3);
  }