예제 #1
0
  private void _doSingleButtonPressAndRelease(final int keyCode, final int keyModifierMask)
      throws Exception {

    if (_debug) {
      _debugPrintStream.println("\n>>>> _doSingleButtonPressAndRelease");
    }

    _doKeyPress(keyCode);

    for (int n = 0; n < _numButtonsToTest; ++n) {

      int awtButtonMask = _awtButtonMasks[n];

      if (_debug) {
        _debugPrintStream.println("*** pressing button " + (n + 1));
      }
      _testMouseListener.setExpectedModifiers(
          _getNewtModifiersForAwtExtendedModifiers(keyModifierMask | awtButtonMask));
      _robot.mousePress(awtButtonMask);
      _checkFailures("mouse-press(" + (n + 1) + ")", 1);

      if (_debug) {
        _debugPrintStream.println("*** releasing button " + (n + 1));
      }
      _testMouseListener.setExpectedModifiers(
          _getNewtModifiersForAwtExtendedModifiers(keyModifierMask | awtButtonMask));
      _robot.mouseRelease(awtButtonMask);
      _checkFailures("mouse-release(" + (n + 1) + ")", 1);
    }

    _doKeyRelease(keyCode);
  }
예제 #2
0
  private void execOffThreadWithOnThreadEventDispatch(Runnable testAction) throws Exception {
    _testMouseListener.setModifierCheckEnabled(false);
    _robot.setAutoDelay(MS_ROBOT_AUTO_DELAY);
    {
      // Make sure all the buttons and modifier keys are released.
      clearKeyboadAndMouse();
    }
    _testMouseListener.setModifierCheckEnabled(true);

    Throwable throwable = null;
    // final Object sync = new Object();
    final RunnableTask rt = new RunnableTask(testAction, null, true, System.err);
    try {
      // synchronized(sync) {
      new Thread(rt, "Test-Thread").start();
      int i = 0;
      while (!rt.isExecuted() && null == throwable) {
        System.err.println("WAIT-till-done: eventDispatch() #" + i++);
        eventDispatch();
      }
      if (null == throwable) {
        throwable = rt.getThrowable();
      }
      if (null != throwable) {
        throw new RuntimeException(throwable);
      }
      // }
    } finally {
      System.err.println("WAIT-till-done: DONE");
      _testMouseListener.setModifierCheckEnabled(false);
      clearKeyboadAndMouse();
    }
  }
예제 #3
0
 private void _doKeyRelease(int keyCode) {
   if (keyCode != 0) {
     boolean modifierCheckEnabled = _testMouseListener.modifierCheckEnabled();
     _testMouseListener.setModifierCheckEnabled(false);
     _robot.keyRelease(keyCode);
     _robot.delay(MS_ROBOT_KEY_RELEASE_DELAY);
     _testMouseListener.setModifierCheckEnabled(modifierCheckEnabled);
   }
 }
예제 #4
0
  private void _doSingleButtonClickAndDrag(final int keyCode, final int keyModifierMask)
      throws Exception {

    if (_debug) {
      _debugPrintStream.println("\n>>>> _doSingleButtonClickAndDrag");
    }

    _doKeyPress(keyCode);

    _testMouseListener.setModifierCheckEnabled(true);

    for (int n = 0; n < _numButtonsToTest; ++n) {

      int awtButtonMask = _awtButtonMasks[n];

      if (_debug) {
        _debugPrintStream.println("*** pressing button " + (n + 1));
      }
      _testMouseListener.setExpectedModifiers(
          _getNewtModifiersForAwtExtendedModifiers(keyModifierMask | awtButtonMask));
      _robot.mousePress(awtButtonMask);
      _checkFailures("mouse-press(" + (n + 1) + ")", 1);

      // To get a drag we only need to move one pixel.
      if (_debug) {
        _debugPrintStream.println("*** moving mouse");
      }
      final int newX = INITIAL_MOUSE_X + 8, newY = INITIAL_MOUSE_Y + 8;
      _robot.mouseMove(newX, newY);
      _robot.delay(MS_ROBOT_MOUSE_MOVE_DELAY);
      _checkFailures("mouse-move(" + newX + ", " + newY + ")", 1);

      if (_debug) {
        _debugPrintStream.println("*** releasing button " + (n + 1));
      }
      _testMouseListener.setExpectedModifiers(
          _getNewtModifiersForAwtExtendedModifiers(keyModifierMask | awtButtonMask));
      _robot.mouseRelease(awtButtonMask);
      _checkFailures("mouse-release(" + (n + 1) + ")", 1);

      _testMouseListener.setModifierCheckEnabled(false);
      _robot.mouseMove(INITIAL_MOUSE_X, INITIAL_MOUSE_Y);
      _robot.delay(MS_ROBOT_MOUSE_MOVE_DELAY);
      _testMouseListener.setModifierCheckEnabled(true);
    }

    _doKeyRelease(keyCode);
  }
예제 #5
0
 public void eventDispatchedPostTestDelay() throws Exception {
   eventDispatch();
   eventDispatch();
   eventDispatch();
   Thread.sleep(MS_ROBOT_POST_TEST_DELAY);
   eventDispatch();
   eventDispatch();
   eventDispatch();
   _testMouseListener.clear();
 }
예제 #6
0
  private void _doPressAllButtonsInSequence(final int keyCode, final int keyModifierMask)
      throws Exception {

    if (_debug) {
      _debugPrintStream.println("\n>>>> _doPressAllButtonsInSequence");
    }

    _doKeyPress(keyCode);

    {
      int cumulativeAwtModifiers = 0;

      for (int n = 0; n < _numButtonsToTest; ++n) {

        cumulativeAwtModifiers |= _awtButtonMasks[n];

        if (_debug) {
          _debugPrintStream.println("*** pressing button " + (n + 1));
        }
        _testMouseListener.setExpectedModifiers(
            _getNewtModifiersForAwtExtendedModifiers(keyModifierMask | cumulativeAwtModifiers));
        _robot.mousePress(_awtButtonMasks[n]);
        _checkFailures("mouse-press(" + (n + 1) + ")", 1);
      }

      for (int n = _numButtonsToTest - 1; n >= 0; --n) {

        if (_debug) {
          _debugPrintStream.println("*** releasing button " + (n + 1));
        }
        _testMouseListener.setExpectedModifiers(
            _getNewtModifiersForAwtExtendedModifiers(keyModifierMask | cumulativeAwtModifiers));
        _robot.mouseRelease(_awtButtonMasks[n]);
        _checkFailures("mouse-release(" + (n + 1) + ")", 1);

        cumulativeAwtModifiers &= ~_awtButtonMasks[n];
      }
    }

    _doKeyRelease(keyCode);
  }
예제 #7
0
  private void _releaseModifiers() {

    if (_robot != null) {

      _robot.setAutoDelay(MS_ROBOT_AUTO_DELAY);

      boolean modifierCheckEnabled = _testMouseListener.modifierCheckEnabled();
      _testMouseListener.setModifierCheckEnabled(false);

      {
        _robot.keyRelease(java.awt.event.KeyEvent.VK_SHIFT);
        _robot.keyRelease(java.awt.event.KeyEvent.VK_CONTROL);
        // _robot.keyRelease( java.awt.event.KeyEvent.VK_META ) ;
        // _robot.keyRelease( java.awt.event.KeyEvent.VK_ALT ) ;
        // _robot.keyRelease( java.awt.event.KeyEvent.VK_ALT_GRAPH ) ;

        for (int n = 0; n < _awtButtonMasks.length; ++n) {
          _robot.mouseRelease(_awtButtonMasks[n]);
        }
      }

      _testMouseListener.setModifierCheckEnabled(modifierCheckEnabled);
    }
  }
예제 #8
0
  private void _checkFailures(String descr, int waitEventCount) {
    ArrayList<String> failures = _testMouseListener.getFailures(waitEventCount);

    _debugPrintStream.print(getSimpleTestName(".") + " - " + descr + ": ");
    int numFailures = failures.size();
    if (numFailures == 0) {
      _debugPrintStream.println(" PASSED");
    } else {
      _debugPrintStream.println(" FAILED");
      for (int n = 0; n < numFailures; ++n) {
        _debugPrintStream.print("         ");
        _debugPrintStream.println(failures.get(n));
      }
    }

    Assert.assertTrue(failures.size() == 0);
  }