Version 3.4.3

General

  • Added a --apply-mask mode to the convertp utility.
  • Added currentApplicationContext() function in all scripting languages. Will be used when recording in a multiple-application setting.
  • Fixed reading of .tsv (tab-separated values format) files that have empty fields.
  • Marked references to objects of an exited AUT as "dead" to prevent crashes on further access.
  • Fixed a Unicode problem if non-ASCII characters are used in symbolic object names.
  • Allow conversion of Tcl double values (or what the interpreter believes are doubles) to a string.
  • Added a fallback error message for findObject() to avoid crashes on Solaris.
  • Implemented .name and .caller properties on JavaScript function objects that allow assembling a better callstack for improved debugging. Also added a .lineNumber property to exception objects in addition to the .line property for compatibility to the Mozilla JavaScript engine.
  • Let the Python test.verify() function to use the standard Python truth value rules rather than restricting it to just int and long values.
  • Suppress "different type" result details for [test compare] when not applicable.
  • Let Python's waitFor() gracefully handle expressions that return a non-integer value.
  • Changed the JavaScript print() output so that it writes to stdout (instead of stderr) and uses the UTF-8 encoding to display non-ASCII characters properly.
  • Fixed crashes that occurred as a result of syntax errors in some Python test scripts.
  • Fixed a Unicode problem in the test result output that can occur in rare circumstances.
  • Fixed a regression when waitForObjectItem() is called on object names that contain a space.
  • Fixed a slight oversight in the improved error reporting. The unmatched properties are now reset when an error is reported and hence don't pollute later error messages.

IDE

  • Made the "End recording" button work if testing with sub AUTs and there are sub AUTs running.
  • Fixed focus problems that occurred when saving a file.
  • Let the Perl variable watcher display the value of mixed string/int and string/double types. Hide reserved variables that are denoted by a leading caret.
  • Prevented the creation of test cases with empty names.
  • src/gui/objectmapeditor.cpp: Allow dots when editing hierarchical names in the objectmap editor.

Qt-specific

  • Instead of treating an access to the .text property of an invalid item view index as an invalid operation (that could cause a crash), an empty string is returned.
  • Fixed a crash caused by an access to an invalid iterator.
  • Avoid parse errors on Object Map name reuse if the map contains a mixture of multi-property and hierarchical names.
  • Fixed a possible source for crashes on 64-bit Windows systems.
  • Improved the detection of statically linked Qt applications.
  • Raise the AUT on playback on Mac OS X with Qt 4.4.
  • Fixed a Spy Unicode problem with Qt 4.
  • Avoid wrong menu activation when replaying menu actions with Qt 4.4 on Mac OS X.
  • Fixed the recording of the QResizeEvent sent at application startup.

Java-specific

  • Fixed the replaying of type("swing-object", "<Ctrl+X>").
  • Fixed the wrong "selection" property of TreeItemProxy. It was always false.
  • Don't record mouseClick() on glass panes if these events are dispatched in the application and trigger a mouse event in the content pane. Mouse clicks on components below a glass pane will be replayed by sending clicks to the glass pane.
  • Let the application context name property of sub-applications be the argv[0] system value rather than using "squish".
  • Stopped FigureCanvas only looking at IFigure and ignoring SWT widget children.

Web-specific

  • Fixed replaying text input on file input fields with Internet Explorer 6.
  • Fixed the recording of backslashes in file input fields with Internet Explorer.
  • Support isBrowserDialogOpen() for Mozilla on X11 systems like Linux.
  • Fixed a communication problem that could cause objects not being found when testing with Safari.
  • Fixed random crashes of the internal webhook tool when doing Safari testing.
  • Fixed the recording and playback of text input on input fields with type "search" (they are understood by Safari).
  • Support for Kiwi Matrix tables.
  • Fixed the handling of strings containing the character sequence 'HTTP'.

Tk-specific

  • Improved support for the Tk "scale" widget. Replaying scrollTo now uses real mouse events so custom bindings to mouse-press will also be triggered.
  • Fixed infinite recursion when dealing with the VTK KWWidget combobox control.

Mac-specific (Cocoa/Carbon edition)

  • Added support for Cocoa toolbars and toolbar items.
  • Fixed the object picker (and highlighter) for Carbon applications: sometimes, it did not manage to find the right objects under the cursor.
  • Fixed the problem that occurred in some Carbon applications when the application menu did not show up (e.g., in the Spy and during recording and playback).
  • Added support for HIDataBrowser. Please view with the wrapperexplorer to see which APIs are supported by the HIDataBrowser and HIDataBrowserCell wrapper classes.
  • Fixed the playback of menus which in some Carbon applications sometimes selected the wrong menu item.
  • Fixed the recording of menu events on Mac OS 10.5 (Leopard) for Carbon applications.
  • Mouse clicks are recorded after the Quit menu option is chosen so that actions on the modification alert can be recorded.
  • Allow picking of objects in a sheet in the Spy.
  • Fixed a race condition which caused random crashes on playback of waitForObject() on sheets (and may have been the cause of other crashes too).

Source Builds

  • Fixed building with Qt 4.5.
  • Fixed the 'Record and insert here' feature for when Squish is built without Tcl support.
  • Fixed the compilation problem in xml2reportgenerator.cpp which occurred when building squishrunner if JavaScript support was disabled.