abbot.util
Class Bugs

java.lang.Object
  extended by abbot.util.Bugs

public class Bugs
extends Object

Provides extant bug characterization of the current platform. For any bug encountered, there should be a static method indicating whether the bug is expected on the current platform, for example showAWTPopupMenuBlocks(). See the source for BugsTest for the test implementations.

Author:
twall

Method Summary
static String[] bugCheck(Window window)
          Check for certain robot-related bugs that will affect Abbot operation.
static boolean dragDropRequiresNativeEvents()
          Whether drag/drop requires native events.
static boolean fileDialogMisreportsBounds()
          Returns whether a FileDialog misreports its screen location.
static boolean fileDialogRequiresDismiss()
          Returns whether a FileDialog requires an explicit dismiss (ok/cancel).
static boolean fileDialogRequiresVisibleFrame()
           
static boolean hasChoiceLockupBug()
          Choice popup activates on mouse press, but locks up when the Robot attempts to post a mouse release.
static boolean hasEscapeGenerationBug()
          Robot.keyPress(KeyEvent.VK_ESCAPE doesn't work.
static boolean hasFrameDeiconifyBug()
          Some OSX releases wouldn't restore an iconified Frame.
static boolean hasHierarchyEventGenerationBug()
          Prior to 1.4.1, hierarchy events are only sent if listeners are added to a given component.
static boolean hasInputMethodInsteadOfKeyTyped()
          Returns whether KEY_TYPED events are sent to AWT listeners.
static boolean hasKeyInputDelay()
          Returnes whether there a longer delay required between robot generation and event queue posting for key events.
static boolean hasKeyStrokeGenerationBug()
          OSX prior to 1.4 has really crappy key input handling.
static boolean hasMenuDisableBug()
          Returns whether AWT menus have enable/disable problems.
static boolean hasMissingWindowMouseMotion()
          Returns whether windows send mouse motion events to AWT listeners.
static boolean hasMultiClickFrameBug()
          Do we get multiple clicks even when the individual clicks are on different frames?
static boolean hasNoAWTInputOnTextFieldBug()
           
static boolean hasRobotButtonsSwapped()
          Returns whether mouse buttons 2/3 are swapped when using Robot.
static boolean hasRobotMotionBug()
          OS X (as of 1.3.1, v10.1.5), will sometimes send a click to the wrong component after a mouse move.
static boolean hasTextComponentSelectionDelay()
           
static boolean locksUpOnScreenCapture()
           
static boolean needsRobotVerification()
          Returns whether there may be some scenarios in which the robot does not function properly.
static boolean reportsIncorrectLockingKeyState()
          Locking key state is reported incorrectly.
static boolean showAWTPopupMenuBlocks()
          Returns whether the Java event queue is suspended while an AWT popup is showing.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Method Detail

hasMenuDisableBug

public static boolean hasMenuDisableBug()
Returns whether AWT menus have enable/disable problems.


hasInputMethodInsteadOfKeyTyped

public static boolean hasInputMethodInsteadOfKeyTyped()
Returns whether KEY_TYPED events are sent to AWT listeners.


hasMissingWindowMouseMotion

public static boolean hasMissingWindowMouseMotion()
Returns whether windows send mouse motion events to AWT listeners.


hasRobotButtonsSwapped

public static boolean hasRobotButtonsSwapped()
Returns whether mouse buttons 2/3 are swapped when using Robot.


hasMultiClickFrameBug

public static boolean hasMultiClickFrameBug()
Do we get multiple clicks even when the individual clicks are on different frames?


needsRobotVerification

public static boolean needsRobotVerification()
Returns whether there may be some scenarios in which the robot does not function properly.


hasHierarchyEventGenerationBug

public static boolean hasHierarchyEventGenerationBug()
Prior to 1.4.1, hierarchy events are only sent if listeners are added to a given component.


hasKeyStrokeGenerationBug

public static boolean hasKeyStrokeGenerationBug()
OSX prior to 1.4 has really crappy key input handling.


hasKeyInputDelay

public static boolean hasKeyInputDelay()
Returnes whether there a longer delay required between robot generation and event queue posting for key events.


hasFrameDeiconifyBug

public static boolean hasFrameDeiconifyBug()
Some OSX releases wouldn't restore an iconified Frame.


hasRobotMotionBug

public static boolean hasRobotMotionBug()
OS X (as of 1.3.1, v10.1.5), will sometimes send a click to the wrong component after a mouse move. This continues to be an issue in 1.4.1

Linux x86 (1.3.1) has a similar problem, although it manifests it at different times (need a bug test case for this one).

Solaris and HPUX probably share code with the linux VM implementation, so the bug there is probably identical.


hasChoiceLockupBug

public static boolean hasChoiceLockupBug()
Choice popup activates on mouse press, but locks up when the Robot attempts to post a mouse release.


hasEscapeGenerationBug

public static boolean hasEscapeGenerationBug()
Robot.keyPress(KeyEvent.VK_ESCAPE doesn't work.


showAWTPopupMenuBlocks

public static boolean showAWTPopupMenuBlocks()
Returns whether the Java event queue is suspended while an AWT popup is showing.


reportsIncorrectLockingKeyState

public static boolean reportsIncorrectLockingKeyState()
Locking key state is reported incorrectly. Later versions (at least 1.4.2_11) throw UnsupportedOperationException).


dragDropRequiresNativeEvents

public static boolean dragDropRequiresNativeEvents()
Whether drag/drop requires native events.


fileDialogRequiresDismiss

public static boolean fileDialogRequiresDismiss()
Returns whether a FileDialog requires an explicit dismiss (ok/cancel). Ordinarily Window.dispose() will work.


fileDialogMisreportsBounds

public static boolean fileDialogMisreportsBounds()
Returns whether a FileDialog misreports its screen location.


fileDialogRequiresVisibleFrame

public static boolean fileDialogRequiresVisibleFrame()

hasTextComponentSelectionDelay

public static boolean hasTextComponentSelectionDelay()

hasNoAWTInputOnTextFieldBug

public static boolean hasNoAWTInputOnTextFieldBug()

locksUpOnScreenCapture

public static boolean locksUpOnScreenCapture()

bugCheck

public static String[] bugCheck(Window window)
Check for certain robot-related bugs that will affect Abbot operation. Returns a String for each bug detected on the current system.



Copyright © 2002-2008 Timothy Wall. All Rights Reserved.
Abbot is hosted on

SourceForge