capybara-webkit/src
Joe Ferris aeafb90498 Make caching behavior more like Selenium
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.
2015-05-15 10:32:22 -04:00
..
AcceptAlert.cpp Implement modal (confirm, prompt and alert) API 2014-07-13 19:09:02 -04:00
AcceptAlert.h Implement modal (confirm, prompt and alert) API 2014-07-13 19:09:02 -04:00
AllowUrl.cpp Introduce allowed, blocked URL filters 2014-12-05 12:48:03 -05:00
AllowUrl.h Introduce allowed, blocked URL filters 2014-12-05 12:48:03 -05:00
Authenticate.cpp Allow multiple basic auths in one session 2015-04-13 13:05:30 -04:00
Authenticate.h Split Command into more abstract Command and concrete SocketCommand 2012-07-08 12:04:30 -07:00
BlacklistedRequestHandler.cpp Reset allowed/blocked URLs between specs 2014-12-08 11:35:38 -05:00
BlacklistedRequestHandler.h Reset allowed/blocked URLs between specs 2014-12-08 11:35:38 -05:00
BlockUrl.cpp Introduce allowed, blocked URL filters 2014-12-05 12:48:03 -05:00
BlockUrl.h Introduce allowed, blocked URL filters 2014-12-05 12:48:03 -05:00
Body.h Split Command into more abstract Command and concrete SocketCommand 2012-07-08 12:04:30 -07:00
ClearCookies.cpp Rename Command::emitFinished to finish 2013-02-11 18:31:41 -05:00
ClearCookies.h Split Command into more abstract Command and concrete SocketCommand 2012-07-08 12:04:30 -07:00
ClearPromptText.cpp Rename Command::emitFinished to finish 2013-02-11 18:31:41 -05:00
ClearPromptText.h Control JavaScript confirmation dialogs from Ruby 2012-07-13 10:12:49 -07:00
Command.cpp Rename Command::emitFinished to finish 2013-02-11 18:31:41 -05:00
Command.h Rename Command::emitFinished to finish 2013-02-11 18:31:41 -05:00
CommandFactory.cpp Introduce allowed, blocked URL filters 2014-12-05 12:48:03 -05:00
CommandFactory.h Pass the WebPageManager to each command 2012-05-29 22:23:02 -04:00
CommandParser.cpp Replace QString::toAscii with QString::toLatin1 2013-03-11 20:35:31 -04:00
CommandParser.h CommandParser accepts a CommandFactory and emits a Command 2012-03-21 19:30:43 -04:00
Connection.cpp Delete pending commands on reset 2014-07-17 09:39:26 -04:00
Connection.h Delete pending commands on reset 2014-07-17 09:39:26 -04:00
ConsoleMessages.cpp Rename Command::emitFinished to finish 2013-02-11 18:31:41 -05:00
ConsoleMessages.h Split Command into more abstract Command and concrete SocketCommand 2012-07-08 12:04:30 -07:00
CurrentUrl.cpp Rename Command::emitFinished to finish 2013-02-11 18:31:41 -05:00
CurrentUrl.h Remove Qt 4.7 compatibility code from CurrentUrl 2012-11-30 21:38:56 -05:00
CustomHeadersRequestHandler.cpp Extract handle classes from NetworkAccessManager 2014-11-24 09:52:34 -05:00
CustomHeadersRequestHandler.h Extract handle classes from NetworkAccessManager 2014-11-24 09:52:34 -05:00
EnableLogging.cpp Rename Command::emitFinished to finish 2013-02-11 18:31:41 -05:00
EnableLogging.h Split Command into more abstract Command and concrete SocketCommand 2012-07-08 12:04:30 -07:00
ErrorMessage.cpp Instantiate errors in capybara-webkit 2013-05-21 21:48:38 +04:00
ErrorMessage.h Serialize errors as JSON 2013-02-11 00:04:35 -05:00
Evaluate.cpp Rename Command::emitFinished to finish 2013-02-11 18:31:41 -05:00
Evaluate.h Extract JSON serializer 2013-01-03 13:26:59 -05:00
Execute.cpp Rename Command::emitFinished to finish 2013-02-11 18:31:41 -05:00
Execute.h Split Command into more abstract Command and concrete SocketCommand 2012-07-08 12:04:30 -07:00
FindCss.cpp Check node index atomically to prevent race condition 2013-12-06 10:43:17 -05:00
FindCss.h Remove duplication from Javascript error handling 2013-02-25 21:24:22 -05:00
FindModal.cpp Remove modal messages from modal message list 2014-10-05 17:47:23 -04:00
FindModal.h Remove modal messages from modal message list 2014-10-05 17:47:23 -04:00
FindXpath.cpp Check node index atomically to prevent race condition 2013-12-06 10:43:17 -05:00
FindXpath.h Rename Find command to FindXpath 2013-02-26 15:19:18 -05:00
FrameFocus.cpp Rename Command::emitFinished to finish 2013-02-11 18:31:41 -05:00
FrameFocus.h Split Command into more abstract Command and concrete SocketCommand 2012-07-08 12:04:30 -07:00
GetCookies.cpp Rename Command::emitFinished to finish 2013-02-11 18:31:41 -05:00
GetCookies.h Split Command into more abstract Command and concrete SocketCommand 2012-07-08 12:04:30 -07:00
GetTimeout.cpp Rename Command::emitFinished to finish 2013-02-11 18:31:41 -05:00
GetTimeout.h Revert "Revert "Add configurable timeouts to commands."" 2012-10-24 07:55:29 -04:00
GetWindowHandle.cpp Rename Command::emitFinished to finish 2013-02-11 18:31:41 -05:00
GetWindowHandle.h Split Command into more abstract Command and concrete SocketCommand 2012-07-08 12:04:30 -07:00
GetWindowHandles.cpp Rename Command::emitFinished to finish 2013-02-11 18:31:41 -05:00
GetWindowHandles.h Split Command into more abstract Command and concrete SocketCommand 2012-07-08 12:04:30 -07:00
GoBack.cpp Update for Capybara 2.3.0 2014-07-01 20:36:42 -04:00
GoBack.h Update for Capybara 2.3.0 2014-07-01 20:36:42 -04:00
GoForward.cpp Update for Capybara 2.3.0 2014-07-01 20:36:42 -04:00
GoForward.h Update for Capybara 2.3.0 2014-07-01 20:36:42 -04:00
Header.cpp Extract handle classes from NetworkAccessManager 2014-11-24 09:52:34 -05:00
Header.h Split Command into more abstract Command and concrete SocketCommand 2012-07-08 12:04:30 -07:00
Headers.cpp Allow response header value to contain a colon 2015-04-13 11:38:35 -04:00
Headers.h Split Command into more abstract Command and concrete SocketCommand 2012-07-08 12:04:30 -07:00
IgnoreDebugOutput.cpp Include stdio.h in IgnoreDebugOutput 2013-12-24 18:42:28 -05:00
IgnoreDebugOutput.h Rewrite qInstallMsgHandler test in C++ 2013-11-10 16:52:01 -05:00
IgnoreSslErrors.cpp Rename Command::emitFinished to finish 2013-02-11 18:31:41 -05:00
IgnoreSslErrors.h Split Command into more abstract Command and concrete SocketCommand 2012-07-08 12:04:30 -07:00
InvocationResult.cpp Check node index atomically to prevent race condition 2013-12-06 10:43:17 -05:00
InvocationResult.h Serialize errors as JSON 2013-02-11 00:04:35 -05:00
JavascriptAlertMessages.cpp Rename Command::emitFinished to finish 2013-02-11 18:31:41 -05:00
JavascriptAlertMessages.h Control JavaScript confirmation dialogs from Ruby 2012-07-13 10:12:49 -07:00
JavascriptCommand.cpp Remove return from JavascriptCommand finish 2013-02-26 15:19:18 -05:00
JavascriptCommand.h Remove duplication from Javascript error handling 2013-02-25 21:24:22 -05:00
JavascriptConfirmMessages.cpp Rename Command::emitFinished to finish 2013-02-11 18:31:41 -05:00
JavascriptConfirmMessages.h Control JavaScript confirmation dialogs from Ruby 2012-07-13 10:12:49 -07:00
JavascriptInvocation.cpp Check node index atomically to prevent race condition 2013-12-06 10:43:17 -05:00
JavascriptInvocation.h Check node index atomically to prevent race condition 2013-12-06 10:43:17 -05:00
JavascriptPromptMessages.cpp Rename Command::emitFinished to finish 2013-02-11 18:31:41 -05:00
JavascriptPromptMessages.h Control JavaScript confirmation dialogs from Ruby 2012-07-13 10:12:49 -07:00
JsonSerializer.cpp Infinity returns null when serialized 2013-01-03 13:26:59 -05:00
JsonSerializer.h JsonSerializer returns QByteArray 2013-01-03 13:26:59 -05:00
MissingContentHeaderRequestHandler.cpp Extract handle classes from NetworkAccessManager 2014-11-24 09:52:34 -05:00
MissingContentHeaderRequestHandler.h Extract handle classes from NetworkAccessManager 2014-11-24 09:52:34 -05:00
NetworkAccessManager.cpp Extract handle classes from NetworkAccessManager 2014-11-24 09:52:34 -05:00
NetworkAccessManager.h Extract handle classes from NetworkAccessManager 2014-11-24 09:52:34 -05:00
NetworkCookieJar.cpp adds cookie management functions to Webkit::Browser 2011-09-30 11:47:21 -04:00
NetworkCookieJar.h adds cookie management functions to Webkit::Browser 2011-09-30 11:47:21 -04:00
NetworkReplyProxy.cpp Driver#html returns raw data for non-HTML content 2013-03-11 23:50:48 -04:00
NetworkReplyProxy.h Driver#html returns raw data for non-HTML content 2013-03-11 23:50:48 -04:00
NetworkRequestFactory.cpp Extract handle classes from NetworkAccessManager 2014-11-24 09:52:34 -05:00
NetworkRequestFactory.h Extract handle classes from NetworkAccessManager 2014-11-24 09:52:34 -05:00
NoOpReply.cpp Extract handle classes from NetworkAccessManager 2014-11-24 09:52:34 -05:00
NoOpReply.h Extract handle classes from NetworkAccessManager 2014-11-24 09:52:34 -05:00
Node.cpp Check node index atomically to prevent race condition 2013-12-06 10:43:17 -05:00
Node.h Remove duplication from Javascript error handling 2013-02-25 21:24:22 -05:00
NullCommand.cpp Rename Command::emitFinished to finish 2013-02-11 18:31:41 -05:00
NullCommand.h Split Command into more abstract Command and concrete SocketCommand 2012-07-08 12:04:30 -07:00
PageLoadingCommand.cpp Rename Command::emitFinished to finish 2013-02-11 18:31:41 -05:00
PageLoadingCommand.h PageLoadingCommand implements the Command interface 2012-07-08 12:05:50 -07:00
Render.cpp Better failure when screenshot doesn't save 2014-02-06 10:24:28 -05:00
Render.h Split Command into more abstract Command and concrete SocketCommand 2012-07-08 12:04:30 -07:00
RequestHandler.cpp Extract handle classes from NetworkAccessManager 2014-11-24 09:52:34 -05:00
RequestHandler.h Extract handle classes from NetworkAccessManager 2014-11-24 09:52:34 -05:00
Reset.cpp Update for Capybara 2.3.0 2014-07-01 20:36:42 -04:00
Reset.h Split Command into more abstract Command and concrete SocketCommand 2012-07-08 12:04:30 -07:00
Response.cpp Serialize errors as JSON 2013-02-11 00:04:35 -05:00
Response.h Serialize errors as JSON 2013-02-11 00:04:35 -05:00
Server.cpp Warn when using Qt 4 2015-04-10 13:28:14 -04:00
Server.h WebPageManager is no longer a singleton 2012-05-29 22:23:02 -04:00
SetConfirmAction.cpp Implement modal (confirm, prompt and alert) API 2014-07-13 19:09:02 -04:00
SetConfirmAction.h Control JavaScript confirmation dialogs from Ruby 2012-07-13 10:12:49 -07:00
SetCookie.cpp Replace QString::toAscii with QString::toLatin1 2013-03-11 20:35:31 -04:00
SetCookie.h Split Command into more abstract Command and concrete SocketCommand 2012-07-08 12:04:30 -07:00
SetPromptAction.cpp Implement modal (confirm, prompt and alert) API 2014-07-13 19:09:02 -04:00
SetPromptAction.h Control JavaScript confirmation dialogs from Ruby 2012-07-13 10:12:49 -07:00
SetPromptText.cpp Rename Command::emitFinished to finish 2013-02-11 18:31:41 -05:00
SetPromptText.h Control JavaScript confirmation dialogs from Ruby 2012-07-13 10:12:49 -07:00
SetProxy.cpp Share the NetworkAccessManager across WebPages 2013-03-18 08:14:35 -04:00
SetProxy.h Split Command into more abstract Command and concrete SocketCommand 2012-07-08 12:04:30 -07:00
SetSkipImageLoading.cpp Rename Command::emitFinished to finish 2013-02-11 18:31:41 -05:00
SetSkipImageLoading.h Split Command into more abstract Command and concrete SocketCommand 2012-07-08 12:04:30 -07:00
SetTimeout.cpp Rename Command::emitFinished to finish 2013-02-11 18:31:41 -05:00
SetTimeout.h Revert "Revert "Add configurable timeouts to commands."" 2012-10-24 07:55:29 -04:00
SetUnknownUrlMode.cpp Introduce allowed, blocked URL filters 2014-12-05 12:48:03 -05:00
SetUnknownUrlMode.h Introduce allowed, blocked URL filters 2014-12-05 12:48:03 -05:00
SetUrlBlacklist.cpp Extract handle classes from NetworkAccessManager 2014-11-24 09:52:34 -05:00
SetUrlBlacklist.h Extract handle classes from NetworkAccessManager 2014-11-24 09:52:34 -05:00
SocketCommand.cpp Update for Capybara 2.3.0 2014-07-01 20:36:42 -04:00
SocketCommand.h Update for Capybara 2.3.0 2014-07-01 20:36:42 -04:00
Status.cpp Rename Command::emitFinished to finish 2013-02-11 18:31:41 -05:00
Status.h Split Command into more abstract Command and concrete SocketCommand 2012-07-08 12:04:30 -07:00
StdinNotifier.cpp Include the code that we need 2015-03-27 16:17:44 -04:00
StdinNotifier.h Simplify shutdown logic for Connection 2014-07-02 12:14:16 -04:00
TimeoutCommand.cpp Instantiate errors in capybara-webkit 2013-05-21 21:48:38 +04:00
TimeoutCommand.h Don't redefine signal finished on TimeoutCommand 2012-11-21 11:32:24 -05:00
Title.cpp Implement Browser#title 2013-02-18 20:52:32 -05:00
Title.h Implement Browser#title 2013-02-18 20:52:32 -05:00
UnknownUrlHandler.cpp Do not consider data URIs unknown 2015-01-27 10:44:00 -05:00
UnknownUrlHandler.h Do not consider data URIs unknown 2015-01-27 10:44:00 -05:00
UnsupportedContentHandler.cpp Don't disconnect loadFinished in UnsupportedContentHandler 2012-12-05 21:05:36 -05:00
UnsupportedContentHandler.h Fix issues with Qt 4.8 2012-10-23 21:00:50 -04:00
Version.cpp Rename Command::emitFinished to finish 2013-02-11 18:31:41 -05:00
Version.h Add Driver#version to print version info 2013-02-07 10:29:53 -05:00
Visit.cpp Attempt to visit URLs with invalid characters 2013-11-10 17:06:03 -05:00
Visit.h Split Command into more abstract Command and concrete SocketCommand 2012-07-08 12:04:30 -07:00
WebPage.cpp Make caching behavior more like Selenium 2015-05-15 10:32:22 -04:00
WebPage.h Allow response header value to contain a colon 2015-04-13 11:38:35 -04:00
WebPageManager.cpp Make caching behavior more like Selenium 2015-05-15 10:32:22 -04:00
WebPageManager.h Fix native alerts from Ajax requests 2015-04-23 10:15:37 -04:00
WindowClose.cpp Update for Capybara 2.3.0 2014-07-01 20:36:42 -04:00
WindowClose.h Update for Capybara 2.3.0 2014-07-01 20:36:42 -04:00
WindowCommand.cpp Update for Capybara 2.3.0 2014-07-01 20:36:42 -04:00
WindowCommand.h Update for Capybara 2.3.0 2014-07-01 20:36:42 -04:00
WindowFocus.cpp Update for Capybara 2.3.0 2014-07-01 20:36:42 -04:00
WindowFocus.h Update for Capybara 2.3.0 2014-07-01 20:36:42 -04:00
WindowMaximize.cpp Make sure to include QDesktopWidget 2014-07-01 20:36:42 -04:00
WindowMaximize.h Update for Capybara 2.3.0 2014-07-01 20:36:42 -04:00
WindowOpen.cpp Update for Capybara 2.3.0 2014-07-01 20:36:42 -04:00
WindowOpen.h Update for Capybara 2.3.0 2014-07-01 20:36:42 -04:00
WindowResize.cpp Update for Capybara 2.3.0 2014-07-01 20:36:42 -04:00
WindowResize.h Update for Capybara 2.3.0 2014-07-01 20:36:42 -04:00
WindowSize.cpp Update for Capybara 2.3.0 2014-07-01 20:36:42 -04:00
WindowSize.h Update for Capybara 2.3.0 2014-07-01 20:36:42 -04:00
body.cpp Don't cast raw frame content to QString 2013-04-01 23:08:11 -04:00
capybara.js Fix returning invisible text on a hidden page 2015-01-20 17:06:39 -08:00
find_command.h Introduce allowed, blocked URL filters 2014-12-05 12:48:03 -05:00
main.cpp Simplify shutdown logic for Connection 2014-07-02 12:14:16 -04:00
pointer.png Render a mouse pointer when saving screenshots 2013-11-09 15:34:38 -05:00
stable.h Precompile headers 2013-03-11 22:28:21 -04:00
webkit_server.pro Introduce allowed, blocked URL filters 2014-12-05 12:48:03 -05:00
webkit_server.qrc Render a mouse pointer when saving screenshots 2013-11-09 15:34:38 -05:00