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

Side by Side 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: Addressed Mike's comment. 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 unified diff | Download patch
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "base/bind.h" 5 #include "base/bind.h"
6 #include "base/files/file_path.h" 6 #include "base/files/file_path.h"
7 #include "base/synchronization/waitable_event.h" 7 #include "base/synchronization/waitable_event.h"
8 #include "chrome/browser/profiles/profile.h" 8 #include "chrome/browser/profiles/profile.h"
9 #include "chrome/browser/ssl/ssl_client_auth_requestor_mock.h" 9 #include "chrome/browser/ssl/ssl_client_auth_requestor_mock.h"
10 #include "chrome/browser/ui/browser.h" 10 #include "chrome/browser/ui/browser.h"
11 #include "chrome/browser/ui/tabs/tab_strip_model.h" 11 #include "chrome/browser/ui/tabs/tab_strip_model.h"
12 #include "chrome/browser/ui/views/ssl_client_certificate_selector.h" 12 #include "chrome/browser/ui/views/ssl_client_certificate_selector.h"
13 #include "chrome/test/base/in_process_browser_test.h" 13 #include "chrome/test/base/in_process_browser_test.h"
14 #include "chrome/test/base/interactive_test_utils.h" 14 #include "chrome/test/base/interactive_test_utils.h"
15 #include "chrome/test/base/ui_test_utils.h" 15 #include "chrome/test/base/ui_test_utils.h"
16 #include "content/public/browser/web_contents.h" 16 #include "content/public/browser/web_contents.h"
17 #include "content/public/test/browser_test_utils.h" 17 #include "content/public/test/browser_test_utils.h"
18 #include "net/base/request_priority.h" 18 #include "net/base/request_priority.h"
19 #include "net/base/test_data_directory.h" 19 #include "net/base/test_data_directory.h"
20 #include "net/cert/x509_certificate.h" 20 #include "net/cert/x509_certificate.h"
21 #include "net/http/http_transaction_factory.h" 21 #include "net/http/http_transaction_factory.h"
22 #include "net/ssl/ssl_cert_request_info.h" 22 #include "net/ssl/ssl_cert_request_info.h"
23 #include "net/test/cert_test_util.h" 23 #include "net/test/cert_test_util.h"
24 #include "net/url_request/url_request.h" 24 #include "net/url_request/url_request.h"
25 #include "net/url_request/url_request_context.h" 25 #include "net/url_request/url_request_context.h"
26 #include "net/url_request/url_request_context_getter.h" 26 #include "net/url_request/url_request_context_getter.h"
27 #include "testing/gtest/include/gtest/gtest.h" 27 #include "testing/gtest/include/gtest/gtest.h"
28 28
29 #if defined(USE_NSS)
30 #include "crypto/scoped_test_nss_db.h"
31 #endif
32
29 using ::testing::Mock; 33 using ::testing::Mock;
30 using ::testing::StrictMock; 34 using ::testing::StrictMock;
31 using content::BrowserThread; 35 using content::BrowserThread;
32 36
33 // We don't have a way to do end-to-end SSL client auth testing, so this test 37 // We don't have a way to do end-to-end SSL client auth testing, so this test
34 // creates a certificate selector_ manually with a mocked 38 // creates a certificate selector_ manually with a mocked
35 // SSLClientAuthHandler. 39 // SSLClientAuthHandler.
36 40
37 class SSLClientCertificateSelectorTest : public InProcessBrowserTest { 41 class SSLClientCertificateSelectorTest : public InProcessBrowserTest {
38 public: 42 public:
39 SSLClientCertificateSelectorTest() 43 SSLClientCertificateSelectorTest()
40 : io_loop_finished_event_(false, false), 44 : io_loop_finished_event_(false, false),
41 url_request_(NULL), 45 url_request_(NULL),
42 selector_(NULL) { 46 selector_(NULL) {
43 } 47 }
44 48
45 void SetUpInProcessBrowserTestFixture() override { 49 void SetUpInProcessBrowserTestFixture() override {
46 base::FilePath certs_dir = net::GetTestCertsDirectory(); 50 base::FilePath certs_dir = net::GetTestCertsDirectory();
47 51
48 mit_davidben_cert_ = net::ImportCertFromFile(certs_dir, "mit.davidben.der"); 52 #if defined(USE_NSS)
davidben 2015/02/19 20:54:20 Nit: maybe a comment for why we import the key her
pneubeck (no reviews) 2015/02/20 09:54:00 Done.
49 ASSERT_NE(static_cast<net::X509Certificate*>(NULL), 53 ASSERT_TRUE(test_nssdb_.is_open());
50 mit_davidben_cert_.get()); 54 client_cert_1_ = net::ImportClientCertAndKeyFromFile(
51 55 certs_dir, "client_1.pem", "client_1.pk8", test_nssdb_.slot());
52 foaf_me_chromium_test_cert_ = net::ImportCertFromFile( 56 client_cert_2_ = net::ImportClientCertAndKeyFromFile(
53 certs_dir, "foaf.me.chromium-test-cert.der"); 57 certs_dir, "client_2.pem", "client_2.pk8", test_nssdb_.slot());
54 ASSERT_NE(static_cast<net::X509Certificate*>(NULL), 58 #else
55 foaf_me_chromium_test_cert_.get()); 59 client_cert_1_ = net::ImportCertFromFile(certs_dir, "client_1.pem");
60 client_cert_2_ = net::ImportCertFromFile(certs_dir, "client_2.pem");
61 #endif
62 ASSERT_NE(nullptr, client_cert_1_.get());
63 ASSERT_NE(nullptr, client_cert_2_.get());
56 64
57 cert_request_info_ = new net::SSLCertRequestInfo; 65 cert_request_info_ = new net::SSLCertRequestInfo;
58 cert_request_info_->host_and_port = net::HostPortPair("foo", 123); 66 cert_request_info_->host_and_port = net::HostPortPair("foo", 123);
59 cert_request_info_->client_certs.push_back(mit_davidben_cert_); 67 cert_request_info_->client_certs.push_back(client_cert_1_);
60 cert_request_info_->client_certs.push_back(foaf_me_chromium_test_cert_); 68 cert_request_info_->client_certs.push_back(client_cert_2_);
61 } 69 }
62 70
63 void SetUpOnMainThread() override { 71 void SetUpOnMainThread() override {
64 url_request_context_getter_ = browser()->profile()->GetRequestContext(); 72 url_request_context_getter_ = browser()->profile()->GetRequestContext();
65 73
66 BrowserThread::PostTask( 74 BrowserThread::PostTask(
67 BrowserThread::IO, FROM_HERE, 75 BrowserThread::IO, FROM_HERE,
68 base::Bind(&SSLClientCertificateSelectorTest::SetUpOnIOThread, this)); 76 base::Bind(&SSLClientCertificateSelectorTest::SetUpOnIOThread, this));
69 77
70 io_loop_finished_event_.Wait(); 78 io_loop_finished_event_.Wait();
71 79
72 content::WaitForLoadStop( 80 content::WaitForLoadStop(
73 browser()->tab_strip_model()->GetActiveWebContents()); 81 browser()->tab_strip_model()->GetActiveWebContents());
74 selector_ = new SSLClientCertificateSelector( 82 selector_ = new SSLClientCertificateSelector(
75 browser()->tab_strip_model()->GetActiveWebContents(), 83 browser()->tab_strip_model()->GetActiveWebContents(),
76 auth_requestor_->cert_request_info_, 84 auth_requestor_->cert_request_info_,
77 base::Bind(&SSLClientAuthRequestorMock::CertificateSelected, 85 base::Bind(&SSLClientAuthRequestorMock::CertificateSelected,
78 auth_requestor_)); 86 auth_requestor_));
79 selector_->Init(); 87 selector_->Init();
80 88
81 EXPECT_EQ(mit_davidben_cert_.get(), selector_->GetSelectedCert()); 89 EXPECT_EQ(client_cert_1_.get(), selector_->GetSelectedCert());
82 } 90 }
83 91
84 virtual void SetUpOnIOThread() { 92 virtual void SetUpOnIOThread() {
85 url_request_ = MakeURLRequest(url_request_context_getter_.get()).release(); 93 url_request_ = MakeURLRequest(url_request_context_getter_.get()).release();
86 94
87 auth_requestor_ = new StrictMock<SSLClientAuthRequestorMock>( 95 auth_requestor_ = new StrictMock<SSLClientAuthRequestorMock>(
88 url_request_, 96 url_request_,
89 cert_request_info_); 97 cert_request_info_);
90 98
91 io_loop_finished_event_.Signal(); 99 io_loop_finished_event_.Signal();
(...skipping 22 matching lines...) Expand all
114 net::URLRequestContextGetter* context_getter) { 122 net::URLRequestContextGetter* context_getter) {
115 return context_getter->GetURLRequestContext()->CreateRequest( 123 return context_getter->GetURLRequestContext()->CreateRequest(
116 GURL("https://example"), net::DEFAULT_PRIORITY, NULL, NULL); 124 GURL("https://example"), net::DEFAULT_PRIORITY, NULL, NULL);
117 } 125 }
118 126
119 base::WaitableEvent io_loop_finished_event_; 127 base::WaitableEvent io_loop_finished_event_;
120 128
121 scoped_refptr<net::URLRequestContextGetter> url_request_context_getter_; 129 scoped_refptr<net::URLRequestContextGetter> url_request_context_getter_;
122 net::URLRequest* url_request_; 130 net::URLRequest* url_request_;
123 131
124 scoped_refptr<net::X509Certificate> mit_davidben_cert_; 132 scoped_refptr<net::X509Certificate> client_cert_1_;
125 scoped_refptr<net::X509Certificate> foaf_me_chromium_test_cert_; 133 scoped_refptr<net::X509Certificate> client_cert_2_;
126 scoped_refptr<net::SSLCertRequestInfo> cert_request_info_; 134 scoped_refptr<net::SSLCertRequestInfo> cert_request_info_;
127 scoped_refptr<StrictMock<SSLClientAuthRequestorMock> > auth_requestor_; 135 scoped_refptr<StrictMock<SSLClientAuthRequestorMock> > auth_requestor_;
128 // The selector will be deleted when a cert is selected or the tab is closed. 136 // The selector will be deleted when a cert is selected or the tab is closed.
129 SSLClientCertificateSelector* selector_; 137 SSLClientCertificateSelector* selector_;
138 #if defined(USE_NSS)
139 crypto::ScopedTestNSSDB test_nssdb_;
140 #endif
130 }; 141 };
131 142
132 class SSLClientCertificateSelectorMultiTabTest 143 class SSLClientCertificateSelectorMultiTabTest
133 : public SSLClientCertificateSelectorTest { 144 : public SSLClientCertificateSelectorTest {
134 public: 145 public:
135 void SetUpInProcessBrowserTestFixture() override { 146 void SetUpInProcessBrowserTestFixture() override {
136 SSLClientCertificateSelectorTest::SetUpInProcessBrowserTestFixture(); 147 SSLClientCertificateSelectorTest::SetUpInProcessBrowserTestFixture();
137 148
138 cert_request_info_1_ = new net::SSLCertRequestInfo; 149 cert_request_info_1_ = new net::SSLCertRequestInfo;
139 cert_request_info_1_->host_and_port = net::HostPortPair("bar", 123); 150 cert_request_info_1_->host_and_port = net::HostPortPair("bar", 123);
140 cert_request_info_1_->client_certs.push_back(mit_davidben_cert_); 151 cert_request_info_1_->client_certs.push_back(client_cert_1_);
141 cert_request_info_1_->client_certs.push_back(foaf_me_chromium_test_cert_); 152 cert_request_info_1_->client_certs.push_back(client_cert_2_);
142 153
143 cert_request_info_2_ = new net::SSLCertRequestInfo; 154 cert_request_info_2_ = new net::SSLCertRequestInfo;
144 cert_request_info_2_->host_and_port = net::HostPortPair("bar", 123); 155 cert_request_info_2_->host_and_port = net::HostPortPair("bar", 123);
145 cert_request_info_2_->client_certs.push_back(mit_davidben_cert_); 156 cert_request_info_2_->client_certs.push_back(client_cert_1_);
146 cert_request_info_2_->client_certs.push_back(foaf_me_chromium_test_cert_); 157 cert_request_info_2_->client_certs.push_back(client_cert_2_);
147 } 158 }
148 159
149 void SetUpOnMainThread() override { 160 void SetUpOnMainThread() override {
150 // Also calls SetUpOnIOThread. 161 // Also calls SetUpOnIOThread.
151 SSLClientCertificateSelectorTest::SetUpOnMainThread(); 162 SSLClientCertificateSelectorTest::SetUpOnMainThread();
152 163
153 AddTabAtIndex(1, GURL("about:blank"), ui::PAGE_TRANSITION_LINK); 164 AddTabAtIndex(1, GURL("about:blank"), ui::PAGE_TRANSITION_LINK);
154 AddTabAtIndex(2, GURL("about:blank"), ui::PAGE_TRANSITION_LINK); 165 AddTabAtIndex(2, GURL("about:blank"), ui::PAGE_TRANSITION_LINK);
155 ASSERT_TRUE(NULL != browser()->tab_strip_model()->GetWebContentsAt(0)); 166 ASSERT_TRUE(NULL != browser()->tab_strip_model()->GetWebContentsAt(0));
156 ASSERT_TRUE(NULL != browser()->tab_strip_model()->GetWebContentsAt(1)); 167 ASSERT_TRUE(NULL != browser()->tab_strip_model()->GetWebContentsAt(1));
157 ASSERT_TRUE(NULL != browser()->tab_strip_model()->GetWebContentsAt(2)); 168 ASSERT_TRUE(NULL != browser()->tab_strip_model()->GetWebContentsAt(2));
158 content::WaitForLoadStop(browser()->tab_strip_model()->GetWebContentsAt(1)); 169 content::WaitForLoadStop(browser()->tab_strip_model()->GetWebContentsAt(1));
159 content::WaitForLoadStop(browser()->tab_strip_model()->GetWebContentsAt(2)); 170 content::WaitForLoadStop(browser()->tab_strip_model()->GetWebContentsAt(2));
160 171
161 selector_1_ = new SSLClientCertificateSelector( 172 selector_1_ = new SSLClientCertificateSelector(
162 browser()->tab_strip_model()->GetWebContentsAt(1), 173 browser()->tab_strip_model()->GetWebContentsAt(1),
163 auth_requestor_1_->cert_request_info_, 174 auth_requestor_1_->cert_request_info_,
164 base::Bind(&SSLClientAuthRequestorMock::CertificateSelected, 175 base::Bind(&SSLClientAuthRequestorMock::CertificateSelected,
165 auth_requestor_1_)); 176 auth_requestor_1_));
166 selector_1_->Init(); 177 selector_1_->Init();
167 selector_2_ = new SSLClientCertificateSelector( 178 selector_2_ = new SSLClientCertificateSelector(
168 browser()->tab_strip_model()->GetWebContentsAt(2), 179 browser()->tab_strip_model()->GetWebContentsAt(2),
169 auth_requestor_2_->cert_request_info_, 180 auth_requestor_2_->cert_request_info_,
170 base::Bind(&SSLClientAuthRequestorMock::CertificateSelected, 181 base::Bind(&SSLClientAuthRequestorMock::CertificateSelected,
171 auth_requestor_2_)); 182 auth_requestor_2_));
172 selector_2_->Init(); 183 selector_2_->Init();
173 184
174 EXPECT_EQ(2, browser()->tab_strip_model()->active_index()); 185 EXPECT_EQ(2, browser()->tab_strip_model()->active_index());
175 EXPECT_EQ(mit_davidben_cert_.get(), selector_1_->GetSelectedCert()); 186 EXPECT_EQ(client_cert_1_.get(), selector_1_->GetSelectedCert());
176 EXPECT_EQ(mit_davidben_cert_.get(), selector_2_->GetSelectedCert()); 187 EXPECT_EQ(client_cert_1_.get(), selector_2_->GetSelectedCert());
177 } 188 }
178 189
179 void SetUpOnIOThread() override { 190 void SetUpOnIOThread() override {
180 url_request_1_ = 191 url_request_1_ =
181 MakeURLRequest(url_request_context_getter_.get()).release(); 192 MakeURLRequest(url_request_context_getter_.get()).release();
182 url_request_2_ = 193 url_request_2_ =
183 MakeURLRequest(url_request_context_getter_.get()).release(); 194 MakeURLRequest(url_request_context_getter_.get()).release();
184 195
185 auth_requestor_1_ = new StrictMock<SSLClientAuthRequestorMock>( 196 auth_requestor_1_ = new StrictMock<SSLClientAuthRequestorMock>(
186 url_request_1_, 197 url_request_1_,
(...skipping 29 matching lines...) Expand all
216 }; 227 };
217 228
218 class SSLClientCertificateSelectorMultiProfileTest 229 class SSLClientCertificateSelectorMultiProfileTest
219 : public SSLClientCertificateSelectorTest { 230 : public SSLClientCertificateSelectorTest {
220 public: 231 public:
221 void SetUpInProcessBrowserTestFixture() override { 232 void SetUpInProcessBrowserTestFixture() override {
222 SSLClientCertificateSelectorTest::SetUpInProcessBrowserTestFixture(); 233 SSLClientCertificateSelectorTest::SetUpInProcessBrowserTestFixture();
223 234
224 cert_request_info_1_ = new net::SSLCertRequestInfo; 235 cert_request_info_1_ = new net::SSLCertRequestInfo;
225 cert_request_info_1_->host_and_port = net::HostPortPair("foo", 123); 236 cert_request_info_1_->host_and_port = net::HostPortPair("foo", 123);
226 cert_request_info_1_->client_certs.push_back(mit_davidben_cert_); 237 cert_request_info_1_->client_certs.push_back(client_cert_1_);
227 cert_request_info_1_->client_certs.push_back(foaf_me_chromium_test_cert_); 238 cert_request_info_1_->client_certs.push_back(client_cert_2_);
228 } 239 }
229 240
230 void SetUpOnMainThread() override { 241 void SetUpOnMainThread() override {
231 browser_1_ = CreateIncognitoBrowser(); 242 browser_1_ = CreateIncognitoBrowser();
232 url_request_context_getter_1_ = browser_1_->profile()->GetRequestContext(); 243 url_request_context_getter_1_ = browser_1_->profile()->GetRequestContext();
233 244
234 // Also calls SetUpOnIOThread. 245 // Also calls SetUpOnIOThread.
235 SSLClientCertificateSelectorTest::SetUpOnMainThread(); 246 SSLClientCertificateSelectorTest::SetUpOnMainThread();
236 247
237 selector_1_ = new SSLClientCertificateSelector( 248 selector_1_ = new SSLClientCertificateSelector(
238 browser_1_->tab_strip_model()->GetActiveWebContents(), 249 browser_1_->tab_strip_model()->GetActiveWebContents(),
239 auth_requestor_1_->cert_request_info_, 250 auth_requestor_1_->cert_request_info_,
240 base::Bind(&SSLClientAuthRequestorMock::CertificateSelected, 251 base::Bind(&SSLClientAuthRequestorMock::CertificateSelected,
241 auth_requestor_1_)); 252 auth_requestor_1_));
242 selector_1_->Init(); 253 selector_1_->Init();
243 254
244 EXPECT_EQ(mit_davidben_cert_.get(), selector_1_->GetSelectedCert()); 255 EXPECT_EQ(client_cert_1_.get(), selector_1_->GetSelectedCert());
245 } 256 }
246 257
247 void SetUpOnIOThread() override { 258 void SetUpOnIOThread() override {
248 url_request_1_ = 259 url_request_1_ =
249 MakeURLRequest(url_request_context_getter_1_.get()).release(); 260 MakeURLRequest(url_request_context_getter_1_.get()).release();
250 261
251 auth_requestor_1_ = new StrictMock<SSLClientAuthRequestorMock>( 262 auth_requestor_1_ = new StrictMock<SSLClientAuthRequestorMock>(
252 url_request_1_, 263 url_request_1_,
253 cert_request_info_1_); 264 cert_request_info_1_);
254 265
(...skipping 26 matching lines...) Expand all
281 #define MAYBE_SelectNone SelectNone 292 #define MAYBE_SelectNone SelectNone
282 #endif 293 #endif
283 294
284 295
285 IN_PROC_BROWSER_TEST_F(SSLClientCertificateSelectorTest, MAYBE_SelectNone) { 296 IN_PROC_BROWSER_TEST_F(SSLClientCertificateSelectorTest, MAYBE_SelectNone) {
286 EXPECT_CALL(*auth_requestor_.get(), CertificateSelected(NULL)); 297 EXPECT_CALL(*auth_requestor_.get(), CertificateSelected(NULL));
287 298
288 // Let the mock get checked on destruction. 299 // Let the mock get checked on destruction.
289 } 300 }
290 301
291 // http://crbug.com/121007 302 IN_PROC_BROWSER_TEST_F(SSLClientCertificateSelectorTest, Escape) {
292 IN_PROC_BROWSER_TEST_F(SSLClientCertificateSelectorTest, DISABLED_Escape) {
293 EXPECT_CALL(*auth_requestor_.get(), CertificateSelected(NULL)); 303 EXPECT_CALL(*auth_requestor_.get(), CertificateSelected(NULL));
294 304
295 EXPECT_TRUE(ui_test_utils::SendKeyPressSync( 305 EXPECT_TRUE(ui_test_utils::SendKeyPressSync(
296 browser(), ui::VKEY_ESCAPE, false, false, false, false)); 306 browser(), ui::VKEY_ESCAPE, false, false, false, false));
297 307
298 Mock::VerifyAndClear(auth_requestor_.get()); 308 Mock::VerifyAndClear(auth_requestor_.get());
299 } 309 }
300 310
301 // Flaky, http://crbug.com/103534 . 311 IN_PROC_BROWSER_TEST_F(SSLClientCertificateSelectorTest, SelectDefault) {
302 IN_PROC_BROWSER_TEST_F(SSLClientCertificateSelectorTest,
303 DISABLED_SelectDefault) {
304 EXPECT_CALL(*auth_requestor_.get(), 312 EXPECT_CALL(*auth_requestor_.get(),
305 CertificateSelected(mit_davidben_cert_.get())); 313 CertificateSelected(client_cert_1_.get()));
306 314
307 EXPECT_TRUE(ui_test_utils::SendKeyPressSync( 315 EXPECT_TRUE(ui_test_utils::SendKeyPressSync(
308 browser(), ui::VKEY_RETURN, false, false, false, false)); 316 browser(), ui::VKEY_RETURN, false, false, false, false));
309 317
310 Mock::VerifyAndClear(auth_requestor_.get()); 318 Mock::VerifyAndClear(auth_requestor_.get());
311 } 319 }
312 320
313 // http://crbug.com/121007 321 IN_PROC_BROWSER_TEST_F(SSLClientCertificateSelectorMultiTabTest, Escape) {
314 IN_PROC_BROWSER_TEST_F(SSLClientCertificateSelectorMultiTabTest,
315 DISABLED_Escape) {
316 // auth_requestor_1_ should get selected automatically by the 322 // auth_requestor_1_ should get selected automatically by the
317 // SSLClientAuthObserver when selector_2_ is accepted, since both 1 & 2 have 323 // SSLClientAuthObserver when selector_2_ is accepted, since both 1 & 2 have
318 // the same host:port. 324 // the same host:port.
319 EXPECT_CALL(*auth_requestor_1_.get(), CertificateSelected(NULL)); 325 EXPECT_CALL(*auth_requestor_1_.get(), CertificateSelected(NULL));
320 EXPECT_CALL(*auth_requestor_2_.get(), CertificateSelected(NULL)); 326 EXPECT_CALL(*auth_requestor_2_.get(), CertificateSelected(NULL));
321 327
322 EXPECT_TRUE(ui_test_utils::SendKeyPressSync( 328 EXPECT_TRUE(ui_test_utils::SendKeyPressSync(
323 browser(), ui::VKEY_ESCAPE, false, false, false, false)); 329 browser(), ui::VKEY_ESCAPE, false, false, false, false));
324 330
325 Mock::VerifyAndClear(auth_requestor_.get()); 331 Mock::VerifyAndClear(auth_requestor_.get());
326 Mock::VerifyAndClear(auth_requestor_1_.get()); 332 Mock::VerifyAndClear(auth_requestor_1_.get());
327 Mock::VerifyAndClear(auth_requestor_2_.get()); 333 Mock::VerifyAndClear(auth_requestor_2_.get());
328 334
329 // Now let the default selection for auth_requestor_ mock get checked on 335 // Now let the default selection for auth_requestor_ mock get checked on
330 // destruction. 336 // destruction.
331 EXPECT_CALL(*auth_requestor_.get(), CertificateSelected(NULL)); 337 EXPECT_CALL(*auth_requestor_.get(), CertificateSelected(NULL));
332 } 338 }
333 339
334 // http://crbug.com/121007 340 IN_PROC_BROWSER_TEST_F(SSLClientCertificateSelectorMultiTabTest, SelectSecond) {
335 IN_PROC_BROWSER_TEST_F(SSLClientCertificateSelectorMultiTabTest,
336 DISABLED_SelectSecond) {
337 // auth_requestor_1_ should get selected automatically by the 341 // auth_requestor_1_ should get selected automatically by the
338 // SSLClientAuthObserver when selector_2_ is accepted, since both 1 & 2 have 342 // SSLClientAuthObserver when selector_2_ is accepted, since both 1 & 2 have
339 // the same host:port. 343 // the same host:port.
340 EXPECT_CALL(*auth_requestor_1_.get(), 344 EXPECT_CALL(*auth_requestor_1_.get(),
341 CertificateSelected(foaf_me_chromium_test_cert_.get())); 345 CertificateSelected(client_cert_2_.get()));
342 EXPECT_CALL(*auth_requestor_2_.get(), 346 EXPECT_CALL(*auth_requestor_2_.get(),
343 CertificateSelected(foaf_me_chromium_test_cert_.get())); 347 CertificateSelected(client_cert_2_.get()));
344 348
345 EXPECT_TRUE(ui_test_utils::SendKeyPressSync( 349 EXPECT_TRUE(ui_test_utils::SendKeyPressSync(
346 browser(), ui::VKEY_DOWN, false, false, false, false)); 350 browser(), ui::VKEY_DOWN, false, false, false, false));
347 351
348 EXPECT_EQ(mit_davidben_cert_.get(), selector_->GetSelectedCert()); 352 EXPECT_EQ(client_cert_1_.get(), selector_->GetSelectedCert());
349 EXPECT_EQ(mit_davidben_cert_.get(), selector_1_->GetSelectedCert()); 353 EXPECT_EQ(client_cert_1_.get(), selector_1_->GetSelectedCert());
350 EXPECT_EQ(foaf_me_chromium_test_cert_.get(), selector_2_->GetSelectedCert()); 354 EXPECT_EQ(client_cert_2_.get(), selector_2_->GetSelectedCert());
351 355
352 EXPECT_TRUE(ui_test_utils::SendKeyPressSync( 356 EXPECT_TRUE(ui_test_utils::SendKeyPressSync(
353 browser(), ui::VKEY_RETURN, false, false, false, false)); 357 browser(), ui::VKEY_RETURN, false, false, false, false));
354 358
355 Mock::VerifyAndClear(auth_requestor_.get()); 359 Mock::VerifyAndClear(auth_requestor_.get());
356 Mock::VerifyAndClear(auth_requestor_1_.get()); 360 Mock::VerifyAndClear(auth_requestor_1_.get());
357 Mock::VerifyAndClear(auth_requestor_2_.get()); 361 Mock::VerifyAndClear(auth_requestor_2_.get());
358 362
359 // Now let the default selection for auth_requestor_ mock get checked on 363 // Now let the default selection for auth_requestor_ mock get checked on
360 // destruction. 364 // destruction.
361 EXPECT_CALL(*auth_requestor_.get(), CertificateSelected(NULL)); 365 EXPECT_CALL(*auth_requestor_.get(), CertificateSelected(NULL));
362 } 366 }
363 367
364 // http://crbug.com/103529 368 IN_PROC_BROWSER_TEST_F(SSLClientCertificateSelectorMultiProfileTest, Escape) {
365 IN_PROC_BROWSER_TEST_F(SSLClientCertificateSelectorMultiProfileTest,
366 DISABLED_Escape) {
367 EXPECT_CALL(*auth_requestor_1_.get(), CertificateSelected(NULL)); 369 EXPECT_CALL(*auth_requestor_1_.get(), CertificateSelected(NULL));
368 370
369 EXPECT_TRUE(ui_test_utils::SendKeyPressSync( 371 EXPECT_TRUE(ui_test_utils::SendKeyPressSync(
370 browser_1_, ui::VKEY_ESCAPE, false, false, false, false)); 372 browser_1_, ui::VKEY_ESCAPE, false, false, false, false));
371 373
372 Mock::VerifyAndClear(auth_requestor_.get()); 374 Mock::VerifyAndClear(auth_requestor_.get());
373 Mock::VerifyAndClear(auth_requestor_1_.get()); 375 Mock::VerifyAndClear(auth_requestor_1_.get());
374 376
375 // Now let the default selection for auth_requestor_ mock get checked on 377 // Now let the default selection for auth_requestor_ mock get checked on
376 // destruction. 378 // destruction.
377 EXPECT_CALL(*auth_requestor_.get(), CertificateSelected(NULL)); 379 EXPECT_CALL(*auth_requestor_.get(), CertificateSelected(NULL));
378 } 380 }
379 381
380 // http://crbug.com/103534
381 IN_PROC_BROWSER_TEST_F(SSLClientCertificateSelectorMultiProfileTest, 382 IN_PROC_BROWSER_TEST_F(SSLClientCertificateSelectorMultiProfileTest,
382 DISABLED_SelectDefault) { 383 SelectDefault) {
383 EXPECT_CALL(*auth_requestor_1_.get(), 384 EXPECT_CALL(*auth_requestor_1_.get(),
384 CertificateSelected(mit_davidben_cert_.get())); 385 CertificateSelected(client_cert_1_.get()));
385 386
386 EXPECT_TRUE(ui_test_utils::SendKeyPressSync( 387 EXPECT_TRUE(ui_test_utils::SendKeyPressSync(
387 browser_1_, ui::VKEY_RETURN, false, false, false, false)); 388 browser_1_, ui::VKEY_RETURN, false, false, false, false));
388 389
389 Mock::VerifyAndClear(auth_requestor_.get()); 390 Mock::VerifyAndClear(auth_requestor_.get());
390 Mock::VerifyAndClear(auth_requestor_1_.get()); 391 Mock::VerifyAndClear(auth_requestor_1_.get());
391 392
392 // Now let the default selection for auth_requestor_ mock get checked on 393 // Now let the default selection for auth_requestor_ mock get checked on
393 // destruction. 394 // destruction.
394 EXPECT_CALL(*auth_requestor_.get(), CertificateSelected(NULL)); 395 EXPECT_CALL(*auth_requestor_.get(), CertificateSelected(NULL));
395 } 396 }
OLDNEW
« 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