Beispiel #1
0
  void doTest() throws Exception {

    ArrayList<Component> components = new ArrayList();
    components.add(button);
    components.add(buttonLW);
    components.add(textField);
    components.add(textArea);
    components.add(list);
    components.add(listLW);

    int keys[];
    String OS = System.getProperty("os.name").toLowerCase();
    System.out.println(OS);
    if (OS.contains("os x") || OS.contains("sunos")) {
      keys = new int[] {KeyEvent.VK_SHIFT, KeyEvent.VK_CONTROL, KeyEvent.VK_ALT, KeyEvent.VK_META};
    } else {
      keys = new int[] {KeyEvent.VK_SHIFT, KeyEvent.VK_CONTROL, KeyEvent.VK_ALT};
    }

    for (Component c : components) {

      System.out.print(c.getClass().getName() + ": ");

      Point origin = c.getLocationOnScreen();
      int xc = origin.x + c.getWidth() / 2;
      int yc = origin.y + c.getHeight() / 2;
      Point center = new Point(xc, yc);

      robot.delay(robotDelay);
      robot.glide(origin, center);
      robot.click();
      robot.delay(robotDelay);

      for (int k = 0; k < keys.length; ++k) {

        keyPressReceived = false;

        keyCode = keys[k];

        robot.type(keyCode);

        robot.delay(robotDelay);

        if (!keyPressReceived) {
          synchronized (lock) {
            try {
              lock.wait(waitDelay);
            } catch (InterruptedException e) {
            }
          }
        }

        assertTrue(keyPressReceived, "key press event was not received");
      }

      System.out.println("passed");
    }

    robot.waitForIdle();
    frame.dispose();
  }
  private void doTest() throws Exception {
    ExtendedRobot robot = new ExtendedRobot();
    robot.waitForIdle(1000);

    final Point cl = combo.getLocationOnScreen();
    final Dimension cs = combo.getSize();

    SwingUtilities.invokeAndWait(
        new Runnable() {
          public void run() {
            frame.dispose();
          }
        });
    robot.waitForIdle(delay);
    SwingUtilities.invokeAndWait(
        new Runnable() {
          public void run() {
            frame.setSize((int) cl.x - 700 + cs.width, (int) cl.y + cs.height - 5);
            frame.setVisible(true);
          }
        });

    robot.waitForIdle(delay * 2);
    Point comboLocation = combo.getLocationOnScreen();
    Dimension comboSize = combo.getSize();

    robot.mouseMove((int) comboLocation.x + comboSize.width / 2, (int) comboLocation.y + 5);
    robot.waitForIdle(delay);
    robot.mousePress(InputEvent.BUTTON1_MASK);
    robot.delay(100);
    robot.mouseRelease(InputEvent.BUTTON1_MASK);
    robot.waitForIdle(delay);

    robot.mouseMove((int) comboLocation.x + comboSize.width / 2, (int) comboLocation.y + 60);
    robot.waitForIdle(delay);
    robot.mousePress(InputEvent.BUTTON1_MASK);
    robot.delay(100);
    robot.mouseRelease(InputEvent.BUTTON1_MASK);
    robot.waitForIdle(delay);

    if (!itemStateChanged) {
      synchronized (itemLock) {
        try {
          itemLock.wait(WAIT_EVENT_DELAY);
        } catch (Exception e) {
        }
      }
    }
    if (!itemStateChanged) {
      System.err.println("FAIL: ItemEvent not triggered when mouse clicked on combo box drop down");
      passed = false;
    }

    if (!passed) {
      System.err.println("Test failed!");
      captureScreenAndSave();
      throw new RuntimeException("FAIL");
    } else {
      System.out.println("Test passed!");
    }
  }