== 0.7.0 / 2010-01-17

* Major enhancements

  * Upgrade bundled Selenium server JAR to 2.0a1 (Henry Poydar and Jake Scruggs)

* Minor enhancements

  * Save and open page directory specified via configuration, defaults to tmp dir otherwise current dir (Noah Davis)

* Bug fixes

  * Added missing dependency "rack-test" to gemspec (LH #339) (Noah Davis)
  * Removed save_and_open_page's rewriting of static asset paths before saving (was not actually working) (Noah Davis)
  * Make "should contain" ignore extra whitespace when doing string comparisons (Noah Davis)
  * Make selenium matchers handle negative match more consistently with positive match (Luke Melia)
   
== 0.6.0 / 2009-11-28

REMOVED: Support for Hpricot + REXML as an alternative to Nokogiri.

  Hpricot and REXML were difficult to work with, REXML is terribly slow,
  and Nokogiri is recommended even by the author of Hpricot (_why). Now
  that Nokogiri works on JRuby, Webrat is going to use it as its sole
  XML backend.

CHANGED: Due to a reorganization, if you're currently requiring "webrat/rspec-rails",
  please change your code to require "webrat/integrations/rspec-rails"

* Minor enhancements

  * Support Rails 2.3.4 JavaScript form authenticity tokens in simulated mode (Jonathan Weiss)
  * When a timeout occurs in wait_for, include the HTML from Selenium in the exception
  * Update the Merb support to be based directly on Rack (Simon Rozet)
  * Support multiple select fields (Kieran P)
  * When locating select options, always match against text, not HTML

* Bug fixes

  * Remove newlines from HTTP Basic authentication credentials (Michael Klett)
  * Require nokogiri form rspec-rails.rb (David Chelimsky)
  * Fix logger issue when running inside Cucumber (Damian Janowski)
  * Fix various issues related to submitting values with HTML entities (Kieran P)
  * Call #to_i on the :count option in matchers (Michael Christenson II)
  * Fix bug where multiline param values were getting truncated

== 0.5.3 / 2009-08-27

* Minor enhancements

  * Remove unnecessary requires which are to the wrong paths on Edge Rails

== 0.5.1 / 2009-08-18

* Minor enhancements

  * Base Webrat::MIME on Rack::Mime (Simon Rozet)
  * Support file uploads in Rack mode (Simon Rozet)

* Bug fixes

  * Fix bug in Webrat::Methods preventing Selenium mode from working [#277]

== 0.5.0 / 2009-08-12

* Major enhancements

  * Depreacate :rack_test and :sinatra in favor of :rack, which uses Rack::Test (Simon Rozet)

* Minor enhancements

  * Don't require rubygems at runtime (Simon Rozet)

== 0.4.5 / 2009-08-10

* Major enhancements

  * Ruby 1.9 compatibility (Michael Fellinger, Jakub Kuźma)
  * Improve performance (~2x) on JRuby by supporting Nokogiri
  * Added support for external app servers in selenium mode (basically don't start one) (Mike Gaffney)
  * Added support for uploading files for Merb (Ryan Carver)

* Minor enhancements

  * Upgrade to selenium-client to 1.2.16 (Brian Landau)
  * Upgrade selenium-server.jar to 1.0.1 (Brian Landau)
  * Make redirect detection work in the face of rational maths (like when ruby-units is active) (Piers Cawley)
  * Use Launchy to handle opening pages in the browser with cross-platform compatibility (Bryan Helmkamp)
  * Added support for field_labeled_locators ending in non word characters
    lh 148 (Zach Dennis)
  * Filled in tests on click link lh 195 (diabolo)
  * Added current_url to selenium session lh 215 (Luke Amdor)
  * Added silence spec to selenium lh 238 (Martin Gamsjaeger aka snusnu)
  * Added ability to configure the browser startup timeout for selenium lh 242 (Mike Gaffney, Mark Dodwell)
  * Added delegation for field_named lh194 (pivotal labs)
  * Added fix to keep from escaping field values in mechanize mode lh256 (jish)
  * Adding fixes for click button/link and made the integration specs pass for the same in selenium lh254 (Ldiehl, Matthias Marschall)
  * Adding clicking link by id in selenium mode lh221 (larrytheliquid)
  * Adding fix for have_selector and have_xpath in descendent blocks lh234 (Thomas Jack)
  * Adding fix for fields with labels with special characters (Thomas Jack, Mike Gaffney, Bryan Hemlkamp)
  * Deprecated current_page lh50 (Mike Gaffney)
  * Fixed issue with redirects and multiple hosts lh168 (Mutwin Kraus)

* Bug fixes

  * Wait for application servers socket on 0.0.0.0 instead of the application_address
  * Translate CSS and image paths with single quotes in save_and_open_page (Erin Staniland)

== 0.4.4 / 2009-04-06

* Major enhancements

  * Make selenium process management code more robust and informative

* Minor enhancements

  * Add support for Rails javascript post links (Mark Menard)
  * Upgrade selenium-client dependency to 1.2.14, and update for new waiting
    API (Balint Erdi)
  * Change default app environment from "selenium" to "test"

* Bug fixes

  * Don't create a new instance of WWW::Mechanize for each request
    (Mark Menard)
  * Select fields with duplicate selected options sent an incorrect value (Noah Davis)

== 0.4.3 / 2009-03-17

* Minor enhancements

  * Support Rails 2.3. Use Rack::Utils to parse params (Matthew Ford)
  * Support for "modular" Sinatra app style (Simon Rozet)
  * Initial Merb and Sinatra compatibility for Selenium mode (Corey Donohoe)
  * When faced with a label with no for attribute, that contains a hidden field
    and another field, as can be the case in Rails 2.3's checkbox view,
    webrat now locates the non-hidden field. (Luke Melia)
  * Add application_framework config for Selenium mode to determine how to
    start and stop the app server (Corey Donohoe)

* Bug fixes

  * Fix following of absolute redirect URL in Sinatra (Simon Rozet)

== 0.4.2 / 2009-02-24

* Major enhancements

  * Significant improvements to have_selector. It now supports specifying
    attributes in a hash and :count and :content options. See
    have_selector_spec.rb for more.
  * Add the same functionality mentioned above to have_xpath

* Minor enhancements

  * Squeeze extra whitespace out of failures messages from contain
    matcher
  * Detect infinite redirects and raise a Webrat::InfiniteRedirectError
    (Daniel Lucraft)

* Bug fixes

  * Properly quote single and double quotes strings in XPath
  * Fix warning caused by Nokogiri deprecating CSS::Parser.parse
    (Aaron Patterson)
  * Accept do/end blocks in matchers. [#157] (Peter Jaros)
  * Quote --chdir option to mongrel_rails to support RAILS_ROOTs with spaces
    (T.J. VanSlyke)

== 0.4.1 / 2009-01-31

* Minor enhancements

  * Support Sinatra 0.9 (Harry Vangberg)
  * Update query param parsing to work with latest Edge Rails
  * Added #redirected_to method to easily check where an external redirect was
    redirected to (Adam Greene)
  * Recognize input tags with type button (Lena Herrmann)
  * Add uncheck method to Selenium mode (Lee Bankewitz)

* Bug fixes

  * Make requests to a Rails app using a full URL instead of a relative path. This change
    is helpful for Rails apps that use subdomains. (John Hwang and Zach Dennis)
  * Follow redirects that are on the same domain but a different subdomain
    (Adam Greene)
  * rescue from Webrat::TimeoutError in selenium matchers which allows NegativeMatchers
    to behave correctly (Noah Davis)
  * Switch to using selenium.click instead of .check when checking a checkbox
    (Noah Davis)
  * Create tmp/pids directory if directory does not exist. (Amos King and Mike Gaffney)
  * Setup deprecated writers for the selenium_environment= and selenium_port= config
  * Ensure the previous pages params aren't passed through redirect (Daniel Lucraft and
    Bryan Helmkamp)
  * Labels should only search for fields within the current scope (Kyle Hargraves)

== 0.4.0 / 2009-01-18

* _IMPORTANT_ Breaking change:

  * Removed init.rb auto-require of webrat/rails
  * Removed auto-require of webrat/rails when requiring webrat when RAILS_ENV is
    defined

  In your env.rb or test_helper.rb file, ensure you have something like:

    require "webrat"

    Webrat.configure do |config|
      config.mode = :rails
    end

* Major enhancements

  * Major improvements to Webrat::Selenium (Many contributors listed here)
  * Add assert_* methods for using Webrat's matchers w/o RSpec (Mike Gaffney, Amos King)
  * Added Webrat.configure method for Webrat configuration [#33] (Mike Gaffney)
  * Added select_time, select_date, and select_datetime to API. [#36] (Ben Mabey)
  * Use Hpricot and REXML when not parsing with Nokogiri (on JRuby, for example)

* Minor enhancements

  * Added Selenium grid configuration and support. (Amos King && Cornel Borcean)
  * Support passing an ActiveRecord model to #within when in Rails mode [#68] (Luke Melia)
  * Make assert_* matchers in rails mode increment the assertions count [#123] (Amos King)
  * Added assert_* matchers to selenium matchers [#110] (Amos King)
  * Added assert_contain, assert_not_contain [#86] (Mike Gaffney, Amos King)
  * Add configuration options for the Selenium environment and port (Kieran Pilkington)
  * Maximize the browser window after initializing Selenium (Luke Melia)
  * Better inspect output for Webrat elements
  * Sets the Webrat mode with Configuration#mode= in the config block [#85] (Mike Gaffney)
  * Detect if the document is XML or HTML using the Content-Type when in Rails mode
  * Expose #selenium method for direct access to Selenium client
  * Check nokogiri gem version before requiring nokogiri
  * Include the Selenium server jar file in the gem (Bryan Helmkamp, Ben Schwarz)
  * Added key_down, key_up and fire_event to Selenium session (Fernando Garcia)
  * Fix outputing README during Rails plugin install (Fernando Garcia)
  * Strip newlines when matching label text (Miha Filej)
  * Add simple support for accessing Webrat's matchers from RSpec by requiring
    "webrat/rspec-rails" (David Chelimsky)
  * Support save_and_open_page in Windows and Cygwin (Mike Gaffney)
  * Added RadioField#checked? to indicated whether or not a radio button is checked
    (Luke Melia)
  * Add spec:jruby rake task for running Webrat's spec suite with JRuby
  * Added field_by_xpath to locate a Webrat::Field using arbitrary XPath expressions
  * Helpful error message for missing option values [#40] (Ben Mabey)
  * Add set_hidden_field method (Noah Davis, Bryan Helmkamp)
  * Add submit_form method for submitting a form by ID (Noah Davis, Bryan Helmkamp)
  * Switch to using Nokogiri.parse for simple XML/XHTML autodetection [#66]
  * Removed Webrat.root method, which seemed to be unused
  * Added automatic starting and stopping of the Selenium server and a Mongrel Rails
    app server when using webrat/selenium
  * Switch to using selenium-client gem and vendor selenium-server.jar (Luke Melia)
  * Added gemspec so the gem builds on GitHub now
  * Deprecate old style methods (fills_in is deprecated in favor of fill_in, etc.)
  * Improvements to the README and RDoc (Bryan Helmkamp, Mike Gaffney)
  * Allow clicking links by id and id regexp (Mike Gaffney)
  * Raise Webrat::DisabledFieldError when attempting to manipulate a disabled field
  * Raise Webrat::NotFoundErrors when an element is not found
  * Raise Webrat::PageLoadError when a failure occurs so that application exceptions
    can be more accurately tested (Ryan Briones)
  * Helpful error message for missing option in select box. [#40] (Ben Mabey)
  * Extracted save_and_open page to make it usable in Selenium mode (Luke Melia)
  * Added save_and_open_screengrab for Selenium mode (Luke Melia)

* Bug fixes

  * field_labeled should disregard labels without matching fields (Kyle Hargraves)
  * Fixed bug where Scope was creating a new DOM rather than re-using the existing DOM.
    [#105] (Zach Dennis)
  * Support Rails > v2.2 by using ActionController::RequestParser for param parsing [#107]
    (Marcello Nuccio)
  * Raise a Webrat::NotFoundError if the scope passed to #within doesn't exist [#90]
  * Match against link _text_ which decodes character references.
    Useful for multibyte languages like Japanese (moronatural@gmail.com)
  * Fix params hash generation for Mechanize when Merb is not defined [#62]
  * Expose some Webrat methods that were missing from the Webrat::Methods module
    (Low Chin Chau)
  * Allow mechanize session to pass through basic auth (Ryan Briones)
  * Improvements to the Mechanize support (Jeremy Burks)
  * Fix following fully qualified local links (Lawrence Pit)
  * Fixed bug where Webrat would lose complex parameters (like foo[bar[baz]][])
    in Merb due to not correctly merging Mashes. (Drew Colthorp)
  * Extend Rails' ActionController::IntegrationTest instead of
    ActionController::Integration::Session (Fixes using Webrat's #select method and
    avoids usage of method_missing)
  * Ensure that Webrat::MechanizeSession.request_page always uses an absolute
    URL. (Graham Ashton)
  * Strip anchor tags from URIs before passing to Rails integration session
    (Noah Davis)
  * Treat text and regexp when matching Selenium buttons (Ross Kaffenberger)
  * Allow SeleniumSession's click_button to be called without an argument without
    blowing up (Luke Melia)

== 0.3.4 / 2008-12-29

* 1 Minor enhancement

  * Fix compatibility with Nokogiri 1.1.0 on JRuby

* 1 Bug fix

  * Correct version for Nokogiri dependency in gem

== 0.3.3 / 2008-12-28

* 1 Minor enhancement

  * Fix compatibility with Nokogiri 1.1.0 on MRI

== 0.3.2 / 2008-11-08

* 1 Minor enhancement

  * Fixes behavior or have_tag when a block is passed. It passes the matched node(s)
    to the block for further specs again. (Carl Lerche)

== 0.3.1 / 2008-11-07

* 1 Minor enhancement

  * Use @_webrat_session instance variable instead of @session for Merb integration
    to avoid collisions

== 0.3.0 / 2008-11-07

* 4 Major enhancements

  * Added Merb support (Gwyn Morfey, Jeremy Burks, Rob Kaufman, Yehuda Katz)
  * Added experimental Selenium support (Luke Melia)
  * Add have_selector, have_xpath, have_tag and contain matchers from Merb
  * Switch from Hpricot to Nokogiri for XML parsing (thanks, Aaron Patterson)

* 37 Minor enhancements

  * Added #within for manipulating the current page within a selector scope
  * Add support for file fields via #attaches_file method (Rails only at the moment)
    (Kyle Hargraves)
  * Add support for simulating SSL requests (Luke Melia)
  * Added #basic_auth(user, pass) to support HTTP Basic Auth (Aslak Hellesøy)
  * Added support for Sinatra and Rack (Aslak Hellesøy)
  * Rename visits to visit, fills_in to fill_in, etc.
  * Add #field_labeled for looking up form fields by label (David Chelimsky)
  * Add #field_named and #field_with_id locators
  * Don't depend on hoe anymore
  * Return responses after sending requests
  * Allow clicking links and buttons by a regular expression in Selenium (Luke Melia)
  * Allow clicking links by a regular expression
  * Add #http_accept for including MIME type HTTP "Accept" headers (Ryan Briones)
  * Add #header to support inclusion of custom HTTP headers (Ryan Briones)
  * Consider response codes 200-499 as successful enough to not raise a Webrat error
    (David Leal)
  * Add support for clicking areas of an image map (Alex Lang)
  * Support relative links, including href="?foo=bar" (Kyle Hargraves)
  * Separated Rails-specific code from the Webrat core to make it easier to use
    Webrat with other environments
  * Alias visits as visit, clicks_link as click_link, etc. for better readability
  * Raise error when trying to interact with a disabled form element (Luke Melia)
  * Don't send disabled form elements to the server (Nicholas A. Evans)
  * Display response body when the page load is not successful (David Leal)
  * CGI escape form field values (Miha Filej)
  * Add support for redirect_to :back by sending HTTP_REFERER headers
    (Hendrik Volkmer)
  * Expose current DOM (as an Hpricot object) as #current_dom
  * Add support for disabling JavaScript when clicking a link to enable testing of
    both JS and non-JS implementations (Luke Melia and Bryan Helmkamp)
  * Support &nbsp's as spaces in matching link text (Luke Melia)
  * Support button elements (Nick Sieger)
  * Support matching select options by regexp (Kyle Hargraves)
  * save_and_open_page rewrites css and image references to provide a friendlier
    debugging experience (Luke Melia)
  * Added support for matching alt attributes in fields (primarly for clicks_button)
    (Aaron Quint)
  * Support '&amp;' in submitted values (Kyle Hargraves)
  * Support clicking links by title (Dan Barry)
  * Added missing spec for clicking image buttons (Tim Harper)
  * Switched tests to specs, and from Mocha to RSpec's mocking library
  * Add support to click_button for IDs (Gwyn Morfey)
  * Miscellaneous core refactorings (Jan Suchal)

* 8 Bug fixes

  * Fix initialization of WWW::Mechanize (Derek Kastner)
  * Don't open blank pages in the browser (Kyle Hargraves)
  * Support radio buttons with multiple labels (Dan Barry)
  * Fix load order bug on some platforms (Ismael Celis)
  * Fix bug with empty select list option (Kyle Hargraves)
  * Fix regression of not sending default values in password fields
  * Don't explode if encountering inputs with no type attribute (assume text)
  * Fix bug where choosing a radio button in a series with a default submitted the
    incorrect field value (Luke Melia)

== 0.2.0 / 2008-04-04

* 4 Major enhancements

  * Add save_and_open_page to aid in debugging
  * Add radio button support via #chooses method
  * Add basic support for Rails-generated JavaScript link tags
  * Add support for checkboxes (Patches from Kyle Hargraves and Jarkko Laine)
  * Add support for textarea fields (Sacha Schlegel)

* 8 Minor enhancements

  * Added reloads method to reload the page (Kamal Fariz Mahyuddi)
  * Prevent making a request if clicking on local anchor link (Kamal Fariz Mahyuddi)
  * Added clicks_link_within(selector, link_text), allowing restricting link search
    to within a given css selector (Luke Melia)
  * Allow specifying the input name/label when doing a select (David Chelimsky)
  * Raise a specific exception if the developer tries to manipulate form elements
    before loading a page (James Deville)
  * Add support for alternate POST, PUT and DELETE link clicking (Kyle Hargraves)
  * Change clicks_link to find the shortest matching link (Luke Melia)
  * Improve matching for labels in potentially ambiguous cases

* 7 Bug fixes

  * Fix incorrect serializing of collection inputs, i.e. name contains []
    (Kamal Fariz Mahyuddi)
  * Serialize empty text field values just like browsers (Kamal Fariz Mahyuddi)
  * Quick fix to avoid @dom not initialized warnings (Kamal Fariz Mahyuddi)
  * Docfix: bad reference to #select method in README (Luke Melia)
  * Ensure Rails-style checkboxes work properly (checkboxes followed by a hidden
    input with the same name)
  * Fix Edge Rails (a.k.a. 2.0 RC) compatibility (David Chelimsky)
  * Support param hashes nested more than one level (David Chelimsky)

== 0.1.0 / 2007-11-28

* 1 major enhancement

  * Birthday!

