For SVG elements getClientRects is returning an empty list. This makes
it seem like the webkit engine in my QT is version not at least
respecting the CSSOM spec. Making it use getBoundingClientRect only for
SVG elements ensures backwards compatibility.
We're not completely compatible with the release, as Node#send_keys
implementation is missing. However, we're going to release this so that
people can get started with Capybara 2.5 today.
Users were generally confused about where to configure things like
allowed URLs. Because they were reset in between each sessions, they
needed to be applied repeatedly in a before block.
This introduces an API for global configuration, which will be applied
for every session. It also deprecates the per-session configuration
methods, as those are less likely to be useful.
We attempted to track in-progress replies and abort them in 1.5.1.
However, sometimes these replies are destroyed unexpectedly, so
attempting to abort them raises errors.
This commit tracks when replies are destroyed and removes them from the
queue of in-progress replies.
We currently expose some functionality through internal classes,
particularly going through `driver.browser`. With this change,
everything except the public Capybara API and a few extensions on our
`Driver` class becomes deprecated.
We disabled caching entirely, because it sometimes led to unexpected
behavior in tests, and Qt 4.8 didn't behave the same as Qt 5.x.
However, this introduced issues:
* Selenium does perform caching, so capybara-webkit behaved differently
when switching drivers
* Without any caching, assets were sometimes requested twice for the
same page
This commit re-enables caching and attempts to improve the way we behave
on cached pages so that testing is less unpredictable. It adds tests to
ensure we continue to behave similarly to Selenium.
Because:
* SocketDebugger is less useful than debug logging in the driver
* SocketDebugger has been broken for several releases and is unused
* The socket_class option was only used for injecting SocketDebugger
This commit:
* Removes the SocketDebugger class
* Deprecates the socket_class option
If an Ajax request finished after a `reset` triggered an alert, a native
alert pops up. Additionally, the next request to the driver after the
native alert will crash the webkit process.
HTTP response header field values are allowed to contain separators
(which includes the colon) as long as they appear within quotes
(http://www.w3.org/Protocols/rfc2616/rfc2616-sec2.html#sec2.2). This
commit enables `Browser#response_headers` to handle a field value that
contains a colon followed by a space (i.e., ": ") without breaking.
This spec was randomly failing because it would sometimes take longer
than the fixed, 1-second sleep we had in place. This changes it to wait
up to 3 seconds, without sleeping longer than it needs to.
- `cin` and `cout` require iostream.
- `QT_VERSION` requires QtGlobal.
- `QSocketNotifier` requires QSocketNotifier.
- Unrelated to includes: let Qt figure out the spec.
Found by Jeremy Evans on behalf of the OpenBSD project.
Pages and assets should not be retrieved from the cache. This leads to
unexpected results in testing. Also, the raw content of cached objects
and pages cannot be retrieved.