Release history for Siesta:

5.3.0     2019-10-27 15:05

    [FEATURES / ENHANCEMENTS]
    - Updated Selenium bindings to latest version (along with all WebDriver binaries and Puppeteer). This brings support for latest MS Edge driver.
    Should be no user-visible changes, if you find any, please report on forum.

    [API CHANGES]

    [BUG FIXES]
    - Fixed #8951 - Mouse move actions should support an 'options' config object just like other mouse interactions
    - Fixed clicking on the checkbox field and toggle field in Ext 6.7.0 Modern

5.2.3     2019-05-29 10:33

    [FEATURES / ENHANCEMENTS]
    - The `isEcmaModule` config is now supported in the `preload` descriptors
    - A new `testPreload` config, allows preloading of resources into the test script context, when `enablePageRedirect` option is enabled.
    - The &lt;script&gt; tags of the ES modules are now created with the `crossorigin` attribute set to "anonymous"
    - Added a note about code coverage for tests running on "localhost"

    [API CHANGES]

    [BUG FIXES]
    - Added a workaround for the Safari 12 bug, which could cause a `UnsupportedOperationError: Parameter 'x' has a boolean value, which is not allowed`
      error. More details: https://github.com/web-platform-tests/wpt/issues/15625
    - Fixed modules loading for Node.js &gt; 10.5.0
    - Fixed the exception in the Siesta UI in Firefox, when using the trial version
    - Fixed #8524: Crash when using t.is with TaskRecord

5.2.2     2019-02-22 13:23

    [FEATURES / ENHANCEMENTS]

    [API CHANGES]

    [BUG FIXES]
    - Fixed an exception during Node.js launcher start in Siesta Lite (Standard was not affected)

5.2.1     2019-02-05 12:22

    [FEATURES / ENHANCEMENTS]

    [API CHANGES]

    [BUG FIXES]
    - Fixed an exception during Node.js launcher start

5.2.0     2019-02-01 11:10

    [FEATURES / ENHANCEMENTS]
    - Siesta now supports using Ecma6 modules in your Node tests, with `esm` loader. No special configuration is needed,
      just write your tests as Ecma modules. Note, that when running tests as Ecma6 modules in the browsers, the `isEcmaModule` config
      should still be specified
    - Added a sample test suite for a Vue app and a corresponding guide.
    - Bumped Nyc dependency to support code coverage for Ecma6 modules
    - Added `--inspect` and `--inspect-brk` command line options, to support debugging when testing in Node.js (previouly one would need
      to use --node-arg to pass this arguments to Node process). Passing this options will switch to `--max-workers=1` to avoid
      collision of debugger instances. More details in `--help` (Fixes #7302)
    - Spies can now be used on generator functions (tracks only calls to generator function itself, not to the iterator)
    - Added `ignoreCssClasses` config on Siesta.Recorder.Recorder class to be able to ignore certain CSS classes when recording locators
      (Fixes #7213)
    - Siesta now correctly sets the `code` property of all keyboard events
    - The &lt;script&gt; tags of the ES modules are now created with the `crossorigin` attribute set to "use-credentials"
    - For screenshots manipulation, Siesta now first tries to use the ImageMagic commands installed in the OS, and only then the bundled binaries
    - Puppeteer launcher updated to version 1.9.0

    [API CHANGES]
    - The default Spy behavior has been changed to `callThrough`, better docs for `spyOn`.

    [BUG FIXES]
    - Fixed a bug, that would throw an exception, when using `isDeeply` assertion in Node.js
    - Fixed a bug, that would throw exception when using Node.js and applying 2 different spies to the same method.
    - Fixed a bug, that could prevent the launch of native events simulation server in Linux environment, when using --xvfb option
    - Fixed a bug, that could cause the tests, snoozed with `t.snooze()` method to execute in wrong order
    - Fixed a bug, that was preventing the remote Selenium Server to start
    - Fixed #6955: Synthetic events don't trigger 'change' event when an input is blurred


5.1.1     2018-10-08 09:12

    [FEATURES / ENHANCEMENTS]

    [API CHANGES]

    [BUG FIXES]
    - Fixed a bug, that could cause the `SessionNotCreatedError` exception, when testing with Safari 12 locally


5.1.0     2018-10-01 19:43

    This release introduces a completely rewritten code coverage module. It now runs on latest Istanbul, supports all Istanbul reports
    and ES6 syntax. Please refer to the "Code coverage" guide: https://www.bryntum.com/docs/siesta/#!/guide/code_coverage

    [FEATURES / ENHANCEMENTS]
    - Default value of the `--max-workers` config for the Puppeteer and NodeJS launchers set to 5. Default value
      of the `--chunk-size` config for the Puppeteer launcher set to 3. These are the optimal configs for running
      small (< 30) test suites in maximum parallelization.
    - Added `[ESC]` alias for the `[ESCAPE]` special key code

    [API CHANGES]
    - The configuration options `enableCodeCoverage` have been removed. Code coverage is now available from the command line only and
      is controlled with the `--nyc.reporter` option.
    - The configuration options `includeCoverageUnit` and `excludeCoverageUnit` have been removed. Use `--nyc.include`, `--nyc.exclude` instead.
    - The configuration option `coverageUnit` has been removed. Code coverage is now always collected per file. To get the same
      results from the bundled code - pre-instrument the codebase before bundling.
    - The command line option `--previous-coverage-report` has been removed. To create a combined coverage report from several consequent
      test suite launches, specify the `--nyc.clean=false` for the 2nd and following launches
    - The default value of the "forceDOMVisible" config for MS Edge is set to `true` now. This is to workaround the observed
      issues with "document.elementFromPoint" implementation in this browser
    - The Puppeteer launcher no longer redirects the stderr to `bin/webdriver.log`

    [BUG FIXES]
    - Fixed a bug, that would make exceptions, thrown synchronously during Node.js test execution, to appear in hard to read form
    - Fixed a bug, that would prevent using the `--proxy` option for Chrome and Firefox drivers
    - Fixed a bug, that would result in the exit code 1 for "snoozed" tests, failed with exception
    - Fixed #2009: Instrumenter bug
    - Fixed #3232: Siesta crashes during code cov data generation in TaskBoard 2.x
    - Fixed #2265: Implement offline instrumentation


5.0.0     2018-07-28 08:06

    This Siesta release re-introduces Node.js support, which has outdated with recent Node versions. If your tests don't involve
    DOM, it will be much faster to run them in Node.js environment.

    This release also features a new mode for simulation of user actions - native events. In this mode, a real, OS-level
    events are simulated, so for example, when test will issue a "mouseMove" command, a real mouse cursor will be moved.
    This allows precisely test some intrinsic browser behavior, which synthetic simulation can not capture.
    Please refer to the docs for the `simulation` config.

    Siesta API now uses native JavaScript "promises" for all user actions and chain steps. See below for details.

    [FEATURES / ENHANCEMENTS]
    - All methods for simulation user actions, like `click`, `rightClick`, `type`, ``dragTo`, `moveMouseTo` etc now also return
      a `Promise`, which is resolved once the action has completed. The old API with callbacks is still supported
      Note, that `chain` method still seems to be more convenient for sequencing user actions.
    - If a `Promise` is returned from the test function (or it is an `async/await` function) - Siesta now waits until that
      promise is resolved/rejected before finalizing the test (Fixes #6235).
      Please refer to the `/examples/browser/1.unit-tests/returning_promise.t.js` for the example
    - If a `Promise` is returned from chain step function, or step function is `async/await` - Siesta now waits until that
      promise is resolved/rejected to continue the chain.
      Please refer to the `/examples/browser/1.unit-tests/chain_step_with_promise.t.js` for the example
    - The values of the "--cap" configs are now 1st tried to been parsed as JSON, and, if parsing succeeds,
      the resulting JSON object will be assigned to the config value. Otherwise the value is used as raw string
    - HTML report user interface now auto-expands the failed sub-tests (Fixes #6429)

    [API CHANGES]
    - The notion of "harness" has been renamed to "project" everywhere in sources, docs, and examples. So `Siesta.Harness.Browser`
      is now `Siesta.Project.Browser` etc. Old names are still supported as aliases.
    - The `wait` and `endWait` methods have been deprecated and removed from the documentation (still can be used)
    - The deprecated method `drag` has been removed. Please use `dragTo/dragBy` instead
    - The `mouseOver/mouseOut` methods have been removed. Please use regular mouse movement methods instead
    - The synchronous variants of the following methods are no longer supported `type`, `keyPress`, `click`, `rightClick`,
      `mouseDown`, `mouseUp`. All these methods are now always asynchronous
    - The `earlySetup` method is now called for the tests with disabled sandboxing
    - It is now mandatory to call the SUPER implementation of the `setup` and `earlySetup` test methods, please refer
      to the updated docs.
    - The deprecated PhantomJS launcher has been removed from the package, please use Puppeteer launcher instead, or headless Chrome
    - The SlimerJS launcher has been removed from the package, please use Puppeteer launcher instead, or headless Firefox

    [BUG FIXES]
    - Fixed #6084: Mousedown event missing pointerType


4.4.4     2018-04-18 11:13

    [FEATURES / ENHANCEMENTS]
    - New WebDriver launcher command line option: --ff-pref, allows to set the preference in the Firefox profile
    - Two new assertion methods - `throwsOkAsync` and `livesOkAsync`, which allows to test the exception during asynchronous code.
      Please refer to the docs for more details.
    - Two new matchers added to Element class: hasSameWidth and hasSameHeight, two compare size of two DOM elements
    - New config option added - `failOnPromiseRejection` (enabled by default) (Fixes #5645)
    - Siesta now does not throw exception to determine the current source line, if browser supports `new Error().stack`
      construct. This helps during debugging with "Pause on caught exceptions" setting enabled (Fixes #6028)
    - The error message of the `waitForComponentQueryVisible` now provides more information (Fixes #5907)
    - Siesta now correctly works with SVG elements in IE11 / MSEdge (Fixes #2198)
    - Siesta now always show a user-provided description from the "waitFor" method, even if waiting has completed synchronously
    - Slightly improved the "BDD conventions" guide
    - Improved firing of the mouse events in some edge cases, like removing the click target from the DOM during the click

    [API CHANGES]

    [BUG FIXES]
    - Fixed targeting form fields in ExtJS 6.5.x Modern
    - Fixed #5686: Siesta cannot record CMD-+
    - Fixed #5694: Siesta.Test#failWithException doesn't provide callstack
    - Fixed #5883: Siesta records vanilla button click as weird drag
    - Fixed #5939: Siesta fires mouseup after drag action even if pointerdown was prevented
    - Fixed #5942: 'click' event fired on wrong element if pointerup event alters what's at cursor
    - Fixed #5657: Crash in Siesta recorder: Failed to execute 'querySelectorAll' on 'Document': 'o:p' is not a valid selector

    [KNOWN ISSUES]
    - The Puppeteer launcher can not be used from the samba network share (at least w/o some additional setup)
      Local drives setup works fine
    - Headless Chrome on Windows7 works much slower than non-headless. This affects Puppeteer launcher too.
    - SlimerJS 1.0.0-beta-1 version does not support disabling of SSL security


4.4.3     2018-01-09 16:02

    [FEATURES / ENHANCEMENTS]
    - New WebDriver launcher command line option: --ff-pref, allows to set the preference in the Firefox profile
    - Siesta now always show a user-provided description from the "waitFor" method, even if waiting has completed synchronously
    - Slightly imporoved the "BDD conventions" guide

    [API CHANGES]

    [BUG FIXES]

    [KNOWN ISSUES]
    - The Puppeteer launcher can not be used from the samba network share (at least w/o some additional setup)
      Local drives setup works fine
    - Headless Chrome on Windows7 works much slower than non-headless. This affects Puppeteer launcher too.
    - SlimerJS 1.0.0-alpha version does not support disabling of SSL security

4.4.2     2017-12-15 12:09

    [FEATURES / ENHANCEMENTS]
    - WebDriver launcher now accept untrusted SSL certificates by default
    - Siesta now displays the source of the chain step that has timed out
    - You can now specify the log file of the SauceLabs tunneling utility with the --saucelabs-log-file command line option

    [API CHANGES]

    [BUG FIXES]
    - Fixed a bug, where `getCell/getRow` methods were returning incorrect values for grids with buffered rendering
    - Fixed #5304: Siesta doesn't replace selected text correctly when typing

    [KNOWN ISSUES]
    - The Puppeteer launcher can not be used from the samba network share (at least w/o some additional setup)
      Local drives setup works fine
    - Headless Chrome on Windows7 works much slower than non-headless. This affects Puppeteer launcher too.
    - SlimerJS 1.0.0-alpha version does not support disabling of SSL security


4.4.1     2017-12-05 17:35

    [FEATURES / ENHANCEMENTS]

    [API CHANGES]

    [BUG FIXES]
    - Fixed a bug, that could cause typing of BACKSPACE character in the number field to do nothing
    - Fixed an extra nesting level of "node_modules" folder in package

    [KNOWN ISSUES]
    - The Puppeteer launcher can not be used from the samba network share (at least w/o some additional setup)
      Local drives setup works fine
    - Headless Chrome on Windows7 works much slower than non-headless. This affects Puppeteer launcher too.
    - SlimerJS 1.0.0-alpha version does not support disabling of SSL security

4.4.0     2017-12-05 09:35

    [FEATURES / ENHANCEMENTS]
    - WebDriver launcher now supports a new config option `--headless` (supported for Chrome >= 60 / Firefox >= 57) which opens browser
      in headless mode and makes it safe to use --max-workers option!
    - New automation launcher, based on headless Chrome + Puppeteer. This launcher is a replacement for the one based on very poorly maintained
      PhantomJS project. You can try it with `bin/puppeteer`, featurewise it is equivalent to other launchers
    - Siesta now detects unhandled promise rejections (if browser supports it) and reports a failure (Fixed #4965)
    - The --report-file and --report-format command line options can now be repeated to generate several reports
    - The "isDeeply/isDeeplyStrict" assertions now supports comparing Map instances with keys, consisting of primitive values
      (Fixed #5031)
    - Added total number of assertions ("totalAssertions" attribute) and number of failed assertions ("failedAssertions" attribute)
      to the <testcase> node in the JUnit report
    - SlimerJS launcher uprgaded to 1.0.0-alpha release, providing support for Firefox 52-57

    [API CHANGES]
    - The PhantomJS launcher has been deprecated. It will remain in the distribution for some time, but is removed
      from the documentation. All PhantomJS users are strongly advised to switch to Puppeteer/SlimerJS launchers.
    - NodeJS binaries have been updated, you may need to re-authorize those in Windows Defender

    [BUG FIXES]
    - Fixed a bug, that could cause `assertTextPresent` assertion to fail with exception
    - Fixed a bug, that could cause wrong behavior of the `type` method, when typing into the React text fields
    - Fixed #5036: Resizing a task in gantt works in Siesta but not using regular mouse
    - Fixed #5182: Crash in Siesta recorder when recording SHIFT+key

    [KNOWN ISSUES]
    - The Puppeteer launcher can not be used from the samba network share (at least w/o some additional setup)
      Local drives setup works fine
    - Headless Chrome on Windows7 works much slower than non-headless. This affects Puppeteer launcher too.
    - SlimerJS 1.0.0-alpha version does not support disabling of SSL security

4.3.2     2017-09-27 09:27

    [FEATURES / ENHANCEMENTS]
    - WebDriver binaries updated to latest versions (ChromeDriver - 2.32, EdgeDriver - 4.15063)
    - SauceLabs and BrowserStack tunneling binaries upgraded to latest versions
    - Added support for KeyboardEvent.key (Fixed #4567)
    - Added new config option for tests - `desc`. Its content will be shown as the tooltip of the test name (Fixed #4788)

    [API CHANGES]

    [BUG FIXES]
    - Fixed #3460: Wrong assertion annotation when using BDD.not API
    - Fixed #4683: Failed to execute 'setAttribute' on 'Element': 'style\' is not a valid attribute name
    - Fixed #4829: Exception when launching standalone webdriver server
    - Fixed #4854: Grid API getRow not working in Sencha Modern

4.3.1     2017-08-03 10:02

    [FEATURES / ENHANCEMENTS]
    - The "scale to fit" UI option can now scale to single dimension only (scale to fit width, scale to fit height)
    - Siesta now supports the usage of ES6 arrow functions in the "t.chain()" method (Fixed #4355)
          t.chain(next => { ...; next() })
    - New config `isEcmaModule` allows to load script file or preload files as the ES6 modules (&lt;script type="module"&gt;)
    - Ariadne now uses its own implementation of the `nth-child` pseudo in the component queries, `ariadne-nth-child`.
      Turns out, the stock `nth-child` is implemented completely incorrectly, using the position of the node in the result set,
      instead of the position in the siblings collection. This should improve component queries finding in certain cases.
    - Siesta now supports escaping of special characters sequence, for example, to type the text "[F3]" into some
      text field, specify it as "[[F3]]"

    [API CHANGES]

    [BUG FIXES]
    - Fixed #4579: Support Ext6 "modern/desktop" mode
    - Fixed #4353: Selected text in readOnly INPUT element cleared when typing
    - Fixed a bug, that was causing 'F3' text to be typed when actually typing '[F3]' (special key)
    - Fixed a bug, that was causing 'test' text to be typed when actually typing '[test]' (normal text in square brackets)

4.3.0     2017-04-17 11:06

    [FEATURES / ENHANCEMENTS]
    - New UI option added - "scale to fit" (in the right-top toolbar). Scales the test iframe to fit the available
      space (Fixed #3601)
    - Firefox >= 47 support has been added (GeckoDriver)
    - MS Edge support has been added (for latest 14 version) (Fixed #2459)
    - When running in SauceLabs, Siesta now properly updates the job status after test completion (Fixed #4204)
    - Siesta now simulate PointerEvents in all browsers supporting them (notably latest Chrome) (Fixed #3837)
    - Better implementation of the `autoScrollElementsIntoView` functionality (Fixed #2098)
    - Added support for simulating 'wheel' event. https://developer.mozilla.org/en-US/docs/Web/API/WheelEvent
    - Harness page now recognize the following query strings "filter" (set the tests grid filter) and "autolaunch"
      (launch all tests, respecting filter), so to launch test "my_test.js" one can open the link:
      http://myharness.com/?filter=my_test&autolaunch=1
      The link to the test can be copied from the test grid context menu (Fixed #4252)
    - A new config option "referenceUrl" has been added. CTRL+click on such tests in the Siesta UI will open
      a new browser window with "referenceUrl". Can be used to attach links to external resources (like tickets,
      screenshots, etc) to the tests.
    - SlimerJS has been updated to latest 0.10.3 (supports Firefox up to 52) (Fixed #4267)

    [API CHANGES]
    - The monkey actions log from `monkeyTest` method is now included as part of the assertion output,
      and not as the separate test warning. It now also includes only the actually played actions (Fixed #3469)

    [BUG FIXES]
    - Fixed a bug, where the 'input' events were not simulated when typing [BACKSPACE] and [DELETE]
      special characters
    - Fixed a bug, that could cause code instrumentation to fail on "Ext.define(null, {})" definitions, when using
      "coverageUnit : 'extjs_class'"
    - Fixed a bug, that could prevent connection to cloud providers (SauceLabs, BrowserStack) using proxy
    - Fixed #3844: scrollTo incorrectly waits for BODY scroll
    - Fixed #4011: Unset environment variables, used by NodeJS bindings
    - Fixed #4013: Handle component queries with dot in xtype w/o warning in Ariadne
    - Fixed #4018: scrollTo recording broken for BODY scrolling
    - Fixed #4245: Siesta doesn't fire 'change' event for input fields


4.2.2     2016-12-15 18:21

    [FEATURES / ENHANCEMENTS]
    - Siesta Recorder is now supported in all modern browsers (IE10+)
    - Siesta.Recorder now implements a new config - `shouldIgnoreDomElementId` (Fixed #3586)
    - Siesta Recorder now supports the following new options: `recordWindowResize/recordInitialWindowSize`.
      Please refer to the docs
    - The behavior of recording a `moveCursorTo` action when mouse is idle for some time is now controlled
      by a new recorder config option: `recordMouseMoveOnIdle`
    - The behavior of recording a `moveCursorTo` action when mouse cursor goes of certain "points of interest",
      like grid column headers and menu items, is now controlled by a new recorder config option: `recordPointsOfInterest`
    - Siesta Recorder now has a new option: `recordMouseMovePath`, which when enabled, will disable
      the `recordMouseMoveOnIdle` and `recordPointsOfInterest`. This option will record the mouse movement path
      and generate `moveCursorAlongPath` action
    - Siesta Recorder now has a new option: `recordScroll`, which when enabled, will record scroll events from
      all elements on the page
    - New methods for the Siesta.Test.Browser test class - `moveCursorAlongPath` and `scrollTo`, please refer to the doc
    - Compatibility fixes for `PointerEvent` enabled by default starting from Chrome 55. When using `Siesta.Test.SenchaTouch`
      test class and both `PointerEvent` and `TouchEvent` are available Siesta still uses `TouchEvents`
      (for backward compatibility)
    - Siesta now includes "Bowser" library for browser detection (Thanks for a lot for the respective authors).
      It is available as `bowser` global on the harness page and `bowser` property of the test class.
      See the docs for details.
    - The "click" and "dblclick" events are now more correctly fired in the same event loop iteration
      as the "mouseup" event (Fixed #3622)

    [API CHANGES]

    [BUG FIXES]
    - Fixed a bug, that was preventing code coverage feature to work with ExtJS 6 applications using microloader
    - Fixed a bug, that could cause `t.query()` method to return incorrect results for CSS selectors
    - Fixed #3207: autoRun : true not respected
    - Fixed #3674: String not quoted when generating code for arrays including strings
    - Fixed #3682: Single quotes not escaped in title attr querying
    - Fixed #3717: Use Sizzle for 'nth-of-type' queries in IE
    - Fixed #3723: Key events not simulated for readOnly text fields
    - Fixed #3757: Recorder crash in Ext JS 4.2.x
    - Fixed #3765: Crash when clicking SVG path node (has no className)
    - Fixed #3290: Review use of this.lastMoveCursorToEl


4.2.1     2016-11-22 10:55

    [FEATURES / ENHANCEMENTS]
    - New command line option added "--randomize-tests-order". Helps you ensure your tests do not depend on each other.
      Also if you have some heavy tests, grouped in the certain place of the test suite, this option
      will sort of balance the load across the whole suite
    - Fixed #3474: Improve error message for wrong action object

    [API CHANGES]
    - When testing in BrowserStack, Siesta now enables popups in IE and Safari by default, by setting the
      `browserstack.ie.enablePopups` and `browserstack.safari.enablePopups` capabilities to `true`.
      If you need to disable popups in BrowserStack set those capabilities to `false` explicitly (Fixed #3532)

    [BUG FIXES]
    - Fixed a bug, that was causing "type" action to be incorrectly exported from recorder
    - Fixed a bug - Siesta Recorder fail to replay the selectors with escaped special characters inside of ":contains()"
      pseudo selector (normal playback not affected)
    - Fixed #3449: isElementVisible: Should not decide visibility status based on local style
    - Fixed #3505: Siesta recorder should only consider possible targets available at mouse down
    - Fixed #3577: Enter key not triggering form submit
    - Fixed #3591: Double quotes not escaped in "Show source" output
    - Fixed #3610: Siesta can't click on the rotated element

4.2.0     2016-10-24 21:55
    [FEATURES / ENHANCEMENTS]
    - Siesta Recorder now uses Ariadne - a newly developed selector finding engine. It can find both DOM and Component queries
      and uses only the minimal required number of CSS classes / attributes, so the queries are smaller. In the same time,
      it avoids using positional selectors like ":nth-child()", direct child selector ">" as much as possible, so
      queries are robust to future changes in the markup
    - [Linux only] Added new command line argument --xvfb, which wraps every browser window (Chrome and Firefox)
      in its own virtual desktop, using xvfb server. Browser windows won't fight for focus in this case and this allows
      you to safely specify the greater than 1 values for --max-workers config. Greatly speeds up test suite execution
    - Added new test method `query` - which resolves an action target as if it would be defined
      by the Siesta.Test.ActionTarget string, see the docs for additional details
    - Added `assertTextPresent` assertion to verify a text is present (Fixed #2073).
    - Added two new test methods for simulating browser window blur/focus (`simulateDeactivateWindow` and `simulateActivateWindow`)
    - Added new `moveCursorBy` chain action, you can now call it in a chain like `{ moveCursorBy : [4,5] }`
    - Siesta now keeps the virtual cursor visible after finalizing the test
    - Added new harness config option `showTestDurationColumn` - self-explanatory (Fixed #3253)

    [API CHANGES]
    - [BREAKING] SlimerJS version has been updated to the latest, and it is not headless now, requires the presence
      of Firefox and graphical environment (xvfb or similar) (Fixed #3164)
    - The default value of the `recordOffsets` config in Siesta.Recorder.Recorder has been changed to `false`. Siesta will
      still automatically save the offset in the event target element, if that element is not reachable at its center
      (partially hidden by some other element for example)
    - Siesta now includes the target for recorded "type" actions

    [BUG FIXES]
    - Fixed #1413: Simulation of BACKSPACE key does not take current selection into account
    - Fixed #3153: Editing siesta drag target shows "a Siesta.Recorder.Target" in grid cell while editor open
    - Fixed #3160: 'buttons' event property not set during mousemove drag operation
    - Fixed #3284: Need to refresh the horizontal scrollbar in the assertions grid on assertion group expansion
    - Fixed #3285: Siesta should add text at the current caret position
    - Fixed #3286: Siesta should support HOME/END key caret navigation in text fields
    - Fixed #3289: "Ext.Loader" might be missing at the test's "doStart" stage
    - Fixed #3353: 'click' event incorrectly recorded after complex drag scenario
    - Fixed #3354: 'mouseUp' abstraction should handle 'click'
    - Fixed #3384: Siesta incorrectly records shift+tab
    - Fixed a bug, that was causing the output of the initial help screen to be displayed in colored (and thus garbaged)
      mode on Windows

    [KNOWN ISSUES]
    - The situation around the Firefox webdriver implementation is still in flux. The Selenium NodeJS package for 3.0.0
      is still beta. So currently, locally, only FF46 and below can be tested. Remote testing including cloud providers
      works fine. We'll release a patch update as soon as all packages will went out of beta state

4.1.4     2016-09-23 16:48

    [KNOWN ISSUES]
    - SlimerJS launcher uses an outdated version of XulRunner (corresponds to FireFox 33) on MacOS

    [FEATURES / ENHANCEMENTS]
    - Siesta now automatically waits for the target point of the `dragTo` operation to appear in the DOM
      and become visible (Fixed #2404)
    - If a function chain step throws an exception, Siesta now finalizes the chain immediately, instead of waiting for the
      `defaultTimeout` period (or step timeout)
    - New command line option "build" to annotate test suite launches in the cloud infrastructure, also available
      in the reports (Fixed #3126)
    - Support for Ext JS 6.2.0 (minor adaptions to the grid layer)

    [API CHANGES]

    [BUG FIXES]
    - Fixed a bug that could cause "waitForExtComponentQueryReady" flag to work in correctly in the applications
      built with Sencha Cmd
    - Fixed a bug that could cause iframe of the test to be created in quirks mode in IE
    - Fixed #3152 - Recorder: cannot record / playback drag of grid column resizer
    - Fixed #3178 - Incorrect typeof RegExp check in StringPlaceholder

4.1.3     2016-08-05 14:08

    [KNOWN ISSUES]
    - SlimerJS launcher uses an outdated version of XulRunner (corresponds to FireFox 33) on MacOS

    [FEATURES / ENHANCEMENTS]
    - Siesta now issues a meaningful error, when trying to access cross-origin page using `pageUrl` option, instead
      of just crashing (Fixed #2626)
    - Siesta now issues a meaningful error, when `describe` (except the top-level one) is used without test instance
      (`describe()` instead of `t.describe()`) (Fixed #2091)
    - Launchers will now read the "siesta.json" file with the default config values from the current working directory
      (or from one of the parent directories), so once you've created such file, you can launch a test suite
      with just: `webdriver` (assuming `__siesta__/bin` is in PATH) (Fixed #2892)
    - TeamCity failure messages now includes test's hierarchy (Fixed #2989)
    - Fixed #2076: Recorder: Add copy to clipboard button

    [API CHANGES]
    - The "snooze" method now generates an "it" section
    - The format of config file, which can be specified with the "--config-file" option, has been changed. You will
      need to turn the previous object into the `cmd` key of the top object. Please refer to the updated
      "Siesta automation" guide.

    [BUG FIXES]
    - Fixed a bug, that could cause Siesta to mistakenly switch to inaccurate mouse movement simulation
      mode for small cursor movements
    - Added a workaround for a NodeJS bug (https://github.com/mishoo/UglifyJS2/issues/1055) which could cause
      the output of the "--help" option to be truncated
    - Siesta now resumes layout in the beginning of the non-sanboxed tests
    - Fixed #3084 - 'click' doesn't trigger focus of contenteditable node

4.1.2     2016-07-13 14:19

    [KNOWN ISSUES]
    - SlimerJS launcher uses an outdated version of XulRunner (corresponds to FireFox 33) on MacOS

    [FEATURES / ENHANCEMENTS]
    - It is now possible to specify a Firefox profile to be used for WebDriver launcher with --firefox-profile
      command line option (Fixed #1467)
    - HTML report now has a summary bottom bar and a button to load new data file with JSONS report (Fixed #2866)
    - The "breakOnFail" option processing has been refactored and improved. It now correctly stops the suite when
      it fails due to an exception, also stops the whole suite execution when running in automation mode (Fixed #2530)
    - New command line option --show-cursor - enables the visualization of the simulated mouse cursor when running
      in automation. Not supported in IE (Fixed #1946)
    - New option in the UI - "Observer mode" which switches to sequential run mode and `forceDOMVisible`.
    - The options menu in the Siesta UI is now automatically opened/closed on mouse enter/leave. Option entries
      now shows tooltips with short info.
    - "waitFor" action now supports defining an interval between the condition check (Fixed #2194)
    - The behavior of "mouseMovePrecision" option with intentionally very big value has changed, so that events are simulated
      for the *two* initial and *two* final points instead of one

    [API CHANGES]
    - The "--filter" command line option has been un-deprecated with a new behavior which matches the tests filter
      field in Siesta UI. See the tooltip of the filter fields for supported format. (Fixed #1709)
    - The "tap/doubleTap/longPress/swipe" actions now correctly wait for the target element to become visible and
      reachable by the cursor
    - The handling of the "waitForAppReady" option has been adapted to the latest Sencha Cmd behaviour. It now gets the name
      of the application from `Ext.manifest` and then waits for the `launched` property of the application instance to
      become true.

    [BUG FIXES]
    - Selenium JS bindings has been updated, which fixes the FireFox 47 issue
    - Fixed #2089: longpress doesn't work in certain conditions
    - Fixed #2559: Skip test and continue to the next test execution.
    - Fixed #2590: Siesta 4.0.4 Sencha Touch checkbox
    - Fixed #2786: Running checked test groups doesn't work
    - Fixed #2922: Code window for function step in recorder is truncated

4.1.1     2016-06-30 12:22

    [KNOWN ISSUES]
    - FireFox 47 has a bug which breaks FireFox WebDriver: https://github.com/SeleniumHQ/selenium/issues/2110
      Wait for 47.1 and stay on Firefox 46 in the meantime
    - SlimerJS launcher uses an outdated version of XulRunner (corresponds to FireFox 33) on MacOS

    [FEATURES / ENHANCEMENTS]
    - Added a check that launcher and harness page uses same version of Siesta
    - New command line option has been added for the WebDriver launcher - "--browser-arg", specifying command line arguments
      for the browsers (Fixed #2857)
    - New command line option has been added for the WebDriver launcher - "--restart-attempts", specifying how many times
      Siesta will try to restart a test if it has failed because of browser/WebDriver exception (Fixed #2837)
    - Assertions are now printed hierarchically, based on the "t.describe()/t.it()" tree structure (Fixed #2250)
    - The output from the test suite is no longer buffered for the --max-workers=1 case (Fixed #2836)
    - The --browserstack and --saucelabs command line options now read the default values from the environment variables
      (see the --help for details)
    - New test descriptor config has been added: `snooze`. It specifies a date, until which the test will be running
      as "todo" (all failurues from it will be silenced) (Fixed #2237)
    - New harness method has been added: `harness.getSelectedTest()`. It returns the test instance of the currently
      selected test in the UI, so you can call usual test methods on it (Fixed #2538)
    - The `harness.getQueryParam()` method has been made public and documented
    - The `preload/alsoPreload` configs now can contain nested arrays which will be flattened. Also the empty entries
      (like `null`, '', etc) will be ignored (Fixed #2382)
    - Added new bundle to the root of the distribution - "siesta-no-ext-all.js" which is basically the "siesta-all.js" prior 4.1.0
      The "Getting started" guide has been updated with the new sample setup
    - The `suppressPassedWaitForAssertion` option made public (Fixed #2180)

    [API CHANGES]
    - [BREAKING] Assertions are now printed hierarchically, based on the "t.describe()/t.it()" tree structure, to restore the previous
      output format, use the --flat-output option

    [BUG FIXES]
    - Fixed a bug, that was causing wrong resolving of the report file name using values from the "--cap" option
    - Fixed a bug, that could cause assertion grid to be empty after test file selection
    - Fixed #2589: isDeeply stuck in infinite loop
    - Fixed #2821: Sencha Modern checkbox
    - Fixed #2722: Sandboxed mode: Exceptions always logged in the first test

4.1.0     2016-06-09 21:27

    This release switches launchers code from using Rhino to NodeJS. As a result, the machine, running the launcher,
    will have much lesser memory and CPU loads, which is important for big suites. We've also added 2 new report
    formats - "html" and "jsons" and its now possible to visualize the test suite execution results.

    [KNOWN ISSUES]
    - SlimerJS launcher uses an outdated version of XulRunner (corresponds to FireFox 33) on MacOS

    [FEATURES / ENHANCEMENTS]
    - Launchers have been switched to NodeJS instead of Rhino. This change should speed up the execution and greatly reduce
      the memory consumption
    - IMPORTANT: Siesta user interace files are now compiled with Sencha Cmd, you will need to update your harness
      html page, see the "API changes" section below
    - Added new report type - JSONS (JSON structured). It is functionally equivalent to the exitsing JSON report,
      but all the results are structured hierarchically, based on the test groups information
    - Added new report type - HTML (JSONS+visualization). Can be used to see the test suite execution results in the browser (Fixed #1918)
    - The `t.cq()` and `t.cq1()` methods will now strip the leading `>>` characters if any
    - Disable output coloring in WebDriver launcher when not running in terminal, Windows output is now colored
    - The format names in command line options made case insensitive
    - SauceConnect and BrowserStack tunnel binaries has been updated to the latest versions
    - PhantomJS binaries has been updated to 2.1.1

    [API CHANGES]
    - BREAKING: The "siesta-all.js" file is now bundled with the Siesta UI, compiled with Sencha Cmd, same about "siesta-all.css",
      you will need to update your harness html files. There's no need to include ExtJS on the page anymore, please see
      the /examples/index.html for a sample.
    - The "separateContext" option has been renamed to "enablePageRedirect" (old name is still supported).
    - "chainClick" method was deprecated, renamed to "clickAll".

    [BUG FIXES]
    - Fixed a bug, preventing the inheritance of the `preload` config, defined on the group with the non-empty `pageUrl` config
    - Fixed a bug, that could throw "TypeError: cmp.isHidden is not a function" if component query was targeting a Ext.Widget instance
    - Fixed #2798: isDeeply throws error when checking undefined properties

4.0.6     2016-04-07 13:17

    [KNOWN ISSUES]
    - SlimerJS launcher uses an outdated version of XulRunner (corresponds to FireFox 33) on MacOS
    - Included PhantomJS binaries may not work on distributions other than 64 bit Debian/Ubuntu.
      PhantomJS team does not provide binaries for Linux platform.

    [FEATURES / ENHANCEMENTS]
    - In the disabled sandbox mode, Siesta now clears all the registered Model entities, before starting
      a new test (for ExtJS 5 and 6)

    [API CHANGES]

    [BUG FIXES]
    - Fixed a bug preventing Siesta to start in IE8
    - Fixed a crash when simulating events on Ext Widgets
    - Fixed a Recorder bug recording wrong offset when page was scrolled
    - Fixed #2676: Siesta recorder crashes if a Component has no xtype

4.0.5     2016-02-19 14:36

    [KNOWN ISSUES]
    - SlimerJS launcher uses an outdated version of XulRunner (corresponds to FireFox 33) on MacOS
    - Included PhantomJS binaries may not work on distributions other than 64 bit Debian/Ubuntu.
      PhantomJS team does not provide binaries for Linux platform.

    [FEATURES / ENHANCEMENTS]
    - Added better support for recording month picker components
    - Added a new "setUrl" Siesta.Test.Action
    - Added a new "hasAttributeValue" assertion

    [API CHANGES]

    [BUG FIXES]
    - Fixed a recorder bug that caused a crash if clicking a too long text in a P-tag
    - Fixed #1718: [Siesta Recorder] Right click not recorded correctly
    - Fixed #2573: Recorder: Failure to locate target when some element is scrolled
    - Fixed #2575: Recorder should record window size changes
    - Fixed #2576: Ctrl-A and Cmd-A should select all in text field
    - Fixed #2581: Siesta should not skip recording coordinates if they are required to resolve target
    - Fixed #2582: Siesta need to be more robust when resolving targets
    - Fixed #2592: Siesta should fire 'click' if drag operation ends in a child element of source element
    - Fixed #2597: Siesta doesn't properly resolve target for 'mouseDown' API call
    - Fixed #2598: mouseDown API should support asynchronous mode
    - Fixed #2610: BACKSPACE key should trigger load of previous page in history
    - Fixed #2612: Clicking SELECT options doesn't work
    - Fixed #2629: Siesta not focusing elements correctly

4.0.4     2016-01-20 12:08

    [KNOWN ISSUES]
    - SlimerJS launcher uses an outdated version of XulRunner (corresponds to FireFox 33) on MacOS
    - Included PhantomJS binaries may not work on distributions other than 64 bit Debian/Ubuntu.
      PhantomJS team does not provide binaries for Linux platform.

    [FEATURES / ENHANCEMENTS]
    - The new harness config option has been added - "mouseMovePrecision", which controls the speed of the
      all mouse movements. Setting it to some big number can provide significant performance boost for your tests.
    - Siesta now waits before typing if the passed target locator cannot be resolved
    - Improved object comparison failure message with isDeeply, powered by Deep-diff

    [API CHANGES]
    - The "dragPrecision" attribute of the test class has been renamed to "mouseMovePrecision"

    [BUG FIXES]
    - Fixed a bug, that could prevent BrowserStack tunnel from being started
    - Fixed #2498: Cannot run webdriver-server
    - Fixed #2285: Type [DELETE] does not clear selected value in FF and IE
    - Fixed #2512: Wrong target for 'type' action
    - Fixed #2514: autoCheckGlobals with needDone
    - Fixed #2551: Action target cannot be resolved when testing 5.1.2
    - Fixed #2555: Targeting special CQ with space in attribute breaks

4.0.3     2015-12-20 10:02

    [KNOWN ISSUES]
    - SlimerJS launcher uses an outdated version of XulRunner (corresponds to FireFox 33) on MacOS
    - Included PhantomJS binaries may not work on distributions other than 64 bit Debian/Ubuntu.
      PhantomJS team does not provide binaries for Linux platform.

    [FEATURES / ENHANCEMENTS]
    - WebDriver launcher now supports connection through a proxy server (Fixed #694)
    - A new method has been added to the test instance: "t.exit()" which stops the test execution (Fixed #2474)
    - The "enableCodeCoverage" option can now be disabled on the test file descriptor level
    - Updated Linux64 PhantomJS binaries with the one compiled for Ubuntu14.04
    - Added two new API methods for the Ext JS Grid layer "assertCellIsEmpty" and "waitForCellEmpty"

    [API CHANGES]
    - The `beforeEach/afterEach` hooks now always receive the test instance being launched/completed as
      the 1st argument. The callback for asynchronous hooks is now passed as the 2nd argument. Please update
      your asynchronous `beforeEach/afterEach` hook accordingly. (Fixed #2476)
      Also hooks are now automatically recognized as asynchronous if they accept 2 arguments.

    [BUG FIXES]
    - Fixed #2270: Double click "Run Test"
    - Fixed #2480: Cannot read property 'frameElement' of undefined
    - Fixed #2485: autoCheckGlobals not working in 4.x version
    - Fixed #2491: Typing into textfield in IE11+ doesn't set value properly
    - Harness warnings for failed tests preloads are now reported as failed assertions in the correspondings tests

4.0.2     2015-12-08 10:33

    [KNOWN ISSUES]
    - SlimerJS launcher uses an outdated version of XulRunner (corresponds to FireFox 33) on MacOS
    - Included PhantomJS binaries may not work on distributions other than 64 bit Debian/Ubuntu.
      PhantomJS team does not provide binaries for Linux platform.

    [FEATURES / ENHANCEMENTS]
    - The TeamCity output (--teamcity) now includes warnings from the test suite
    - Added new Harness config flag 'failOnResourceLoadError' that detect load failures for A, LINK, SCRIPT tags (Fixed #2455)

    [API CHANGES]

    [BUG FIXES]
    - Fixed #2460: Hide wait for messages waiting for 0 ms

4.0.1     2015-11-23 11:45

    [KNOWN ISSUES]
    - SlimerJS launcher uses an outdated version of XulRunner (corresponds to FireFox 33) on MacOS
    - Included PhantomJS binaries may not work on distributions other than 64 bit Debian/Ubuntu.
      PhantomJS team does not provide binaries for Linux platform.

    [FEATURES / ENHANCEMENTS]
    - Implemented request #2334 - Include SauceLabs session ID for every test in the Siesta's reports (Fixed #2334)

    [API CHANGES]
    - Removed the long-time deprecated methods "hasValue" (use "fieldHasValue") and "isEmpty" (use "isFieldEmpty")

    [BUG FIXES]
    - Fixed #2201: `requireOk` should not verify the override classes directly.
    - Fixed #2323: Siesta doesn't type into URL fields
    - Fixed #2331: Siesta recorder doesn't record Ctrl-C
    - Fixed #2332: Recording status not visually seen
    - Fixed #2354: Run last test button doesn't work if test grid is collapsed
    - Fixed #2363: Siesta doesn't record two identical visible comboboxes correctly
    - Fixed #2376: fieldHasValue not working in Siesta.Test.SenchaTouch
    - Fixed #2376: fieldHasValue not working in Siesta.Test.SenchaTouch
    - Fixed #2399: typing triggers unwanted form submit
    - Fixed #2412: Add support for :textEquals(..) selector in Siesta

4.0.0     2015-10-12 18:03
    This is the Siesta 4.0.0 GA release. The UI has been upgraded to use the Ext JS 6 and it uses the imageless Triton theme for a crisp and clean look.
    Make sure you've scanned the changelog for previous 4.0 related entries.

    [KNOWN ISSUES]
    - SlimerJS launcher uses an outdated version of XulRunner (corresponds to FireFox 33) on MacOS
    - Included PhantomJS binaries may not work on distributions other than 64 bit Debian/Ubuntu.
      PhantomJS team does not provide binaries for Linux platform.

    [FEATURES / ENHANCEMENTS]
    - The new harness config option "domContainerRegion" defines the position of the DOM preview area in the result panel.
      You can set it to "south" for "portrait" orientation. (Fixed #1202)

    [API CHANGES]
    - The "hostPageUrl" option is renamed to "pageUrl". Old name is still supported (but deprecated)
    - Harness classes have been switched from being purely static to "normal" classes which requires instantiation.
      The top line in your "index.js" file should now look like: "var harness = new Siesta.Harness.Browser.ExtJS()"
      The old usage is still supported, however deprecation warnings will be emitted to the console
    - The "loaderPath" config is no longer inherited for tests with "pageUrl"
    - Recorder now always suggests #foo query instead of [itemId=foo] (Fixed #2049)
    - The Siesta UI is no longer rendered when running in automation mode (to save some resources). You can still enable it
      explicitly setting the new `needUI` option to `true`

    [BUG FIXES]
    - IE9 related fix for detecting failed preloads
    - Code coverage report generation throws exception
    - Fixed #2235: Add check if siesta's harness index.html uses the correct ExtJS version
    - Fixed #2239: Docs: image paths in new "Generating A Sencha Cmd 6 App" guide are wrong
    - Fixed #2244: Siesta update info window shows no changelog
    - Fixed #2247: Siesta UI looks bad in IE11
    - Fixed #2249: Recorder doesn't play back tests with hostPageUrl set correctly
    - Fixed #2266: Improve documentation for throwsOk and toThrow
    - Fixed an exception, thrown when trying to type empty text
    - Fixed a bug, that could cause "click" event not fired, when clicking on the target inside of ExtJS 6 grid,
      which requires to be scrolled into view

4.0.0-beta-1 2015-09-06 18:28
    This release introduces a major refactoring of the Siesta automation launchers. Launchers now support parallelization,
    so you can run your tests suites several times faster, depending on how many parallel sessions you can open.

    Our screenshot API got some love too. It is now capable of capturing individual DOM elements and comparing the screenshots
    with either previous version or with a corresponding screenshot from another set.

    We've also added a new experimental headless launcher for SlimerJS, for those who prefer to test their projects on
    the FireFox rendering engine instead of WebKit. It requires `xvfb` to be used in non-graphical environments, however
    the big advantage of SlimerJS is that it (unlike PhantomJS) uses the real rendering engine from the FireFox web browser.

    [KNOWN ISSUES]
    - SlimerJS launcher uses an outdated version of XulRunner (corresponds to FireFox 33) on MacOS
    - Included PhantomJS binaries may not work on distributions other than 64 bit Debian/Ubuntu.
      PhantomJS team does not provide binaries for Linux platform.

    [FEATURES / ENHANCEMENTS]
    - A new and quite important command line option has been added: --max-workers. It controls the parallelization and defines how many
      browser windows can be opened at the same time. Normally it would be used with the BrowserStack or SauceLabs infrastructures.
      Please see the updated automation guide about details on parallelization implementation.

    - Screenshots are now cropped by the test page size
    - The `screenshot` method is now capable of taking screenshots of individual DOM elements (there's also
      a new convenience wrapper called `screenshotElement`)
    - A new `--screenshot-dir` command line option, specifying the base directory for the screenshots
    - A new `--screenshot-compare-with-previous` and `--screenshot-compare-with-base` command line options
      has been added, both perform comparison of screenshots taken during the test suite execution with the
      previous (or base) version

    - It is now possible to interact with popup windows, using the new `switchTo` test method

    - It is now possible to read command line options from the file with the JSON object, using the --config-file option

    - Introduced experimental option: --restart-on-blur (and corresponding harness option `restartOnBlur`). When enabled in
      automation, if the test window loses focus for any reason the test is restarted.

    - The "browserstack.local" WebDriver capability is now automatically set to `true`

    - Harness can now discover the list of test file descriptors from the filesystem, see `startFromUrl` method. The file with test descriptors
      can be auto-generated with the new `bin/discover` tool. Run the `bin/discover --help` for options. (Fixed #2199)

    - Added a new guide about testing Ext JS 6 apps generated with Sencha Cmd

    - Fixed #592: Test should fail if any of the preloads for a test are missing
    - Fixed #2163: Add support for clearing text before typing
    - Fixed #2016: Let user see source of test from UI w/o running test

    [API CHANGES]
    - Java 7 is the minimum required version now (enforced by the latest Selenium package)

    - The "*" value of the --browser config option for WebDriver launcher is no longer supported. WebDriver launcher run the test
      suite for single browser only (this may change in the future). This option now has a default value - "chrome".

    - The order of tests execution when running in automation mode with parallelization is naturally not strictly sequential.
      You should not rely on one particular test being launcher after another test (even if it goes below in the "Harness.start()" list)
      every test should run standalone.

    - Assertions from tests are now listed all at once, after the test has completed and not in real time as before
      (when running with the --verbose switch)

    - The --page-pause command line option has been removed
    - The --page-size command line option has been renamed to --chunk-size (old name is still supported), default value has changed to 20

    - The `--report-file-prefix` option has been deprecated in favor of `--report-file`. Both options now support templates.

    - The default value for `pauseBetweenTests` harness config and `--pause` command line option is now 10ms
    - The default value for the `sandboxBoundaryByGroup` harness config has changed to `true`

    - Removed deprecated and undocumented test class methods "skip" and "skipIf"

    [BUG FIXES]
    - Fixed 2 race conditions, which could cause an exception if the same test is repeatedly restarted (under network load)
    - Fixed a bug in `type` method that could cause removal of the selected test when typing special characters into input elements
    - Fixed a bug that could cause exception in IE after reloading a page and clicking on elements of the new page
    - Fixed #2179: getCell doesn't work after cell is edited
    - Fixed #1882: Show the test that has timed out in the log, as failed

3.1.0     2015-07-09 14:00
    This is a medium size release with quite a few improvements and bug fixes. Siesta will now handle complex web applications UI much better.
    If you intend to click a button which is temporarily hidden behind some loadmask, Siesta will now patiently wait for the button to be accessible.
    For you as a test author, this means less manual waitFor-steps and much more reliable tests. Same thing goes for moving or animating targets,
    Siesta will wait for the target to be still before attempting to interact with it. We hope you'll see the results of this in your suite, less sporadic
    failures and less race conditions. More information about this on our blog: https://bryntum.com/blog/testing-complex-web-applications-with-siesta

    [KNOWN ISSUES]

    [FEATURES / ENHANCEMENTS]
    - Fixed #2078: Add a "setValue" chain method
    - waitForRowsVisible now also accepts a TableView as input
    - Added `innerHtmlHead` and `innerHtmlBody` configs, to allow more precise control over the created
      iframe/popup for unit tests (Fixed #987)
    - Added a hot key to launch the currently selected test (CTRL-E). Can be configured with the 'rerunHotKey' config (Fixed #1187)
    - Siesta now handles unstable targets that move or are temporarily hidden while Siesta is moving the cursor towards it.
      This leads to a slightly different behavior when locating targets in the DOM (see below).
    - Siesta now handles calls to native `alert/prompt/confirm` methods without freezing the page.
      Use `setNextConfirmReturnValue`, `setNextPromptReturnValue` to control the results of these calls.

    [API CHANGES]
    - Slight change in the behavior when clicking a target that is not visible or 'reachable' in the DOM. Previously
      if an element was not reachable, it could be interacted with anyway. Siesta is more strict about this now,
      and it will now wait for targets to be visible and reachable before click/drag etc.
    - Global variable checking now only reports the first 50 unexpected globals.

    [BUG FIXES]
    - Fixed #1921: Monkey test crashes if clicking a link causing page redirect
    - Fixed #1981: Siesta: Selecting all test source code from UI will remove syntax colorization
    - Fixed #2054: Siesta UI: Button "View Source" press state
    - Fixed #2062: Siesta recorder should use DOM "name" attribute
    - Fixed #2068: Siesta recorder should not show offset column if recordOffset is false
    - Fixed #2069: Recorder should stop if clicking record button when recording
    - Fixed #2070: Rerun key shortcut only works once
    - Fixed #2075: Recorder: drag column editor not adjusting width to column width
    - Fixed #2106: Siesta recorder crashes if writing custom text in action editor
    - Fixed #2159: siesta docs click methods
    - Fixed a bug relating to using Ext ComponentQuery together with the offset feature

3.0.2     2015-05-12 12:23
    [KNOWN ISSUES]

    [FEATURES / ENHANCEMENTS]

    [API CHANGES]

    [BUG FIXES]
    - Fixed a bug that could cause exception from the webdriver launcher when running in IE9 with code coverage enabled
    - Fixed a bug that could cause exception in IE after reloading a page and clicking on elements of the new page
    - Fixed a bug that was preventing installation of ExtJS loader instrumentation hook starting from the 2nd launched test,
      thus disabling code coverage information gathering
    - Fixed documentation of the `before/afterEach` blocks - it now mentions that these hooks are not executed for the
      `describe` blocks
    - Fixed #1869: Exception from launcher if using --previous-coverage-report
    - Fixed #1982: Siesta can not be found on the page.
    - Fixed #2022: Siesta UI: Long test names push buttons off the screen

3.0.1     2015-04-16 15:59
    [KNOWN ISSUES]

    [FEATURES / ENHANCEMENTS]
    - Added new harness method - `isStandardPackage` to detect if harness is running the Standard Siesta package

    [API CHANGES]

    [BUG FIXES]
    - Fixed a bug - when test files list is filtered, clicking "Run all" runs the whole test suite, instead of filtered tests
    - Fixed a bug - recorder could not find user-defined CSS classes in ExtJS 5 grid
    - Fixed a bug - sometimes focus is removed from the 1st test of the current chunk (IE only)
    - Fixed a bug in the "Getting started" guide, where harness html wrapper file was still referencing ExtJS 4.2.0 files
    - Fixed a bug - dots in the test suite title were causing exception

3.0.0     2015-04-08 09:21

    [KNOWN ISSUES]

    [FEATURES / ENHANCEMENTS]
    - Siesta can now run a Jasmine suite as its own test file, see the `jasmine` option of the `Siesta.Harness.Browser` class
    - Proper simulation of touch events has been implemented, this lead to certain API changes (see below).
    - A new command line switch "--touch-events" added for WebDriver launcher. Currently only recognized by Chrome.
      It enables the browser's touch events support, so you can test touch-based interfaces in normal desktop browsers
    - Implemented the "t.beforeEach/afterEach()" methods for the test specs
    - Implemented spies for BDD layer, repeating the Jasmine functionality and syntax with certain additional extensions.
      See the `spyOn` method (and follow the "see also") in documentation (Fixed #1825)
    - Implemented the "t.chainForArray()" method, which runs a chain of steps, generated from the elements of an array
    - Added a new config option: `failOnExclusiveSpecsWhenAutomated` which causes Siesta to add a failing assertion when running
      in automation mode and some exclusive spec (like `t.iit()` or `t.ddescribe()`) is found. Disabled by default.
    - When `waitForComponentVisible/waitForComponentNotVisible` method receives a string with component query,
      they now wait until it resolves to some component, instead of failing immediately
    - The context menu of the test files grid now has "Filter to current group" and "Filter to failed" items, with
      self explanatory actions
    - Certain improvements in memory consumption has been made. Siesta now accumulates memory much slower than before.
      We'll continue research in this area.
    - Selenium version upgraded to 2.45.0 (supports Firefox 36)
    - Siesta now add a failing assertion, if `next` callback of some chain step is called more than once
    - Added _experimental_ feature to run tests in the popups. See `runInPopup` option.

    [API CHANGES]
    - IMPORTANT: Siesta UI is now based on ExtJS 5.1. Please update the links in your harness html files.
      Also, add the Ext charts package, if you're using the code coverage feature. See the updates examples
      for the proper includes to use.
    - IMPORTANT: The obsolete Siesta Mobile UI was removed. If you were using `siesta-touch-all.js` bundle switch to regular
      `siesta-all.js` and ExtJS desktop user interface
    - The implementation of "tap, doubleTap, longPress, pinch, swipe" methods was moved from the `Siesta.Test.SenchaTouch` test class
      to the `Siesta.Test.Browser` test class. Their interfaces were aligned to the interface of the "click" method.
    - The drag and drop using touch events has been re-implemented as the "touchDragTo", "touchDragBy" methods and the "touchDrag" action
      (you will need to update your touch-based tests that were using "drag" action)
    - `keepResults` option has been removed. Use the `keepNLastResults` option instead.

    [BUG FIXES]
    - Fixed #996: Siesta touch examples fails on mobile devices
    - Fixed #1865: Converting circular structure to JSON
    - Fixed #1869: Exception from launcher if using --previous-coverage-report
    - Fixed #1951: webdriver documentation for --saucelabs option is incorrect
    - Fixed #1957: Siesta preload should handle URLs starting with //

2.1.2     2015-03-21 18:42

    [KNOWN ISSUES]
    - Event simulation on touch devices not working for Sencha Touch 2.2.1+. https://www.assembla.com/spaces/bryntum/tickets/996#/activity/ticket:
    - Sauce Connect does not seem to work when trying to establish a tunnel from inside of your local VM and your application server
      runs on your host machine

    [FEATURES / ENHANCEMENTS]
    - The `getLoaderInstrumentationHook` method can now be used in the application's main html file (Fixed #1839).
      Please refer to the updated docs.
    - Implemented an asynchronous "tearDown" hook for test's finalization process (Fixed #1835)

    [API CHANGES]
    - `elementIsVisible` and `elementIsNotVisible` no longer filter out the non-visible ExtJS components, if provided with
      the composite query ("panel => .x-body")

    [BUG FIXES]
    - Fixed a bug, that could cause incorrect finalization of one of the several sibling "todo" sections, launched with the
      "overrideSetTimeout" option enabled
    - Fixed #984: Overwrite the old coverage report in phantomjs
    - Fixed #1826: Siesta clicks at [0,0] when it can't find its target
    - Fixed #1884: Siesta recorder doesn't record .,- chars in text fields
    - Fixed #1901: { moveMouseTo : '' } ignores offset argument

2.1.1     2015-01-28 13:07

    [KNOWN ISSUES]
    - Event simulation on touch devices not working for Sencha Touch 2.2.1+. https://www.assembla.com/spaces/bryntum/tickets/996#/activity/ticket:
    - Sauce Connect does not seem to work when trying to establish a tunnel from inside of your local VM and your application server
      runs on your host machine

    [FEATURES / ENHANCEMENTS]
    - Screenshot of the current state of the page can now be taken with the "screenshot" method, please see the docs for details (Fixed #1640)
    - When test page hangs for more than 3 min for some reason ("TIMEOUT: 3 minutes of inactivity" error), Siesta now will
      try to continue the test suite execution from the next test (instead of dropping a whole test page as previously) (Fixed #1753)
    - Introduced a new initialization point for the tests - "earlySetup" method. Please refer to the documentation. (Fixed #1818)

    [API CHANGES]
    - `elementIsVisible` and `elementIsNotVisible` no longer filter out the non-visible ExtJS components, if provided with
      the component query (">> panel")

    [BUG FIXES]
    - Fixed a bug, that could cause wrong focus behavior in IE10, 11 when `mousedown` event of the click is prevented
    - Fixed #1536: Siesta - Incorrect timeout value is shown after the fail of the test
    - Fixed #1700: overrideSetTimeout doesn't seem to work automatically inside a t.it subtest
    - Fixed #1765: Exceptions break teamcity suites structure
    - Fixed #1789: Insecure response while loading ExtJS for coverage from cdn.sencha.io

2.1.0     2014-12-09 11:06
    A new option "sandbox" has landed in this release, potentially improving test suite execution time up to 15x times,
    please see https://www.bryntum.com/blog/speeding-up-siesta-sandboxing-now-optional/ for details

    [KNOWN ISSUES]
    - Event simulation on touch devices not working for Sencha Touch 2.2.1+. https://www.assembla.com/spaces/bryntum/tickets/996#/activity/ticket:
    - Sauce Connect does not seem to work when trying to establish a tunnel from inside of your local VM and your application server
      runs on your host machine

    [FEATURES / ENHANCEMENTS]
    - Implemented a new option "sandbox", potentially improving test suite execution time up to 15x times, please check the documentation for details
    - Added a 'recordOffset' config to the Siesta.Recorder.Recorder class.
    - Added a 'recorderConfig' config to the Siesta.Harness.Browser class allowing you to configure recorder specific settings. Fixes #1719.
    - Added a new property "uniqueComponentProperty" which allows the user to customize a component property, used for identification
      when extracting targets of recorder actions (clicks, types)
    - Improved the exception logging, Siesta now writes the stack where supported (in browsers supporting the new window.onerror API)
    - The test methods from the "observable" group (like "firesOk", "wontFire" etc) now accepts Siesta.Test.Action target (Fixes #503).
      See also the related API change in the "waitForEvent" method

    [API CHANGES]
    - When waiting for the presence of the target for various user actions, Siesta now also waits for the target element (or one
      of its children) to be the top-most element in the DOM (Fixed #1704)
    - The "waitForEvent" method now treats its 1st argument as Siesta.Test.ActionTarget and resolves passed strings w/o any prefixes
      as CSS query. Previously 1st argument, passed as string, was resolved as component query. To restore the previous behavior,
      add ">>" prefix to that argument.

    [BUG FIXES]
    - Fixed #1699: Stacktrace incorrect if Siesta is on a URL with port
    - Fixed #1705: t.monkeyTest behaves weird when targeting document.body
    - Fixed #1706: Clicking a password field in Ext JS records a coordinate not a Component
    - Fixed #1707: subTestTimeout  not applied for sub tests
    - Fixed #1714: Siesta component highlighter has wrong path to Sencha docs
    - Fixed #1720: Right click missing target after recording
    - Fixed #1727: getCell method throws 'Invalid argument' in IE8 with Ext5
    - Fixed #1730: "waitForFn" can't be used in the compact form: { waitForFn : function () {} }

2.0.10    2014-11-11 08:14
    [KNOWN ISSUES]
    - Event simulation on touch devices not working for Sencha Touch 2.2.1+. https://www.assembla.com/spaces/bryntum/tickets/996#/activity/ticket:
    - Sauce Connect does not seem to work when trying to establish a tunnel from inside of your local VM and your application server
      runs on your host machine

    [FEATURES / ENHANCEMENTS]
    - Added config option - `requires` allowing you to specify the ExtJS classes to be dynamically loaded before the test starts (Fixed #1022).
    - The "trigger" config of the "Wait" actions can be now a function
    - Added a new test method "snooze", allowing you to silence test failures until a specified date.
    - The Event Recorder now outputs a more brief action description - { click : 'foo' } instead of { action : 'click', target : 'foo' }
    - Siesta now adds the last part of the test's URL to the `name` attribute of it's iframe, so you can distinct it in the Chrome debugger (Fixed #967)
    - The `runCore` config can now be specified in the test descriptor (both for individual tests and groups, Fixed #1062)
    - When starting a test suite, the WebDriver launcher will now move the cursor to the left-top corner of the screen, to avoid
      extra mouse events in the tests (currently not supported for Remote Webdrivers, including cloud testing)
    - BrowserStack tunnel binaries upgraded to 3.3
    - Selenium and IE Driver versions upgraded to 2.43.1

    [API CHANGES]
    - Siesta no longer prevents focusing of the DOM elements with the "user-select : none" style when they are clicked
    - Siesta now discards non-visible components when targeting a Component Query and multiple matches are found

    [BUG FIXES]
    - Siesta no longer prevents a "click" event from being fired, when the target of preceding "mousedown/mouseup" events
      has changed, but old and new targets have a parent/child relationship
    - Fixed #1604: Siesta recorder should discard hidden components
    - Fixed a bug, that was preventing BrowserStack tunnel's binaries from self-update
    - Fixed a bug, that could cause the "mouseenter" event to not be fired for the parent node of the element, being hovered
    - Fixed a bug, that could cause a PhantomJS launcher to prematurely exit with the "TIMEOUT: Exit after 3 minutes of inactivity" message

2.0.9     2014-09-04 11:03
    [KNOWN ISSUES]
    - Event simulation on touch devices not working for Sencha Touch 2.2.1+. https://www.assembla.com/spaces/bryntum/tickets/996#/activity/ticket:
    - Sauce Connect does not seem to work when trying to establish a tunnel from inside of your local VM and your application server
      runs on your host machine

    [FEATURES / ENHANCEMENTS]
    - SauceLabs integration facilities added. You can now easily launch your tests in the cloud, choosing
      a browser and OS combination yourself. Please refer to the "SauceLabs integration" guide in the documentation
    - PhantomJS version upgraded to 1.9.7
    - PhantomJS launcher now uses --ignore-ssl-errors=true command line option by default, allowing self-signed SSL certificates

    [API CHANGES]

    [BUG FIXES]
    - Fixed #1503: "ReferenceError: t is not defined" is thrown while executing Siesta.Test.ExtJS.Grid.clickToEditCell method
    - Fixed a bug, when 'mouseover' event was not simulated correctly when using ExtJS 5 in IE10, 11
    - Fixed a bug, when a ExtJS 5 checkbox component was not selected after clicking on it in IE10, 11

2.0.8     2014-06-27 12:21
    [KNOWN ISSUES]
    - Event simulation on touch devices not working for Sencha Touch 2.2.1+. https://www.assembla.com/spaces/bryntum/tickets/996#/activity/ticket:

    [FEATURES / ENHANCEMENTS]
    - BrowserStack integration facilities added. You can now easily launch your tests in the cloud, choosing
      a browser and OS combination yourself. Please refer to the "BrowserStack integration" guide in the documentation
    - Browser name and version are now included in the "classname" attribute in the JUnit report (Fixed #1393)
    - Test's groups are now included in the JSON report (Fixed #1373)
    - A new property of the test descriptor has been documented - `config`. It is applied directly to the test instance.
      Potentially may overwrite default properties and methods - use with care. See the documentation for the Siesta.Harness#start method (Fixed #1136)

    [API CHANGES]

    [BUG FIXES]
    - Fixed #1425: Recorder doesn't register doubleclick target, nor exports doubleClick
    - Fixed #1480: "type" action doesn't respect changing of focused element
    - Fixed #1489: All "waitForX" methods should return object with "force" method

2.0.7     2014-05-27 07:37
    [KNOWN ISSUES]
    - Event simulation on touch devices not working for Sencha Touch 2.2.1+. https://www.assembla.com/spaces/bryntum/tickets/996#/activity/ticket:

    [FEATURES / ENHANCEMENTS]
    - A new command line option "--coverage-no-source" added to exclude the source files content from the html coverage report
      (can be used if you want to publish such report for example)
    - A few tweaks have been made to the examples and tests to validate the Ext JS 5 support

    [API CHANGES]

    [BUG FIXES]
    - Fixed a bug where double clicks wasn't handled correctly in the Recorder UI
    - Fixed #1394: Getting uncaught error "Undefined is not a function" while using recorder feature
    - Fixed #1429: Suggestion browser frontend: add tooltip to all messages
    - Fixed #1431: Complete comment for waitForAjaxRequest

2.0.6     2014-04-22 13:10
    [KNOWN ISSUES]
    - Event simulation on touch devices not working for Sencha Touch 2.2.1+. https://www.assembla.com/spaces/bryntum/tickets/996#/activity/ticket:

    [FEATURES / ENHANCEMENTS]
    - New command line switch for WebDriver launcher - "--cap" allowing you to specify the WebDriver capabilities, like:
      "--cap browserName=firefox --cap platform=XP" (Fixed #1103)
    - New config `trigger` added to "wait" action, to avoid race conditions (Fixed #1135)
    - Any method name can be used now for action shortcut, for example { waitForSelector : '.selector' }, instead of { waitFor : 'Selector', args : '.selector' }
      See Siesta.Test.Action.MethodCall (Fixed #786)
    - Added new method "clickToEditCell" to simplify cell editing in grids (ExtJS layer)
    - Added new configuration option for harness - "debuggerOnFail" (along with the corresponding checkbox in the options menu)
      It will issue a "debugger" statement every time a failed assertion is found (Fixed #462)
    - The filter field above the tests tree now accepts additional format of the filter string: group filter > test1 | test2
      Only those tests that matches the "test1/2" patter *and* belongs to some group matching "group filter" will be included
      in the filter results
    - The "elementIsTop" method now accepts additional argument "offset", which allows to check the reachability of any point of the target
      element (not only center)
    - Added new configuration option for ExtJS harness: "failOnMultipleComponentMatches" which (if true) will fail a test using
      too wide Component Queries matching multiple targets
    - Added a workaround for Firefox 26 bug: https://bugzilla.mozilla.org/show_bug.cgi?id=959992, which breaks the global leakage check
    - Added a new Siesta.Test.Browser#setWindowSize method to change the iframe size from inside a test
    - Selenium version upgraded to 2.39.0
    - Added new config option "enableUnreachableClickWarning" which enables warnings when clicks happens in the invisible part of the
      target element

    [API CHANGES]
    - [BREAKING] The "--browser" command line switch for WebDriver launcher no longer has the default value of "*" (all available browsers)

    [BUG FIXES]
    - Fixed a bug with missing Resource includes in the generated HTML coverage report
    - Fixed a crash in IE when clicking an A tag without #
    - Fixed #217: Siesta: Clicking an A tag with #someanchor does not update the page location, nor fires the hashchange event
    - Fixed #1148: Siesta doesn't work properly with IE11
    - Fixed #1176: waitForComponentQueryNotVisible throwing exception in Touch
    - Fixed #1184: "forceDOMVisible" is not auto-enabled in IE11
    - Fixed #1212: Siesta UI looks bad in IE8
    - Fixed #1239: Siesta does not report any failure when user tries to click in the hidden area of some element
    - Fixed #1354: Coverage filter buttons (High, Medium, Low) not working


2.0.5     2013-12-20 10:29
    This is the first release that includes the new event recorder feature. Please refer to the "Using the event recorder" guide in the
    documentation. https://www.bryntum.com/docs/siesta/#!/guide/event_recorder Note, that for now the recorder is considered to be experimental and any features in it may change w/o notice.

    [KNOWN ISSUES]
    - Event simulation on touch devices not working for Sencha Touch 2.2.1+. https://www.assembla.com/spaces/bryntum/tickets/996#/activity/ticket:

    [FEATURES / ENHANCEMENTS]
    - Added new method `setup` to the test class, intended to provide easier setup code, than `isReady` method
    - Added new guide, describing how to test Sencha Touch application and how to perform an automatic login before every test
    - Added new command line option `page-size` for WebDriver launcher, specifying the number of test files, after which the browser
      should be restarted (previously it was not configurable)
    - When running in automated mode, Siesta will now try to report about exceptions thrown by Siesta internals too
    - ChromeDriver upgraded to v2.6
    - Added new method returning placeholder: `anyNumberApprox`
    - Test descriptors with `null` or other falsy values are now ignored in the Harness#start method
    - Siesta now warns if Java is not available in the system (Fixed #1020)
    - New waitForElementNotEmpty, waitForElementEmpty helper methods

    [API CHANGES]

    [BUG FIXES]
    - Fixed a regression bug, that was causing tests with `separateContext` option enabled to fail to start
    - Fixed #979: Siesta focus is off by a few pixels in IE9, IE10, Firefox
    - Fixed #1051: Testing of production build from CMD does not work for ST
    - Fixed #1079: Infinite loop for actions on unrendered components
    - Fixed #1084: Siesta: Test 030_global_variables.t.js is failing out of the box

2.0.4     2013-10-30 13:16
    [KNOWN ISSUES]
    - Event simulation on touch devices not working for Sencha Touch 2.2.1+. https://www.assembla.com/spaces/bryntum/tickets/996#/activity/ticket:

    [FEATURES / ENHANCEMENTS]
    - New 'waitForAnimations' method in the Ext JS layer, waiting for any active animations to complete.
    - New 'waitForTarget' method in the Ext JS layer, waiting for any type of target (CSS query, CQ, CSQ)
    - New `messageBoxIsVisible`, `messageBoxIsHidden` assertions added to Ext JS layer
    - New `cqExists/componentQueryExists` assertion methods
    - New `cqNotExists` assertion to verify a non-existing component query.
    - New `elementIsEmpty` assertion method
    - New `waitForTextPresent/waitForTextNotPresent` methods added
    - ChromeWebDriver version upgraded to 2.4, Selenium version upgraded to 2.37.0
    - The `enableCodeCoverage` config now supports the special value `ifloaded` which enables coverage
      only if appropriate files are loaded on the harness page
    - The automation command line interface get a new option `exclude`, containing regexp text, to remove the tests with
      matching urls from the current launch
    - The `args` config of the `wait` action can now accept a function, which will be called at the time of action
      processing and should return the arguments for the action
    - Any exceptions thrown from function chain steps will be now detected (unless in the "transparent exception" mode)
    - Implemented a possibility to inject the code coverage instrumentation hook for Ext.Loader in the middle of test preloads.
      Please refer to the documentation of the `getLoaderInstrumentationHook` method.
    - Implemented a possibility to inject the paths value for Ext.Loader in the middle of test preloads.
      Please refer to the documentation of the `getLoaderPathHook` method.

    [API CHANGES]
    - The automatic "verifyGlobals" call will now be performed for a top level test only, instead of for each sub-test.
      The "expectGlobals" calls will add expected global to the collection of the top level test.
    - The main name for the `isaOk` assertion has been changed to `isInstanceOf`. The old "isaOk" and "isa_ok" methods
      will still be supported as aliases
    - The automation command line option `filter` has been renamed to `include`. The old name is still supported as an alias.
    - the `getElementAtCursor` method documented (made public)

    [BUG FIXES]
    - Fixed a bug, that was causing PhantomJS launcher to always return 0 as exit code
    - Fixed a bug, that could cause the "Cannot read property 'clearTimeout' of null" exception when re-launching some
      test with sub-tests before its finalization
    - Fixed #1005: Hide passed Test assertions button not working
    - Fixed #1021: Siesta interactions should first waitForAnimations, and wait for target to exist
    - Fixed #1030: Typing into Ext JS HTML editor

2.0.3     2013-09-12 10:22
    [FEATURES / ENHANCEMENTS]
    - All arrays in the input for `chain` method are now flattened. Steps, presented with `null/undefiend`
      are ignored. This allows us to implement the conditional steps processing - see the updated docs for
      `chain` method
    - The "dragTo/dragBy" methods now will scroll their source elements into view (unless specified as an array of coordinates)
    - The check for whether element is scrolled out of the current view has been improved
    - When Siesta can't find a DOM element for some action it will now issue a warning in the assertion list
    - Simulating TAB key now attempts to focus the next available input

    [API CHANGES]
    - The default value of the "allowEmpty" argument for the "compositeQuery" method has been changed to `true`

    [BUG FIXES]
    - Fixed a bug, that was causing code coverage to fail, when trying to parse the call to `Ext.define()`
      with 1st argument being some JS expression

2.0.2     2013-08-28 09:53
    [FEATURES / ENHANCEMENTS]
    - Selenium version upgraded to 2.35.0, Chrome driver version upgraded to 2.2 (supports Chrome 27-30)

    [API CHANGES]

    [BUG FIXES]
    - Fixed #912: Max length is not respected in the "type" method in PhantomJS
    - Fixed #954: "isApprox" fails on isApprox(1, 1.05) because of JS number presentation
    - Fixed a bug that could cause functions tested with "isCalledNTimes" to be called with incorrect scope
    - Fixed a bug which caused the "isNotStrict" assertion to perform a regular (non-strict) comparison

2.0.1     2013-07-26 10:40

    [FEATURES / ENHANCEMENTS]
    - BDD: added support for exclusive version of "it" and "describe": "iit" and "ddescribe"

    [API CHANGES]

    [BUG FIXES]
    - Fixed a bug that was causing simulated events to be ignored in IE10 and ExtJS 4.2.1
    - Fixed #880: Mouse Cursor Pauses on Chain after hitting enter on a msgbox

2.0.0     2013-07-17 14:28
    Siesta Standard license agreement has been updated (v1.12).

    [FEATURES / ENHANCEMENTS]
    - Code coverage support has landed. Siesta can now instrument your files and give you detailed coverage information (uses Istanbul). See blog post for more details.
    - Brand new User Interface. Built using Ext JS 4.2, the new UI is cleaner and has better support for retina screens.
    - The UI will now display a notification when there is a new release available for download.
    - New code coverage guide added.

    [API CHANGES]

    [BUG FIXES]
    - Multiple minor issues and stability improvements fixed.

1.2.1     2013-06-25 08:06

    [FEATURES / ENHANCEMENTS]
    - Introduced a new "autoScrollElementsIntoView" option, which automatically scrolls the target of an action into view
      if it is not currently visible. It is enabled by default.

    [API CHANGES]

    [BUG FIXES]
    - Fixed a bug, that would cause "waitForCQVisible" to complete immediately for hidden components
    - Fixed a bug, that would cause a test with both "hostPageUrl" and "preload" to ignore the "preload" config
    - Fixed a bug, that would cause the "t.type" method to not honor the "maxlength" attribute of the input fields
    - When clicking DOM elements, the "focus" event is now correctly fired before "click/contextmenu" events
    - Disabled animation when expanding/collapsing the assertions tree, because of this bug: http://www.sencha.com/forum/showthread.php?265901

1.2.0     2013-06-14 09:42

    [FEATURES / ENHANCEMENTS]
    - Added scrollbars for viewing the DOM of the test
    - Actions in "t.chain()" call can now be specified with the shortcut properties, according to the action name,
      for example: { click : ".css-class" }, { type : 'some text', target : numberField } etc
    - New assertions 'assertNoGlobalExtOverrides/assertMaxNumberOfGlobalExtOverrides' available which checks for global Ext JS overrides.
    - New 'assertNoLayoutTriggered' and 'getTotalLayoutCounter' counter methods for the Ext JS test class.
    - The filter field in the Siesta ExtJS UI now accepts "|" separator, which splits the filter value in several parts, combined with "OR"
    - Wrote new example test showing how to mock Ext JS ajax requests
    - Updated Selenium to 2.32.0
    - Mobile UI updated to reflect the recent sub-tests addition
    - Added a new 'Component Inspector' button allowing you to easily visually inspect the Ext JS components in your test.
    - Improved simulation of native 'blur' of previously targeted elements.

    [API CHANGES]
    - Required ExtJS version for harness page with Siesta UI is now 4.2.0
    - Required SenchaTouch version for harness page with Siesta UI is now 2.2.1
    - Actions like click/doubleClick/contextMenu no longer fire 'mouseover' first.
    - The "hostPageUrl" option, defined on the harness level, will no longer stops the inheriting of the `preload` option
      Also the previously private possibility to re-enable the inheriting of the `preload` option is made public and documented
      (need to set the `preload` option to string `inherit`) (Fixed #774)

    [BUG FIXES]
    - Fixed #617: Siesta not firing mouseout/mouseleave properly
    - Fixed #708: Method Test.compareObjects returns false for function comparison
    - Fixed #748: Add support for scope in methodIsCalledNTimes
    - Fixed #760: Test assertion methods isCalledNTimes and methodIsCalledNTimes do not return original function value
    - Fixed a bug - "waitFor" method was generating a failure, when provided with number of milliseconds to wait,
      which is bigger than a default timeout value
    - Fixed a bug - in the transparent exceptions mode, exceptions from tests could not be reported in the UI
    - Fixed a bug that didn't fire events from nested iframes properly.

1.2.0-beta-2 2013-04-23 15:29
    [KNOWN ISSUES]
    - The Sencha Touch based mobile UI has not been updated yet, use the ExtJS UI in the meantime

    [FEATURES / ENHANCEMENTS]
    - added new assertion "selectorCountIs"
    - added new helper methods "scrollVerticallyTo/scrollHorizontallyTo"

    [API CHANGES]
    - "waitFor" method now returns an object, that allows you to complete waiting immediately
    - "dragTo/dragBy" now use the current cursor position if the source is omitted

    [BUG FIXES]
    - Fixed a bug, that was causing sub tests to have different set of config options (related to DOM access/events simulation)
      from the main test
    - Fixed #718: Simulating [ENTER] on the input should submit the form it belongs to (if any).

1.2.0-beta-1 2013-04-08 11:20

    [KNOWN ISSUES]
    - The Sencha Touch based mobile UI has not been updated yet, use the ExtJS UI in the meantime

    [FEATURES / ENHANCEMENTS]
    - Added support for BDD syntax, please refer to the guide "Writing tests in BDD conventions" for an introduction
    - Assertions "is", "isStrict", "isDeeply" and their opposites now work with the BDD placeholders
      generated with the new method "any"
    - Added support for "sub tests" - independent tests which have their own order of assertions. See the "subTest" method.
      Tests and assertions now form a tree structure. This is useful if you test several asynchronous processes
      in parallel and would like to see a sane order of generated assertions
    - When assertion description is omitted, Siesta now generates a sensible default text, for example:
      "1 is equal to 1", "Foo matches regexp /foo/i" etc (Thanks to Brian Moeskau for suggestion!)
    - Added `isString/isObject/isBoolean/etc` assertions, each checking the according type of the supplied value
    - Updated Selenium to 2.31.0. It includes built-in support for Safari WebDriver, so it no longer requires
      compilation from sources
    - Added new method: waitForCQNotVisible (Fixed #644)
    - WebDriver launcher now reports the OS and browser version it runs the tests on (Fixed #456)
    - Automation launchers now reports the total number of tests time spent (Fixed #587)
    - Added support for passing an 'options' object for a 'type' method and  chain action (to hold CTRL or SHIFT keys etc)
    - Fixed #574: Add filter for showing only failed assertions (button added to the assertion grid).

    [API CHANGES]
    - [BREAKING] 'overrideSetTimeout' on the Siesta.Harness class now defaults to `false`. To keep the old overriding behavior,
      you should set it explicitly to `true`.
    - [BREAKING] when 'hostPageUrl' option is set on some test descriptor, it will now turn it's 'preload' to empty array
      (Thanks to Brian Moeskau for suggestion!)
      (more precisely it will block the inheritance of the 'preload' option from parent descriptor/harness,
      'preload' option still can be set to non-empty array directly on such test descriptor
      Fixed #577: By default ignore parent value and set "preload" to [] for tests with "hostPageUrl")
    - [BREAKING] The newly added "isArray" assertion replaces the previously existing private method "isArray", which was renamed to
      "valueIsArray" (if you were using that private method in your tests then rename its occurrences accordingly)
    - The "todo" method now starts a new sub-test
    - "firesOk" assertion has been completely rewritten and generalized, see the updates docs. The old signature will still be supported.
    - `willFireNTimes` assertion is deprecated and removed from the documentation, please use "firesOk" instead
    - removed deprecated and unstable Selenium RC launcher from the package, newer and more stable WebDriver launcher
      provides a drop-in replacement command-line interface
    - [BREAKING] the JSON report format was extended to reflect the tree structure of assertions. Assertions now contains "type" property,
      can be one of the following: "Siesta.Result.Assertion/Siesta.Result.Diagnostic/Siesta.Result.SubTest".
      To keep the previous behavior, filter and use only "Siesta.Result.Assertion" entries.

    [BUG FIXES]
    - Fixed a bug in the `matchGridCellContent` that caused the method to work incorrectly with plain strings
    - Fixed #590: Siesta should handle req.status === 0 for preloading
    - Fixed #615: Allow { type : 'css', url : '...' } resource descriptors
    - Fixed a bug, that was preventing the update of the test source code in the "View sources" panel
    - Fixed #470: This bug was causing the `<Exception from launcher>While running: return Siesta.my.activeHarness.generateUnifiedPageReport()...<Exception from launcher>`
      exception when using WebDriver launcher with IE and some test has failed by throwing an exception
    - Fixed #588: Remove 1s delay after phantomjs has finalized

1.1.8     2013-01-05 10:44

    [KNOWN ISSUES]
    - Selenium Safari driver requires compilation from source

    [FEATURES / ENHANCEMENTS]
    - Documented `timeout` property of the step config object in `t.chain`. Allow functions as value of `action` property.

    [API CHANGES]

    [BUG FIXES]
    - Fixed a bug in PhantomJS launcher, when it could incorrectly report that harness page is using Siesta Lite version
    - Fixed #511: Investigate if "style" property can be missing on the dom element

1.1.7     2012-12-13 14:43

    [KNOWN ISSUES]
    - Selenium Safari driver requires compilation from source

    [FEATURES / ENHANCEMENTS]

    [API CHANGES]
    - All user simulated interactions now correctly targets up the top-most DOM element from the position where the action was supposed to happen
      (previously this was only happening in the "click*" methods)

    [BUG FIXES]
    - added a workaround for bug in PhantomJS, which was causing error message about Siesta
      not found on harness page
    - Fixed #541: Not use `getEl` which is deprecated in SenchaTouch 2.1.0
    - harness UI made compatible with ExtJS 4.1.3
    - Fixed #545: [Siesta] Sencha Touch 2.1 issues

1.1.6     2012-12-03 10:44

    [KNOWN ISSUES]
    - Selenium Safari driver requires compilation from source

    [FEATURES / ENHANCEMENTS]
    - Filtering in groups now includes full sub-tree starting from matching group name
    - One can now launch groups of tests in filtered mode
    - Added "--version" command line options for PhantomJS/WebDriver launchers
    - Added meaningful error message when automation launcher is targeting harness page, that
      contains Siesta Lite version

    [API CHANGES]
    - The threshold provided for the "isApprox" assertion is now inclusive (i.e. checking <=, previously used <)

    [BUG FIXES]
    - PhantomJS version downgraded back to 1.6.0, since 1.7.0 seems to have critical regression: http://code.google.com/p/phantomjs/issues/detail?id=444
    - Fixed #455: Siesta UI can be broken easily if the space for the DOM container is too small
    - Fixed #428: keyboard typing simulation
    - Fixed #515: [Siesta] willFireNTimes misbehaving in MVC example
    - Fixed #501: lastCellInRow not working
    - Fixed #504: waitFor step should use 'desc' as its description message if provided
    - Fixed #529: Typing in Search field does not work (SenchaTouch)

1.1.5     2012-11-05 11:31
    [KNOWN ISSUES]
    - Selenium Safari driver requires compilation from source

    [FEATURES / ENHANCEMENTS]
    - Added additional tests filtering mode - filter groups

    [API CHANGES]
    - isElementVisible method now also checks for "visibility" style 'hidden' value

    [BUG FIXES]
    - Fixed a bug in Eval action, which is activated when arguments parsing fails
    - Fixed #477: Siesta UI throws exception when running several tests
    - Fixed a bug in "wait" action that could cause premature test finalization and
      "adding assertion after end of test" message

1.1.4     2012-10-22 16:42

    [KNOWN ISSUES]
    - Selenium Safari driver requires compilation from source

    [FEATURES / ENHANCEMENTS]
    - Added new action - Eval, which provides a simplified way to call action with static arguments
      see documentation for Siesta.Test.Action.Eval
    - Added a camelCased alias for StartTest - "startTest" (Fixed #433)

    [API CHANGES]

    [BUG FIXES]
    - Fixed a bug in RemoteWebDriver implementation, causing test suite to stop after running the initial page
    - Fixed a bug in elementIsAt method which previously passed in cases it shouldn't
    - Fixed a bug, breaking mobile UI for SenchaTouch harness

1.1.3     2012-10-17 11:35

    [KNOWN ISSUES]
    - Selenium Safari driver requires compilation from source

    [FEATURES / ENHANCEMENTS]
    - WebDriver launcher now supports running tests on remote RemoteWebDriver server instance
      See the updated automation guide for details.
    - Added "interval" config for "waitFor" method (Fixed #369)
    - The test filter value is now saved in cookie and re-applied after harness page refresh
    - When attempting to click on hidden DOM element, a failing assertion is now added to the test, warning user
      that something is incorrect. Previously test was silently clicking in the left-top corner of the document's "body" (Fixed #418)
      (Thanks to Zombeerose!)
    - Added new "destroysOk" assertion to the ExtJS/Component layer (Thanks to Zombeerose for suggestion!)
    - PhantomJS binaries updated to 1.7.0

    [API CHANGES]
    - Harness.start method now also accepts an array of test descriptors
    - Experimental: The "StartTest" function can now be called asynchronously, after some delay. In this case however, test can not be
      configured using object as 1st argument for StartTest (Fixed #379).
      (Thanks to GustavR for suggestion!)

    [BUG FIXES]
    - Fixed #399: test should pass, but fails with step function does not use provided next function anywhere
    - Fixed #404: t.click / rightClick / doubleClick should accept additional argument "options" to make "CTRL + click", "SHIFT + click" etc possible
    - Fixed #400: click on text field fails, when the label length is greater than 50% of field width
    - Fixed #373: No stack traces for errors
    - Fixed #372: Errors encountered running multiple test cases at once
    - Fixed #387: Cross Page Test throws exceptions
    - Fixed #425: "Adding assertions after end of test" when using chaining and "done" action
    - Fixed #381: [Siesta 1.1.2] All forms of t.click() need Ext.form.Field defined/loaded

1.1.2     2012-08-31 20:47

    [KNOWN ISSUES]
    - Selenium Safari driver requires compilation from source

    [FEATURES / ENHANCEMENTS]
    - new harness config option: "keepNLastResults" - allows to keep the results for a certain number
      of the recently launched tests

    - the mobile package (siesta-touch-all.js) now also supports automation facilities using PhantomJS
      or WebDriver (using Chrome)

    - new command line option for PhantomJS and WebDriver launchers - "--no-color", allows to disable
      the coloring of the test output on Linux

    - the pause between tests for selenium/phantomjs launchers can now be configured with command line
      argument "--pause"
    - the pause between test pages for selenium/phantomjs launchers can now be configured with command
      line argument "--page-pause"

    - improved simulation of tap and doubleTap for Sencha Touch
    - Sencha Touch tests can now be run using regular ExtJS UI, see /examples-touch/browser-desktop.html
      (works only in Webkit browser naturally)

    - improved detection of the exceptions from test code

    - web drivers for various browsers updated to latest versions

    [API CHANGES]
    - If `beginAsync` call will not be finalized with `endAsync` within provided timeframe - an error
      will be reported (previously such situation was just ignored)

    - link to examples, changed from /examples-touch/index.html to /examples-touch/browse-mobile.html
      and /examples-touch/browser-desktop.html

    [BUG FIXES]
    - Fixed #328: [Siesta 1.1.1] PhantomJS Test creates invalid JUnit report
    - Fixed bug with longpress not firing touchend properly
    - Fixed #335: [Siesta] { waitFor : 'pageToLoad' } does not work in a chain
    - Fixed a bug: when passing function as "target" for some action in chain, the target was not
      correctly passed to the next step in chain
    - Fixed #363: If step in t.chain doesn't complete in "defaultTimeout" time, error should be reported
    - Fixed #324: [Siesta] No warning when running Phantom and using invalid filter

1.1.1     2012-07-24 12:24

    [KNOWN ISSUES]
    - Selenium Safari driver requires compilation from source

    [FEATURES / ENHANCEMENTS]
    - `t.expectGlobals` now also accepts regular expressions to match several names
      (Thanks to gabrielle for suggestion)

    - improved saving of the UI state for collapsed folders and selected tests
      (now should support bigger test suites)

    - Both Selenium Webdriver and PhantomJS launchers now execute the test suite in chunks,
      freeing memory after each and allowing much bigger test suites to be executed

    - Selenium updated to 2.25.0, webdrivers updated to latest versions (fixes Chrome driver
      crash on Windows)

    [API CHANGES]
    - The Selenium RC launcher is deprecated as we found Selenium RC too unstable
      and is scheduled for removal in the nearest releases. Switch to WebDriver launcher,
      which provides the identical interface

    [BUG FIXES]
    - Fixed broken carousel test
    - Fixed reversed swipe direction ("left" was swiping right)
    - Fixed: #302 [Siesta] Checkbox not checked when clicked in IE, with Ext JS 3
    - Allow spaces in path to Siesta installation directory on Windows

1.1.0     2012-07-04 19:33

    [KNOWN ISSUES]
    - Selenium Chrome driver crashes on Windows right after test suite completion
    - Selenium Safari driver requires compilation from source

    [FEATURES / ENHANCEMENTS]
    - Sencha Touch support added

    - Added Siesta.Test.ActionTarget class, clearly describing how Siesta resolves targets for various actions.
      Target resolving is now a very flexible and powerful mechanism, make sure to check the Siesta.Test.ActionTarget docs.

    - Introduced a new (more stable) launcher for Selenium which uses WebDriver, see the automation guide for details

    - Added new actions "moveCursorTo, mouseUp, mouseDown"

    - `t.type` method now focuses the input element before typing, this also solves issue #209.

    - Added new method "clickSelector" (thanks to Zombeerose!)

    - Greatly improved and tested compatibility with Ext JS 3

    - Improved reporting from the "willFireNTimes / firesOk" methods
    - Show test folder status as hourglasses while it has any of waiting/running tests
    - waitForEvent now supports waiting for events fired by DOM elements, window object and other browser observables.

    - New harness setting - "pauseBetweenTests", to improve stability when running many tests in sequence.

    - PhantomJS was updated to version 1.6.0 for all platforms

    [API CHANGES]
    - Siesta.Test.ExtJS.FormField#isEmpty has been deprecated in favor of #isFieldEmpty and will be removed in v1.2
    - Siesta.Test.ExtJS.FormField#hasValue has been deprecated in favor of #fieldHasValue and will be removed in v1.2
    - deprecated method Siesta.Test.Simulate.Mouse#drag, scheduled for removal in v1.2
    - PhantomJS now performs a 3s delay between tests
    - Selenium launcher is now always running tests sequentially

    [BUG FIXES]
    - Fixed several bugs related to testing Ext JS 3 grids
    - Fixed a bug, when clicking on the element inside of iframe was producing a click in wrong coordinates
    - Fixed #209: t.type does not support Ext3
    - Fixed #224: waitForRowsVisible is not compatible with Ext 3
    - Fixed #254: Stack trace not displaying properly with server port number
    - Fixed #269: Siesta doesn't replace text when typing in textbox with selected text

1.1.0-beta-1 2012-05-04 23:18

    [FEATURES / ENHANCEMENTS]
    - UI simplified, all panels are now resizable and remembers their width
    - Double click a failed assertion shows code editor with highlighted row
    - Improved `waitFor` visualization

    - introduced a "Composite Query" - a combination of ComponentQuery and a CSS query
      see Siesta.Test#compositeQuery for details
    - added `waitForCompositeQuery/waitForCompositeQueryNotFound` methods

    - all methods from the Siesta.Test.ExtJS and Siesta.Test.SenchaTouch classes that were accepting the instance of
      Ext.Component, now also accept the string with component query or composite query

    - the "wait" action of `t.chain` now supports any waitFor* methods, see Siesta.Test.Action.Wait for details
    - t.chain now tries to detect, that step function actually uses "next" to continue the chain, and warn otherwise

    - new method "isFiredWithSignature" in the ExtJS Observable layer

    - introduced a generalized mechanism for delaying the test start - see documentation for the "Siesta.Test#isReady" method

    - added example of grid editing using RowEditor plugin
    - Cleaned up a few of the examples
    - New demo showing waitFor functionality

    [API CHANGES]
    - the experimental options `maintainMinViewportSize` and `minViewportSize` were removed
      in favor of `maintainViewportSize` and `viewportWidth/viewportHeight`

    [BUG FIXES]
    - Fixed #196: t.type adds to disabled inputfield
    - fixed Siesta.Test.ExtJS regression when tests were not launching with ExtJS 3
    - fixed a bug, when "alsoPreload" option was ignored, when specified in the config object passed to StartTest
    - fixed a bug, when "doubleClick" action for `t.chain` was actually using right click
    - fixed a #205, when a bug was preventing test to run in IE

1.0.8     2012-04-03 11:24

    [FEATURES / ENHANCEMENTS]
    - configuration of the test can now be specified in the test file itself - as the 1st or 2nd argument to the StartTest call
      (thanks to Zombeerose for this excellent suggestion!)

    - new action for "t.chain" - "wait"
    - new action for "t.chain" - "drag"
    - allow `t.chain` to also receive the array of steps
    - the `target` for the actions can now be also provided as function, which will be called before starting the action

    - `defaultTimeout/waitForTimeout` properties of the test class made configurable via harness or test descriptor

    - added new config to ExtJS layer - "waitForAppReady", will defer the test start until the first "launch" event from ExtJS MVC application

    - documented previously private feature that callbacks of waitFor* methods can receive some meaningful value as the 1st argument

    - slightly improved reporting from the "requireOk" assertion

    - added "t.waitForComponentNotVisible" (thanks to Zombeerose)
    - added "t.hasListener"

    - UI now contains a filter field for test files (experimental, to be revised after migration of UI to ExtJS 4.1)
    - UI now remembers the expanded/collapsed state of the test folders

    [API CHANGES]
    - the last step for `t.chain` will now receive a no-op callback, instead of "null"
      (thanks to Maxim Bazhenov for suggestion)
    - experimental: The iframes with the tests now can maintain certain minimal size, default value is 1024x768.
      However, this feature is disabled by default, because it causes the displacement of the whole harness UI,
      in cases when that minimal size is bigger than available size.
      See Siesta.Harness.Browser#minViewportSize and Siesta.Harness.Browser#maintainMinViewportSize

    [BUG FIXES]
    - fixed a bug in UI, when test file could not be checked/unchecked after test suite launch
    - `waitForViewRendered` now correctly handles the case when provided "view" has empty store
    - fixed a bug when "disabelCaching" query parameter could been added several times
      (thanks to Thorsten Suckow-Homberg for the report)


1.0.7     2012-02-14 20:00
    [FEATURES / ENHANCEMENTS]
    - PhantomJS and Selenium launchers now can report the results of test suite execution in JSON and JUnit formats.
      Launch `bin/phantomjs`, `bin/selenium` w/o arguments for help, also see the updated Automation guide

    - Documented the events, fired by harness and individual test cases.
      Included new example: /examples/events, demonstrating how you can provide hooks for all stages of test suite execution

    - added `t.chain` method to reduce nesting when testing asynchronous code
    - added "actions" to further simplify common steps in `t.chain`: click, rightClick, doubleClick, type, done

    - added `t.chainClick` method (thanks to Zombeerose for suggestion)
    - added `t.clickComponentQuery` method (thanks to Zombeerose for suggestion)
    - added `t.waitForEvent` method (thanks to Zombeerose for suggestion)
    - added `t.waitForElementVisible/waitForElementNotVisible` methods (thanks to Zombeerose for suggestion)

    - `waitForComponentQuery, waitForXType` now also accept the optional "root" argument to use as the root of the query

    - added `waitForComponentQueryNotFound` methods (thanks to Zombeerose for suggestion)
    - added `waitForComponentQueryVisible` method (thanks to Zombeerose for suggestion)

    [API CHANGES]
    - For Ext tests, moveMouseTo now also accepts an Ext JS component as the first argument

    [BUG FIXES]
    - Improved fail message for Function.isCalledNTimes
    - Improved dom visibility handling when using panel collapse tool

1.0.6     2012-01-18 14:04

    [FEATURES / ENHANCEMENTS]
    - New assertion method for DOM: `selectorNotExists`
    - new `waitFor` method: `waitForSelectors` (plural) (thanks to zombeerose for suggestion)
    - The Siesta version is now shown in the header.
    - The Test "is"-method now handles Date comparison
    - We now include the Siesta's own test suite in the distribution

    [API CHANGES]

    [BUG FIXES]
    - fixed a bug, when after the "clearTimeout" test was not trying to finalize itself
    - fixed a bug in selenium/phantomjs launcher files, when they were not working with
      spaces in file path

1.0.5     2012-01-06 18:07
    [FEATURES / ENHANCEMENTS]
    - The trial version is now based on the Standard Package, containing the automation facilities
    - New helper class for testing DataViews
    - New assertions for Observable: wontFire, firesAtLeastNTimes
    - New assertions for native JS Functions: isCalled, isCalledNTimes, isntCalled
    - New "waitForSelectorNotFound" helper method
    - new guide in documentation: "Extending test class with your own assertions and helper methods"
    - phantomjs launcher script now exits after 3 minutes of inactivity in the test suite
    - new `separateContext` option, allowing to test the page refresh/redirect (experimental)
      new guide in documentation: "Testing page refresh"

    [API CHANGES]
    - `waitForStoresToLoad` and `loadStoresAndThen` methods now also accept the array of stores
    - when simulating a mouse click (left/right/double), Siesta now picks the top-most element
      from the center of provided element
    - when simulating right click and double clicks, Siesta now also fires the additional
      "mousedown/mouseup/click" event where needed, see the updated documentation
      for the `t.rightClick() / t.doubleClick`

    [BUG FIXES]
    - fixed a bug, when the position of simulated mouse cursor could been reset to (0, 0)
    - fixed a bug, when doing the "Run all" action w/o any selected test file could throw exception
    - fixed a bug, when `t.requireOk` was not working correctly with singleton classes

1.0.4     2011-12-23 17:39

    [FEATURES / ENHANCEMENTS]
    - added example of testing ExtJS MVC application, along with "Testing MVC app" guide
    - included the MacOS binaries for PhantomJS
    - upgraded Selenium to 2.15.0
    - added `waitForScrollLeftChange / waitForScrollTopChange` methods
    - added `dragTo / dragBy` methods with a bit cleaner interface
      (old `drag` method is still supported but deprecated)
    - added `requireOk` method for ExtJS tests
    - New helper class for form fields
    - New matcher Element.hasRegion
    - display the number of passed/failed TODO assertions

    [API CHANGES]
    - forceDOMVisible is now default true for IE since any DOM test in IE requires the frame to be visible
    - for ExtJS tests, imply that `StartTest` is wrapped with Ext.onReady
      (can be configured with `waitForExtReady` option, which defaults to `true`)

    [BUG FIXES]
    - fixed a bug, when using "forceDOMVisible" and "viewDOM"- the iframe of the last test ran can be hidden
    - fixed a bug, when trying to serialize the `window.location` object in FF were causing a silent exception
    - fixed a bug, when the argument for `t.type()` was assumed to always be a string (we now stringify it)
    - fixed a bug, when utility Queue class was not stopping even if the test has been finalized by exception
      same fix for `t.waitFor` method

1.0.3     2011-12-14 22:54

    [FEATURES / ENHANCEMENTS]
    - stop the server and close all opened browser windows when terminating the selenium launcher
    - moved the "forceDOMVisible" logic from viewport to harness (fixes some automation issues)
    - various docs improvements - `hostPageURL / type`
    - upgraded Selenium to 2.12.0 - with Safari support
    - allow to specify the "speedRun" option for the individual tests

    [API CHANGES]
    - none

    [BUG FIXES]
    - fixed a bug, when the last few lines from the selenium log could be missing in IE
    - fixed a bug, when having several nested groups, some of the groups could be not shown in the tree

1.0.2     2011-12-06 17:54

    [FEATURES / ENHANCEMENTS]
    - removed flickering of the simulated cursor

    [API CHANGES]
    - none

    [BUG FIXES]
    - none


1.0.1     2011-12-06 10:12
    [FEATURES / ENHANCEMENTS]
    - new selectorExists assertion method to query a CSS selector
    - various improvements in events simulation

    [API CHANGES]
    - none

    [BUG FIXES]
    - fixed bug in text selection helper method
    - fixed crashes in IE8 (were caused by updating the iframe content)
    - fixed a bug, when using "hostPageURL" option and preloading the css file,
      all this when running the test suite in PhantomJS, page loading could stuck
    - fixed the bug, when colored output could not be fully striped out from the
      output of the phantomjs / selenium


1.0.0     2011-11-28 16:23

    [FEATURES / ENHANCEMENTS]
    - Official 1.0.0 release

    [API CHANGES]
    - none

    [BUG FIXES]
    - none


0.91      2011-11-26 13:44

    [FEATURES / ENHANCEMENTS]
    - smarter "disableCaching" option
    - override "setTimeout/clearTimeout" to automatically issue "beginAsync/endAsync" calls
      (use "overrideSetTimeout : false" option to disable if needed)

    [API CHANGES]
    - "t.done()" call made optional (use "needDone" option to make it required)

    [BUG FIXES]
    - none


0.90      2011-11-23 12:05

    [FEATURES / ENHANCEMENTS]
    - updated the UI look and feel
    - docs moved to new JSDuck version and guides moved to separate section
    - much improved the UI performance (tuned the the tree-grid)
    - improved the cleanup procedure for iframes

    [API CHANGES]
    - none

    [BUG FIXES]
    - none

0.21      2011-10-01 10:00

    - intermediate release

0.20      2011-10-12 18:41

    - name changed to Siesta
    - UI is now based on Ext4
    - tests now can also be ran in PhantomJS

    - tests can be organized in folders

    - a whole new assertions pack for testing DOM with simulated events

    - much better NodeJS support (proper module creation for each test)

    - significant improvement in the preloading mechanism
      (trying hard to use more efficient "document.write()" method even in IE)

    - ability to cache the preloads (faster but not firebug friendly)

    - failed assertions now shows the line in source file (if possible),
      name of assertions and information about provided values
      (which can be stringified even in presence of cyclic structures)

    - fixed bug, preventing the automatic timeout for `beginAsync` calls

0.19      2011-07-16 13:12

    - improved the Dates processing in `isDeeply`
    - converted Todo test to role, so the test instance will have the same class
    - `keepResults` defaults to `true` now

    - adapted to npm 1.0

0.18      2011-01-12 21:32

    - bumped dependency from Scope.Provider

0.17      2011-01-12 18:47

    - re-release just to pick up the new markdown css styles, no functional changes

0.16      2010-12-14 20:07

    - more correct checks for RegExp instances in `like/unlike`
    - throw Error instances instead of strings
    - massive docs update

0.15      2010-11-12 13:36

    - commented typecheck for test function, which do not pass for Window scope provider in IE
    - small regex fix for scope provider name resolving
    - various non-code updates

0.14      2010-11-09 23:48

    - re-release because `npm` didn't accepted the previous release

0.13      2010-11-09 23:46

    - fixed bug in `isDeeply`
    - fixed bug: add default target to test descriptors
    - fixed bug in absolutizing already absolute urls in browser harness

0.12      2010-11-01 12:33

    - re-release with bumped dependency from Task-Joose-Stable

0.11      2010-11-01 11:57

    - added docs for `is_deeply`
    - releasing on the `npm` platform

0.10      2010-10-11 16:02

    - fixed bug, when call to `finalize` could be potentially missed
    - initial draft for `isDeeply` assertion
    - added `prepareINC` method to ExtJS and Node harnesses

0.09      2010-08-08 12:12

    - dependency from Scope.Provider bumped to 0.02

0.08      2010-08-02 10:03

    - fixed bug, when call to `done` after `endAsync` was ignored

    - implemented `isaOk` assertion

0.07      2010-07-05 18:11

    - switched to Dist::Zilla for distribution management
    - major refactoring, providing the inter-operability with NodeJS
