Abbot Release Changes
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.