Version 4.1.0 Final

Highlights

Squish 4.1 is a major new release with many new features and, of course, many bug fixes. Here is a very short selected summary of the 4.1 highlights (detailed lists of all the main changes follow).

  • Squish is now packaged in a single .zip file that contains both the IDE and the tools.
  • Eclipse users can now integrate the Squish IDE components into their existing Eclipse.
  • The support for image verifications has been greatly improved to allow for customizable "fuzzy" image matching (in addition to exact pixel by pixel matching).
  • Editing has been improved for all scripting languages, with code completion extended to support Squish-specific features.
  • Squish scripts can now be shared globally (i.e., available to any test case in any test suite).
  • Squish for Qt now supports:
    • QML-specific support and a QML extension API;
    • listening to Qt signals;
    • testing 64-bit GUI AUTs on macOS;
    • testing on MeeGo with pre-built packages.
  • Squish for Web now supports more browsers, including Chrome, Opera, and Safari. In addition, web browsers on mobile platforms are supported, for example, Safari on iOS. Firefox support has been extended to versions 4 and 5 and has also been successfully tested against a beta of version 6.
  • Squish for Windows now supports:
    • access to native Windows Forms .NET properties and methods;
    • access to ActiveX controls' COM/ActiveX properties and methods;
    • Infragistics NetAdvantage controls, Exontrols and CA Plex controls;
    • access to Visual Basic ID properties for object identification.
  • Squish for macOS now supports testing 64-bit Cocoa AUTs.
  • Squish for iPhone now supports screenshot verifications and also features improved support for scrolling and for gestures.
  • Squish for Java now supports Eclipse Indigo, testing Cocoa SWT AUTs on macOS and also produces more portable test scripts.
  • Squish for Tk now supports 64-bit applications on Windows and the attachToApplication() function.

General

  • Added an OS.version.name property to the JavaScript test script bindings.
  • The Tcl debugger no longer crashes when there are unbalanced return commands.
  • Some fixes have been made to the XML Schema Definition for Squish's XML 2.1 file format used for test results.
  • The Spy can now display the concrete (possibly derived) types of properties.
  • A new "post mortem" timeout setting is now available. The event recorder will wait for the specified time after the main AUT has exited. This is useful for AUTs invoked through launcher applications such as shell scripts or batch files.
  • Fixed a synchronization issue that affected the fast tuning of the image comparision algorithm.
  • Fixed some button logic and redrawing issues in the Image VP difference viewer.
  • Fixed an issue with Squish's setup program when writing the license text file on systems with non-ASCII characters in the path name.
  • Prevented lingering _extrawindowwatcher.exe processes on Windows.
  • Prevented infinite recursion when Spying certain kinds of complex object properties.
  • Fixed the incorrect reporting of the wrong Python script file in error messages and test results.
  • Fixed cases where squishrunner processes failed to terminate after losing their connection to the squishserver when running inside the IDE.
  • Added support for grabbing screenshots of QWebView widgets.
  • Calls to the installEventHandler function will now raise an error if no AUT is currently running.

New IDE

  • No list of web browsers is presented if Web testing is not enabled.
  • The IDE can now run even if it is in a path that has white space characters such as spaces.
  • Worked around a menu bug in Ubuntu 11.04.
  • Fixed breakpoints in file names that have different casing on macOS.
  • The IDE now times out if the grabbing of a screenshot fails; previously the IDE just hung.
  • Fixed the parsing of partial test results which could occur if the squishrunner exited abnormally.

Qt-specific

  • Provide packages built with gcc support on Solaris.
  • Fixed the handling of references to deleted QActions.
  • Fixed the visibility of wrapper init functions on MinGW. This makes the Wrapper Explorer tool work again.
  • Speeded up menu access on macOS.
  • Fixed a crash that could occur with 64-bit builds.
  • Fixed attaching to AUTs that have received connection attempts from other software such as port scanners.
  • Fixed problems relating to having large numbers of internal signal–slot connections.
  • Added a SQUISH_DIR/etc/qtwrapper.ini option called UseNativeMouseEvents that changes how mouse actions are emulated.
  • Fixed problems with drag and drop that could occur with widgets inside a Qt item view such as those found in Qt Creator.
  • Fixed menu playback for hidden items in Qt/Cocoa applications.
  • Fixed an error that could occur when setting a breakpoint after a script command that opens a dialog.
  • Added support for retrieving QML ids from QML items.
  • Fixed a problem with parent items in generated names for QML items.
  • Prevented a cascading of relative paths in recorded QML URL properties.
  • Added support for future Qt 4.8 Lighthouse platforms.
  • Added an installLazySignalHandler function that supports the watching of signals from QObjects with unknown names.
  • Added support for calling methods on QWebView objects without prior interaction.
  • Fixed the lookup of custom widget items in QTreeView controls.

Java-specific

  • Empty lines are no longer output in the Runner/Server log view.
  • Fixed a null pointer exception in SWT's event filtering code on Windows.
  • Fixed the detection of pick object mode.
  • Speeded up menu access on macOS.
  • Fixed the picking of extension objects in applications using the Gtk implementation of SWT.
  • Prevented exceptions from occurring when receiving events from SWT controls that have since been disposed.
  • Fixed the starting point when recording the dragItem and mouseDrag functions for AWT applications.
  • Added support for JRE 6.0.26.
  • Fixed issues with Eclipse Indigo's SWT implementation on macOS.
  • Fixed an occurrence problem when naming AWT and SWT objects that have a parent item property.

Web-specific

  • Rewrote parts of the Safari module to support version 5.1.
  • Added a simple Web-based addressbook example.
  • Prevented the raising of an exception when Squish hooks into frames.
  • Added a workaround for IE 8 to get input focus into the document.
  • Fixed the detection of Firefox 4.0.1's version number.
  • WebKit TypeErrors are now always handled safely when querying information about child objects.
  • Fixed escaping in recorded multi-property names.
  • The object search now continues rather than aborting if it reaches a non-explorable frame.
  • Fixed the recording of buttons which trigger window.confirm or prompt calls.
  • Fixed the encoding of large property values.
  • Fixed the picking of plain images and other plain elements.
  • Fixed waiting for objects when one page is switched to another with the loadUrl function.
  • Fixed an initial page loading problem that could occur when using the new proxy approach with Safari or Chrome.
  • Fixed the resetting of proxy-settings after running a test.
  • Fixed a problem with the installation of the plug-in used for testing of Mozilla-based browsers.
  • Improved the geometry of the picking highlighting rectangle.
  • Improved the performance of drawing the picking highlighting rectangle.
  • Fixed the playback of the closeConfirm function with Safari 5.1
  • Increased the greatest supported Firefox version to 6.0—this has only been tested with 6.0-beta.
  • Added support for Firefox installations that have a non-default path on Windows.

Windows (native)-specific

  • Completed work on Exontrol's COM components. Support for these is available on request.
  • Completed work on old-style Infragistics COM components. Support for these is available on request.
  • Access to ActiveX controls' COM/ActiveX properties and methods can now be activated using a winwrapper.ini settings file.
  • Made sure that any lingering internal extrawwindowwatcher processes are terminated when the IDE is shutdown.
  • Added a tb_select_treeentry_1 function to the GRIT extension.
  • Improved object lookup speed by recognizing VB forms as top-level Windows.
  • The MFC extension now attempts to detect MDI windows and treats them as object containers.
  • Fixed the lookup of scrollbars inside Windows Forms listbox objects.
  • Fixed the computation of the win_x and win_y properties for Windows controls.
  • Added support for the Visual Basic 6 SSTab control.
  • Added experimental code to recognize VB 6 text labels as distinct objects. Please contact technical support for information on how to enable this feature.
  • Provided an accessor function for .NET Collection objects. For example: findObject(":_ListView").nativeObject.Items.at(3).

Mac-specific (Cocoa/Carbon edition)

  • Added the visible property as an identifying property to use—if present—for automatic name generation.
  • Fixed the recording of NSPopUpButtons.
  • Speeded up menu access on macOS.
  • Fixed a crash that could occur in Cocoa applications that use garbage collection.
  • Log a backtrace from AUT crashes occurring during recording.
  • Fixed the lookup of outline view items in macOS 10.5.

iPhone/iPad-specific

  • Added the visible property as an identifying property to use—if present—for automatic name generation.
  • Fixed how typing Backspace in UITextField and UITextView objects is handled if the cursor is not at the end of the text.
  • Added a new AlertOpened event handler.

Tk-specific

  • Fixed a problem with the waitForObjectItem function when used with menus.
  • Fixed calls to the activateItem function with Tk menu paths on Windows.
  • Added support for grabbing screenshots on Windows.
  • Added support for auto-scroll-to-item for TkTreeCtl windows.
  • Fixed the replay of calls to the type function with newer Tk versions (as of 8.5.9).

HP Quality Center Plug-In

  • Fixed a problem which caused the Stop button in Quality Center to be unreliable.
  • It is now possible for qcimporter to use alternative paths by using a --path command line switch.

Documentation

  • Added a combobox to the HTML version of the manuals that allows the selection of all or just one scripting language and which remembers the setting across pages.
  • Replaced the old web tutorial with a completely new one that is as similar as possible to the tutorials for the other GUI toolkits.
  • Did a considerable amount of reorganization including separating out the Squish APIs into a separate manual.
  • Edited and improved the manuals throughout.
  • Deprecated TPTP integration in favor of Eclipse-based IDE.
  • Added various missing example script files.
  • The Squish Knowledge base is now publically available and contains many short items, tricks, and tips.

Source Builds

  • It is now possible to built against stripped-down Qt installations that have the classes QAction, QMenu, QMenuBar, QAbstractItemView (and subclasses), QGraphicsView or QComboBox disabled.

© 2023 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners.
The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation.
Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.