Version 3.4.0

General

  • Automatic reuse of Object Map names that use wildcards and regular expressions.
  • Improved error messages when an object cannot be found on test execution.
  • Wizard for the creation of data-driven tests.
  • "Record at Cursor" mode for more efficient test script maintenance.
  • The toolkit wrapper can be specified on an application-basis thus allowing for tests of applications using different GUI technologies within one script.
  • Simplified navigation between script editor and Object Map.
  • Ant built system plugin for Squish test execution.
  • Integration plugin for the CruiseControl continuous integration framework.
  • Added spinUp() and spinDown() functions for recording and playback of QSpinBox usage.
  • Fixed a Perl syntax error in recorded sub-application scripts.
  • Cleaned up HTML documentation search index
  • More type tolerant Perl setter function for logScreenshotOnFail and logScreenshotOnError configuration.
  • Fixed memory management problems of DOM nodes created by the XML object as well as database connections created by the SQL object.
  • Don't report that the AUT crashed if it was explicitly killed.
  • Implement more verbose error reporting when an object is not found. Now reports the properties that didn't match
  • Fixed a JavaScript number-to-string conversion on SPARC and other big endian architectures.
  • Allow copy and paste of property name/value in the spy.
  • Allow passing Perl strings to functions that accept a numeric type.
  • When right-clicking on a selected text in the script editor, offer an option to replace the selected text with a reference to a field of a test data record in case the selected script code is within a test data loop.
  • Fixed clicking on Test Log items when the referenced script file contained a '-' or space character.
  • Reduced size of object names placed into the clipboard upon copying out of the Spy.
  • Prevent the AUT from crashing when doing object lookups with empty strings.
  • Implemented support for recording little snippets of script code and inserting it at the current cursor position.
  • Fixed invocation of the PDF manual viewer manual on Windows.
  • Prevent crash if the Spy is during a "Check all object existence" run.
  • Respect logScreenshot settings for test.fail() and test.fatal().
  • Fixed crashes occurring after an application launched with startApplication() has exited.
  • Support alternative locations for testcase templates by using the SQUISH_TESTCASE_TEMPLATES environment variable.
  • Fixed initialization defaultApplicationContext() properties.
  • Fixed picking of disabled plain Windows controls.
  • Prevent crash in the Perl debugger that occurred when trying to display variables referencing an application context or a test data record.

Qt-specific

  • Implemented Qt 4.4 support.
  • Binary packages for MSVC 9 and 64-bit Linux.
  • Expose QPainter API for test scripts.
  • Add support for Input-Method events for Qt 4, so non-latin input is also recorded properly
  • Use row and column in clickItem() on Qt 4 tables.
  • Mac OS X: make the binary edition work with Qt frameworks that are not installed in a standard framework-search location.
  • Support use of wildcards in item names when using the clickItem() function on Qt 4 itemviews like a QTreeWidget.
  • Improved parsing of CSV files, using RFC 4180 as reference for the parser implementation.
  • Fixed occurrence count recorded for Qt objects which don't have a QObject name set.
  • Temporary way to specify custom controls (like OpenGL controls) that require QPixmap::grabWindow() instead of grabWidget() for taking a screenshot: the SQUISH_GRABWINDOW_CLASSES environment variable can be set to a comma-separated list of class names of QWidget sub-classes.
  • Fixed recording of actions on native Windows controls with Qt 4.x
  • Don't show null objects (i.e., a null pointer to a QWidget) in expandable state in the Variable Watcher of the Squish IDE.
  • Respect the --port=xxx argument of the startaut command.
  • Fixed calls to functions with C/C++ enum parameters in JavaScript, Tcl and Perl. Was already working in Python.

Java-specific

  • Implemented support for Eclipse 3.4 (Ganymede).
  • Java record extension API to enable high-level record and Spy support of complex custom controls.
  • Fixed item lookup differences between recording and replaying a clickItem() on a SWT Tree.
  • Allow launching a SWT FileDialog, MessageBox or DirectoryDialog when the Squish IDE is in Spy mode.
  • Adjust x coordinate for SWT Tree item click to the middle of the viewable item rectangle, making clickItem() more stable for differently styled Trees.
  • Empty captions of SWT widgets were left out of the object property map, which made these multi-property names match unnecessary many objects. Now they are recorded as: caption=''
  • Add 'expanded' property to TreeItem proxy for the Spy.
  • Fixed JVM shutdown notification that made the Java process hang on exit in some setups.
  • Improved test script speed when interacting with Java classes.
  • Properly convert from Java unicode string to QString, so objects containing non-ASCII characters in the Spy.
  • Added synthetic 'isvisible' property for SWT which internally calls Control.isVisible(). For new names use 'isvisible' in favor of 'visible'.
  • Fixed 'Illegal constant pool index' error in the SWT FileOpen class.
  • Fixed registered extra classes not being recognized by the script bindings.

Web-specific

  • Fix recording of context switches to pages which have non-ASCII characters in their names.
  • Provide an additional '--webbrowserargs' command line argument which can be used to pass additional arguments to the browser process started when performing Web tests.
  • Fix playback of Web tests with Firefox when a different profile than the default one is used.
  • Launch Internet Explorer in a new process to make sure that a new session is used.
  • Fixed recording and replay of double and right mouse-button clicks.
  • Support the isBrowserDialogOpen() script function on Mac OS X.
  • Support the automateLogin() script function on Mac OS X.
  • Support Safari 3.1.
  • Fix retrieving objects with '%' in their value.
  • Fixed entering of non-alphanumerical characters using typeText() with Firefox.
  • Improved speed of the Spy when navigating through large web pages.

Tk-specific

  • Fixed key event sending via the type() function.
  • Record plain mouse press events on buttons that could e.g. be used to open a popup menu.
  • Record button clicks with middle and right mouse button.
  • Small performance improvement on recording.

Source Builds

  • Allow compilation against Perl 5.10
  • Restore support for Python 2.2.
  • Avoid conflict between Perl flags and Solaris system headers.
  • Fixed compile problem with Solaris CC
  • Compile fix for strict compiler. abs() is defined in stdlib.h
  • Explicitly enforce run-time linking on AIX in order to allow loading of native Python extensions. Contributed by customer.
  • Fixed conflict with AIX system headers that was causing a compilation problem.