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

Unified Diff: chrome/browser/ssl/ssl_browser_tests.cc

Issue 406553002: Fix SSL browser test for TLS client auth. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 5 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 | net/tools/testserver/testserver.py » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/ssl/ssl_browser_tests.cc
diff --git a/chrome/browser/ssl/ssl_browser_tests.cc b/chrome/browser/ssl/ssl_browser_tests.cc
index 54f61476d425412449d9eabe39ec19a462f60677..d1691861242ee2b713ba2caf67a636857dcfdd30 100644
--- a/chrome/browser/ssl/ssl_browser_tests.cc
+++ b/chrome/browser/ssl/ssl_browser_tests.cc
@@ -2,6 +2,8 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
+#include "base/bind.h"
+#include "base/bind_helpers.h"
#include "base/command_line.h"
#include "base/path_service.h"
#include "base/prefs/pref_service.h"
@@ -39,14 +41,14 @@
#include "content/public/test/browser_test_utils.h"
#include "content/public/test/download_test_observer.h"
#include "content/public/test/test_renderer_host.h"
-#include "crypto/nss_util.h"
-#include "net/base/crypto_module.h"
#include "net/base/net_errors.h"
#include "net/base/test_data_directory.h"
#include "net/cert/cert_status_flags.h"
#include "net/test/spawned_test_server/spawned_test_server.h"
#if defined(USE_NSS)
+#include "chrome/browser/net/nss_context.h"
+#include "net/base/crypto_module.h"
#include "net/cert/nss_cert_database.h"
#endif // defined(USE_NSS)
@@ -717,27 +719,46 @@ IN_PROC_BROWSER_TEST_F(SSLUITest, TestWSSInvalidCertAndGoForward) {
}
#if defined(USE_NSS)
+class SSLUITestWithClientCert : public SSLUITest {
+ public:
+ SSLUITestWithClientCert() : cert_db_(NULL) {}
+
+ virtual void SetUpOnMainThread() OVERRIDE {
+ SSLUITest::SetUpOnMainThread();
+
+ base::RunLoop loop;
+ GetNSSCertDatabaseForProfile(
+ browser()->profile(),
+ base::Bind(&SSLUITestWithClientCert::DidGetCertDatabase,
+ base::Unretained(this),
+ &loop));
+ loop.Run();
+ }
+
+ protected:
+ void DidGetCertDatabase(base::RunLoop* loop, net::NSSCertDatabase* cert_db) {
+ cert_db_ = cert_db;
+ loop->Quit();
+ }
+
+ net::NSSCertDatabase* cert_db_;
+};
+
// SSL client certificate tests are only enabled when using NSS for private key
// storage, as only NSS can avoid modifying global machine state when testing.
// See http://crbug.com/51132
// Visit a HTTPS page which requires client cert authentication. The client
// cert will be selected automatically, then a test which uses WebSocket runs.
-// Disabled: http://crbug.com/159985
pneubeck (no reviews) 2014/07/21 06:43:56 here it refers to the bug I listed first. Disablin
-IN_PROC_BROWSER_TEST_F(SSLUITest, DISABLED_TestWSSClientCert) {
- // Open a temporary NSS DB for testing.
- crypto::ScopedTestNSSDB test_nssdb;
- ASSERT_TRUE(test_nssdb.is_open());
-
- // Import client cert for test. These interfaces require NSS.
- net::NSSCertDatabase* cert_db = net::NSSCertDatabase::GetInstance();
- scoped_refptr<net::CryptoModule> crypt_module = cert_db->GetPublicModule();
+IN_PROC_BROWSER_TEST_F(SSLUITestWithClientCert, TestWSSClientCert) {
+ // Import a client cert for test.
+ scoped_refptr<net::CryptoModule> crypt_module = cert_db_->GetPublicModule();
std::string pkcs12_data;
base::FilePath cert_path = net::GetTestCertsDirectory().Append(
FILE_PATH_LITERAL("websocket_client_cert.p12"));
EXPECT_TRUE(base::ReadFileToString(cert_path, &pkcs12_data));
EXPECT_EQ(net::OK,
- cert_db->ImportFromPKCS12(
+ cert_db_->ImportFromPKCS12(
crypt_module.get(), pkcs12_data, base::string16(), true, NULL));
// Start WebSocket test server with TLS and client cert authentication.
« no previous file with comments | « no previous file | net/tools/testserver/testserver.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698