Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(951)

Unified Diff: chrome/browser/captive_portal/captive_portal_browsertest.cc

Issue 1223233002: Common Name Mismatch Handler For WWW Subdomain Mismatch case (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Resolving comments Created 5 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | chrome/browser/ssl/common_name_mismatch_handler.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/captive_portal/captive_portal_browsertest.cc
diff --git a/chrome/browser/captive_portal/captive_portal_browsertest.cc b/chrome/browser/captive_portal/captive_portal_browsertest.cc
index dd999a2fd787982b23df92d4ccae8953d7aecd60..bbe6452e9852f95a2841683d330eb4883d37cb36 100644
--- a/chrome/browser/captive_portal/captive_portal_browsertest.cc
+++ b/chrome/browser/captive_portal/captive_portal_browsertest.cc
@@ -54,7 +54,10 @@
#include "content/public/common/url_constants.h"
#include "content/public/test/browser_test_utils.h"
#include "net/base/net_errors.h"
+#include "net/base/test_data_directory.h"
+#include "net/cert/x509_certificate.h"
#include "net/http/transport_security_state.h"
+#include "net/test/cert_test_util.h"
#include "net/test/url_request/url_request_failed_job.h"
#include "net/test/url_request/url_request_mock_http_job.h"
#include "net/url_request/url_request.h"
@@ -144,7 +147,8 @@ class URLRequestTimeoutOnDemandJob : public net::URLRequestJob,
// Fails all active URLRequestTimeoutOnDemandJobs with SSL cert errors.
// |expected_num_jobs| behaves just as in FailJobs.
- static void FailJobsWithCertError(int expected_num_jobs);
+ static void FailJobsWithCertError(int expected_num_jobs,
+ const net::SSLInfo& ssl_info);
// Abandon all active URLRequestTimeoutOnDemandJobs. |expected_num_jobs|
// behaves just as in FailJobs.
@@ -169,9 +173,9 @@ class URLRequestTimeoutOnDemandJob : public net::URLRequestJob,
bool RemoveFromList();
static void WaitForJobsOnIOThread(int num_jobs);
- static void FailOrAbandonJobsOnIOThread(
- int expected_num_jobs,
- EndJobOperation end_job_operation);
+ static void FailOrAbandonJobsOnIOThread(int expected_num_jobs,
+ EndJobOperation end_job_operation,
+ const net::SSLInfo& ssl_info);
// Checks if there are at least |num_jobs_to_wait_for_| jobs in
// |job_list_|. If so, exits the message loop on the UI thread, which
@@ -239,18 +243,17 @@ void URLRequestTimeoutOnDemandJob::FailJobs(int expected_num_jobs) {
content::BrowserThread::PostTask(
content::BrowserThread::IO, FROM_HERE,
base::Bind(&URLRequestTimeoutOnDemandJob::FailOrAbandonJobsOnIOThread,
- expected_num_jobs,
- FAIL_JOBS));
+ expected_num_jobs, FAIL_JOBS, net::SSLInfo()));
}
// static
void URLRequestTimeoutOnDemandJob::FailJobsWithCertError(
- int expected_num_jobs) {
+ int expected_num_jobs,
+ const net::SSLInfo& ssl_info) {
content::BrowserThread::PostTask(
content::BrowserThread::IO, FROM_HERE,
base::Bind(&URLRequestTimeoutOnDemandJob::FailOrAbandonJobsOnIOThread,
- expected_num_jobs,
- FAIL_JOBS_WITH_CERT_ERROR));
+ expected_num_jobs, FAIL_JOBS_WITH_CERT_ERROR, ssl_info));
}
// static
@@ -258,8 +261,7 @@ void URLRequestTimeoutOnDemandJob::AbandonJobs(int expected_num_jobs) {
content::BrowserThread::PostTask(
content::BrowserThread::IO, FROM_HERE,
base::Bind(&URLRequestTimeoutOnDemandJob::FailOrAbandonJobsOnIOThread,
- expected_num_jobs,
- ABANDON_JOBS));
+ expected_num_jobs, ABANDON_JOBS, net::SSLInfo()));
}
URLRequestTimeoutOnDemandJob::URLRequestTimeoutOnDemandJob(
@@ -324,7 +326,8 @@ void URLRequestTimeoutOnDemandJob::MaybeStopWaitingForJobsOnIOThread() {
// static
void URLRequestTimeoutOnDemandJob::FailOrAbandonJobsOnIOThread(
int expected_num_jobs,
- EndJobOperation end_job_operation) {
+ EndJobOperation end_job_operation,
+ const net::SSLInfo& ssl_info) {
ASSERT_TRUE(BrowserThread::CurrentlyOn(BrowserThread::IO));
ASSERT_LT(0, expected_num_jobs);
EXPECT_EQ(last_num_jobs_to_wait_for_, expected_num_jobs);
@@ -343,11 +346,7 @@ void URLRequestTimeoutOnDemandJob::FailOrAbandonJobsOnIOThread(
net::ERR_CONNECTION_TIMED_OUT));
} else if (end_job_operation == FAIL_JOBS_WITH_CERT_ERROR) {
DCHECK(job->request()->url().SchemeIsCryptographic());
- net::SSLInfo info;
- info.cert_status = net::CERT_STATUS_COMMON_NAME_INVALID;
- info.cert = new net::X509Certificate(
- "bad.host", "CA", base::Time::Max(), base::Time::Max());
- job->NotifySSLCertificateError(info, true);
+ job->NotifySSLCertificateError(ssl_info, true);
}
}
@@ -2863,7 +2862,11 @@ IN_PROC_BROWSER_TEST_F(CaptivePortalBrowserTest,
CaptivePortalObserver portal_observer(browser()->profile());
MultiNavigationObserver navigation_observer;
- URLRequestTimeoutOnDemandJob::FailJobsWithCertError(1);
+ net::SSLInfo info;
+ info.cert_status = net::CERT_STATUS_COMMON_NAME_INVALID;
+ info.cert =
+ net::ImportCertFromFile(net::GetTestCertsDirectory(), "ok_cert.pem");
+ URLRequestTimeoutOnDemandJob::FailJobsWithCertError(1, info);
navigation_observer.WaitForNavigations(1);
EXPECT_EQ(CaptivePortalTabReloader::STATE_NEEDS_RELOAD,
« no previous file with comments | « no previous file | chrome/browser/ssl/common_name_mismatch_handler.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698