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

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: 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 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)
49 ASSERT_NE(static_cast<net::X509Certificate*>(NULL), 53 // If USE_NSS, the selector tries to unlock the slot where the private key
50 mit_davidben_cert_.get()); 54 // of each certificate is stored. If no private key is found, the slot would
51 55 // be null and the unlock will crash.
52 foaf_me_chromium_test_cert_ = net::ImportCertFromFile( 56 ASSERT_TRUE(test_nssdb_.is_open());
53 certs_dir, "foaf.me.chromium-test-cert.der"); 57 client_cert_1_ = net::ImportClientCertAndKeyFromFile(
54 ASSERT_NE(static_cast<net::X509Certificate*>(NULL), 58 certs_dir, "client_1.pem", "client_1.pk8", test_nssdb_.slot());
55 foaf_me_chromium_test_cert_.get()); 59 client_cert_2_ = net::ImportClientCertAndKeyFromFile(
60 certs_dir, "client_2.pem", "client_2.pk8", test_nssdb_.slot());
61 #else
62 // No unlock is attempted if !USE_NSS. Thus, there is no need to import a
63 // private key.
64 client_cert_1_ = net::ImportCertFromFile(certs_dir, "client_1.pem");
65 client_cert_2_ = net::ImportCertFromFile(certs_dir, "client_2.pem");
66 #endif
67 ASSERT_NE(nullptr, client_cert_1_.get());
68 ASSERT_NE(nullptr, client_cert_2_.get());
56 69
57 cert_request_info_ = new net::SSLCertRequestInfo; 70 cert_request_info_ = new net::SSLCertRequestInfo;
58 cert_request_info_->host_and_port = net::HostPortPair("foo", 123); 71 cert_request_info_->host_and_port = net::HostPortPair("foo", 123);
59 cert_request_info_->client_certs.push_back(mit_davidben_cert_); 72 cert_request_info_->client_certs.push_back(client_cert_1_);
60 cert_request_info_->client_certs.push_back(foaf_me_chromium_test_cert_); 73 cert_request_info_->client_certs.push_back(client_cert_2_);
61 } 74 }
62 75
63 void SetUpOnMainThread() override { 76 void SetUpOnMainThread() override {
64 url_request_context_getter_ = browser()->profile()->GetRequestContext(); 77 url_request_context_getter_ = browser()->profile()->GetRequestContext();
65 78
66 BrowserThread::PostTask( 79 BrowserThread::PostTask(
67 BrowserThread::IO, FROM_HERE, 80 BrowserThread::IO, FROM_HERE,
68 base::Bind(&SSLClientCertificateSelectorTest::SetUpOnIOThread, this)); 81 base::Bind(&SSLClientCertificateSelectorTest::SetUpOnIOThread, this));
69 82
70 io_loop_finished_event_.Wait(); 83 io_loop_finished_event_.Wait();
71 84
72 content::WaitForLoadStop( 85 content::WaitForLoadStop(
73 browser()->tab_strip_model()->GetActiveWebContents()); 86 browser()->tab_strip_model()->GetActiveWebContents());
74 selector_ = new SSLClientCertificateSelector( 87 selector_ = new SSLClientCertificateSelector(
75 browser()->tab_strip_model()->GetActiveWebContents(), 88 browser()->tab_strip_model()->GetActiveWebContents(),
76 auth_requestor_->cert_request_info_, 89 auth_requestor_->cert_request_info_,
77 base::Bind(&SSLClientAuthRequestorMock::CertificateSelected, 90 base::Bind(&SSLClientAuthRequestorMock::CertificateSelected,
78 auth_requestor_)); 91 auth_requestor_));
79 selector_->Init(); 92 selector_->Init();
93 selector_->Show();
80 94
81 EXPECT_EQ(mit_davidben_cert_.get(), selector_->GetSelectedCert()); 95 EXPECT_EQ(client_cert_1_.get(), selector_->GetSelectedCert());
82 } 96 }
83 97
84 virtual void SetUpOnIOThread() { 98 virtual void SetUpOnIOThread() {
85 url_request_ = MakeURLRequest(url_request_context_getter_.get()).release(); 99 url_request_ = MakeURLRequest(url_request_context_getter_.get()).release();
86 100
87 auth_requestor_ = new StrictMock<SSLClientAuthRequestorMock>( 101 auth_requestor_ = new StrictMock<SSLClientAuthRequestorMock>(
88 url_request_, 102 url_request_,
89 cert_request_info_); 103 cert_request_info_);
90 104
91 io_loop_finished_event_.Signal(); 105 io_loop_finished_event_.Signal();
(...skipping 22 matching lines...) Expand all
114 net::URLRequestContextGetter* context_getter) { 128 net::URLRequestContextGetter* context_getter) {
115 return context_getter->GetURLRequestContext()->CreateRequest( 129 return context_getter->GetURLRequestContext()->CreateRequest(
116 GURL("https://example"), net::DEFAULT_PRIORITY, NULL, NULL); 130 GURL("https://example"), net::DEFAULT_PRIORITY, NULL, NULL);
117 } 131 }
118 132
119 base::WaitableEvent io_loop_finished_event_; 133 base::WaitableEvent io_loop_finished_event_;
120 134
121 scoped_refptr<net::URLRequestContextGetter> url_request_context_getter_; 135 scoped_refptr<net::URLRequestContextGetter> url_request_context_getter_;
122 net::URLRequest* url_request_; 136 net::URLRequest* url_request_;
123 137
124 scoped_refptr<net::X509Certificate> mit_davidben_cert_; 138 scoped_refptr<net::X509Certificate> client_cert_1_;
125 scoped_refptr<net::X509Certificate> foaf_me_chromium_test_cert_; 139 scoped_refptr<net::X509Certificate> client_cert_2_;
126 scoped_refptr<net::SSLCertRequestInfo> cert_request_info_; 140 scoped_refptr<net::SSLCertRequestInfo> cert_request_info_;
127 scoped_refptr<StrictMock<SSLClientAuthRequestorMock> > auth_requestor_; 141 scoped_refptr<StrictMock<SSLClientAuthRequestorMock> > auth_requestor_;
128 // The selector will be deleted when a cert is selected or the tab is closed. 142 // The selector will be deleted when a cert is selected or the tab is closed.
129 SSLClientCertificateSelector* selector_; 143 SSLClientCertificateSelector* selector_;
144 #if defined(USE_NSS)
145 crypto::ScopedTestNSSDB test_nssdb_;
146 #endif
130 }; 147 };
131 148
132 class SSLClientCertificateSelectorMultiTabTest 149 class SSLClientCertificateSelectorMultiTabTest
133 : public SSLClientCertificateSelectorTest { 150 : public SSLClientCertificateSelectorTest {
134 public: 151 public:
135 void SetUpInProcessBrowserTestFixture() override { 152 void SetUpInProcessBrowserTestFixture() override {
136 SSLClientCertificateSelectorTest::SetUpInProcessBrowserTestFixture(); 153 SSLClientCertificateSelectorTest::SetUpInProcessBrowserTestFixture();
137 154
138 cert_request_info_1_ = new net::SSLCertRequestInfo; 155 cert_request_info_1_ = new net::SSLCertRequestInfo;
139 cert_request_info_1_->host_and_port = net::HostPortPair("bar", 123); 156 cert_request_info_1_->host_and_port = net::HostPortPair("bar", 123);
140 cert_request_info_1_->client_certs.push_back(mit_davidben_cert_); 157 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_); 158 cert_request_info_1_->client_certs.push_back(client_cert_2_);
142 159
143 cert_request_info_2_ = new net::SSLCertRequestInfo; 160 cert_request_info_2_ = new net::SSLCertRequestInfo;
144 cert_request_info_2_->host_and_port = net::HostPortPair("bar", 123); 161 cert_request_info_2_->host_and_port = net::HostPortPair("bar", 123);
145 cert_request_info_2_->client_certs.push_back(mit_davidben_cert_); 162 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_); 163 cert_request_info_2_->client_certs.push_back(client_cert_2_);
147 } 164 }
148 165
149 void SetUpOnMainThread() override { 166 void SetUpOnMainThread() override {
150 // Also calls SetUpOnIOThread. 167 // Also calls SetUpOnIOThread.
151 SSLClientCertificateSelectorTest::SetUpOnMainThread(); 168 SSLClientCertificateSelectorTest::SetUpOnMainThread();
152 169
153 AddTabAtIndex(1, GURL("about:blank"), ui::PAGE_TRANSITION_LINK); 170 AddTabAtIndex(1, GURL("about:blank"), ui::PAGE_TRANSITION_LINK);
154 AddTabAtIndex(2, GURL("about:blank"), ui::PAGE_TRANSITION_LINK); 171 AddTabAtIndex(2, GURL("about:blank"), ui::PAGE_TRANSITION_LINK);
155 ASSERT_TRUE(NULL != browser()->tab_strip_model()->GetWebContentsAt(0)); 172 ASSERT_TRUE(NULL != browser()->tab_strip_model()->GetWebContentsAt(0));
156 ASSERT_TRUE(NULL != browser()->tab_strip_model()->GetWebContentsAt(1)); 173 ASSERT_TRUE(NULL != browser()->tab_strip_model()->GetWebContentsAt(1));
157 ASSERT_TRUE(NULL != browser()->tab_strip_model()->GetWebContentsAt(2)); 174 ASSERT_TRUE(NULL != browser()->tab_strip_model()->GetWebContentsAt(2));
158 content::WaitForLoadStop(browser()->tab_strip_model()->GetWebContentsAt(1)); 175 content::WaitForLoadStop(browser()->tab_strip_model()->GetWebContentsAt(1));
159 content::WaitForLoadStop(browser()->tab_strip_model()->GetWebContentsAt(2)); 176 content::WaitForLoadStop(browser()->tab_strip_model()->GetWebContentsAt(2));
160 177
161 selector_1_ = new SSLClientCertificateSelector( 178 selector_1_ = new SSLClientCertificateSelector(
162 browser()->tab_strip_model()->GetWebContentsAt(1), 179 browser()->tab_strip_model()->GetWebContentsAt(1),
163 auth_requestor_1_->cert_request_info_, 180 auth_requestor_1_->cert_request_info_,
164 base::Bind(&SSLClientAuthRequestorMock::CertificateSelected, 181 base::Bind(&SSLClientAuthRequestorMock::CertificateSelected,
165 auth_requestor_1_)); 182 auth_requestor_1_));
166 selector_1_->Init(); 183 selector_1_->Init();
184 selector_1_->Show();
167 selector_2_ = new SSLClientCertificateSelector( 185 selector_2_ = new SSLClientCertificateSelector(
168 browser()->tab_strip_model()->GetWebContentsAt(2), 186 browser()->tab_strip_model()->GetWebContentsAt(2),
169 auth_requestor_2_->cert_request_info_, 187 auth_requestor_2_->cert_request_info_,
170 base::Bind(&SSLClientAuthRequestorMock::CertificateSelected, 188 base::Bind(&SSLClientAuthRequestorMock::CertificateSelected,
171 auth_requestor_2_)); 189 auth_requestor_2_));
172 selector_2_->Init(); 190 selector_2_->Init();
191 selector_2_->Show();
173 192
174 EXPECT_EQ(2, browser()->tab_strip_model()->active_index()); 193 EXPECT_EQ(2, browser()->tab_strip_model()->active_index());
175 EXPECT_EQ(mit_davidben_cert_.get(), selector_1_->GetSelectedCert()); 194 EXPECT_EQ(client_cert_1_.get(), selector_1_->GetSelectedCert());
176 EXPECT_EQ(mit_davidben_cert_.get(), selector_2_->GetSelectedCert()); 195 EXPECT_EQ(client_cert_1_.get(), selector_2_->GetSelectedCert());
177 } 196 }
178 197
179 void SetUpOnIOThread() override { 198 void SetUpOnIOThread() override {
180 url_request_1_ = 199 url_request_1_ =
181 MakeURLRequest(url_request_context_getter_.get()).release(); 200 MakeURLRequest(url_request_context_getter_.get()).release();
182 url_request_2_ = 201 url_request_2_ =
183 MakeURLRequest(url_request_context_getter_.get()).release(); 202 MakeURLRequest(url_request_context_getter_.get()).release();
184 203
185 auth_requestor_1_ = new StrictMock<SSLClientAuthRequestorMock>( 204 auth_requestor_1_ = new StrictMock<SSLClientAuthRequestorMock>(
186 url_request_1_, 205 url_request_1_,
(...skipping 29 matching lines...) Expand all
216 }; 235 };
217 236
218 class SSLClientCertificateSelectorMultiProfileTest 237 class SSLClientCertificateSelectorMultiProfileTest
219 : public SSLClientCertificateSelectorTest { 238 : public SSLClientCertificateSelectorTest {
220 public: 239 public:
221 void SetUpInProcessBrowserTestFixture() override { 240 void SetUpInProcessBrowserTestFixture() override {
222 SSLClientCertificateSelectorTest::SetUpInProcessBrowserTestFixture(); 241 SSLClientCertificateSelectorTest::SetUpInProcessBrowserTestFixture();
223 242
224 cert_request_info_1_ = new net::SSLCertRequestInfo; 243 cert_request_info_1_ = new net::SSLCertRequestInfo;
225 cert_request_info_1_->host_and_port = net::HostPortPair("foo", 123); 244 cert_request_info_1_->host_and_port = net::HostPortPair("foo", 123);
226 cert_request_info_1_->client_certs.push_back(mit_davidben_cert_); 245 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_); 246 cert_request_info_1_->client_certs.push_back(client_cert_2_);
228 } 247 }
229 248
230 void SetUpOnMainThread() override { 249 void SetUpOnMainThread() override {
231 browser_1_ = CreateIncognitoBrowser(); 250 browser_1_ = CreateIncognitoBrowser();
232 url_request_context_getter_1_ = browser_1_->profile()->GetRequestContext(); 251 url_request_context_getter_1_ = browser_1_->profile()->GetRequestContext();
233 252
234 // Also calls SetUpOnIOThread. 253 // Also calls SetUpOnIOThread.
235 SSLClientCertificateSelectorTest::SetUpOnMainThread(); 254 SSLClientCertificateSelectorTest::SetUpOnMainThread();
236 255
237 selector_1_ = new SSLClientCertificateSelector( 256 selector_1_ = new SSLClientCertificateSelector(
238 browser_1_->tab_strip_model()->GetActiveWebContents(), 257 browser_1_->tab_strip_model()->GetActiveWebContents(),
239 auth_requestor_1_->cert_request_info_, 258 auth_requestor_1_->cert_request_info_,
240 base::Bind(&SSLClientAuthRequestorMock::CertificateSelected, 259 base::Bind(&SSLClientAuthRequestorMock::CertificateSelected,
241 auth_requestor_1_)); 260 auth_requestor_1_));
242 selector_1_->Init(); 261 selector_1_->Init();
262 selector_1_->Show();
243 263
244 EXPECT_EQ(mit_davidben_cert_.get(), selector_1_->GetSelectedCert()); 264 EXPECT_EQ(client_cert_1_.get(), selector_1_->GetSelectedCert());
245 } 265 }
246 266
247 void SetUpOnIOThread() override { 267 void SetUpOnIOThread() override {
248 url_request_1_ = 268 url_request_1_ =
249 MakeURLRequest(url_request_context_getter_1_.get()).release(); 269 MakeURLRequest(url_request_context_getter_1_.get()).release();
250 270
251 auth_requestor_1_ = new StrictMock<SSLClientAuthRequestorMock>( 271 auth_requestor_1_ = new StrictMock<SSLClientAuthRequestorMock>(
252 url_request_1_, 272 url_request_1_,
253 cert_request_info_1_); 273 cert_request_info_1_);
254 274
(...skipping 26 matching lines...) Expand all
281 #define MAYBE_SelectNone SelectNone 301 #define MAYBE_SelectNone SelectNone
282 #endif 302 #endif
283 303
284 304
285 IN_PROC_BROWSER_TEST_F(SSLClientCertificateSelectorTest, MAYBE_SelectNone) { 305 IN_PROC_BROWSER_TEST_F(SSLClientCertificateSelectorTest, MAYBE_SelectNone) {
286 EXPECT_CALL(*auth_requestor_.get(), CertificateSelected(NULL)); 306 EXPECT_CALL(*auth_requestor_.get(), CertificateSelected(NULL));
287 307
288 // Let the mock get checked on destruction. 308 // Let the mock get checked on destruction.
289 } 309 }
290 310
291 // http://crbug.com/121007 311 IN_PROC_BROWSER_TEST_F(SSLClientCertificateSelectorTest, Escape) {
292 IN_PROC_BROWSER_TEST_F(SSLClientCertificateSelectorTest, DISABLED_Escape) {
293 EXPECT_CALL(*auth_requestor_.get(), CertificateSelected(NULL)); 312 EXPECT_CALL(*auth_requestor_.get(), CertificateSelected(NULL));
294 313
295 EXPECT_TRUE(ui_test_utils::SendKeyPressSync( 314 EXPECT_TRUE(ui_test_utils::SendKeyPressSync(
296 browser(), ui::VKEY_ESCAPE, false, false, false, false)); 315 browser(), ui::VKEY_ESCAPE, false, false, false, false));
297 316
298 Mock::VerifyAndClear(auth_requestor_.get()); 317 Mock::VerifyAndClear(auth_requestor_.get());
299 } 318 }
300 319
301 // Flaky, http://crbug.com/103534 . 320 IN_PROC_BROWSER_TEST_F(SSLClientCertificateSelectorTest, SelectDefault) {
302 IN_PROC_BROWSER_TEST_F(SSLClientCertificateSelectorTest,
303 DISABLED_SelectDefault) {
304 EXPECT_CALL(*auth_requestor_.get(), 321 EXPECT_CALL(*auth_requestor_.get(),
305 CertificateSelected(mit_davidben_cert_.get())); 322 CertificateSelected(client_cert_1_.get()));
306 323
307 EXPECT_TRUE(ui_test_utils::SendKeyPressSync( 324 EXPECT_TRUE(ui_test_utils::SendKeyPressSync(
308 browser(), ui::VKEY_RETURN, false, false, false, false)); 325 browser(), ui::VKEY_RETURN, false, false, false, false));
309 326
310 Mock::VerifyAndClear(auth_requestor_.get()); 327 Mock::VerifyAndClear(auth_requestor_.get());
311 } 328 }
312 329
313 // http://crbug.com/121007 330 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 331 // auth_requestor_1_ should get selected automatically by the
317 // SSLClientAuthObserver when selector_2_ is accepted, since both 1 & 2 have 332 // SSLClientAuthObserver when selector_2_ is accepted, since both 1 & 2 have
318 // the same host:port. 333 // the same host:port.
319 EXPECT_CALL(*auth_requestor_1_.get(), CertificateSelected(NULL)); 334 EXPECT_CALL(*auth_requestor_1_.get(), CertificateSelected(NULL));
320 EXPECT_CALL(*auth_requestor_2_.get(), CertificateSelected(NULL)); 335 EXPECT_CALL(*auth_requestor_2_.get(), CertificateSelected(NULL));
321 336
322 EXPECT_TRUE(ui_test_utils::SendKeyPressSync( 337 EXPECT_TRUE(ui_test_utils::SendKeyPressSync(
323 browser(), ui::VKEY_ESCAPE, false, false, false, false)); 338 browser(), ui::VKEY_ESCAPE, false, false, false, false));
324 339
325 Mock::VerifyAndClear(auth_requestor_.get()); 340 Mock::VerifyAndClear(auth_requestor_.get());
326 Mock::VerifyAndClear(auth_requestor_1_.get()); 341 Mock::VerifyAndClear(auth_requestor_1_.get());
327 Mock::VerifyAndClear(auth_requestor_2_.get()); 342 Mock::VerifyAndClear(auth_requestor_2_.get());
328 343
329 // Now let the default selection for auth_requestor_ mock get checked on 344 // Now let the default selection for auth_requestor_ mock get checked on
330 // destruction. 345 // destruction.
331 EXPECT_CALL(*auth_requestor_.get(), CertificateSelected(NULL)); 346 EXPECT_CALL(*auth_requestor_.get(), CertificateSelected(NULL));
332 } 347 }
333 348
334 // http://crbug.com/121007 349 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 350 // auth_requestor_1_ should get selected automatically by the
338 // SSLClientAuthObserver when selector_2_ is accepted, since both 1 & 2 have 351 // SSLClientAuthObserver when selector_2_ is accepted, since both 1 & 2 have
339 // the same host:port. 352 // the same host:port.
340 EXPECT_CALL(*auth_requestor_1_.get(), 353 EXPECT_CALL(*auth_requestor_1_.get(),
341 CertificateSelected(foaf_me_chromium_test_cert_.get())); 354 CertificateSelected(client_cert_2_.get()));
342 EXPECT_CALL(*auth_requestor_2_.get(), 355 EXPECT_CALL(*auth_requestor_2_.get(),
343 CertificateSelected(foaf_me_chromium_test_cert_.get())); 356 CertificateSelected(client_cert_2_.get()));
344 357
345 EXPECT_TRUE(ui_test_utils::SendKeyPressSync( 358 EXPECT_TRUE(ui_test_utils::SendKeyPressSync(
346 browser(), ui::VKEY_DOWN, false, false, false, false)); 359 browser(), ui::VKEY_DOWN, false, false, false, false));
347 360
348 EXPECT_EQ(mit_davidben_cert_.get(), selector_->GetSelectedCert()); 361 EXPECT_EQ(client_cert_1_.get(), selector_->GetSelectedCert());
349 EXPECT_EQ(mit_davidben_cert_.get(), selector_1_->GetSelectedCert()); 362 EXPECT_EQ(client_cert_1_.get(), selector_1_->GetSelectedCert());
350 EXPECT_EQ(foaf_me_chromium_test_cert_.get(), selector_2_->GetSelectedCert()); 363 EXPECT_EQ(client_cert_2_.get(), selector_2_->GetSelectedCert());
351 364
352 EXPECT_TRUE(ui_test_utils::SendKeyPressSync( 365 EXPECT_TRUE(ui_test_utils::SendKeyPressSync(
353 browser(), ui::VKEY_RETURN, false, false, false, false)); 366 browser(), ui::VKEY_RETURN, false, false, false, false));
354 367
355 Mock::VerifyAndClear(auth_requestor_.get()); 368 Mock::VerifyAndClear(auth_requestor_.get());
356 Mock::VerifyAndClear(auth_requestor_1_.get()); 369 Mock::VerifyAndClear(auth_requestor_1_.get());
357 Mock::VerifyAndClear(auth_requestor_2_.get()); 370 Mock::VerifyAndClear(auth_requestor_2_.get());
358 371
359 // Now let the default selection for auth_requestor_ mock get checked on 372 // Now let the default selection for auth_requestor_ mock get checked on
360 // destruction. 373 // destruction.
361 EXPECT_CALL(*auth_requestor_.get(), CertificateSelected(NULL)); 374 EXPECT_CALL(*auth_requestor_.get(), CertificateSelected(NULL));
362 } 375 }
363 376
364 // http://crbug.com/103529 377 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)); 378 EXPECT_CALL(*auth_requestor_1_.get(), CertificateSelected(NULL));
368 379
369 EXPECT_TRUE(ui_test_utils::SendKeyPressSync( 380 EXPECT_TRUE(ui_test_utils::SendKeyPressSync(
370 browser_1_, ui::VKEY_ESCAPE, false, false, false, false)); 381 browser_1_, ui::VKEY_ESCAPE, false, false, false, false));
371 382
372 Mock::VerifyAndClear(auth_requestor_.get()); 383 Mock::VerifyAndClear(auth_requestor_.get());
373 Mock::VerifyAndClear(auth_requestor_1_.get()); 384 Mock::VerifyAndClear(auth_requestor_1_.get());
374 385
375 // Now let the default selection for auth_requestor_ mock get checked on 386 // Now let the default selection for auth_requestor_ mock get checked on
376 // destruction. 387 // destruction.
377 EXPECT_CALL(*auth_requestor_.get(), CertificateSelected(NULL)); 388 EXPECT_CALL(*auth_requestor_.get(), CertificateSelected(NULL));
378 } 389 }
379 390
380 // http://crbug.com/103534
381 IN_PROC_BROWSER_TEST_F(SSLClientCertificateSelectorMultiProfileTest, 391 IN_PROC_BROWSER_TEST_F(SSLClientCertificateSelectorMultiProfileTest,
382 DISABLED_SelectDefault) { 392 SelectDefault) {
383 EXPECT_CALL(*auth_requestor_1_.get(), 393 EXPECT_CALL(*auth_requestor_1_.get(),
384 CertificateSelected(mit_davidben_cert_.get())); 394 CertificateSelected(client_cert_1_.get()));
385 395
386 EXPECT_TRUE(ui_test_utils::SendKeyPressSync( 396 EXPECT_TRUE(ui_test_utils::SendKeyPressSync(
387 browser_1_, ui::VKEY_RETURN, false, false, false, false)); 397 browser_1_, ui::VKEY_RETURN, false, false, false, false));
388 398
389 Mock::VerifyAndClear(auth_requestor_.get()); 399 Mock::VerifyAndClear(auth_requestor_.get());
390 Mock::VerifyAndClear(auth_requestor_1_.get()); 400 Mock::VerifyAndClear(auth_requestor_1_.get());
391 401
392 // Now let the default selection for auth_requestor_ mock get checked on 402 // Now let the default selection for auth_requestor_ mock get checked on
393 // destruction. 403 // destruction.
394 EXPECT_CALL(*auth_requestor_.get(), CertificateSelected(NULL)); 404 EXPECT_CALL(*auth_requestor_.get(), CertificateSelected(NULL));
395 } 405 }
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