2.2. Version 5.1.0

2.2.1. General
2.2.2. Squish IDE
2.2.3. Scripting
2.2.4. Qt-specific
2.2.5. Java™-specific
2.2.6. Web-specific
2.2.7. Windows (native)-specific
2.2.8. Mac OS X-specific (Cocoa/Carbon edition)
2.2.9. iOS-specific (iPhone/iPad edition)
2.2.10. Android-specific
2.2.11. Tk-specific
2.2.12. Add-Ons
2.2.13. Documentation
2.2.14. Qt-specific Source Packages

Squish 5.1 is a major new release with many new features and bug fixes. Here is a selected summary of the release's highlights—a detailed list of all the main changes is given in the sections that follow.

2.2.1. General

2.2.1.1. Bug Fixes

  • Various stability improvements for the squishrunner (Section 19.4.1) program in case the AUT terminates unexpectedly.

  • Fixed a problem which broke the replay order of test scripts with Unicode characters in the file path.

  • When running Squish on Windows, special "dump files" will be generated more often in case a problem occurs to improve the interaction with froglogic technical support.

  • Creating screenshot verification points on Windows now handles transparent windows correctly.

  • The setup window is no longer fixed in size.

  • The setup program now performs sanity checks on the selected JRE to detect architecture mismatches.

  • Various stability improvements for the squishtest Python module.

2.2.1.2. Features

  • The overall performance of accessing the AUT (calling methods, getting/setting properties etc.) has been improved.

  • A new xml2jira (Section 19.4.9) tool is now included with Squish, it allows creating and updating JIRA tickets based on Squish test reports.

  • squishrunner (Section 19.4.1) gained a new command line option --exitCodeOnFail which can be used to define a custom exit code which squishrunner should return in case a fatal error is encountered while executing a test.

  • A standalone JavaScript interpreter squishjs has been added.

  • The standalone squishtest Python module can now be used with the Python Tools for Visual Studio integration as well as other third-party Python debuggers.

2.2.2. Squish IDE

2.2.2.1. Bug Fixes

  • Clicking the Pause button in the control bar no longer suspends test execution in all running instances of the Squish IDE.

  • Fixed various usability issues with the environment table in the test suite settings.

  • Fixed various usability issues when editing real names in the object map editor.

  • Resolved an issue related to selecting multiple real-name entries in the object map editor.

  • The Squish IDE no longer "stalls" when launching the image verification point editor or the setup program.

  • Fixed a bug related to test cases and test suites with certain characters (&, # and certain non-ASCII characters) in their names.

  • Improved layouting of the Squish IDE to avoid that the Test Suite view gets too small in certain cases.

  • Silenced a External Modification Detected dialog triggered when creating a test case while the test suite settings are opened with unsaved changes.

  • Corrected window focusing when external editors (such as the image verification point editor or the gesture editor) are launched.

  • Fixed a bug which caused incorrect code to be generated when creating verifications of certain properties (such as class) in Ruby test suites.

  • Fixed various cases in which dialogs wouldn't get hidden when the control bar is shown.

  • The Pause button in the control bar is no longer enabled when picking an object (the pause button used to be enabled, but clicking it had no effect).

  • Resolved various issues due to which error messages related to Python were shown when opening multiple Python test suites simultaneously.

2.2.2.2. Features

  • Added a new Close All Test suites button.

  • The Integration package now supports integration into Eclipse 4.

  • Added support for DLTK5/PyDev 3.

  • Major improvements to code analysis and code completion features for Python tests.

  • The Manage AUTs dialogs can now be opened directly via the test suite settings editor.

  • Starting a second Squish IDE will now show a dialog offering to terminate the existing Squish IDE in order to re-use the workspace of the existing Squish IDE.

  • Added support for managing, viewing and editing gestures.

  • The What's New page will now show the froglogic RSS feed.

  • The tools-selection dialog now offers collecting technical information for submission to froglogic technical support to simplify debugging issues caused by broken installations.

  • The working directory behaviour of squishserver (Section 19.4.2) can now be changed such that it uses the working directory of the Squish IDE.

2.2.3. Scripting

2.2.3.1. Bug Fixes

  • JavaScript tests can now use the SQL Object (Section 18.16.6.1) to connect to SQLite, PostgreSQL as well as MySQL databases.

  • Improved output of test.compare for Python and Ruby scripts to include the type of the compared values.

  • JavaScript RegExp objects now support Unicode characters.

  • The JavaScript SQLResult Object (Section 18.16.6.3) properties no longer clash with field names in SQL search results.

2.2.3.2. Features

  • A new GestureBuilder API is available for creating gestures programmatically in test scripts.

  • A new ApplicationContext.totalTime property has been introduced which returns the CPU time used by the AUT.

  • The JavaScript XML Object (Section 18.16.5) now features a new getElementsByTagName method which yields a list of elements with a given tag name.

  • Added a new testSettings.logScreenshotOnPass property which can be used to automatically create screenshots in case a verification passes.

  • Extended JavaScript Array objects with various new methods: map(), filter(), indexOf(), lastIndexOf(), forEach(), some() and every().

2.2.4. Qt-specific

2.2.4.1. Bug Fixes

  • The setup program now defaults to locating the Qt library used by the AUT automatically, except for tests executed on Mac OS X (which still requires specifying the path to the library).

  • The openContextMenu() function is now recorded correctly when clicking QGraphicsItem objects.

  • Example programs for Qt5 now include the required Qt libraries to make them usable out of the box.

  • Optimized accessing web objects in embedded web controls when using hierarchical names.

  • Correctly expose QObject properties with custom QObject-based types in Qt 5 applications. Users who resorted to accessing built-in properties via function calls like QQuickItem::parent() should now simply use the .parent property.

2.2.4.2. Features

  • Added support for Qt 5.2.

  • Added dedicated support for QtQuick controls

  • Added support for Visual Studio 2013 builds.

  • It's now possible to record and replay touch events as well as multi-touch gestures.

  • Major improvements to the diagnostic output generated by Squish in case hooking into a Qt application fails.

  • Support for scripts calling methods with return type QList<QObject*>.

  • uninstallEventHandler() function added to allow uninstalling event handlers.

  • Support calling slots from test scripts with qint16, quint16, quint32, qreal> or ushort parameters or return values.

  • QPixmap sub-properties (such as width, height or depth) are now accessible from test scripts and shown in the Squish IDE.

  • Added support for recording and replaying QWindow resizes, moves and state changes (minimizing/maximizing/etc.).

  • Added support for QWebView controls when running tests on Solaris.

  • On touch-enabled devices, objects can now be picked by tapping the screen.

  • Support for single-touch tap recording on QWidgets and QtQuick controls added.

  • Support for single-touch drag recording on QtQuick controls added.

  • Support for (multi-)touch gesture recording and replay on QWidgets and QtQuick controls added.

  • It's now possible to use wildcards for the text property for multi-property QListViewItem object names.

2.2.5. Java™-specific

2.2.5.1. Bug Fixes

  • Fixed crash during hookup on Windows 8 using the AMD64 Java edition.
  • Fixed crash when creating a string representation of a self-referencing nested Java array.

  • The Spy tool now works correctly for JavaFX applications containing more than one Stage object.

  • Simplified deployment of example applications; each example is now bundled into a single .jar archive.

  • Fixed accessing multi-dimensional Java arrays from test scripts.

  • Corrected super-class of JavaArray class, which is now a sub-class of java.lang.Object.

  • Corrected handling of JFace ControlDecoration objects.

  • Fixed an issue related to the "chevron" object of CTabFolder controls in recent SWT versions.

  • Resolved a bug which made scrolling to table cells fail when replaying a test script.

2.2.5.2. Features

  • Added support for Java 8.

  • Dedicated support for Nebula Grid and Nebula NatTable added.

  • Added dedicated support for HTML objects contained in WebView controls in JavaFX applications.

  • Test scripts can now access invisible items in JavaFX lists, tables and trees.

2.2.6. Web-specific

2.2.6.1. Bug Fixes

  • Improved compatibility with touch-enabled devices by replaying clicks using touch events.

  • Firefox versions older than 4.0 are no longer supported.

  • Fixed a bug in closePrompt() function which occasionally caused it to not cancel prompt dialogs correctly.

  • Corrected coordinates for elements contained in dialogs shown by Internet Explorer.

  • Improved robustness of hooking into <iframe> elements.

  • The Internet Explorer window is no longer closed when a test finished if Squish attached to a running IE instance.

  • Improved support for stripped-down SmartGWT applications.

  • Fixed a problem related to loading URLs without a scheme when replaying tests with Chrome.

  • Fixed a rare crash triggered when closing Internet Explorer windows.

  • Made it possible to run the addressbook example with Internet Explorer 8.

2.2.6.2. Features

  • It's now possible to pick links of buttons without triggering the associated actions (for browsers other than Internet Explorer).

  • Added support for automating alert/confirm/prompt dialogs shown by embedded web controls.

  • Extended Chrome support by removing limitations imposed by proxy-based testing. Chrome is now accessed using a Chrome extension.

  • visible property now takes CSS-defined visibility into account.

  • A new BodyUnloaded event has been added to allow test scripts to react to the current page being unloaded.

  • The selectOption() function can now be called with a list of strings to simplify selecting multiple entries in a multi-select field.

  • The selectOption() function now supports selecting items based on their value property instead of the user-visible string.

  • Added support for running tests with Firefox on Solaris.

2.2.7. Windows (native)-specific

2.2.7.1. Bug Fixes

  • WPF DatePicker controls now expose the nested edit control to make replaying text input to date pickers work correctly.

  • Fixed a bug which occasionally kept Squish from hooking into .NET applications.

  • Resolved an issue which sometimes made replaying test scripts on MFC list view items trigger a high CPU load.

  • Fixed a resource leak which might cause the system to run out of memory if Squish repeatedly attaches to and detaches from an application.

  • Greatly improved accuracy of determining which WPF control (if any) is beneath the mouse cursor, this fixes various issues related to recording actions on WPF controls and picking them.

  • Resolved a potential crash when replaying tests on Windows Forms applications.

2.2.7.2. Features

  • Added dedicated support for DevExpress WPF controls.

  • Squish now tries to make use of the Microsoft UI Automation framework for accessing GUI controls before falling back to generic WindowsControl-based automation.

  • The names of objects shown in the Spy are now much more descriptive.

  • MFC menu items now expose an id property.

2.2.8. Mac OS X-specific (Cocoa/Carbon edition)

  • It's now possible to create screenshot verification points for web objects in embedded web controls.

  • Squish packages are now "universal builds", both 32-bit as well as 64-bit applications can be tested with a single Squish package.

  • The injectMacWrapper example script no longer requires modifications to be usable.

  • The selectOption() can now be used with WebView controls embedded into OS X applications.

2.2.9. iOS-specific (iPhone/iPad edition)

  • Support for recording and replaying multi-touch gestures.

  • Added support for building with Xcode 5.1 and iOS 7.1.

  • The selectOption() can now be used with WebView controls embedded into iOS apps.

2.2.10. Android-specific

  • Added support for recording and replaying multi-touch gestures.

  • An experimental alternative hooking method with greatly improved performance has been added.

  • Native.java.lang.Class.forName("package.Class") can now be used to access all native classes without any further steps.

  • The tapMenuItem() function now correctly raises an exception when the menu item is not found.

  • Fixed recording of keyboard input on WebView HTML objects for Android 4.0 ("Ice Cream Sandwich").

  • It is now possible to specify TCP device strings when calling startApplication to launch Android apps.

2.2.11. Tk-specific

  • Added support for applications using a renamed Tk library (only on Linux).

  • Added support for Perl/Tk applications (only on Linux).

2.2.12. Add-Ons

  • The Ant integration now supports running multiple test cases of a given test suite.

  • The Jenkins integration plugin now supports setting squishserver (Section 19.4.2) options.

  • The Jenkins integration now allows running multiple Squish test cases in a single build step.

  • The settings entered for a Jenkins Squish build step are now verified more diligently.

2.2.13. Documentation

  • The algorithm used by Squish/Web for generating object names is now documented.

  • The Search feature of the HTML help has been reworked to yield better results. Also, the results are grouped by topic.

  • The instructions for creating partial builds (for Qt test) have been simplified.

2.2.14. Qt-specific Source Packages

  • A newly added Embedded SDK provides support for QNX (using the qcc compiler frontend), Android, VxWorks and a simplified configuration for embedded Linux. Customers with existing support contracts for cross-compilation builds will be receive a free upgrade for their target platform.

  • Make the code compile with Qt 5.3 (still in beta).

  • The squishidl (Section 19.4.3) utility is now shipped with Squish binary packages to simplify doing partial builds.

  • Squish source builds can now make use of an existing squishidl binary (useful for embedded builds).

  • The configure program now queries an optional Qt namespace name as well as a library infix from qmake (when using qmake).

  • The configure program can optionally query qmake for compiler and linker flags to use.

  • An install target has been added to simplify distribution to remote & embedded systems (currently unsupported on Mac OS X).