Abbot Topics

Abbot Release Changes

Release 1.2

Features

  • Refreshed to a whole new dependency stack
  • Tested against JDK 1.6, will work wth JDK 1.7
  • Replaced BeanShell scripting engine

Bug Fixes

  • Many miscellaneous fixes.

Release 1.0.1 (080305)

Features

  • Refactor jar files into abbot library and editor jars.
  • Update OSX application adapter support.
  • Improve cell matching (gdavison).
  • Refactor test fixture setup/teardown to allow standalone usage.

Bug Fixes

  • Many miscellaneous fixes.
  • Avoid NPE during ctor of WindowTracker (coxen).
  • Update xerces jar and note version (sburoff).
  • Include explicit version on dependent jars.
  • Use PNG encoding for image comparisons, if available.

Release 1.0.0.rc5 (061027)

Features

  • Provide object-based JListLocation.

Bug Fixes

  • Include missing bits in released src.jar.
  • Ensure JComboBox tester works on LAFs not based on Basic.
  • Improve JFileChooserTester methods and javadoc.
  • Provide frame waiting methods in ComponentTester to replace deprecated ones.
  • Fix conflict caused by explicitly referencing an older SAXParser in JDOM.

Release 1.0.0.rc4 (061001)

Bug Fixes

  • Fix actionActionMap failure (metasim).

Release 1.0.0.rc3 (060812)

Features

  • Better native drag/drop recording (now works on OSX and X11).
  • If a given keystroke for a JComponent action is unavailable on the current keyboard, try others keystrokes, if available.
  • Throw an ActionFailedException if a required menu is disabled.
  • Provide ComponentLocation-based Robot.sample().
  • Add drag/drop modifier mask and action constants.
  • Provide methods on fixture to press/release modifier keys, and automatically reset them after the test.
  • Added no_NO keymaps (fjankk).
  • Added abbot.skip_ui_tests to globally skip UI tests.
  • Project version control has been moved to Subversion.
  • Make invokeLater/invokeAndWait methods on ComponentTestFixture.

Bug Fixes

  • Clean up most test failures on linux and OSX.
  • Avoid extraneous mouse release and ESCAPE key presses on fixture teardown, which would lead to odd system behavior after a test run.
  • Fix NPE in tabbed pane operation.
  • Save/restore locking keys state around test runs rather than while the editor is running.
  • Fix race condition when rapidly showing/hiding popups which left some components incorrectly filtered.
  • Avoid beeping on actionEnterText when there is no existing text to replace.
  • Fix some sporadic failures due to modal dialogs not yet having focus.
  • Avoid triggering w32 windows menu on editor exit.
  • Fix drag/drop and many other tests on Linux.
  • Enable property substitution when using ComponentLocation arguments (e.g. actionClick(list, "${click.target}").
  • Catch junit.framework.AssertionFailedError rather than the abbot wrapper (J-F Poilpret).
  • Look for abbot.no_security_manager, not abbot.use_security_manager in StepRunner.
  • Fix multiple component search exception when looking up the shared root frame from an applet.

Release 1.0.0rc2 (051222)

Features

  • Added JToolBarTester to float/unfloat a JToolBar.
  • Improved window-ready tracking.
  • Auto-release pressed buttons on ComponentTestFixture teardown (prevents unexpected coupling between tests).
  • Added no-arg constructor to ScriptTestSuite to facilitate defining suites of scripts from an Ant task (Paul King).
  • Explicitly indicate exceptions thrown from the EDT.
  • Allow inspection of non-public properties (for instance, in a class with default access).

Bug Fixes

  • Work around NPE thrown by some custom components if getName is called during component initialization.
  • Fixed custom class loader not getting installed on the EDT (showed up when using dynamically-loaded LookAndFeel) (Peter Warren).
  • Fixed lockup on fast linux systems when causing a modal dialog to display (thanks Russel Winder and jchild).
  • Fixed potential NPE in JComboBoxTester (Josh Passenger).

Release 1.0.0rc1 (050916)

Features

  • Add selection of menu item by path.
  • Application fixtures (finally!). Run one application instance, perform many tests.
  • When exceptions are caught both on the event dispatch thread and the main test thread, fail with the one that was caught first. Previously test thread exceptions always took priority, which would often hide event dispatch exceptions.
  • Wait for contents of expanded tree nodes to appear if slow-loading.
  • Added keymap for de_DE (w32) (Niels Stargardt), ja_JP (w32/mac) (kaz), fr_FR (w32) (jean Thieser).
  • Added JGraph example extension.
  • Exit on close for frames used by ComponentTestFixture, so if a test hangs, you can easily kill it.
  • Make JTreeTester work with lazily-created tree nodes (pat dumais).
  • Add assert for tree path existence in JTreeTester (pat dumais).
  • Clear text fields when actionEnterText is called with an empty string.
  • Allow for class path changes when looking for test suites to load. Ensure abbot.jar is always implicitly in the path.
  • Allow different function keys to be mapped in Costello.
  • Added tester for JTextField (commit actions).

Bug Fixes

  • Fix sporadic submenu activation failure on w32.
  • Fix dropped 'sz' characters with German input (Mario Boller).
  • Fix image capture test to not hang if images are missing (Art Hampton).
  • Fix recording labels for with vs w/o motion (pdham).
  • Fix array index bounds exception when looking up "/" (Slimane Amar).
  • Lots of javadoc cleanup.
  • Fix NPE in ArgumentParser when toString() returns null.
  • Fix JComboBox to work with table cell editors.
  • Fix sporadic text selection error (drop fails before drag starts).
  • Ensure relative directory gets set prior to load (opeongo).
  • Fix bug selecting text outside of visible bounds.
  • Restore system state on script terminate steps only, instead of at the end of every ScriptFixture.
  • Remove 1.4 VM dependencies.
  • Fix bug specifying a unique AWT menu item by path.
  • Avoid hang when appletviewer is closed via the window manager.
  • Fix NPE in J{Table|Tree|List}Tester when a renderer text is null (patrick dumais).
  • Fix exception thrown in editor when the filename for an included script/fixture is cleared.
  • Fix some minor Costello UI appearance bugs.
  • Fix bug repositioning annotations.
  • Fix bug scrolling a JTextField into visibility.

Release 0.13.1 (041111)

Features

  • Allow test cases with no-arg constructors.
  • Allow arbitrary mnemonics in the editor; use ampersand when defining a label in localizations. For example, an O-umlaut can be tied to Alt-O.
  • KeyStroke map generator is included. Please run it for your locale if your locale and/or platform is not already included. Run this class.
  • Editor always keeps the same LAF, regardless of changes made by the code under test (thanks to a little insight triggered by Art Hampton).
  • When capturing an image, Shade the entire target component.
  • Update to gnu-regexp-1.1.4.
  • Allow selection of popup menu items by path.
  • Refactor system state save/restore into its own class.
  • ScriptFixture now allows multiple scripts to be aggregated in a TestSuite and share an enclosing launch/terminate.
  • Added ComponentTester.actionDragOver (bigmike_f).

Bug Fixes

  • Close JInternalFrames without additional side effects.
  • Enable "." to match newlines in multi-line regexp.
  • Fixed dropping of empty string arguments in script read.
  • Fixed a large number of intermittent failures on OSX and Linux.
  • Allow text selections to be made in either direction.
  • Fix exception thrown clicking approve button in JFileChooser (jim.mcmaster).
  • Allow Call step "args" attribute to be omitted (heidl).
  • Avoid incorrectly matching existing references (shift-F1 on a component in the editor would select the right component but the wrong reference).
  • Image capture on frames/dialogs will now include decorations.
  • Property catch and re-throw event dispatch exceptions in test fixtures.
  • Fix NPE when attempting to select an out of bounds row in a tree.
  • Fix JTreeTester.actionMakeVisible to use either object-based or string-based TreePaths, and throw an ActionFailedException if the path is not found.

Release 0.13.0 (040816)

Features

  • Added Java expression evaluation in the new Expression step. You can even poke at your application while it's running. Details are in the Costello user's guide.
  • Add switch to explicitly play back scripts in AWT mode (mtrumpler).
  • Improve image comparison performance (Udo Borkowski).
  • Added menu items to editor to access mailing list, website, and user guide.
  • Automatically ignore windows that have been disposed.
  • Update JDOM to b10.
  • Allow specification of expansion control in JTreeLocation using a "+" prefix.
  • Add support for TextComponent, JScrollBar, JSplitPane.
  • Added more extensive keymaps for w32.
  • Explicitly record focus accelerators (ibhag).

Bug Fixes

  • Fix loading of suites of scripts from editor.
  • Fix absolutely dreadful freeze when matched components are hidden and new references created (test case provided by kartikn).
  • Fix NPE when table/list values are null.
  • Disallow moving anything prior to a launch step.
  • Fix exception thrown deleting script steps.
  • Fix recording failure when expanding tree nodes that don't have a toString rpresentation.
  • Fix NPE when selecting text under X11 systems.
  • Fix failing TreePath comparisons (such as asserting a selected tree path).
  • Fix class cast exception on certain appletviewer menu selections.
  • Forked scripts are properly forked when run independently (Christian Heldstab).

Release 0.12.4 (040708)

Features

  • Allow abbot.tester.Robot to be used with AWT Popups on w32 systems.
  • Allow resolution of AWT menu items with duplicate labels by specifying the path. These paths are recorded automatically if necessary.
  • Allow resolution of multiple PopupMenus on a single component.
  • Add several java.awt.Menu-related utility functions to abbot.util.AWT.
  • Added basic tester support for java.awt.List.
  • Allow robot/AWT mode to be changed on the fly.
  • Standardized platform/VM bug detection and tests (see abbot.util.Bugs).

Bug Fixes

  • Changes to reference IDs are now detected by the Script.
  • Fixed slow reference creation performance which would cause apparent freezes when recording or with shift-F1 (jkdoyle).
  • Fix a bug when editing the text of an action method which would leave the editor in a strange state.
  • Fix sporadic menu selection failure on w32.
  • Fix sporadic window show/hide tracking failure on w32.
  • Fix deadlock in internal tests on fast dual CPU OSX box.
  • Fix recursive save bug when saving a new script in a temporary directory.

Release 0.12.3 (040611)

Bug Fixes

  • Fix apparent hang/freeze when recording/selecting components, especially with children of JTabbedPanes or other components which hide their children.
  • Fix XSD; args attribute is not required on call steps.
  • Fix strongly held reference when filtering components (nixnixnix).
  • Fix NPE when recording null-valued selections in JTable/JList.
  • Fix class cast exception when running scripts and reporting step status.
  • Workaround disabled menus bug on OSX. Fix Robot verification w/1.4.2_04.
  • Fix broken example scripts (fontchooser) (thanks to quikdraw).
  • Fix editor tutorial script so that it runs outside of the editor.
  • Fix several bugs selecting methods in the Assert step.
  • Fix script context parsing error with w32 drive letters.
  • Removed deprecated classes.
  • Ensure most objects used in a test may be GC'd after a test run. Mostly affects the Abbot test suite.
  • Fix test fixture timing issues that were causing lost key/mouse events.

Release 0.12.2 (040318)

Bug Fixes

  • Make class path editor in launch step show full path, not just the base name of the file.
  • Avoid inadvertent change to selected method in Call steps when the list is refreshed on class/classpath changes.
  • Ensure enabled state of Assert/Sample buttons is correct as the component selection changes.

Release 0.12.1 (040318)

Features

  • Scripts now support the appletviewer step, which automatically sets things up for testing an applet.
  • Highlight Call step target class names and methods which are not found. Also highlight method name if the number of arguments doesn't match an existing method.
  • Automatically change interrelated Assert step settings.
  • Preserve property selection when other selections change.
  • Provide access to InputMap/ActionMap for the selected component.
  • Added specific location support for JTableHeader (flexcode).
  • Assertion failures now provide the file and line number in the exception message (suggested by Niels Stargardt).

Bug Fixes

  • Fix some null value comparison bugs in Assert steps. Note that a literal null value is represented by the String "null" in an argument list (no quotes) (nickoliver24).
  • Asserts on array-valued properties are now generated properly.
  • Pseudo-property assertions (e.g. JTabbedPane.getTabs) are now handled properly when created and edited. Previously the target class was sometimes incorrect, causing runtime errors.
  • Call/Assert/Sample step editors now auto-update the list of available methods when the class is changed.
  • Fixed several cosmetic editor bugs.
  • Fixed class loader error switching between scripts in a suite.
  • Fixed recording bug with invisible windows 2000 PLAF default frame.
  • Ensure tabbed pane plays back recorded tab selections (niels.stargardt).
  • Ensure any references to hierarchy components are weak so that they can be GC'd.
  • Many OSX bug fixes for JDK1.4.2. It's really unfriendly to Robot.
  • Fix editor misbehavior after script renaming/save as.

Release 0.12.0 (040224)

Features

  • Much more convenient component search for hand-coded unit tests.
  • Pressing ESC on text fields reverts to the last "saved" value; pressing Enter "saves" the value.
  • Improved readability and tracking in the Component browser; includes popup menus and tooltips in the hierarchy under their invoking components.
  • Added testers for javax.swing.JSpinner (1.4 only), JSlider, JFileChooser.
  • Added testers for java.awt.Button, Checkbox (req'd in AWT mode).
  • Ignore inadvertent drags during clicks (daniel.kasmeroglu@daimlerchrysler.com).
  • Accept all input from step editors immediately instead of waiting for Enter or focus changes (recommended by mbisping).
  • Provide more convenient editing of arguments and classpaths (daniel.kasmeroglu). Check out that nice ArrayEditor component, which has been unit tested with the framework.
  • Added support for localized keymaps.
  • Allow inserting of new, non-existent scripts into an existing script (opeongo).
  • Allow explicit editing of ComponentReference attributes.

Bug Fixes

  • Fix drag/drop recording/playback on JTree/JTable.
  • Fix failure to properly terminate drop actions.
  • Warn when opening a new script when the current one hasn't been saved.
  • Properly handle hidden roots in JTrees.
  • Fix failure to parse locations in a JTree by value or row.
  • Fix IllegalStateException thrown on certain window show/disposal.
  • Don't allow script editor to be hidden by code under test.
  • Don't dispose windows on normal script termination unless there's a terminate step in the script (mtrumpler).
  • Fix some AWT-mode bugs with applets and JTree selection.
  • Properly activate editable JComboBoxes.
  • Fix bugs when entering quoted arguments or embedded commas.

Release 0.11.0 (040107)

Features

  • When recording drag, drop, popup, or click actions on JList, JTable, JTree, and JTabbedPane, you get component-specific locations (value, row, cell, etc).
  • Reset locking keys (caps lock, num lock, etc) prior to running any tests.
  • Support popup, select, click, drag, and drop on component substructure (row, cell, value, etc) by using an abstract, component-specific location.
  • Perform JTable, JList, and JTree actions by value in addition to indexed location.
  • Provide component-oriented keyboard methods on abbot.tester.Robot.
  • Add support for java.awt.PopupMenu.
  • Add support for java.awt.CheckBoxMenuItem
  • Provide component lookup from an arbitrary root component.
  • Component lookup/addition time reduced by up to 80%.
  • Record drag/drop on 1.4 VMs. Pre-1.4 VMs do not provide sufficient information to record drag/drop actions completely.

Bug Fixes

  • Remove spin locks in ComponentTestFixture that might interfere with test startup.
  • Properly record double click when the component disappears as a result of the click.
  • Fix key modifier mask generation in AWT mode.
  • Clarify exceptions thrown on failed JInternalFrame actions.
  • Properly save more than 2 levels of nested scripts.
  • Prevent editor status window from being too wide.
  • Fix several keystroke-generation bugs in AWT mode.
  • Fix several mouse event bugs in AWT mode.

Release 0.10.1 (031010)

Features

  • Speed up hierarchy export significantly.
  • Don't record extraneous shortcut modifier keystrokes.

Bug Fixes

  • Avoid InvalidScriptException when loading Assert steps which use ComponentReferences for custom GUI classes.
  • ComponentTestFixture reports exceptions thrown on the event dispatch thread as errors.
  • Fix NPE when exporting component hierarchy.
  • Fix NPE when comparing Assert values against null.
  • Don't let AUT get hidden when recording starts (w32).
  • Don't show status dialog if there is no obscured text.
  • Don't record window movement/resize until the window is actually showing.
  • Properly play back w32 drive selection in JFileChooser.
  • Avoid excessive CPU usage by the component hierarchy browser.
  • Make actionFocus work with Applets.
  • Avoid disappearing applet nodes in hierarchy browser.
  • Ensure drop ends on w32.
  • Fix AWT-mode submenu selection.
  • Optimize some component lookups that proved to be slow.
  • Fix Color<-->String comparisons (sometimes resulted in NPE).

Release 0.10.0 (030828)

Features

  • Allow running of selected steps of a script.
  • Better resolution and tracking of applets (mtrumpler).
  • Cache component lookup to improve recording and playback performance (mtrumpler).
  • Simplify component reference usage.
  • Allow regexp pattern matching in component reference attributes.
  • Add support for AWT FileDialog (avenet).
  • Allow reference to system properties (ala ant, e.g. ${user.dir}).
  • Preserve System.out/err across test runs.
  • Provide export of entire GUI hierarchy from Costello.

Bug Fixes

  • Fix drag actions to work more reliably.
  • Always insert Terminate steps last in Costello.
  • Allow launch step to appear anywhere in a script.
  • Fix some slowness in recording (mostly due to ComponentReference creation).
  • Don't record both an action and a keystroke on Enter and other similar keystrokes which produce both an action and text input.
  • Properly track a Dialog with the same name as its parent.
  • Add missing attributes (vmargs) to schema.
  • Use a single WindowTracker to avoid sporadic lookup failures.
  • Be smarter when recording the value for a combo box selection.
  • Properly handle invalid accelerators from property files.
  • Properly capture ESC key when recording.
  • Show confirmations on script delete/clear.

Release 0.9.1 (030711)

Features

  • Add support for internal frames.
  • Add new component references with alt+shift+F1.
  • Capture setting of caret position in text fields.
  • Preserve System property settings across test code invocations.
  • Add XML validation on script load (ckoelle).
  • XML schema/DTD included in docs (ckoelle).
  • Preserve order of ComponentReferences in script XML (javajosh).

Bug fixes

  • Ensure windows are ready for input before sending events, since isShowing and WINDOW_OPENED/COMPONENT_SHOWN aren't sufficient indicators (this previously sometimes required an explicit delay after waiting for a window to show).
  • Don't auto-encode commas in array argument lists.
  • Don't accept directories as "new script" (OSX).
  • Properly update default step descriptions when steps are edited.
  • Do better error handling on editor startup (esp. invalid script errors).
  • Generate accurate modifiers in AWT mode, work around 1.4.1 java.awt.Rectangle bug.
  • Ensure proper class loader is used with threaded launch.
  • Update to newer xerces implementation.

Release 0.9.0 (030527)

Features

  • Greatly improved step editing support in the script table, including drag/drop, multiple selections, and grouping.
  • Support saving component property values for later use as ${property} (sebastian).
  • Provide detailed descriptions of action arguments when inserting actions (extracted from javadoc).
  • Provide file:line information of the source XML script on failures.
  • German translations added (ckoelle).
  • Record/playback frame maximize/normalize (ckoelle).
  • Started a tutorial for the script editor which is actually a test script which uses annotations.
  • Record/playback for AWT Choice component.
  • Expose some system timeouts as properties.
  • Auto-fill the argument list with the currently selected component when manually inserting an action or assertion.
  • Store the least-derived class possible for assertions and actions.
  • Add component-specific popup actions (ghmorgan).

Bug Fixes

  • Automatically escape commas in individual arguments which contain commas.
  • Fix many JComboBox recording bugs.
  • Don't terminate AUT on script name changes.
  • Fix property list filtering in editor.
  • Keyboard cut in script table now works.
  • Image capture fixed (mostly).
  • Report first XML parse error instead of last when loading scripts (mtrumpler).
  • Enable menu selections when a parent menu is already opened.
  • Fix some synchronization bugs with multiple simultaneous event dispatch threads.
  • HierarchyEvents are no longer used in recording, which should avoid NPEs on pre 1.4 VMs.
  • Catch null-parented dialogs (from applets) (mtrumpler).
  • Fix some bugs in tutorial #2.
  • Remove ambiguity in Call/Assert step classes when resolving methods and target classes.

Release 0.8.4 (030402)

Features

  • Annotations to facilitate playing back a program as a user tutorial.
  • Track JInternalFrames (pickens).
  • Stop recording if the editor window is activated.
  • Added a stress-test example.
  • Add step editors for raw AWTEvents.
  • Record window closings triggered by the window manager (i.e. click in close box).
  • Extend component selection for image capture (pickens).
  • Timeouts are set to the actual time elapsed during recording (pickens).

Bug Fixes

  • Don't record tooltip displays (pickens).
  • Properly cache recorders for inner classes.
  • Fix start/stop recording bugs.
  • Fix dropped key events during recording (pickens).
  • Fix recording/editor bug which would sometimes reorder incoming events, causing inconsistent recordings and sometimes a stack overflow.
  • Fix bug which only allowed void-returning methods in a Call invocation.

Release 0.8.3 (030115)

Features

  • Added a JUnit fixture (derived from TestCase) to facilitate component unit tests.
  • Use separate event queues for applications under test.
  • Improved support for multiple clicks.
  • Improved feedback for text entry on editors.
  • Preserve Costello layout across invocations.
  • Add method selection popups in editors for Call, Assert, Action, and Launch.
  • Include extra properties in the component browser property list (such as getMenuLabels for JPopupMenu components).
  • Major rework of class reloading to more closely mimic the default AppClassLoader.
  • Return values for default ScriptTestSuite execution now match that of the junit test runners, so failures and errors will be caught by Ant.

Bug Fixes

  • Fix playback of JTextComponent recordings (jcapitao).
  • Track context in Component Browser reference list.
  • Various nested script bugs.
  • Use OSX quit and about hooks.
  • Avoid w32 drive a: bug with file choosers in standalone tests.

Release 0.8.2 (021201)

Features

  • JTextComponent support for miscellaneous selections, cut, copy, paste, etc.
  • ActionMap support. Robot will generate the appropriate keystrokes to invoke a particular action on a component, e.g. select-all on a text component would be ctrl-a on w32 systems, or command-a on a Mac.
  • Image capture/comparison. Comparisons can be inserted manually or while recording events by pressing F3.
  • Added arbitrary method invocation step ("call") (bchristen). New step types can be added by simply dropping in an appropriately named class.
  • Add non-modal window for displaying long errors and stack traces.
  • Visibly disable editor UI while recording the GUI under test. This provides better feedback about the state of the recording.
  • Provide more ComponentReference ctors to facilitate hand-generated references.

Bug Fixes

  • Fix some failing Assert step method lookups.
  • Fix recording of BACK_SPACE and other special keys.
  • Adding a boolean property check where the value was "false" would save a check for "true" instead.
  • Avoid disposing the JUnit Swing TestRunner (or any other test running environment) when running a test script.
  • Classes derived from ScriptTestCase were not used when generating a suite with ScriptTestSuite (ScriptTestCase instances were created instead).
  • Fixed several potential deadlocks.

Release 0.8.1 (021103)

Features

  • Provide "breakpoint" capability to run up until a selected step, to facilitate getting a GUI into a desired state before editing or recording.
  • Capture InputMethod events (required for Chinese, Japanese, and other extended characters sets, as well as special character input on Macintosh). Many thanks to Sarif Koichi and Matt Pekar for helping to get this working.
  • JListTester provides property-like access to list configuration (bchristen).
  • Japanese (sarif), Russian (iryna.z), Polish (pawel korbut), Italian (antonio-petrelli) locales added.
  • Auto-detect some w32 Java/Robot bugs (ptardif).
  • Provide option for capturing mouse motion when recording events.
  • Consolidate key recordings into a single text string if possible.
  • Added a FAQ.
  • Support VM args passed to a forked script.
  • Allow recording to be started and stopped using F2. This facilitates starting a recording while modal dialogs are showing.
  • Allow component selection in the GUI under test using F1. Neither of these facilities will interfere with their handling by the code under test.
  • Refactored event recorder such that it doesn't dependon the rest of the framework.
  • Provide a ComponentReference ctor for use in hand-generated code.

Bug Fixes

  • Fixed several capture bugs (0.8.1.1).
  • Fix a bunch of Windows XP failures.
  • Avoid a large class of application startup deadlocks caused by the application assuming the event thread has not yet started (which isn't the case when launching from the editor or within a suite of GUI tests).
  • Cleaned up boot class loading; explicitly check for classes in the boot path rather than depending on a package list to exclude from reloads.
  • Fix capture of some extraneous key modifiers.
  • Don't abort applications which call JFrame.setDefaultCloseOperation.
  • Ensure all frames are found when running applets.
  • Fix null package on some loaded classes.
  • Steps now move in and out of sequences properly.
  • Component Reference generation works with nested dialogs.

Release 0.8.0 (021007)

Features

  • Updated to work properly under Java 1.4.
  • Support for forked scripts. It is now possible to run a script in a separate VM while tracking its progress. Full exception/failure backtrace information is preserved and the script step execution is visible in the editor. This provides a solution for those cases where the reloading class loader is not sufficient to clean up after the code under test.
  • Support for image capture (arbitrary and component contents) and single pixel sampling.
  • Improved XML handling to preserve locale-specific character encodings. Using JDOM is a lot easier than xerces.
  • Improved editing of existing script steps. Custom GUI editors are provided instead of requiring raw XML editing.
  • Support for AWT menus (actions and recording).
  • Confirm script save before editor exit.
  • Support persistent script comments.
  • Provide a Web Start launch.

Bug Fixes

  • Require complete method names for Action/Assert steps.
  • Repaint issues fixed under 1.4.
  • No more spewage when application under test exits from event dispatch.
  • Fixed popup menu recording bug for w32.
  • Scripts should work properly under ANT (fixed a classpath recursion bug when scanning ANT's embedded classpath).
  • Menus can now be properly used under OSX with useScreenMenuBar=true.

Release 0.7.3 (020913)

Features

  • Launch steps can be threaded, e.g. if your main method doesn't return in a timely fashion, or directly invokes something like Dialog.show that requires input.
  • Initial i18n support (please contribute your own locale!)
  • Initial JTree support.
  • Include source in base file release.

Bug Fixes

  • Fix step insertion bugs when the code under test is not yet launched.
  • Fix editor self-test to work properly with dynamic class reloading. With reload support, the editor no longer needs to maintain context information.
  • More robust dynamic class loader (set delegate=false in Launch).
  • Recording now works on a threaded launch.
  • Fix applet sample html page.

Release 0.7.2 (020830)

  • Include docs in base file release.
  • Reduce robot auto-delay times to speed up test playback; most significant effect can be seen in text playback. All tests, recordings, and actions are significantly more robust.
  • Fix rather annoying bug which caused recording to fail when closing a dialog.
  • Ensure recording failures don't drive the editor batty, and provide the failure information in bug report format.

Release 0.7.1 (020826)

  • Added support for providing bug reporting information in exceptions, especially for failed recordings.
  • Robot after-event delay may now be set as a property, abbot.robot.auto_delay.
  • Dynamic class loader now uses the Class-Path from the manifest (if available) when loading jar files.
  • Added Frame/Dialog move/resize/iconify support (and tests).
  • Added JTabbedPane support (and tests).
  • Added class paths to jar files to facilitate launching (no longer need to set a long class path explicitly).
  • Fix resource loading from custom class paths (SwingSet2 now loads properly)
  • Default to non-reloading class loader. Fixed several issues when reloading is enabled.
  • Add JComboBox recorder, cleaned up JComboBoxTester (and tests).

Known bugs


Several recorder tests are known to fail on linux and w32. Some are timing-related and some are not.

Release 0.7 (020726)

  • Use a more robust component search mechanism using weighted propeties; store more attributes in auto-generated component references, but still work well with minimal hand-entered ones.
  • Launch application automatically when recording, if not already launched.
  • Allow classpath to be specified directly in the Launch step.
  • Use reloading class loader for launching classes.
  • Added support for applets under Sun's applet viewer, and an applet example (kelvinr).

Release 0.6.2 (020627)

  • Added support for auto-formatting of dialogs and tooltips (TextFormat).
  • Fixed annoying drive A: bug on w32.
  • Added more recorder and tester tests, including a full test suite.
  • Improve launching of the GUI under test.
  • Many w32 event capture/playback bugfixes, especially popups and key capture.
  • Split editor code into model/view (onthemark,kgirard)
  • Added a filter for Component properties (jeffg).
  • Added scrolling action for JComponent (kgirard).
  • Changed menu structure for consistency (kgirard).
  • Added icons, accelerator keys, and mnemonics for most menu items (kgirard).

Release 0.6.1 (020528)

  • Fix script paths for examples to fit new directory structure.
  • Fixed semantic recorder. Now correctly captures window show/hide/activate, click, key, menu, popup, drag, and drop.
  • Completed recorder tests. These have been run on OSX, w32, and linux x86.

Release 0.6 (020522)

  • Support relative script paths for embedded scripts.
  • Added better support for capturing semantic events (SemanticRecorder).
  • Directly handle Drag & Drop semantic events (not done yet).
  • Better heuristics and debugging for component reference lookup.
  • Added tests for ComponentTester and ComponentRecorder classes.
  • Revised package hierarchy, since only a few classes have anything to do with JUnit.

Release 0.5 (020416)

  • Added JComboBox actions (still need recorder support).
  • Added methods for documentation of ComponentTester actions (menus, arguments, icons, etc.).

Release 0.4

  • Allow top-level script to continue even if sub-sequences fail.
  • Allow movement of individual script steps.
  • Failures are now colorized to explicitly highlight failed steps.
  • Event Stream recorder can parse more semantic events and eliminates unneeded events.
  • Added a cursor to the script editor table.

Release 0.3 (2002/04/07)

  • Drag events are now captured in the Event Stream recorder.
  • ESC now cancels any recording in progress.
  • Added launch/terminate step for scripts so that scripts may be run independently of junit test cases/suites. It's also a lot easier to start from scratch now, no testsuite or testcase required.

Release 0.2 (2002/04/03)

  • Allow regexp matches in string comparisons.
  • Component references are now specific to the current script context.
  • Added component hierarchy browser.
  • A new simple GUI component test suite example (FontChooser).
  • System.exit handling prevents an application under test from killing the editor.

Release 0.1 (2002/03/22)

Release for preliminary interface feedback.