Пример #1
0
  public void retrieveWidgets() {
    home();
    clearWidgetList();
    ArrayList<View> viewList =
        (isInAndOutFocusEnabled()) ? solo.getViews() : solo.getCurrentViews();
    for (View w : viewList) {
      String text = (w instanceof TextView) ? ": " + ((TextView) w).getText().toString() : "";
      Log.d(
          "nofatclips",
          "Found widget: id="
              + w.getId()
              + " ("
              + w.toString()
              + ")"
              + text); // + " in window at [" + xy[0] + "," + xy[1] + "] on screen at [" + xy2[0] +
      // "," + xy2[1] +"]");

      //
      allViews.add(w);
      //

      if (w.getId() > 0) {
        theViews.put(w.getId(), w); // Add only if the widget has a valid ID
      }
      if (w instanceof TabHost) {
        setTabs((TabHost) w);
      }
    }
  }
Пример #2
0
 private List<String> getVisibleText() {
   List<String> texts = new ArrayList<String>();
   ArrayList<View> views = rutils.removeInvisibleViews(solo.getViews());
   for (View v : views) {
     if (v instanceof TextView) {
       String text = ((TextView) v).getText().toString();
       texts.add(text);
     }
   }
   return texts;
 }
Пример #3
0
  /**
   * Enhanced view finder. First tries to find it from Activity, then from all Views under ViewRoot.
   */
  protected final View findViewById(int id) {
    View view = solo.getView(id);
    if (view != null) return view;

    ArrayList<View> views = solo.getViews();
    for (View v : views) {
      if (v.getId() == id) {
        return v;
      }
    }
    return null;
  }
Пример #4
0
 private CommandResponse getViews(String[] arguments) {
   String command = "the command  getViews";
   CommandResponse result = new CommandResponse();
   String response = "";
   try {
     response = solo.getViews().toString();
     result.setResponse(command + ",Response: " + response);
     result.setSucceeded(true);
   } catch (Throwable e) {
     result = handleException(command, e);
   }
   return result;
 }
  public void testLoginValidation() throws TestException {

    try {
      Log.i(TAG, "------It is testLoginValidation()-----------");

      activityName = soloLoginValid.getCurrentActivity().getClass().getSimpleName();

      if (activityName.equalsIgnoreCase("MainActivity")) {
        Log.i(TAG, "------It is MainActivity-----------" + activityName);
        soloLoginValid.waitForActivity("HomeActivity", 2000);

        for (int i = 0; i < 40; i++) {
          activityName = soloLoginValid.getCurrentActivity().getClass().getSimpleName();
          if (activityName.equalsIgnoreCase("HomeActivity")) {

            Log.i(TAG, "------for()-- loop-----");
            break;
          }

          soloLoginValid.waitForActivity("HomeActivity", 2000);
        }

      } else {
        Log.i(TAG, "------ testLoginValidation failed-----------");
        throw new TestException(
            "Current Activity Failed----"
                + soloLoginValid.getCurrentActivity().getClass().getSimpleName()
                + "failed");
      }

      if (activityName.equalsIgnoreCase("HomeActivity")) {
        Log.i(TAG, "------HomeActivity-----------");
        System.out.println(" Activity name ---->" + soloLoginValid.getCurrentActivity());
        ArrayList<View> al = soloLoginValid.getViews();
        Iterator<View> it = al.iterator();
        while (it.hasNext()) {
          String viewName = it.next().getClass().getSimpleName();
          if (viewName.equalsIgnoreCase("ImageView")) {
            Log.i(TAG, "------ImageView found-----------");
            break;
          }
          continue;
        }

      } else {
        Log.i(TAG, "------HomeActivity not  found-----------");
        throw new TestException(
            TAG + soloLoginValid.getCurrentActivity().getClass().getSimpleName() + "failed");
      }
      // click on Loginbutton
      soloLoginValid.waitForActivity("MainActivity", 5000);
      // get the login button view with id i.e home_login_btn
      ImageView loginButton = (ImageView) soloLoginValid.getView(R.id.home_login_btn);
      // click on login button with view id
      soloLoginValid.clickOnView(loginButton);
      // control waits for 2 seconds to activate the screen
      soloLoginValid.waitForActivity("SplashActivity", 2000);
      // clears the text at first Editfield
      EditText emailField = (EditText) soloLoginValid.getView(R.id.txt_email);
      soloLoginValid.clearEditText(emailField);
      // it will type the text at first field which i gave in method
      soloLoginValid.enterText(emailField, "android@");
      // clear the text at second Editfield
      EditText passwordField = (EditText) soloLoginValid.getView(R.id.txt_password);
      soloLoginValid.clearEditText(passwordField);
      // finding the password field view
      // click the password field based on EditText view object
      soloLoginValid.clickOnView(passwordField);
      soloLoginValid.waitForActivity("MainActivity", 1000);
      soloLoginValid.enterText(passwordField, "*****");
      soloLoginValid.waitForActivity("MainActivity", 1000);
      // click on Login button
      ImageView clickLogin = (ImageView) soloLoginValid.getView(R.id.login_btn);
      soloLoginValid.clickOnView(clickLogin);
      // soloSplash.clickOnImageButton(1);
      soloLoginValid.waitForActivity("LoginActivity");
      soloLoginValid.clickOnView(emailField);
      soloLoginValid.waitForActivity("LoginActivity", 1000);
      boolean valid = soloLoginValid.searchText("Invalid Email address!");
      if (valid) {
        assertTrue("Invalid Email address!", valid);
      } else {
        throw new TestException("Testcase failed");
      }
      soloLoginValid.waitForActivity("LoginActivity", 1000);
      // Get the view location of cancel button.
      clickCancel = (ImageView) soloLoginValid.getView(R.id.cancel_btn);
      soloLoginValid.waitForActivity("MainActivity", 1000);
      // click on cancel button
      soloLoginValid.clickOnView(clickCancel);
      soloLoginValid.waitForActivity("LoginActivity", 1000);

    } catch (TestException e) {
      e.printStackTrace();
    }
  }
Пример #6
0
  private CommandResponse verifyViewExistsByDescription(String[] arguments) {
    String command = "the command  verify view exists by description";
    CommandResponse result = new CommandResponse();
    if (arguments == null || arguments.length < 2) {
      result.setResponse("Not all parameters were received");
      result.setSucceeded(false);
    } else {
      try {
        boolean startsWith = false;
        boolean clickInSpecificPosition = false;
        float x, y;
        x = y = 0.0f;
        if (arguments.length > 2) {
          startsWith = Boolean.parseBoolean(arguments[2]);
          clickInSpecificPosition = Boolean.parseBoolean(arguments[3]);
          if (clickInSpecificPosition) {
            x = Float.parseFloat(arguments[4]);
            y = Float.parseFloat(arguments[5]);
          }
        }
        boolean click = arguments[1].equals("true") ? true : false;
        command += "(" + arguments[0] + ", also click: " + (click ? "yes" : "no") + ")";
        for (View view : solo.getViews()) {
          if (view == null || view.getContentDescription() == null) {
            continue;
          }
          if (view.getContentDescription() != null) {
            boolean condition;
            if (startsWith) {
              condition = view.getContentDescription().toString().startsWith(arguments[0]);
            } else {
              condition = view.getContentDescription().equals(arguments[0]);
            }
            if (condition && view.getVisibility() == View.VISIBLE) {
              try {
                if (click) {

                  if (clickInSpecificPosition) {
                    int[] location = new int[2];
                    view.getLocationOnScreen(location);
                    int addX = (int) (x * ((float) view.getWidth()));
                    int addY = (int) (y * ((float) view.getHeight()));
                    this.solo.clickOnScreen(x + addX, y + addY);
                  } else {
                    clickOnView(view, false, false);
                  }
                }
              } catch (Throwable e) {

              }
              String addToCommand =
                  (click
                      ? (": Clicked on view with description: " + arguments[0])
                      : ("View with description: " + arguments[0] + "exists"));
              result.setResponse(command + addToCommand);
              result.setSucceeded(true);
              return result;
            }
          }
        }
        result.setResponse(command + " :No view with description " + arguments[0] + " found");
        result.setSucceeded(false);
        return result;
      } catch (Exception e) {
        result = handleException(command, e);
      }
    }
    return result;
  }