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.