Changelog
=========

2.0.1 (2012/12/10)
------------------

* Add new expression ``form-fields`` and ``form-actions`` that are
  alias to actions and fields exposed by ``form``.

* Improve expressions API.

2.0 (2012/09/24)
----------------

* Add the option ``follow_external_redirect`` for the standard
  browser, which let you redirect to a different domain, but that
  domain is still handled by the wsgi application (this modify browser
  options to the new domain).

* Add support for automatic JSON deserialization in a ``json``
  attribute for the standard browser.

* Improve expressions: add a type ``form`` to create forms out of the
  result of the expression, add a flag ``unique`` that makes possible
  for an expression to return only one value, or None if the
  expression didn't match.

* Improve support for arbitrary http methods by providing ``data`` and
  ``data_type`` parameters to the method ``open`` for the standard browser.

* Improve cookie support (support setting and deleting cookies, and
  multiple cookies).

* Improve default WSGI environ to support HTTPS variable, if the port
  is set to ``443``.

* Improve Selenium browser support.

2.0b1 (2011/11/07)
------------------

* Add an initial support for test with Selenium 2. The Selenium
  browser takes a wsgi application as parameter and serves it using
  Python default wsgi server, in a thread, during the testing. The API
  of the Selenuim browser the one provided by the default one, in the
  measure of the possible.

* Fix various issues concerning encoding, to allow unicode strings at
  many places.

* Try to send back field values in the same order they are listed in
  the HTML document. Some systems use this to work.

* Fields are allowed, for most of then, to share the same name, even
  if they are not of the same type. In this case, you set a list
  instead of a value to the widget you fetched.

* Allow more things to be customized, like the hostname, port,
  protocol, the default wsgi environ. Some of those settings are
  customizable from the command line (same system than for Selenium).

* The browser is a now a context manager. You can register some
  actions to be executed at the end of context manager, using
  ``handlers``.

* Add support for XML in the basic browser. An lxml parse tree is
  available in the ``xml`` attribute of the browser.

* This now support only Python 2.6 and 2.7.

1.1 (2010-02-07)
----------------

* Add support for a ``css`` option to inspection expressions.

* Add an option ``id`` to ``get_form`` in order to be able to select a
  form by its id.

* Add `normalized-text` as a valid expression type to expressions: it
  return the text of the matched nodes, where whitespaces are
  normalized.

* Fix sending file when no file is selected.

* Fix some detection issue with the *button* tag that doesn't seems to
  be handled correctly by LXML.


1.0 (2010-10-07)
----------------

* Initial release.
