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

Unified Diff: chrome/browser/ui/views/ssl_client_certificate_selector_browsertest.cc

Issue 932553002: Refactor SSLClientCertificateSelector for reuse with platformKeys API. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@cert_perms
Patch Set: Fixed comments. Created 5 years, 10 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 | « chrome/browser/ui/views/ssl_client_certificate_selector.cc ('k') | chrome/chrome_browser_ui.gypi » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/ui/views/ssl_client_certificate_selector_browsertest.cc
diff --git a/chrome/browser/ui/views/ssl_client_certificate_selector_browsertest.cc b/chrome/browser/ui/views/ssl_client_certificate_selector_browsertest.cc
index 390abd4541c9961e475105ee18a3eda8f1b9c1eb..63ee691a18b56b7a5379b6bcf26aa732c6fd178f 100644
--- a/chrome/browser/ui/views/ssl_client_certificate_selector_browsertest.cc
+++ b/chrome/browser/ui/views/ssl_client_certificate_selector_browsertest.cc
@@ -26,6 +26,10 @@
#include "net/url_request/url_request_context_getter.h"
#include "testing/gtest/include/gtest/gtest.h"
+#if defined(USE_NSS)
+#include "crypto/scoped_test_nss_db.h"
+#endif
+
using ::testing::Mock;
using ::testing::StrictMock;
using content::BrowserThread;
@@ -45,19 +49,28 @@ class SSLClientCertificateSelectorTest : public InProcessBrowserTest {
void SetUpInProcessBrowserTestFixture() override {
base::FilePath certs_dir = net::GetTestCertsDirectory();
- mit_davidben_cert_ = net::ImportCertFromFile(certs_dir, "mit.davidben.der");
- ASSERT_NE(static_cast<net::X509Certificate*>(NULL),
- mit_davidben_cert_.get());
-
- foaf_me_chromium_test_cert_ = net::ImportCertFromFile(
- certs_dir, "foaf.me.chromium-test-cert.der");
- ASSERT_NE(static_cast<net::X509Certificate*>(NULL),
- foaf_me_chromium_test_cert_.get());
+#if defined(USE_NSS)
+ // If USE_NSS, the selector tries to unlock the slot where the private key
+ // of each certificate is stored. If no private key is found, the slot would
+ // be null and the unlock will crash.
+ ASSERT_TRUE(test_nssdb_.is_open());
+ client_cert_1_ = net::ImportClientCertAndKeyFromFile(
+ certs_dir, "client_1.pem", "client_1.pk8", test_nssdb_.slot());
+ client_cert_2_ = net::ImportClientCertAndKeyFromFile(
+ certs_dir, "client_2.pem", "client_2.pk8", test_nssdb_.slot());
+#else
+ // No unlock is attempted if !USE_NSS. Thus, there is no need to import a
+ // private key.
+ client_cert_1_ = net::ImportCertFromFile(certs_dir, "client_1.pem");
+ client_cert_2_ = net::ImportCertFromFile(certs_dir, "client_2.pem");
+#endif
+ ASSERT_NE(nullptr, client_cert_1_.get());
+ ASSERT_NE(nullptr, client_cert_2_.get());
cert_request_info_ = new net::SSLCertRequestInfo;
cert_request_info_->host_and_port = net::HostPortPair("foo", 123);
- cert_request_info_->client_certs.push_back(mit_davidben_cert_);
- cert_request_info_->client_certs.push_back(foaf_me_chromium_test_cert_);
+ cert_request_info_->client_certs.push_back(client_cert_1_);
+ cert_request_info_->client_certs.push_back(client_cert_2_);
}
void SetUpOnMainThread() override {
@@ -77,8 +90,9 @@ class SSLClientCertificateSelectorTest : public InProcessBrowserTest {
base::Bind(&SSLClientAuthRequestorMock::CertificateSelected,
auth_requestor_));
selector_->Init();
+ selector_->Show();
- EXPECT_EQ(mit_davidben_cert_.get(), selector_->GetSelectedCert());
+ EXPECT_EQ(client_cert_1_.get(), selector_->GetSelectedCert());
}
virtual void SetUpOnIOThread() {
@@ -121,12 +135,15 @@ class SSLClientCertificateSelectorTest : public InProcessBrowserTest {
scoped_refptr<net::URLRequestContextGetter> url_request_context_getter_;
net::URLRequest* url_request_;
- scoped_refptr<net::X509Certificate> mit_davidben_cert_;
- scoped_refptr<net::X509Certificate> foaf_me_chromium_test_cert_;
+ scoped_refptr<net::X509Certificate> client_cert_1_;
+ scoped_refptr<net::X509Certificate> client_cert_2_;
scoped_refptr<net::SSLCertRequestInfo> cert_request_info_;
scoped_refptr<StrictMock<SSLClientAuthRequestorMock> > auth_requestor_;
// The selector will be deleted when a cert is selected or the tab is closed.
SSLClientCertificateSelector* selector_;
+#if defined(USE_NSS)
+ crypto::ScopedTestNSSDB test_nssdb_;
+#endif
};
class SSLClientCertificateSelectorMultiTabTest
@@ -137,13 +154,13 @@ class SSLClientCertificateSelectorMultiTabTest
cert_request_info_1_ = new net::SSLCertRequestInfo;
cert_request_info_1_->host_and_port = net::HostPortPair("bar", 123);
- cert_request_info_1_->client_certs.push_back(mit_davidben_cert_);
- cert_request_info_1_->client_certs.push_back(foaf_me_chromium_test_cert_);
+ cert_request_info_1_->client_certs.push_back(client_cert_1_);
+ cert_request_info_1_->client_certs.push_back(client_cert_2_);
cert_request_info_2_ = new net::SSLCertRequestInfo;
cert_request_info_2_->host_and_port = net::HostPortPair("bar", 123);
- cert_request_info_2_->client_certs.push_back(mit_davidben_cert_);
- cert_request_info_2_->client_certs.push_back(foaf_me_chromium_test_cert_);
+ cert_request_info_2_->client_certs.push_back(client_cert_1_);
+ cert_request_info_2_->client_certs.push_back(client_cert_2_);
}
void SetUpOnMainThread() override {
@@ -164,16 +181,18 @@ class SSLClientCertificateSelectorMultiTabTest
base::Bind(&SSLClientAuthRequestorMock::CertificateSelected,
auth_requestor_1_));
selector_1_->Init();
+ selector_1_->Show();
selector_2_ = new SSLClientCertificateSelector(
browser()->tab_strip_model()->GetWebContentsAt(2),
auth_requestor_2_->cert_request_info_,
base::Bind(&SSLClientAuthRequestorMock::CertificateSelected,
auth_requestor_2_));
selector_2_->Init();
+ selector_2_->Show();
EXPECT_EQ(2, browser()->tab_strip_model()->active_index());
- EXPECT_EQ(mit_davidben_cert_.get(), selector_1_->GetSelectedCert());
- EXPECT_EQ(mit_davidben_cert_.get(), selector_2_->GetSelectedCert());
+ EXPECT_EQ(client_cert_1_.get(), selector_1_->GetSelectedCert());
+ EXPECT_EQ(client_cert_1_.get(), selector_2_->GetSelectedCert());
}
void SetUpOnIOThread() override {
@@ -223,8 +242,8 @@ class SSLClientCertificateSelectorMultiProfileTest
cert_request_info_1_ = new net::SSLCertRequestInfo;
cert_request_info_1_->host_and_port = net::HostPortPair("foo", 123);
- cert_request_info_1_->client_certs.push_back(mit_davidben_cert_);
- cert_request_info_1_->client_certs.push_back(foaf_me_chromium_test_cert_);
+ cert_request_info_1_->client_certs.push_back(client_cert_1_);
+ cert_request_info_1_->client_certs.push_back(client_cert_2_);
}
void SetUpOnMainThread() override {
@@ -240,8 +259,9 @@ class SSLClientCertificateSelectorMultiProfileTest
base::Bind(&SSLClientAuthRequestorMock::CertificateSelected,
auth_requestor_1_));
selector_1_->Init();
+ selector_1_->Show();
- EXPECT_EQ(mit_davidben_cert_.get(), selector_1_->GetSelectedCert());
+ EXPECT_EQ(client_cert_1_.get(), selector_1_->GetSelectedCert());
}
void SetUpOnIOThread() override {
@@ -288,8 +308,7 @@ IN_PROC_BROWSER_TEST_F(SSLClientCertificateSelectorTest, MAYBE_SelectNone) {
// Let the mock get checked on destruction.
}
-// http://crbug.com/121007
-IN_PROC_BROWSER_TEST_F(SSLClientCertificateSelectorTest, DISABLED_Escape) {
+IN_PROC_BROWSER_TEST_F(SSLClientCertificateSelectorTest, Escape) {
EXPECT_CALL(*auth_requestor_.get(), CertificateSelected(NULL));
EXPECT_TRUE(ui_test_utils::SendKeyPressSync(
@@ -298,11 +317,9 @@ IN_PROC_BROWSER_TEST_F(SSLClientCertificateSelectorTest, DISABLED_Escape) {
Mock::VerifyAndClear(auth_requestor_.get());
}
-// Flaky, http://crbug.com/103534 .
-IN_PROC_BROWSER_TEST_F(SSLClientCertificateSelectorTest,
- DISABLED_SelectDefault) {
+IN_PROC_BROWSER_TEST_F(SSLClientCertificateSelectorTest, SelectDefault) {
EXPECT_CALL(*auth_requestor_.get(),
- CertificateSelected(mit_davidben_cert_.get()));
+ CertificateSelected(client_cert_1_.get()));
EXPECT_TRUE(ui_test_utils::SendKeyPressSync(
browser(), ui::VKEY_RETURN, false, false, false, false));
@@ -310,9 +327,7 @@ IN_PROC_BROWSER_TEST_F(SSLClientCertificateSelectorTest,
Mock::VerifyAndClear(auth_requestor_.get());
}
-// http://crbug.com/121007
-IN_PROC_BROWSER_TEST_F(SSLClientCertificateSelectorMultiTabTest,
- DISABLED_Escape) {
+IN_PROC_BROWSER_TEST_F(SSLClientCertificateSelectorMultiTabTest, Escape) {
// auth_requestor_1_ should get selected automatically by the
// SSLClientAuthObserver when selector_2_ is accepted, since both 1 & 2 have
// the same host:port.
@@ -331,23 +346,21 @@ IN_PROC_BROWSER_TEST_F(SSLClientCertificateSelectorMultiTabTest,
EXPECT_CALL(*auth_requestor_.get(), CertificateSelected(NULL));
}
-// http://crbug.com/121007
-IN_PROC_BROWSER_TEST_F(SSLClientCertificateSelectorMultiTabTest,
- DISABLED_SelectSecond) {
+IN_PROC_BROWSER_TEST_F(SSLClientCertificateSelectorMultiTabTest, SelectSecond) {
// auth_requestor_1_ should get selected automatically by the
// SSLClientAuthObserver when selector_2_ is accepted, since both 1 & 2 have
// the same host:port.
EXPECT_CALL(*auth_requestor_1_.get(),
- CertificateSelected(foaf_me_chromium_test_cert_.get()));
+ CertificateSelected(client_cert_2_.get()));
EXPECT_CALL(*auth_requestor_2_.get(),
- CertificateSelected(foaf_me_chromium_test_cert_.get()));
+ CertificateSelected(client_cert_2_.get()));
EXPECT_TRUE(ui_test_utils::SendKeyPressSync(
browser(), ui::VKEY_DOWN, false, false, false, false));
- EXPECT_EQ(mit_davidben_cert_.get(), selector_->GetSelectedCert());
- EXPECT_EQ(mit_davidben_cert_.get(), selector_1_->GetSelectedCert());
- EXPECT_EQ(foaf_me_chromium_test_cert_.get(), selector_2_->GetSelectedCert());
+ EXPECT_EQ(client_cert_1_.get(), selector_->GetSelectedCert());
+ EXPECT_EQ(client_cert_1_.get(), selector_1_->GetSelectedCert());
+ EXPECT_EQ(client_cert_2_.get(), selector_2_->GetSelectedCert());
EXPECT_TRUE(ui_test_utils::SendKeyPressSync(
browser(), ui::VKEY_RETURN, false, false, false, false));
@@ -361,9 +374,7 @@ IN_PROC_BROWSER_TEST_F(SSLClientCertificateSelectorMultiTabTest,
EXPECT_CALL(*auth_requestor_.get(), CertificateSelected(NULL));
}
-// http://crbug.com/103529
-IN_PROC_BROWSER_TEST_F(SSLClientCertificateSelectorMultiProfileTest,
- DISABLED_Escape) {
+IN_PROC_BROWSER_TEST_F(SSLClientCertificateSelectorMultiProfileTest, Escape) {
EXPECT_CALL(*auth_requestor_1_.get(), CertificateSelected(NULL));
EXPECT_TRUE(ui_test_utils::SendKeyPressSync(
@@ -377,11 +388,10 @@ IN_PROC_BROWSER_TEST_F(SSLClientCertificateSelectorMultiProfileTest,
EXPECT_CALL(*auth_requestor_.get(), CertificateSelected(NULL));
}
-// http://crbug.com/103534
IN_PROC_BROWSER_TEST_F(SSLClientCertificateSelectorMultiProfileTest,
- DISABLED_SelectDefault) {
+ SelectDefault) {
EXPECT_CALL(*auth_requestor_1_.get(),
- CertificateSelected(mit_davidben_cert_.get()));
+ CertificateSelected(client_cert_1_.get()));
EXPECT_TRUE(ui_test_utils::SendKeyPressSync(
browser_1_, ui::VKEY_RETURN, false, false, false, false));
« no previous file with comments | « chrome/browser/ui/views/ssl_client_certificate_selector.cc ('k') | chrome/chrome_browser_ui.gypi » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698