summaryrefslogtreecommitdiffstats
path: root/chrome/browser/net
diff options
context:
space:
mode:
authorphajdan.jr@chromium.org <phajdan.jr@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-08-27 15:20:52 +0000
committerphajdan.jr@chromium.org <phajdan.jr@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-08-27 15:20:52 +0000
commit07eb0c01b2d522bb12104a1a079ce352b034f6ec (patch)
tree3e96c8c8e1381a605fa44533c5edc27b056b08e5 /chrome/browser/net
parent65e3abbad1e5d111675658f1df562c40389bbda5 (diff)
downloadchromium_src-07eb0c01b2d522bb12104a1a079ce352b034f6ec.zip
chromium_src-07eb0c01b2d522bb12104a1a079ce352b034f6ec.tar.gz
chromium_src-07eb0c01b2d522bb12104a1a079ce352b034f6ec.tar.bz2
Mock the LinkDoctor for tests. Should greatly decrease ErrorPage test flakiness.
Not getting rid of WaitForTitleMatching because I have to add few more calls to the automation framework (http://crbug.com/19395) to wait properly after navigating back and forward. TEST=Covered by ui_tests and browser_tests. http://crbug.com/18365, http://crbug.com/19361 Review URL: http://codereview.chromium.org/174179 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@24606 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/net')
-rw-r--r--chrome/browser/net/url_request_mock_link_doctor_job.cc40
-rw-r--r--chrome/browser/net/url_request_mock_link_doctor_job.h23
-rw-r--r--chrome/browser/net/url_request_mock_util.cc2
3 files changed, 65 insertions, 0 deletions
diff --git a/chrome/browser/net/url_request_mock_link_doctor_job.cc b/chrome/browser/net/url_request_mock_link_doctor_job.cc
new file mode 100644
index 0000000..88ef438
--- /dev/null
+++ b/chrome/browser/net/url_request_mock_link_doctor_job.cc
@@ -0,0 +1,40 @@
+// Copyright (c) 2009 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "chrome/browser/net/url_request_mock_link_doctor_job.h"
+
+#include "base/path_service.h"
+#include "chrome/browser/google_util.h"
+#include "chrome/common/chrome_paths.h"
+#include "googleurl/src/gurl.h"
+#include "net/url_request/url_request_filter.h"
+
+namespace {
+
+FilePath GetMockFilePath() {
+ FilePath test_dir;
+ bool success = PathService::Get(chrome::DIR_TEST_DATA, &test_dir);
+ DCHECK(success);
+ return test_dir.AppendASCII("mock-link-doctor.html");
+}
+
+} // namespace
+
+/* static */
+URLRequestJob* URLRequestMockLinkDoctorJob::Factory(URLRequest* request,
+ const std::string& scheme) {
+ return new URLRequestMockLinkDoctorJob(request);
+}
+
+/* static */
+void URLRequestMockLinkDoctorJob::AddUrlHandler() {
+ URLRequestFilter* filter = URLRequestFilter::GetInstance();
+ filter->AddHostnameHandler("http",
+ GURL(google_util::kLinkDoctorBaseURL).host(),
+ URLRequestMockLinkDoctorJob::Factory);
+}
+
+URLRequestMockLinkDoctorJob::URLRequestMockLinkDoctorJob(URLRequest* request)
+ : URLRequestMockHTTPJob(request, GetMockFilePath()) {
+}
diff --git a/chrome/browser/net/url_request_mock_link_doctor_job.h b/chrome/browser/net/url_request_mock_link_doctor_job.h
new file mode 100644
index 0000000..74fd00e
--- /dev/null
+++ b/chrome/browser/net/url_request_mock_link_doctor_job.h
@@ -0,0 +1,23 @@
+// Copyright (c) 2009 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+//
+// A URLRequestJob class that substitutes LinkDoctor requests.
+
+#ifndef CHROME_BROWSER_NET_URL_REQUEST_MOCK_LINK_DOCTOR_JOB_H_
+#define CHROME_BROWSER_NET_URL_REQUEST_MOCK_LINK_DOCTOR_JOB_H_
+
+#include "chrome/browser/net/url_request_mock_http_job.h"
+
+class URLRequestMockLinkDoctorJob : public URLRequestMockHTTPJob {
+ public:
+ URLRequestMockLinkDoctorJob(URLRequest* request);
+ virtual ~URLRequestMockLinkDoctorJob() { }
+
+ static URLRequest::ProtocolFactory Factory;
+
+ // Adds the testing URLs to the URLRequestFilter.
+ static void AddUrlHandler();
+};
+
+# endif // CHROME_BROWSER_NET_URL_REQUEST_MOCK_LINK_DOCTOR_JOB_H_
diff --git a/chrome/browser/net/url_request_mock_util.cc b/chrome/browser/net/url_request_mock_util.cc
index 9a559b1..680ed1d 100644
--- a/chrome/browser/net/url_request_mock_util.cc
+++ b/chrome/browser/net/url_request_mock_util.cc
@@ -10,6 +10,7 @@
#include "chrome/browser/chrome_thread.h"
#include "chrome/browser/net/url_request_failed_dns_job.h"
#include "chrome/browser/net/url_request_mock_http_job.h"
+#include "chrome/browser/net/url_request_mock_link_doctor_job.h"
#include "chrome/browser/net/url_request_slow_download_job.h"
#include "chrome/browser/net/url_request_slow_http_job.h"
#include "chrome/common/chrome_paths.h"
@@ -26,6 +27,7 @@ void SetUrlRequestMocksEnabled(bool enabled) {
URLRequestFilter::GetInstance()->ClearHandlers();
URLRequestFailedDnsJob::AddUrlHandler();
+ URLRequestMockLinkDoctorJob::AddUrlHandler();
URLRequestSlowDownloadJob::AddUrlHandler();
std::wstring root_http;