diff options
author | japhet@chromium.org <japhet@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-08-03 21:45:29 +0000 |
---|---|---|
committer | japhet@chromium.org <japhet@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-08-03 21:45:29 +0000 |
commit | 55e82fc8e798a84a3ef0c4423070f593058a3da3 (patch) | |
tree | baaebe55bef510a96062610e46736ddeb57239fd /webkit/support/weburl_loader_mock_factory.cc | |
parent | 1e53f1bed6e58dcfe871a2a1b0626776cc22a873 (diff) | |
download | chromium_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.cc | 21 |
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; } |