teamcapybara--capybara/History.md

1437 lines
57 KiB
Markdown
Raw Normal View History

2018-11-16 20:02:34 +00:00
# Version 3.12.0
Release date: unreleased
### Added
2018-11-18 20:47:03 +00:00
* Support Ruby 2.6 endless range in Result#[] and query `:between` option
2018-11-16 20:02:34 +00:00
2018-11-16 17:55:40 +00:00
# Version 3.11.1
Release date: 2018-11-16
###Fixed
* Fixed :link_or_button XPath generation when it has had an expression filter added
2018-11-12 22:18:50 +00:00
# Version 3.11.0
2018-11-14 19:33:44 +00:00
Release date: 2018-11-14
2018-11-12 22:18:50 +00:00
### Added
* Ability for node filters to set detailed error messages
* `Capybara::HTML` Will use `nokogumbo` for HTML parsing if installed
2018-11-14 19:33:44 +00:00
* `Selector#locator_filter` added to allow for dynamic locator in selectors
2018-11-12 22:18:50 +00:00
### Fixed
* Node filters are evaluated in the context of the Selector they are used in to ensure the correct options are used
2018-11-03 19:51:41 +00:00
# Version 3.10.1
Release date: 2018-11-03
### Fixed
* Fix `aria-label` and `test_id` matching for `link_or_button` selector type - Issue #2125
* Fixed crash in element path creation for matcher failure messages - Issue #2120
2018-10-17 20:02:30 +00:00
# Version 3.10.0
2018-10-24 02:04:22 +00:00
Release date: 2018-10-23
2018-10-17 20:02:30 +00:00
### Added
* :class filter can now check for class names starting with !
* Selector `xpath`/`css` expression definitions will get filter names from block parameters if not explicitly provided
* `any_of_selectors` assertions and matchers to complement `all_of_selectors` and `none_of_selectors`
2018-10-17 20:02:30 +00:00
### Fixed
* Selector `css` expression definiton declared filters now work again
* Cleaned up warnings [Yuji Yaginuma]
* Workaround installation of rspec matcher proxies under jruby by reverting to the old solution not using prepend, so jruby bugs are not hit - Issue #2115
2018-10-17 20:02:30 +00:00
2018-10-03 17:35:47 +00:00
# Version 3.9.0
2018-10-03 19:44:21 +00:00
Release date: 2018-10-03
2018-10-03 17:35:47 +00:00
### Added
2018-10-03 19:44:21 +00:00
* Selenium with Chrome removes all cookies at session reset instead of just cookies from current domain if possible
* Support for Regexp for system :id and :class filters where possible
* `using_session` now accepts a session object as well as the name of the session for users who manually manage sessions
2018-10-03 17:35:47 +00:00
* The `:field` selector will now find `type = "hidden"` fields if the `type: "hidden"` filter option is provided
# Version 3.8.2
2018-09-26 23:54:15 +00:00
Release date: 2018-09-26
### Fixed
* Fixed negated class selector option - Issue #2103
2018-09-22 05:48:51 +00:00
# Version 3.8.1
2018-09-22 16:52:43 +00:00
Release date: 2018-09-22
2018-09-22 05:48:51 +00:00
### Fixed
2018-09-22 16:52:43 +00:00
* Filling in of date fields with a string when using selenium chrome regression [Micah Geisel]
2018-09-22 05:48:51 +00:00
2018-09-17 19:50:03 +00:00
# Version 3.8.0
2018-09-20 17:08:13 +00:00
Release date: 2018-09-20
2018-09-17 19:50:03 +00:00
### Added
* Workaround geckodriver 0.22 issue with undefined pause durations
2018-09-17 19:50:03 +00:00
* :element selector ignores XML namespaces
2018-09-20 17:08:13 +00:00
### Fixed
* Added Errno::ECONNRESET to the errors which will allows https server detection
# Version 3.7.2
2018-09-12 16:58:05 +00:00
Release date: 2018-09-12
### Fixed
* Fix MatchQuery based matchers when used on a root element found using any type of parent/ancestor query - Issue #2097
2018-09-12 16:27:24 +00:00
* Fix Chrome/FF HTML5 drag simulation for elements (a, img) which default to draggable - Issue #2098
2018-09-05 21:29:29 +00:00
# Version 3.7.1
Release date: 2018-09-05
### Fixed
* Restored ability to pass symbol as the CSS selector when calling `has_css?`/`have_css`/etc - Issue #2093
2018-08-21 17:20:54 +00:00
# Version 3.7.0
2018-09-03 03:25:19 +00:00
Release date: 2018-09-02
2018-08-21 17:20:54 +00:00
### Added
* `Capybara.disable_animation` can be set to a CSS selector to identify which elements will have animation disabled [Michael Glass]
* `Capybara.default_normalize_ws` option which sets whether or not text predicates and matchers (`has_text?`, `has_content?`, `assert_text`, etc) use `normalize_ws` option by default. Defaults to false. [Stegalin Ivan]
* Selector based predicates, matchers, and finders now support the `:normalize_ws` option for the `:text`/`:exact_text` filters. Defaults to the `Capybara.default_normalize_ws`setting above.
2018-09-01 19:04:00 +00:00
* Element `choose`/`check`/`uncheck`/`attach_file`/`fill_in` can now operate on the element they're called on or a descendant if no locator is passed.
2018-08-21 17:20:54 +00:00
2018-08-28 18:52:28 +00:00
### Fixed
2018-09-01 19:04:00 +00:00
* All CSS styles applied by the `Element#attach_file` `:make_visible` option will now have `!important` priority set to ensure they override any other specified style.
* Firefox file inputs are only manually cleared when necessary.
2018-08-28 18:52:28 +00:00
2018-08-06 23:04:26 +00:00
# Version 3.6.0
2018-08-14 17:34:17 +00:00
Release date: 2018-08-14
2018-08-06 23:04:26 +00:00
### Added
* Workaround geckodriver/firefox send_keys issues as much as possible using the Selenium actions API
2018-08-12 21:18:57 +00:00
* Workaround lack of HTML5 native drag and drop events when using Selenium driver with Chrome and FF >= 62
* `Capybara.predicates_wait` option which sets whether or not Capybaras matcher predicate methods (`has_css?`, `has_selector?`, `has_text?`, etc.) default to using waiting/retrying behavior (defaults to true)
2018-08-06 23:04:26 +00:00
2018-08-03 22:49:36 +00:00
# Version 3.5.1
Release date: 2018-08-03
### Fixed
* Fixed misspelled method name `refute_matches_elector` => `refute_matches_selector`
2018-07-25 18:38:45 +00:00
# Version 3.5.0
2018-08-01 21:25:08 +00:00
Release date: 2018-08-01
2018-07-25 18:38:45 +00:00
### Added
2018-07-30 16:23:29 +00:00
* text predicates and matchers (`has_text?`, `has_content?`, `assert_text`, etc) now support a `normalize_ws` option
2018-07-25 18:38:45 +00:00
### Fixed
2018-08-01 21:25:08 +00:00
* `attach_file` with Selenium and local Firefox 62+ now correctly generates only one change event when attaching multiple files
2018-07-25 18:38:45 +00:00
2018-07-24 18:57:44 +00:00
# Version 3.4.2
2018-07-24 20:16:03 +00:00
Release date: 2018-07-24
2018-07-24 18:57:44 +00:00
### Fixed
* `match_xxx` selectors and `matches_xxx?` predicates work correctly with elements found using a sibling selector - Issue #2073
# Version 3.4.1
2018-07-20 16:23:58 +00:00
Release date: 2018-07-20
### Fixed
* `Session#evaluate_script` now strips the script in `Session` rather than only in the Selenium driver
2018-06-27 19:38:51 +00:00
# Version 3.4.0
2018-07-19 20:54:43 +00:00
Release date: 2018-07-19
2018-06-27 19:38:51 +00:00
2018-07-16 23:42:10 +00:00
### Fixed
* Make selenium driver :backspace clear stategy work even if caret location is in middle of field content [Champier Cyril]
* Selenium issue with fieldset nested in disabled fieldset not being considered disabled
2018-07-19 20:21:11 +00:00
* `Session#evaluate_script` and `Element#evaluate_script` now strip leading/trailing whitespace from scripts [Ian Lesperance]
2018-07-17 19:26:59 +00:00
2018-06-27 19:38:51 +00:00
### Added
2018-07-16 23:42:10 +00:00
* Work around Selenium lack of support for `file_detector` with remote geckodriver
* `#within_frame` locator is optional when only one frame exists
2018-07-19 20:21:11 +00:00
* `Capybara.test_id` option that allows for matching the Capybara provided selector types on an arbitrary attribute
(defaults to nil), set to your test id attribute ('data-test-id, etc) if using test id attributes in your project
2018-06-27 19:38:51 +00:00
2018-06-27 17:49:39 +00:00
# Version 3.3.1
2018-06-27 19:32:11 +00:00
Release date: 2018-06-27
2018-06-27 17:49:39 +00:00
### Fixed
* `selenium-webdriver` version check [ahorek]
2018-06-27 18:13:56 +00:00
* Selenium driver correctly responds to `disabled?` for fieldset elements - Issue #2059 [Thomas Walpole]
2018-06-27 17:49:39 +00:00
2018-06-08 19:17:39 +00:00
# Version 3.3.0
2018-06-25 18:11:31 +00:00
Release date: 2018-06-25
2018-06-22 23:45:56 +00:00
2018-06-08 19:17:39 +00:00
### Added
* RackTest driver now handles 307/308 redirects
* `execute_async_script` can now be called on elements to run the JS in the context of the element
2018-06-22 23:45:56 +00:00
* `:download` filter option on `:link' selector
2018-06-25 18:11:31 +00:00
* `Window#fullscreen`
* `Element#style` and associated matchers
2018-06-08 19:17:39 +00:00
2018-06-25 18:11:31 +00:00
### Changed
* Minimum "supported" `selenium-webdriver` is raised to 3.5.0 (but you really should be using newer than that)
2018-06-08 19:17:39 +00:00
### Fixes
* Selenium driver with Firefox workaround for clicking on table row - https://github.com/mozilla/geckodriver/issues/1228
* :class and :id filters applied to CSS based selectors now correctly handle the CSS comma
2018-06-12 22:55:52 +00:00
* Selenium driver handles namespaces when generating an elements `#path` - Issue #2048
2018-06-08 19:17:39 +00:00
2018-06-04 16:10:41 +00:00
# Version 3.2.1
Release date: 2018-06-04
### Fixes
* Only split CSS selectors when :class or :id options are given. Restores 3.1.1 functionality for now but the underlying issue
will require a larger fix, hopefully coming soon. - Issue #2044 [Thomas Walpole]
# Version 3.2.0
2018-06-01 21:20:26 +00:00
Release date: 2018-06-01
### Changed
* Ruby 2.3.0+ is now required
2018-05-31 00:50:45 +00:00
* `ElementNotFound` errors raised in selector filters are interpreted as non-matches
### Added
* New global configuration `default_set_options` used in `Capybara::Node::Element#set` as default `options` hash [Champier Cyril]
2018-06-08 19:17:39 +00:00
* `execute_script` and `evaluate_script` can now be called on elements to run the JS in the context of the element [Thomas Walpole]
2018-06-01 21:20:26 +00:00
* Filters in custom selectors now support a `matcher` Regexp to handle multiple filter options [Thomas Walpole]
* `:element` selector type which will match on any attribute (other than the reserved names) passed as a filter option [Thomas Walpole]
* `:class` filter option now supports preceding class names with `!` to indicate not having that class [Thomas Walpole]
* `:class` and `:id` filter options now accept `XPath::Expression` objects to allow for more flexibility in matching [Thomas Walpole]
2018-05-17 03:04:24 +00:00
* `Capybara.disable_animation` setting which triggers loading of a middleware that attempts to disable animations in pages.
This is very much a beta feature and may change/disappear in the future. [Thomas Walpole]
# Version 3.1.1
2018-05-25 21:19:36 +00:00
Release date: 2018-05-25
### Fixes
* Ensure keystrokes are sent when setting time/date fields to a string with the Selenium driver [Thomas Walpole]
2018-05-01 21:35:13 +00:00
# Version 3.1.0
2018-05-10 20:02:44 +00:00
Release date: 2018-05-10
2018-05-01 21:35:13 +00:00
### Added
* Support for using `select` with text inputs associated with a datalist element
* `type` filter on `:button` selector
* Support for server operating in https mode
2018-05-10 20:02:44 +00:00
* Selenium driver now uses JS to fill_in/set date and time fields when passed date or time objects [Aleksei Gusev, Thomas Walpole]
2018-05-01 21:35:13 +00:00
2018-04-30 19:15:13 +00:00
# Version 3.0.3
Release date: 2018-04-30
### Fixes
* Issue in `check` where the locator string could not be omitted
* Selenium browser type detection when using remote [Ian Ker-Seymer]
* Potential hang when waiting for requests to complete [Chris Zetter]
2018-04-13 18:21:33 +00:00
# Version 3.0.2
Release date: 2018-04-13
### Fixes
* Fix expression filter descriptions in some selector failure messages
2018-04-13 18:21:33 +00:00
* Fix compounding of negated matechers - Issue #2010
# Version 3.0.1
2018-04-06 19:23:38 +00:00
Release date: 2018-04-06
### Changed
* Restored ability for `Capybara.server=` to accept a proc which was accidentally removed in 3.0.0
2018-04-04 21:02:37 +00:00
# Version 3.0.0
2018-04-05 17:51:23 +00:00
Release date: 2018-04-05
2018-04-04 21:02:37 +00:00
### Changed
* Selenium driver only closes extra windows for browsers where that is known to work (Firefox, Chrome)
* "threadsafe" mode is no longer considered beta
### Fixes
* Multiple file attach_file with Firefox
* Use Puma::Server directly rather than Rack::Handler::Puma so signal handlers don't prevent test quitting
2018-03-16 18:11:13 +00:00
# Version 3.0.0.rc2
2018-03-23 16:34:54 +00:00
Release date: 2018-03-23
2018-03-16 18:11:13 +00:00
### Changed
2018-04-06 19:00:26 +00:00
* Visibile text whitespace is no longer fully normalized in favor of being more in line with the WebDriver spec for visible text
2018-03-16 18:11:13 +00:00
* Drivers are expected to close extra windows when resetting the session
* Selenium driver supports Date/Time when filling in date/time/datetime-local inputs
2018-03-22 17:16:15 +00:00
* `current_url` returns the url for the top level browsing context
* `title` returns the title for the top level browsing context
### Added
* `Driver#frame_url` returns the url for the current frame
* `Driver#frame_title` returns the title for the current frame
2018-03-16 18:11:13 +00:00
2018-03-02 17:35:44 +00:00
# Version 3.0.0.rc1
Release date: 2018-03-02
### Added
2018-03-02 17:35:44 +00:00
* Support for libraries wrapping Capybara elements and providing a `#to_capybara_node` method
2018-03-02 17:30:11 +00:00
### Changed
2018-03-22 17:16:15 +00:00
* `first` now raises ElementNotFound, by default, instead of returning nil when no matches are found - Issue #1507
* 'all' now waits for at least one matching element by default. Pass `wait: false` if you want the previous
behavior where an empty result would be returned immediately if no matching elements exist yet.
2018-03-02 17:30:11 +00:00
* ArgumentError raised if extra parameters passed to selector queries
### Removed
2018-03-02 17:30:11 +00:00
* Ruby < 2.2.2 support
2018-04-04 21:28:04 +00:00
* `Capybara.exact_options` no longer exists. Just use `exact: true` on relevant actions/finders if necessary.
2018-03-02 17:30:11 +00:00
* All previously deprecated methods removed
* RSpec 2.x support
* selenium-webdriver 2.x support
* Nokogiri < 1.8 support
2018-03-02 18:02:07 +00:00
* `field_labeled` alias for `find_field`
2018-02-13 07:25:01 +00:00
# Version 2.18.0
2018-02-13 02:12:46 +00:00
Release date: 2018-02-12
2018-02-12 20:35:22 +00:00
### Fixed
* Firefox/geckodriver setting of contenteditable childs contents
* Ignore Selenium::WebDriver::Error::SessionNotCreatedError when quitting driver [Tim Connor]
### Removed
* Headless chrome modal JS injection that is no longer needed for Chrome 64+/chromedriver 2.35+
2018-01-02 21:30:10 +00:00
# Version 2.17.0
2018-01-02 21:41:47 +00:00
Release date: 2018-01-02
2018-01-02 21:30:10 +00:00
### Added
2018-01-02 21:32:15 +00:00
* `have_all_of_selectors`, `have_none_of_selectors` RSpec matchers for parity with minitest assertions [Thomas Walpole]
2018-01-02 21:30:10 +00:00
### Fixed
* Allow xpath 3.x gem [Thomas Walpole]
* Issue when drivers returned nil for `current_path` and a matcher was used with a Regexp [Thomas Walpole]
* Error message when visible element not found, but non-visible was [Andy Klimczak]
2017-11-20 18:05:23 +00:00
# Version 2.16.1
2017-11-20 18:08:38 +00:00
Release date: 2017-11-20
2017-11-20 18:05:23 +00:00
### Fixed
* Fix rack_test driver for rack_test 0.7.1/0.8.0 [Thomas Walpole]
* `accept_prompt` response text can contain quotes when using selenium with headless chrome [Thomas Walpole]
2017-11-04 00:25:17 +00:00
# Version 2.16.0
2017-11-13 19:23:02 +00:00
Release date: 2017-11-13
2017-11-04 00:25:17 +00:00
### Added
* Attempt to move element into view when selenium doesn't correctly do it - See PR #1917 [Thomas Walpole]
* `current_path` matchers will now autodetect path vs url based on string to be matched. Deprecates
`:only_path` in favor of `:ignore_query` option [Thomas Walpole]
* Session#evaluate_async_script [Thomas Walpole]
### Fixed
* Default prompt value when using headless Chrome works correctly [Thomas Walpole]
* Support new modal error returned by selenium-webdriver 3.7 for W3C drivers [Thomas Walpole]
2017-11-13 17:58:25 +00:00
* Calling `respond_to?` on the object passed to `Capybara.configure` block - Issue #1935
2017-11-04 00:25:17 +00:00
# Version 2.15.4
2017-10-07 07:51:41 +00:00
Release date: 2017-10-07
### Fixed
2017-10-07 07:51:41 +00:00
* Visiting an absolute URL shouldn't overwrite the port when no server or always_include_port=false - Issue #1921
2017-10-03 20:06:08 +00:00
# Version 2.15.3
2017-10-03 23:03:40 +00:00
Release date: 2017-10-03
2017-10-03 20:06:08 +00:00
### Fixed
* Visiting '/' when Capybara.app_host has a trailing '/' - Issue #1918 [Thomas Walpole]
2017-10-02 17:55:58 +00:00
# Version 2.15.2
Release date: 2017-10-02
### Fixed
* Include within scope description in element not found/ambiguous errors [Thomas Walpole]
* Raise error when no activation block is passed to modal methods if using headless chrome [Thomas Walpole]
* Don't retry element access when inspecting [Ivan Neverov]
* Don't override a specified port (even if it is default port) in visited url [Thomas Walpole]
2017-08-04 17:53:34 +00:00
# Version 2.15.1
Release date: 2017-08-04
### Fixed
* `attach_file` with no extension/MIME type when using the `:rack_test` driver [Thomas Walpole]
2017-08-01 21:50:51 +00:00
# Version 2.15.0
Release date: 2017-08-04
2017-08-01 21:50:51 +00:00
### Added
* `sibling` and `ancestor` finders added [Thomas Walpole]
2017-08-03 21:27:56 +00:00
* Added ability to pass options to registered servers when setting
* Added basic built-in driver registrations `:selenium_chrome` and `:selenium_chrome_headless` [Thomas Walpole]
2017-08-01 21:50:51 +00:00
* Add `and_then` to Capybara RSpec matchers which behaves like the previous `and` compounder. [Thomas Walpole]
* Compound RSpec expectations with Capybara matchers now run both matchers inside a retry loop rather
than waiting for one to pass/fail before checking the second. Will make `#or` more performant and confirm
both conditions are true "simultaneously" for `and`. [Thomas Walpole]
If you still want the
2017-08-03 22:02:01 +00:00
* Default filter values are now included in error descriptions [Thomas Walpole]
2017-08-01 21:50:51 +00:00
* Add `Session#refresh` [Thomas Walpole]
* Loosened restrictions on where `Session#within_window` can be called from [Thomas Walpole]
* Switched from `mime-types` dependency to `mini_mime` [Jason Frey]
2017-08-03 22:02:01 +00:00
2017-06-27 20:42:36 +00:00
# Version 2.14.4
Release date: 2017-06-27
### Fixed
* Fix retrieval of session_options for HaveSelector matcher descriptions - Issue #1883
2017-06-14 21:56:33 +00:00
# Version 2.14.3
2017-06-15 09:45:07 +00:00
Release date: 2017-06-15
2017-06-14 21:56:33 +00:00
### Fixed
* Minitest assertions now raise the correct error type - Issue #1879 [Thomas Walpole]
* Improve flexibility of detecting Chrome headless mode [Thomas Walpole]
2017-06-09 18:51:55 +00:00
# Version 2.14.2
2017-06-09 19:20:03 +00:00
Release date: 2017-06-09
2017-06-09 18:51:55 +00:00
### Fixed
* Workaround for system modals when using headless Chrome now works if the page changes
2017-06-07 16:44:25 +00:00
# Version 2.14.1
2017-06-07 21:00:12 +00:00
Release date: 2017-06-07
2017-06-07 16:44:25 +00:00
### Fixed
* Catch correct error when unexpected system modals are discovered in latest selenium [Thomas Walpole]
2017-06-07 21:00:12 +00:00
* Update default `puma` server registration to encourage it to run in single mode [Thomas Walpole]
2017-06-07 16:44:25 +00:00
* Suppress invalid element errors raised while lazily evaluating the results of `all` [Thomas Walpole]
* Added missing `with_selected` option to the :select selector to match `options`/`with_options` options - Issue #1865 [Bartosz Nowak]
2017-06-07 21:00:12 +00:00
* Workaround broken system modals when using selenium with headless Chrome
2017-06-07 16:44:25 +00:00
2017-04-24 23:02:12 +00:00
# Version 2.14.0
2017-03-22 19:20:19 +00:00
2017-05-01 18:26:29 +00:00
Release date: 2017-05-01
2017-03-22 19:20:19 +00:00
### Added
2017-05-01 18:10:37 +00:00
* "threadsafe" mode that allows per-session configuration
* `:type` filter added to the `:fillable_field` selector
* Proxy methods when using RSpec for `all`/`within` that call either the Capybara::DSL or RSpec matchers
depending on arguments passed
2017-04-24 23:01:28 +00:00
* Support for the new errors in selenium-webdriver 3.4
2017-03-22 19:20:19 +00:00
### Fixed
* Element#inspect doesn't raise an error on obsolete elements
2017-05-01 18:10:37 +00:00
* Setting a contenteditable element with Selenium and Chrome 59
2017-04-24 23:01:28 +00:00
* Workaround a hang while setting the window size when using geckodriver 0.16 and Firefox 53
2017-05-01 18:10:37 +00:00
* Clicking on url with a blank href goes to the current url when using the RackTest driver
2017-03-22 19:20:19 +00:00
2017-03-16 22:21:08 +00:00
# Version 2.13.0
2017-03-16 20:50:31 +00:00
Release date: 2017-03-16
2017-01-27 22:06:05 +00:00
### Added
2017-03-07 21:21:50 +00:00
* Selenium driver supports returning element(s) from evaluate_script [Thomas Walpole]
2017-01-27 22:06:05 +00:00
* rack_test driver supports click on checkboxes and radio buttons to change their states [Thomas Walpole]
2017-03-07 21:21:50 +00:00
* Support RSpec equivalent assertions and expectations for MiniTest [Thomas Walpole]
2017-01-27 22:06:05 +00:00
2017-03-16 22:21:08 +00:00
### Fixed
2017-03-16 20:50:31 +00:00
* Editing of content editable children with selenium
2017-03-16 22:21:08 +00:00
# Version 2.12.1
2017-02-19 01:26:02 +00:00
Release date: 2017-02-16
### Fixed
* Disable lazy Capybara::Results evaluation for JRuby due to ongoing issues
2017-03-16 22:21:08 +00:00
# Version 2.12.0
2017-01-22 20:45:01 +00:00
Release date: 2017-01-22
2016-12-09 20:42:09 +00:00
### Added
2017-01-03 00:02:01 +00:00
2016-12-09 20:42:09 +00:00
* Session#switch_to_frame for manually handling frame switching - Issue #1365 [Thomas Walpole]
2017-01-17 00:29:01 +00:00
* Session#within_frame now accepts a selector type (defaults to :frame) and locator [Thomas Walpole]
2016-12-30 02:38:32 +00:00
* Session#execute_script and Session#evaluate_script now accept optional arguments that will be passed to the JS function. This may not be supported
2017-01-17 00:29:01 +00:00
by all drivers, and the types of arguments that may be passed is limited. If drivers opt to support this feature they should support passing page elements. [Thomas Walpole]
* :exact option for text and title matchers - Issue #1256 [Thomas Walpole]
* :exact_text option for selector finders/minders - Issue #1256 [Thomas Walpole]
* Capybara.exact_text setting that affects the text matchers and :text options passed to selector finders/matchers. Issue #1256 [Thomas Walpole]
* :make_visible option for #attach_file that allows for convenient changing of the CSS style of a file input element before attaching the file to it. Requires driver
support for passing page elements to Session#execute_script [Thomas Walpole]
2017-01-03 00:02:01 +00:00
* assert_all_selectors/assert_none_of_selectors assertions added
2017-01-17 00:29:01 +00:00
* :link selector (used by find_link/click_link) now supports finding hyperlink placeholders (no href attribute) when href: nil option is specified [Thomas Walpole]
* `within_element` as an alias of `within` due to RSpec collision
2016-12-09 20:42:09 +00:00
2016-12-30 02:38:32 +00:00
### Fixed
2017-03-16 22:21:08 +00:00
2017-01-17 00:29:01 +00:00
* Fields inside a disabled fieldset are now correctly considered disabled - Issue #1816 [Thomas Walpole]
2017-01-03 00:02:01 +00:00
* Lazy Capybara::Results evaluation enabled for JRuby 9.1.6.0+
2017-01-17 00:29:01 +00:00
* A driver returning nil for #current_url won't raise an exception when calling #current_path [Dylan Reichstadt]
* Support Ruby 2.4.0 unified Integer [Koichi ITO]
* RackTest driver no longer modifies the text content of textarea elements in order to behave more like a real browser [Thomas Walpole]
2017-01-22 20:43:19 +00:00
* TextQuery (assert_text/have_text/etc) now ignores errors when trying to generate more helpful errors messages so the original error isn't hidden [Thomas Walpole]
2016-12-30 02:38:32 +00:00
2017-03-16 22:21:08 +00:00
# Version 2.11.0
2016-12-05 18:08:13 +00:00
Release date: 2016-12-05
2016-11-14 19:03:06 +00:00
### Added
2017-03-16 22:21:08 +00:00
2016-11-14 19:03:06 +00:00
* Options for clearing session/local storage on reset added to the Selenium driver
* Window size changes wait for the size to stabilize
* Defined return value for most actions
2016-11-17 18:03:39 +00:00
* Ignore specific error when qutting selenium driver instance - Issue #1773 [Dylan Reichstadt, Thomas Walpole]
2016-11-30 21:16:40 +00:00
* Warn on selenium unknown errors rather than raising when quitting driver [Adam Pohorecki, Thomas Walpole]
* Capybara::Result#each now returns an `Enumerator` when called without a block - Issue #1777 [Thomas Walpole]
2016-11-30 21:16:40 +00:00
### Fixed
2017-03-16 22:21:08 +00:00
* Selenium driver with Chrome should support multiple file upload [Thomas Walpole]
2016-11-17 18:03:39 +00:00
* Fix visible: :hidden with :text option behavior [Thomas Walpole]
2016-11-30 21:16:40 +00:00
2017-03-16 22:21:08 +00:00
# Version 2.10.2
2016-11-30 21:16:40 +00:00
Release date: 2016-11-30
### Fixed
2017-03-16 22:21:08 +00:00
2016-11-17 18:03:39 +00:00
* App exceptions with multiple parameter initializers now re-raised correctly - Issue #1785 [Michael Lutsiuk]
2016-11-30 18:57:04 +00:00
* Use Addressable::URI when parsing current_path since it's more lenient of technically invalid URLs - Issue #1801 [Marcos Duque, Thomas Walpole]
2017-03-16 22:21:08 +00:00
# Version 2.10.1
2016-10-08 16:46:34 +00:00
Release date: 2016-10-08
### Fixed
* App errors are now correctly raised with the explanatory cause in JRuby [Thomas Walpole]
* Capybara::Result optimization disabled in JRuby due to issue with lazy enumerator evaluation [Thomas Walpole]
See: https://github.com/jruby/jruby/issues/4212
2017-03-16 22:21:08 +00:00
# Version 2.10.0
2016-10-05 17:30:12 +00:00
Release date: 2016-10-05
2016-09-30 18:09:45 +00:00
### Added
2017-03-16 22:21:08 +00:00
* Select `<button>` elements with descendant images with `alt` attributes matching the locator [Ian Lesperance]
2016-09-30 18:09:45 +00:00
* Locator string is optional in selector based matchers [Thomas Walpole]
2016-10-03 20:37:43 +00:00
* Selectors can specify their default visible setting [Thomas Walpole]
2016-10-05 17:30:12 +00:00
* Selector based finders and matchers can be passed a block to filter the results within the retry behavior [Thomas Walpole]
2017-03-16 22:21:08 +00:00
# Version 2.9.2
2016-09-29 16:03:26 +00:00
Release date: 2016-09-29
2016-09-28 20:09:31 +00:00
### Fixed
2016-09-28 20:09:31 +00:00
* :label built-in selector finds nested label/control by control id if the label has no 'for' attribute [Thomas Walpole]
2016-10-05 17:30:12 +00:00
* Warning issued if an unknown selector type is specified [Thomas Walpole]
2016-09-28 20:09:31 +00:00
2017-03-16 22:21:08 +00:00
# Version 2.9.1
2016-09-23 20:00:13 +00:00
Release date: 2016-09-23
2016-09-21 23:14:31 +00:00
### Fixed
2017-03-16 22:21:08 +00:00
2016-09-21 23:14:31 +00:00
* allow_label_click option did not work in some cases with Poltergeist - Issue #1762 [Thomas Walpole]
2016-09-23 20:00:13 +00:00
* matches_selector? should have access to all of a selectors options except the count options [Thomas Walpole]
2016-09-21 23:14:31 +00:00
2017-03-16 22:21:08 +00:00
# Version 2.9.0
2016-09-19 21:51:51 +00:00
Release date: 2016-09-19
2016-09-13 17:07:52 +00:00
### Fixed
2017-03-16 22:21:08 +00:00
2016-09-13 17:07:52 +00:00
* Issue with rack-test driver and obselete mime-types when using `#attach_file` - Issue #1756 [Thomas Walpole]
### Added
2017-03-16 22:21:08 +00:00
2016-09-13 17:07:52 +00:00
* `:class` option to many of the built-in selectors [Thomas Walpole]
* Removed need to specify value when creating `:boolean` filter type in custom selectors [Thomas Walpole]
* Filters can now be implemented through the XPath/CSS expressions in custom selectors [Thomas Walpole]
2016-09-13 19:03:45 +00:00
* `Element#matches_xpath?` and `Element#matches_css?` [Thomas Walpole]
2016-09-13 17:07:52 +00:00
2017-03-16 22:21:08 +00:00
# Version 2.8.1
2016-08-25 18:41:58 +00:00
Release date: 2016-08-25
2017-10-16 14:29:07 +00:00
### Fixed
2017-03-16 22:21:08 +00:00
* Fixed error message from have_text when text is not found but contains regex special characters [Ryunosuke Sato]
2016-08-25 18:29:09 +00:00
* Warn when :exact option is passed that has no effect [Thomas Walpole]
2016-04-07 17:03:51 +00:00
# Version 2.8.0
2017-03-16 22:21:08 +00:00
2016-08-16 18:49:32 +00:00
Release date: 2016-08-16
2016-04-07 17:03:51 +00:00
### Fixed
2017-03-16 22:21:08 +00:00
2016-06-01 18:47:56 +00:00
* Issue with modals present when closing the page using selenium - Issue #1696 [Jonas Nicklas, Thomas Walpole]
* Server errors raised in test code have the cause set to an explanatory exception
in rubies that support Exception#cause rather than a confusing ExpectationNotMet - Issue #1719 [Thomas Walpole]
2016-08-19 02:56:33 +00:00
* background/given/given! RSpec aliases will work if RSpec config.shared_context_metadata_behavior == :apply_to_host_groups [Thomas Walpole]
2016-07-26 22:20:52 +00:00
* Fixed setting of unexpectedAlertError now that Selenium will be freezing the Capabilities::DEFAULTS [Thomas Walpole]
### Added
2017-03-16 22:21:08 +00:00
* 'check', 'uncheck', and 'choose' can now optionally click the associated label if the checkbox/radio button is not visible [Thomas Walpole]
2016-06-01 18:47:56 +00:00
* Raise error if Capybara.app_host/default_host are specified incorrectly [Thomas Walpole]
* Capybara::Selector::FilterSet allows for sharing filter definitions between selectors [Thomas Walpole]
* Remove need to pass nil locator in most node actions when locator is not needed [Thomas Walpole]
2016-07-15 18:00:14 +00:00
* New frames API for drivers - Issue #1365 [Thomas Walpole]
* Deprecated Element#parent in favor of Element#query_scope to better indicate what it is [Thomas Walpole]
* Improved error messages for have_text matcher [Alex Chaffee, Thomas Walpole]
* The `:with` option for the field selector now accepts a regular expression for matching the field value [Uwe Kubosch]
* Support matching on aria-label attribute when finding fields/links/buttons - Issue #1528 [Thomas Walpole]
* Optimize Capybara::Result to only apply fields as necessary in common use-case of `.all[idx]` [Thomas Walpole]
2017-03-16 22:21:08 +00:00
# Version 2.7.1
Release date: 2016-05-01
### Fixed
2017-03-16 22:21:08 +00:00
* Issue where within_Frame would fail with Selenium if the frame is removed from within itself [Thomas Walpole]
* Reset sessions in reverse order so sessions with active servers are reset last - Issue #1692 [Jonas Nicklas, Thomas Walpole]
2016-01-18 00:01:07 +00:00
# Version 2.7.0
2017-03-16 22:21:08 +00:00
2016-04-07 17:01:54 +00:00
Release date: 2016-04-07
2016-01-18 00:01:07 +00:00
2016-02-01 21:04:11 +00:00
### Fixed
2017-03-16 22:21:08 +00:00
* Element#visible?/checked?/disabled?/selected? Now return boolean as expected when using the rack_test driver [Thomas Walpole]
2016-03-04 19:35:20 +00:00
* The rack_test driver now considers \<input type="hidden"> elements as non-visible [Thomas Walpole]
2016-03-24 21:27:19 +00:00
* A nil locator passed to the built-in html type selectors now behaves consistently, and finds elements of the expected types [Thomas Walpole]
* Capybara::Server now searches for available ports on the same interface it binds to [Aaron Stone]
* Selenium Driver handles system modals that appear when page is unloading [Thomas Walpole]
* Warning output if unused parameters are passed to a selector query [Thomas Walpole]
2016-02-01 21:04:11 +00:00
### Added
2017-03-16 22:21:08 +00:00
* Capybara now waits for requests to Capybaras server to complete while restting the session [John Hawthorn, Thomas Walpole]
* Capybara.reuse_server option to allow disabling of sharing server instance between sessions [Thomas Walpole]
2016-03-09 21:57:06 +00:00
* :multiple filter added to relevant selectors [Thomas Walpole]
* Provided server registrations for :webrick and :puma. Capybara.server = :puma for testing with Rails 5 [Thomas Walpole]
2016-03-09 22:27:00 +00:00
* Deprecate passing a block to Capybara::server user Capybara::register_server instead [Thomas Walpole]
* :option selector supports :selected and :disabled filters [Thomas Walpole]
2016-03-25 16:53:18 +00:00
* Element#matches_selector? and associated matchers (match_selector, match_css, etc) for comparing an element to a selector [Thomas Walpole]
* Deprecated Driver#browser_initialized? - Driver#reset! is required to be synchronous [Jonas Nicklas, Thomas Walpole]
* Deprecated Capybara.save_and_open_page_path in favor of Capybara.save_path with slightly different behavior when using relative paths with
2016-04-06 19:43:05 +00:00
save_page/save_screenshot [Thomas Walpole]
* :label selector [Thomas Walpole]
2017-03-16 22:21:08 +00:00
# Version 2.6.2
2016-01-27 23:14:32 +00:00
Relase date: 2016-01-27
### Fixed
2017-03-16 22:21:08 +00:00
2016-01-27 23:14:32 +00:00
* support for more than just addressable 2.4.0 [Thomas Walpole]
2016-01-27 19:43:12 +00:00
# Version 2.6.1
2017-03-16 22:21:08 +00:00
2016-01-27 23:14:32 +00:00
Release date: 2016-01-27
2016-01-27 19:43:12 +00:00
### Fixed
2017-03-16 22:21:08 +00:00
2016-01-27 19:43:12 +00:00
* Add missing require for addressable [Jorge Bejar]
2016-01-17 23:25:55 +00:00
# Version 2.6.0
2017-03-16 22:21:08 +00:00
2016-01-17 23:25:55 +00:00
Relase date: 2016-01-17
2015-08-28 20:11:41 +00:00
2015-12-22 18:20:07 +00:00
### Fixed
2017-03-16 22:21:08 +00:00
* Fixed path escaping issue with current_path matchers [Thomas Walpole, Luke Rollans] (Issue #1611)
2015-12-23 19:43:06 +00:00
* Fixed circular require [David Rodríguez]
2015-12-22 18:20:07 +00:00
* Capybara::RackTest::Form no longer overrides Object#method [David Rodriguez]
* options and with_options filter for :select selector have more intuitive visibility behavior [Nathan]
* Test for nested modal API method support [Thomas Walpole]
2015-12-22 18:20:07 +00:00
### Added
2017-03-16 22:21:08 +00:00
* Capybara.modify_selector [Thomas Walpole]
2015-12-22 18:20:07 +00:00
* xfeature and ffeature aliases added when using RSpec [Filip Bartuzi]
* Selenium driver supports a :clear option to #set to handle different strategies for clearing a field [Thomas Walpole]
* Support the use of rack 2.0 with the rack_test driver [Travis Grathwell, Thomas Walpole]
* Disabled option for default selectors now supports true, false, or :all [Jillian Rosile, Thomas Walpole]
* Modal API methods now default wait time to Capybara.default_max_wait_time [Thomas Walpole]
2015-12-22 18:20:07 +00:00
2014-09-23 17:05:15 +00:00
# Version 2.5.0
2017-03-16 22:21:08 +00:00
2015-08-26 06:01:26 +00:00
Release date: 2015-08-25
2014-09-23 17:05:15 +00:00
### Fixed
2017-03-16 22:21:08 +00:00
* Error message now raised correctly when invalid options passed to 'have_text'/'have_content' [Thomas Walpole]
* Rack-test driver correctly gets document title when elements on the page have nested title elements (SVG) [Thomas Walpole]
2015-08-26 06:01:26 +00:00
* 'save_page' no longer errors when using Capybara.asset_host if the page has no \<head> element [Travis Grathwell]
* rack-test driver will ignore clicks on links with href starting with '#' or 'javascript:'
2014-09-23 17:05:15 +00:00
### Added
2017-03-16 22:21:08 +00:00
* has_current_path? and associated asserts/matchers added [Thomas Walpole]
* Implement Node#path in selenium driver [Soutaro Matsumoto]
* 'using_session' is now nestable [Thomas Walpole]
* 'switch_to_window' will now use waiting behavior for a matching window to appear [Thomas Walpole]
* Warning when attempting to select a disabled option
* Capybara matchers are now available in RSpec view specs by default [Joshua Clayton]
* 'have_link' and 'click_link' now accept Regexp for href matching [Yaniv Savir]
* 'find_all' as an alias of 'all' due to collision with RSpec
* Capybara.wait_on_first_by_default setting (default is false)
If set to true 'first' will use Capybaras waiting behavior to wait for at least one element to appear by default
* Capybara waiting behavior uses the monotonic clock if supported to ease restrictions on freezing time in tests [Dmitry Maksyoma, Thomas Walpole]
* Capybara.server_errors setting that allows to configure what type of errors will be raised from the server thread [Thomas Walpole]
* Node#send_keys to allow for sending keypresses directly to elements [Thomas Walpole]
2014-09-23 17:05:15 +00:00
* 'formmethod' attribute support in RackTest driver [Emilia Andrzejewska]
* Clear field using backspaces in Selenium driver by using `:fill_options => { :clear => :backspace }` [Joe Lencioni]
2014-09-23 17:05:15 +00:00
### Deprecated
2017-03-16 22:21:08 +00:00
* Capybara.default_wait_time deprecated in favor of Capybara.default_max_wait_time to more clearly explain its purpose [Paul Pettengill]
2017-03-16 22:21:08 +00:00
# Version 2.4.4
2014-10-20 02:12:10 +00:00
Release date: 2014-10-13
2014-10-13 17:08:04 +00:00
### Fixed
2017-03-16 22:21:08 +00:00
2014-10-13 17:08:04 +00:00
* Test for visit behavior updated [Phil Baker]
* Removed concurrency prevention in favor of a note in the README - due to load order issues
# Version 2.4.3
2017-03-16 22:21:08 +00:00
Relase date: 2014-09-21
### Fixed
2017-03-16 22:21:08 +00:00
* Update concurrency prevention to match Rails 4.2 behavior
2014-09-19 18:46:18 +00:00
# Version 2.4.2
2017-03-16 22:21:08 +00:00
2014-09-20 23:46:48 +00:00
Release date: 2014-09-20
2014-09-19 18:46:18 +00:00
### Fixed
2017-03-16 22:21:08 +00:00
2014-09-19 18:46:18 +00:00
* Prevent concurrency issue when testing Rails app with default test environment [Thomas Walpole]
* Tags for windows API tests fixed [Dmitry Vorotilin]
* Documentation Fixes [Andrey Botalov]
* Always convert visit url to string, fixes issue with visit when always_include_port was enabled [Jake Goulding]
* Check correct rspec version before including ::RSpec::Matchers::Composable in Capybara RSpec matchers [Thomas Walpole, Justin Ko]
2014-07-03 19:01:31 +00:00
# Version 2.4.1
2014-07-15 08:52:23 +00:00
Release date: 2014-07-03
2014-07-01 23:25:50 +00:00
### Added
* 'assert_text', 'assert_no_text', 'assert_title', 'assert_no_title' methods added [Andrey Botalov]
* have_title matcher now supports :wait option [Andrey Botalov]
* More descriptive have_text error messages [Andrey Botalov]
2014-07-02 16:51:41 +00:00
* New modal API ('accept_alert', 'accept_confirm', 'dismiss_confirm', 'accept_prompt', 'dismiss_prompt') - [Mike Pack, Thomas Walpole]
* Warning when attempting to set contents of a readonly element
2014-07-01 23:25:50 +00:00
* Suport for and/or compounding of Capybara's RSpec matchers for RSpec 3 [Thomas Walpole]
2014-07-02 23:58:58 +00:00
* :fill_options option for 'fill_in' method that propagates to 'set' to allow for driver specific modification of how fields are filled in [Gabriel Sobrinho, Thomas Walpole]
* Improved selector/filter description in failure messages [Thomas Walpole]
2014-07-01 23:25:50 +00:00
### Fixed
* HaveText error message now shows the text checked all the time
* RackTest driver no longer attempts to follow an anchor tag without an href attribute
* Warnings under RSpec 3
* Handle URI schemes like about: correctly [Andrey Botalov]
* RSpecs expose_dsl_globally option is now followed [Myron Marston, Thomas Walpole]
2014-06-02 19:42:17 +00:00
# Version 2.3.0
Release date: 2014-06-02
### Added
2017-03-16 22:21:08 +00:00
2014-06-02 19:42:17 +00:00
* New window management API [Andrey Botalov]
* Speed improvement for visible text detection in RackTest [Thomas Walpole]
Thanks to Phillipe Creux for instigating this
* RSpec 3 compatability
* 'save_and_open_screenshot' functionality [Greg Lazarev]
* Server errors raised on visit and synchronize [Jonas Nicklas]
### Fixed
* CSSHandlers now derives from BasicObject so globally included functions (concat, etc) shouldn't cause issues [Thomas Walpole]
* touched reset after session is reset [lesliepc16]
2014-01-06 15:24:26 +00:00
# Version 2.2.1
Release date: 2014-01-06
### Fixed
* Reverted a change in 2.2.0 which navigates to an empty file on `reset`.
Capybara, now visits `about:blank` like it did before. [Jonas Nicklas]
2013-11-14 21:54:26 +00:00
# Version 2.2.0
2013-11-21 21:25:33 +00:00
Release date: 2013-11-21
2013-11-14 21:54:26 +00:00
### Added
* Add `go_back` and `go_forward` methods. [Vasiliy Ermolovich]
* Support RSpec 3 [Thomas Holmes]
* `has_button?`, `has_checked_field?` and `has_unchecked_field?` accept
options, like other matchers. [Carol Nichols]
* The `assert_selector` and `has_text?` methods now support the `:wait` option
[Vasiliy Ermolovich]
* RackTest's visible? method now checks for the HTML5 `hidden` attribute.
* Results from `#all` now delegate the `sample` method. [Phil Lee]
* The `set` method now works for contenteditable attributes under Selenium.
[Jon Rowe]
* radio buttons and check boxes can be filtered by option value, useful when
selecting by name [Jonas Nicklas]
* feature blocks can be nested within other feature blocks in RSpec tests
[Travis Gaff]
### Fixed
* Fixed race conditions causing stale element errors when filtering by text.
[Jonas Nicklas]
* Resetting the page is now synchronous and navigates to an empty HTML file,
instead of `about:blank`, fixing hanging issues in JRuby. [Jonas Nicklas]
* Fixed cookies not being set when path is blank under RackTest [Thomas Walpole]
* Clearing fields now correctly causes change events [Jonas Nicklas]
2014-09-18 06:24:48 +00:00
* Navigating to an absolute URI without trailing slash now works as expected
2013-11-14 21:54:26 +00:00
under RackTest [Jonas Nicklas]
* Checkboxes without assigned value default to `on` under RackTest [Nigel Sheridan-Smith]
* Clicks on buttons with no form associated with them are ignored in RackTest
instead of raising an obscure exception. [Thomas Walpole]
* execute_script is now a session method [Andrey Botalov]
* Nesting `within_window` and `within_frame` inside `within` resets the scope
so that they behave like a user would expect [Thomas Walpole]
* Improve handling of newlines in textareas [Thomas Walpole]
* `Capybara::Result` delegates its inspect method, so as not to confuse users
[Sam Rawlins]
* save_page always returns a full path, fixes problems with Launchy [Jonas Nicklas]
* Selenium driver's `quit` method does nothing when browser hasn't been loaded
[randoum]
* Capybara's WEBRick server now propertly respects the server_host option
[Dmitry Vorotilin]
* gemspec now includes license information [Jonas Nicklas]
2013-03-01 09:19:34 +00:00
# Version 2.1.0
2013-04-10 23:02:21 +00:00
Release date: 2013-04-09
2013-03-01 09:19:34 +00:00
### Changed
2013-03-17 15:33:24 +00:00
* Hard version requirement on Ruby >= 1.9.3. Capybara will no longer install
2013-03-01 09:19:34 +00:00
on 1.8.7. [Felix Schäfer]
* Capybara no longer depends on the `selenium-webdriver` gem. Add it to
your Gemfile if you wish to use the Selenium driver. [Jonas Nicklas]
* `Capybara.ignore_hidden_elements` defaults to `true`. [Jonas Nicklas]
* In case of multiple matches `smart` matching is used by default. Set
`Capybara.match = :one` to revert to old behaviour. [Jonas Nicklas].
2013-03-01 09:19:34 +00:00
* Options in select boxes use smart matching and no longer need to match
exactly. Set `Capybara.exact_options = false` to revert to old behaviour.
[Jonas Nicklas].
* Visibility of text depends on `Capybara.ignore_hidden_elements` instead of
always returning only visible text. Set `Capybara.visible_text_only = true`
to revert to old behaviour. [Jonas Nicklas]
2013-03-01 09:19:34 +00:00
* Cucumber cleans up session after scenario instead. This is consistent with
RSpec and makes more sense, since we raise server errors in `reset!`.
[Jonas Nicklas]
### Added
* All actions (`click_link`, `fill_in`, etc...) and finders now take an options
hash, which is passed through to `find`. [Jonas Nicklas]
* CSS selectors are sent straight through to driver instead of being converted
to XPath first. Enables the use of some pseudo selectors, such as `invalid`
in some drivers. [Thomas Walpole]
* `Capybara.asset_host` option, which inserts a `base` tag into the page on
`save_and_open_page`, eases debugging with the Rails asset pipeline.
[Steve Hull]
* `exact` option, can specify whether to match substrings or entire text.
[Jonas Nicklas]
* `match` option, can specify behaviour in case of multiple matches.
[Jonas Nicklas]
* `wait` option, can specify how long to wait for a given action/finder.
[Jonas Nicklas]
* Config option which disables bubbling of errors raised inside server.
[Jonas Nicklas]
* `text` now takes a parameter which makes it possible to return either all
text or only visible text. The default depends on
`Capybara.ignore_hidden_elements`. `Capybara.visible_text_only` option is
available for compatibility. [Jonas Nicklas]
2013-03-17 15:33:24 +00:00
* `has_content?` and `has_text?` now take the same count options as `has_selector?`
[Andrey Botalov]
2013-03-01 09:19:34 +00:00
* `current_scope` is now public API, returns the current element when `within`
is used. [Martijn Walraven]
* `find("input").disabled?` returns true if a node is disabled. [Ben Lovell]
2013-03-17 15:33:24 +00:00
* Find disabled fields and buttons with `:disabled => false`. [Jonas Nicklas]
2013-03-01 09:19:34 +00:00
* `find("input").hover` moves the mouse to the element in supported drivers.
[Thomas Walpole]
* RackTest driver now support `form` attribute on form elements.
[Thomas Walpole]
* `page.title` returns the page title. [Terry Progetto]
* `has_title?` matcher to assert on page title. [Jonas Nicklas]
* The gem is now signed with a certicficate. The public key is available in the
repo. [Jonas Nicklas]
2013-03-17 15:33:24 +00:00
* `:select` and `:textarea` are valid options for the `:type` filter on `find_field`
and `has_field?`. [Yann Plancqueel]
2013-03-01 09:19:34 +00:00
### Fixed
2013-03-17 15:33:24 +00:00
* Fixed race conditions when synchronizing across multiple nodes [Jonas Nicklas]
* Fixed race conditions in deeply nested selectors [Jonas Nicklas]
2013-03-01 09:19:34 +00:00
* Fix issue with `within_frame`, where selecting multiple nested frames didn't
work as intended. [Thomas Walpole]
2013-03-17 15:33:24 +00:00
* RackTest no longer fills in readonly textareas. [Thomas Walpole]
* Don't use autoload to load files, require them directly instead. [Jonas Nicklas]
2013-04-02 15:08:26 +00:00
* Rescue weird exceptions when booting server [John Wilger]
* Non strings are now properly cast when using the maxlength attribute [Jonas Nicklas]
2013-03-01 09:19:34 +00:00
2013-03-26 12:53:43 +00:00
# Version 2.0.3
Release date: 2013-03-26
* Check against Rails version fixed to work with Rails' master branch now returning
a Gem::Version [Jonas Nicklas]
* Use posix character class for whitespace replace, solves various encoding
problems on Ruby 2.0.0 and JRuby. [Ben Cates]
2012-12-31 13:49:42 +00:00
# Version 2.0.2
Release date: 2012-12-31
### Changed
* Capybara no longer uses thin as a server if it is available, due to thread
safety issues. Now Capybara always defaults to WEBrick. [Jonas Nicklas]
2012-12-03 13:11:35 +00:00
### Fixed
* Suppress several warnings [Kouhei Sutou]
* Fix default host becoming nil [Brian Cardarella]
* Fix regression in 2.0.1 which caused node comparisons with non node objects
to throw an exception [Kouhei Sotou]
* A few changes to the specs, only relevant to driver authors [Jonas Nicklas]
2012-12-31 13:49:42 +00:00
* Encoding error under JRuby [Piotr Krawiec]
* Ruby 2 encoding fix [Murahashi Sanemat Kenichi]
* Catch correct exception on server timeout [Jonathan del Strother]
2012-12-03 13:11:35 +00:00
2012-12-03 13:08:36 +00:00
# Version 2.0.1
Release date: 2012-12-21
### Changed
* Move the RackTest driver override with the `:respect_data_method` option
enabled from capybara/rspec to capybara/rails, so that it is enabled in
Rails projects that don't use RSpec. [Carlos Antonio da Silva]
* `source` is now an alias for `html`. RackTest no longer returns modifications
to `html`. This basically codifies the behaviour which we've had for a while
anyway, and should have minimal impact for end users. For driver authors, it
means that they only have to implement `html`, and not `source`. [Jonas
Nicklas]
2012-11-20 13:49:33 +00:00
2012-11-20 13:21:29 +00:00
### Fixed
* Visiting relative URLs when `app_host` is set and no server is running works
as expected. [Jonas Nicklas]
2012-11-20 13:49:33 +00:00
* `fill_in` works properly under Selenium again when the caret is not at the
end of the field before the method is called. [Douwe Maan, Jonas Nicklas, Jari
Bakken]
2012-11-21 08:46:44 +00:00
* `attach_file` can once again be given a Pathname [Jake Goulding]
# Version 2.0.0
Release date: 2012-11-05
2012-01-04 17:41:51 +00:00
### Changed
2012-08-30 14:09:01 +00:00
* Dropped official support for Ruby 1.8.x. [Jonas Nicklas]
* `respect_data_method` default to `false` for the RackTest driver in non-rails
applications. That means that Capybara no longer picks up `data-method="post"`
et. al. from links by default when you haven't required capybara/rails
[Jonas Nicklas]
* `find` now raises an error if more than one element was found. Since `find` is
used by most actions, like `click_link` under the surface, this means that all
actions need to unambiguous in the future. [Jonas Nicklas]
* All methods which find or manipulate fields or buttons now ignore them when
they are disabled. [Jonas Nicklas]
* Can no longer find elements by id via `find(:foo)`, use `find("#foo")` or
`find_by_id("foo")` instead. [Jonas Nicklas]
2012-07-12 14:13:51 +00:00
* `Element#text` on RackTest now only returns visible text and normalizes
(strips) whitespace, as with Selenium [Mark Dodwell, Jo Liss]
* `has_content?` now checks the text value returned by `Element#text`, as opposed to
querying the DOM. Which means it does not match hidden text.
[Ryan Montgomery, Mark Dodwell, Jo Liss]
* #394: `#body` now returns the unmodified source (like `#source`), not the current
state of the DOM (like `#html`), by popular request [Jonas Nicklas]
* `Node#all` no longer returns an array, but rather an enumerable `Capybara::Result`
[Jonas Nicklas]
* The arguments to `select` and `unselect` needs to be the exact text of an option
in a select box, substrings are no longer allowed [Jonas Nicklas]
* The `options` option to `has_select?` must match the exact set of options. Use
`with_options` for the old behaviour. [Gonzalo Rodriguez]
* The `selected` option to `has_select?` must match all selected options for multiple
selects. [Gonzalo Rodriguez]
* Various internals for running driver specs, this should only affect driver authors
[Jonas Nicklas]
* Rename `Driver#body` to `Driver#html` (relevant only for driver authors) [Jo
Liss]
2012-07-12 14:13:51 +00:00
### Removed
* No longer possible to specify `failure_message` for custom selectors. [Jonas Nicklas]
* #589: `Capybara.server_boot_timeout` has been removed in favor of a higher
(60-second) hard-coded timeout [Jo Liss]
* `Capybara.prefer_visible_elements` has been removed, as it is no longer needed
with the changed find semantics [Jonas Nicklas]
* `Node#wait_until` and `Session#wait_until` have been removed. See `Node#synchronize`
for an alternative [Jonas Nicklas]
* `Capybara.timeout` has been removed [Jonas Nicklas]
* The `:resynchronize` option has been removed from the Selenium driver [Jonas Nicklas]
* The `rows` option to `has_table?` has been removed without replacement.
[Jonas Nicklas]
### Added
* Much improved error message [Jonas Nicklas]
* Errors from inside the session for apps running in a server are raised when
session is reset [James Tucker, Jonas Nicklas]
* A ton of new selectors built in out of the box, like `field`, `link`, `button`,
etc... [Adam McCrea, Jonas Nicklas]
* `has_text?` has been added as an alias for `has_content?` [Jonas Nicklas]
* Add `Capybara.server_host` option (default: 127.0.0.1) [David Balatero]
* Add `:type` option for `page.has_field?` [Gonzalo Rodríguez]
* Custom matchers can now be specified in CSS in addition to XPath [Jonas Nicklas]
* `Node#synchronize` method to rerun a block of code if certain errors are raised
[Jonas Nicklas]
* `Capybara.always_include_port` config option always includes the server port in
2014-10-15 07:49:40 +00:00
URLs when using `visit`. Facilitates testing different domain names. [Douwe Maan]
* Redirect limit for RackTest driver is configurable [Josh Lane]
* Server port can be manually specified during initialization of server.
[Jonas Nicklas, John Wilger]
* `has_content?` and `has_text?` can be given a regular expression [Vasiliy Ermolovich]
* Multiple files can be uploaded with `attach_file` [Jarl Friis]
2012-01-04 17:41:51 +00:00
### Fixed
2012-07-12 14:13:51 +00:00
* Nodes found via `all` are no longer reloaded. This fixes weird quirks where
nodes would seemingly randomly replace themselves with other nodes [Jonas Nicklas]
* Session is only reset if it has been modified, dramatically improves performance if
only part of the test suite runs Capybara. [Jonas Nicklas]
2012-01-04 17:41:51 +00:00
* Test suite now passes on Ruby 1.8 [Jo Liss]
* #565: `require 'capybara/dsl'` is no longer necessary [Jo Liss]
2012-07-12 14:13:51 +00:00
* `Rack::Test` now respects ports when changing hosts [Jo Liss]
* #603: `Rack::Test` now preserves the original referer URL when following a
2012-01-10 17:00:21 +00:00
redirect [Rob van Dijk]
2012-01-20 12:25:38 +00:00
* Rack::Test now does not send a referer when calling `visit` multiple times
[Jo Liss]
2012-03-07 15:12:18 +00:00
* Exceptions during server boot now propagate to main thread [James Tucker]
2012-07-12 14:13:51 +00:00
* RSpec integration now cleans up before the test instead of after [Darwin]
* If `respect_data_method` is true, the data-method attribute can be capitalized
[Marco Antonio]
* Rack app boot timing out raises an error as opposed to just logging to STDOUT
[Adrian Irving-Beer]
* `#source` returns an empty string instead of nil if no pages have been visited
[Jonas Nicklas]
* Ignore first leading newline in textareas in RackTest [Vitalii Khustochka]
* `within_frame` returns the value of the given block [Alistair Hutchison]
* Running `Node.set` on text fields will not trigger more than one change event
[Andrew Kasper]
2012-07-13 13:46:43 +00:00
* Throw an error when an option is given to a finder method, like `all` or
`has_selector?` which Capybara doesn't understand [Jonas Nicklas]
* Two references to the node now register as equal when comparing them with `==`
[Jonas Nicklas]
* `has_text` (`has_content`) now accepts non-string arguments, like numbers.
[Jo Liss]
* `has_text` and `text` now correctly normalize Unicode whitespace, such as
`&nbsp;`. [Jo Liss]
* RackTest allows protocol relative URLs [Jonas Nicklas]
* Arguments are cast to string where necessary, so that e.g. `click_link(:foo)` works
as expected. [Jonas Nicklas]
* `:count => 0` now works as expected [Jarl Friis]
* Fixed race conditions on negative assertions when removing nodes [Jonas Nicklas]
2012-11-28 09:51:57 +00:00
# Version 1.1.4
Release date: 2012-11-28
### Fixed
* Fix more race conditions on negative assertions. [Jonas Nicklas]
2012-11-05 09:38:47 +00:00
# Version 1.1.3
Release date: 2012-10-30
### Fixed:
* RackTest driver ignores leading newline in textareas, this is consistent with
the spec and how browsers behave. [Vitalii Khustochka]
* Nodes found via `all` and `first` are never reloaded. This fixes issues where
a node would sometimes magically turn into a completely different node.
[Jonas Nicklas]
* Fix race conditions on negative assertions. This fixes issues where removing
an element and asserting on its non existence could cause
StaleElementReferenceError and similar to be thrown. [Jonas Nicklas]
* Options are no longer lost when reloading elements. This fixes issues where
reloading an element would cause a non-matching element to be found, because
options to `find` were ignored. [Jonas Nicklas]
2012-01-04 17:15:18 +00:00
# Version 1.1.2
Release date: 2011-11-15
### Fixed
* #541: Make attach_file work with selenium-webdriver >=2.12 [Jonas Nicklas]
2011-08-30 09:32:53 +00:00
# Version 1.1.0
2011-09-02 14:36:10 +00:00
Release date: 2011-09-02
2011-08-30 09:32:53 +00:00
### Fixed
* Sensible inspect for Capybara::Session [Jo Liss]
* Fix headers and host on redirect [Matt Colyer, Jonas Nicklas, Kim Burgestrand]
* using_driver now restores the old driver instead of reverting to the default [Carol Nichols]
* Errors when following links relative to the root path under rack-test [Jonas Nicklas, Kim Burgestrand]
* Make sure exit codes are propagated properly [Edgar Beigarts]
### Changed
* resynchronization is off by default under Selenium
### Added
* Elements are automatically reloaded (including parents) during wait [Jonas Nicklas]
* Rescue driver specific element errors, such as the dreaded ObsoleteElementError and retry [Jonas Nicklas]
* Raise an error if something has frozen time [Jonas Nicklas]
* Allow within to take a node instead of a selector [Peter Williams]
* Using wait_time_time to change wait time for a block of code [Jonas Nicklas, Kim Burgestrand]
* Option for rack-test driver to disable data-method hack [Jonas Nicklas, Kim Burgestrand]
2011-08-12 12:09:08 +00:00
# Version 1.0.1
Release date: 2011-08-12
### Fixed
* Dependend on selenium-webdriver ~>2.0 and fix deprecations [Thomas Walpole, Jo Liss]
* Depend on Launch 2.0 [Jeremy Hinegardner]
* Rack-Test ignores fill in on fields with maxlength=""
# Version 1.0.0
2011-06-14 12:08:56 +00:00
Release date: 2011-06-14
2011-02-11 13:47:01 +00:00
### Added
2011-04-11 06:09:18 +00:00
* Added DSL for acceptance tests, inspired by Luismi Cavallé's Steak [Luismi Cavalle and Jonas Nicklas]
* Selenium driver automatically waits for AJAX requests to finish [mgiambalvo, Nicklas Ramhöj and Jonas Nicklas]
2011-04-11 06:09:18 +00:00
* Support for switching between multiple named sessions [Tristan Dunn]
* failure_message can be specified for Selectors [Jonas Nicklas]
* RSpec matchers [David Chelimsky and Jonas Nicklas]
* Added save_page to save tempfile without opening in browser [Jeff Kreeftmeijer]
* Cucumber now switches automatically to a registered driver if the tag matches the name [Jonas Nicklas]
* Added Session#text [Jonas Nicklas and Scott Cytacki]
* Added Session#html as an alias for Session#body [Jo Liss]
* Added Session#current_host method [Jonas Nicklas]
2011-04-25 09:39:27 +00:00
* Buttons can now be clicked by title [Javier Martin]
* :headers option for RackTest driver to set custom HTTP headers [Jonas Nicklas]
2011-04-11 06:09:18 +00:00
### Removed
* Culerity and Celerity drivers have been removed and split into separate gems [Gabriel Sobrinho]
### Deprecated
* `include Capybara` has been deprecated in favour of `include Capybara::DSL` [Jonas Nicklas]
2011-02-11 13:47:01 +00:00
### Changed
2011-04-11 06:09:18 +00:00
* Rack test driver class has been renamed from Capybara::Driver::RackTest to Capybara::RackTest::Driver [Jonas Nicklas]
* Selenium driver class has been renamed from Capybara::Driver::Selenium to Capybara::Selenium::Driver [Jonas Nicklas]
2011-02-11 13:47:01 +00:00
* Capybara now prefers visible elements over hidden elements, disable by setting Capybara.prefer_visible_elements = false [Jonas Nicklas and Nicklas Ramhöj]
2011-03-14 14:27:46 +00:00
* For RSpec, :type => :request is now supported (and preferred over :acceptance) [Jo Liss]
2011-04-11 06:09:18 +00:00
* Selenium driver tried to wait for AJAX requests to finish before proceeding [Jonas Nicklas and Nicklas Ramhöj]
* Session no longer uses method missing, uses explicit delegates instead [Jonas Nicklas]
2011-04-11 06:09:18 +00:00
### Fixed
* The Rack::Test driver now respects maxlength on text fields [Guilherme Carvalho]
2011-04-11 06:09:18 +00:00
* Allow for more than one save_and_open_page call per second [Jo Liss]
* Automatically convert options to :count, :minimum, :maximum, etc. to integers [Keith Marcum]
* Rack::Test driver honours maxlength on input fields [Guilherme Carvalho]
* Rack::Test now works as expected with domains and subdomains [Jonas Nicklas]
* Session is reset more thoroughly between tests. [Jonas Nicklas]
2011-04-25 09:39:27 +00:00
* Raise error when uploading non-existant file [Jonas Nicklas]
2011-06-14 11:59:45 +00:00
* Rack reponse body should respond to #each [Piotr Sarnacki]
* Deprecation warnings with selenium webdriver 0.2.0 [Aaron Gibraltar]
* Selenium Chrome no longer YELLS tagname [Carl Jackson & David W. Frank]
* Capybara no longer strips encoding before sending to Rack [Jonas Nicklas]
* Improve handling of relative URLs [John Barton]
* Readd and fix build_rack_mock_session [Jonas Nicklas, Jon Leighton]
# Version 0.4.1
Release date: 2011-01-21
### Added
2011-01-09 13:17:12 +00:00
* New click_on alias for click_link_or_button, shorter yet unambiguous. [Jonas Nicklas]
* Finders now accept :visible => false which will find all elements regardless of Capybara.ignore_hidden_elements [Jonas Nicklas]
* Configure how the server is started via Capybara.server { |app, port| ... }. [John Firebough]
* Added :between, :maximum and :minimum options to has_selector and friends [James B. Byrne]
* New Capybara.string util function which allows matchers on arbitrary strings, mostly for helper and view specs [David Chelimsky and Jonas Nicklas]
* Server boot timeout is now configurable, via Capybara.server_boot_timeout [Adam Cigánek]
* Built in support for RSpec [Jonas Nicklas]
* Capybara.using_driver to switch to a different driver temporarily [Jeff Kreeftmeijer]
* Added Session#first which is somewhat speedier than Session#all, use it internally for speed boost [John Firebaugh]
### Changed
* Session#within now accepts the same arguments as other finders, like Session#all and Session#find [Jonas Nicklas]
### Removed
* All deprecations from 0.4.0 have been removed. [Jonas Nicklas]
### Fixed
* Don't mangle URLs in save_and_open_page when using self-closing tags [Adam Spiers]
* Catch correct error when server boot times out [Jonas Nicklas]
* Celerity driver now properly passes through options, making it configurable [Jonas Nicklas]
* Better implementation of attributes in C[ue]lerity, should fix issues with attributes with strange names [Jonas Nicklas]
* Session#find no longer swallows errors [Jonas Nicklas]
* Fix problems with multiple file inputs [Philip Arndt]
* Submit multipart forms as multipart under rack-test even if they contain no files [Ryan Kinderman]
* Matchers like has_select? and has_checked_field? now work with dynamically changed values [John Firebaugh]
2011-01-21 16:25:05 +00:00
* Preserve order of rack params [Joel Chippindale]
* RackTest#reset! is more thorough [Joel Chippindale]
2010-10-22 15:03:59 +00:00
# Version 0.4.0
Release date: 2010-10-22
### Changed
* The Selector API was changed slightly, use Capybara.add_selector, see README
### Fixed
* Celerity driver is registered properly
* has_selector? and has_no_selector? added to DSL
* Multiple selects return correct values under C[cu]lerity
* Naked query strings are handled correctly by rack-test
2010-08-20 13:04:45 +00:00
# Version 0.4.0.rc
2010-10-12 11:34:35 +00:00
Release date: 2010-10-12
2010-08-20 13:04:45 +00:00
### Changed
* within and find/locate now follow the XPath spec in that //foo finds all nodes in the document, instead of
only for the context node. See this post for details: http://groups.google.com/group/ruby-capybara/browse_thread/thread/b129067979df21b3
* within now executes within the first found instance of the selector, not in all of them
* find now waits for AJAX requests and raises an exception when the element is not found (same as locate used to do)
* The default selector is now CSS, not XPath
### Deprecated
* Session#click has been renamed click_link_or_button and the old click has been deprecated
* Node#node has been renamed native
* Node#locate is deprecated in favor of Node#find, which now behaves identically
2010-10-12 11:32:50 +00:00
* Session#drag is deprecated, please use Node#drag_to(other_node) instead
2010-08-20 13:04:45 +00:00
### Added
2010-10-12 11:32:50 +00:00
* Pretty much everything is properly documented now
2010-08-20 13:04:45 +00:00
* It's now possible to call all session methods on nodes, like `find('#foo').fill_in(...)`
* Custom selectors can be added with Capybara::Selector.add
* The :id selector is added by default, use it lile `find(:id, 'foo')` or `find(:foo)`
2010-10-12 11:32:50 +00:00
* Added Node#has_selector? so any kind of selector can be queried.
2010-08-20 13:04:45 +00:00
* Added Capybara.configure for less wordy configuration
2010-10-12 11:32:50 +00:00
* Added within_window to switch between different windows (currently Selenium only)
* Capybara.server_port to provide a fixed port if wanted (defaults to automatic selection)
2010-08-20 13:04:45 +00:00
### Fixed
* CSS selectors with multiple selectors, such as "h1, h2" now work correctly
* Port is automatically assigned instead of guessing
* Strip encodings in rack-test, no more warnings!
2010-08-21 14:36:42 +00:00
* RackTest no longer submits disabled fields
2010-10-12 11:32:50 +00:00
* Servers no longer output annoying debug information when started
* TCP port selection is left to Ruby to decide, no more port guessing
* Select boxes now return option value instead of text if present
* The default has been changed from localhost to 127.0.0.1, should fix some obscure selenium bugs
* RackTest now supports complex field names, such as foo[bar][][baz]
2010-08-20 13:04:45 +00:00
2010-06-29 22:22:29 +00:00
# Version 0.3.9
2010-08-20 13:04:45 +00:00
Release date: 2010-07-03
2010-06-29 22:22:29 +00:00
### Added
* status_code which returns the HTTP status code of the last response (no Selenium!)
* Capybara.save_and_open_page to store tempfiles
2010-07-03 19:01:54 +00:00
* RackTest and Culerity drivers now clean up after themselves properly
2010-06-29 22:22:29 +00:00
### Fixed
* When no rack app is set and the app is called, a more descriptive error is raised
* select now works with optgroups
* Don't submit image buttons unless they were clicked under rack-test
* Support custom field types under Selenium
* Support input fields without a type, treat them as though they were text fields
* Redirect now throws an error after 5 redirects, as per RFC
* Selenium now properly raises an error when Node#trigger is called
* Node#value now returns the correct value for textareas under rack-test
2010-05-12 14:45:11 +00:00
# Version 0.3.8
Release date: 2010-05-12
### Added
* Within_frame method to execute a block of code within a particular iframe (Selenium only!)
### Fixed
* Single quotes are properly escaped with `select` under rack-test and Selenium.
* The :text option for searches now escapes regexp special characters when a string is given.
* Selenium now correctly checks already checked checkboxes (same with uncheck)
* Timing issue which caused Selenium to hang under certain circumstances.
* Selenium now resolves attributes even if they are given as a Symbol
# Version 0.3.7
2010-04-09 15:14:56 +00:00
Release date: 2010-04-09
This is a drop in compatible maintainance release. It's mostly
important for driver authors.
### Added
* RackTest scans for data-method which rails3 uses to change the request method
### Fixed
* Don't hang when starting server on Windoze
### Changed
* The driver and session specs are now located inside lib! Driver authors can simply require them.
2010-03-22 23:49:14 +00:00
# Version 0.3.6
Release date: 2010-03-22
This is a maintainance release with minor bug fixes, should be
drop in compatible.
### Added
* It's now possible to load in external drivers
### Fixed
* has_content? ignores whitespace
* Trigger events when choosing radios and checking checkboxes under Selenium
* Make Capybara.app totally optional when running without server
* Changed fallback host so it matches the one set up by Rails' integration tests
2010-02-26 17:52:28 +00:00
# Version 0.3.5
Release date: 2010-02-26
This is a mostly backwards compatible release, it does break
the API in some minor places, which should hopefully not affect
too many users, please read the release notes carefully!
### Breaking
* Relative searching in a node (e.g. find('//p').all('//a')) will now follow XPath standard
this means that if you want to find descendant nodes only, you'll need to prefix a dot!
* `visit` now accepts fully qualified URLs for drivers that support it.
* Capybara will always try to run a rack server, unless you set Capybara.run_sever = false
### Changed
* thin is preferred over mongrel and webrick, since it is Ruby 1.9 compatible
* click_button and click will find <input type="button">, clicking them does nothing in RackTest
### Added
* Much improved error messages in a multitude of places
* More semantic page querying with has_link?, has_button?, etc...
* Option to ignore hidden elements when querying and interacting with the page
* Support for multiple selects
### Fixed
* find_by_id is no longer broken
* clicking links where the image's alt attribute contains the text is now possible
* within_fieldset and within_table work when the default selector is CSS
* boolean attributes work the same across drivers (return true/false)
2009-11-04 22:00:05 +00:00