summaryrefslogtreecommitdiffstats
path: root/webkit/support/weburl_loader_mock_factory.cc
diff options
context:
space:
mode:
authorjaphet@chromium.org <japhet@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-08-03 21:45:29 +0000
committerjaphet@chromium.org <japhet@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-08-03 21:45:29 +0000
commit55e82fc8e798a84a3ef0c4423070f593058a3da3 (patch)
treebaaebe55bef510a96062610e46736ddeb57239fd /webkit/support/weburl_loader_mock_factory.cc
parent1e53f1bed6e58dcfe871a2a1b0626776cc22a873 (diff)
downloadchromium_src-55e82fc8e798a84a3ef0c4423070f593058a3da3.zip
chromium_src-55e82fc8e798a84a3ef0c4423070f593058a3da3.tar.gz
chromium_src-55e82fc8e798a84a3ef0c4423070f593058a3da3.tar.bz2
Add support for mocking failed loads to WebURLLoaderMock.
This is necessary to write a unit test for https://bugs.webkit.org/show_bug.cgi?id=91685 BUG=none TEST=none R=tony Review URL: https://chromiumcodereview.appspot.com/10821019 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@149931 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'webkit/support/weburl_loader_mock_factory.cc')
-rw-r--r--webkit/support/weburl_loader_mock_factory.cc21
1 files changed, 20 insertions, 1 deletions
diff --git a/webkit/support/weburl_loader_mock_factory.cc b/webkit/support/weburl_loader_mock_factory.cc
index b3d3fdd..d60be9c 100644
--- a/webkit/support/weburl_loader_mock_factory.cc
+++ b/webkit/support/weburl_loader_mock_factory.cc
@@ -50,14 +50,28 @@ void WebURLLoaderMockFactory::RegisterURL(const WebURL& url,
url_to_reponse_info_[url] = response_info;
}
+
+void WebURLLoaderMockFactory::RegisterErrorURL(const WebURL& url,
+ const WebURLResponse& response,
+ const WebURLError& error) {
+ DCHECK(url_to_reponse_info_.find(url) == url_to_reponse_info_.end());
+ RegisterURL(url, response, WebString());
+ url_to_error_info_[url] = error;
+}
+
void WebURLLoaderMockFactory::UnregisterURL(const WebKit::WebURL& url) {
URLToResponseMap::iterator iter = url_to_reponse_info_.find(url);
DCHECK(iter != url_to_reponse_info_.end());
url_to_reponse_info_.erase(iter);
+
+ URLToErrorMap::iterator error_iter = url_to_error_info_.find(url);
+ if (error_iter != url_to_error_info_.end())
+ url_to_error_info_.erase(error_iter);
}
void WebURLLoaderMockFactory::UnregisterAllURLs() {
url_to_reponse_info_.clear();
+ url_to_error_info_.clear();
}
void WebURLLoaderMockFactory::ServeAsynchronousRequests() {
@@ -129,6 +143,11 @@ void WebURLLoaderMockFactory::LoadRequest(const WebURLRequest& request,
WebURLResponse* response,
WebURLError* error,
WebData* data) {
+ URLToErrorMap::const_iterator error_iter =
+ url_to_error_info_.find(request.url());
+ if (error_iter != url_to_error_info_.end())
+ *error = error_iter->second;
+
URLToResponseMap::const_iterator iter =
url_to_reponse_info_.find(request.url());
if (iter == url_to_reponse_info_.end()) {
@@ -137,7 +156,7 @@ void WebURLLoaderMockFactory::LoadRequest(const WebURLRequest& request,
return;
}
- if (!ReadFile(iter->second.file_path, data)) {
+ if (!error->reason && !ReadFile(iter->second.file_path, data)) {
NOTREACHED();
return;
}