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

Side by Side Diff: chrome/browser/ui/views/ssl_client_certificate_selector_browsertest.cc

Issue 859213006: Cancel client auth requests when not promptable. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@client-auth-cancel-1
Patch Set: mismerge 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/client_certificate_delegate.h"
16 #include "content/public/browser/web_contents.h" 17 #include "content/public/browser/web_contents.h"
17 #include "content/public/test/browser_test_utils.h" 18 #include "content/public/test/browser_test_utils.h"
18 #include "net/base/request_priority.h" 19 #include "net/base/request_priority.h"
19 #include "net/base/test_data_directory.h" 20 #include "net/base/test_data_directory.h"
20 #include "net/cert/x509_certificate.h" 21 #include "net/cert/x509_certificate.h"
21 #include "net/http/http_transaction_factory.h" 22 #include "net/http/http_transaction_factory.h"
22 #include "net/ssl/ssl_cert_request_info.h" 23 #include "net/ssl/ssl_cert_request_info.h"
23 #include "net/test/cert_test_util.h" 24 #include "net/test/cert_test_util.h"
24 #include "net/url_request/url_request.h" 25 #include "net/url_request/url_request.h"
25 #include "net/url_request/url_request_context.h" 26 #include "net/url_request/url_request_context.h"
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after
79 BrowserThread::PostTask( 80 BrowserThread::PostTask(
80 BrowserThread::IO, FROM_HERE, 81 BrowserThread::IO, FROM_HERE,
81 base::Bind(&SSLClientCertificateSelectorTest::SetUpOnIOThread, this)); 82 base::Bind(&SSLClientCertificateSelectorTest::SetUpOnIOThread, this));
82 83
83 io_loop_finished_event_.Wait(); 84 io_loop_finished_event_.Wait();
84 85
85 content::WaitForLoadStop( 86 content::WaitForLoadStop(
86 browser()->tab_strip_model()->GetActiveWebContents()); 87 browser()->tab_strip_model()->GetActiveWebContents());
87 selector_ = new SSLClientCertificateSelector( 88 selector_ = new SSLClientCertificateSelector(
88 browser()->tab_strip_model()->GetActiveWebContents(), 89 browser()->tab_strip_model()->GetActiveWebContents(),
89 auth_requestor_->cert_request_info_, 90 auth_requestor_->cert_request_info_, auth_requestor_->CreateDelegate());
90 base::Bind(&SSLClientAuthRequestorMock::CertificateSelected,
91 auth_requestor_));
92 selector_->Init(); 91 selector_->Init();
93 selector_->Show(); 92 selector_->Show();
94 93
95 EXPECT_EQ(client_cert_1_.get(), selector_->GetSelectedCert()); 94 EXPECT_EQ(client_cert_1_.get(), selector_->GetSelectedCert());
96 } 95 }
97 96
98 virtual void SetUpOnIOThread() { 97 virtual void SetUpOnIOThread() {
99 url_request_ = MakeURLRequest(url_request_context_getter_.get()).release(); 98 url_request_ = MakeURLRequest(url_request_context_getter_.get()).release();
100 99
101 auth_requestor_ = new StrictMock<SSLClientAuthRequestorMock>( 100 auth_requestor_ = new StrictMock<SSLClientAuthRequestorMock>(
(...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after
171 AddTabAtIndex(2, GURL("about:blank"), ui::PAGE_TRANSITION_LINK); 170 AddTabAtIndex(2, GURL("about:blank"), ui::PAGE_TRANSITION_LINK);
172 ASSERT_TRUE(NULL != browser()->tab_strip_model()->GetWebContentsAt(0)); 171 ASSERT_TRUE(NULL != browser()->tab_strip_model()->GetWebContentsAt(0));
173 ASSERT_TRUE(NULL != browser()->tab_strip_model()->GetWebContentsAt(1)); 172 ASSERT_TRUE(NULL != browser()->tab_strip_model()->GetWebContentsAt(1));
174 ASSERT_TRUE(NULL != browser()->tab_strip_model()->GetWebContentsAt(2)); 173 ASSERT_TRUE(NULL != browser()->tab_strip_model()->GetWebContentsAt(2));
175 content::WaitForLoadStop(browser()->tab_strip_model()->GetWebContentsAt(1)); 174 content::WaitForLoadStop(browser()->tab_strip_model()->GetWebContentsAt(1));
176 content::WaitForLoadStop(browser()->tab_strip_model()->GetWebContentsAt(2)); 175 content::WaitForLoadStop(browser()->tab_strip_model()->GetWebContentsAt(2));
177 176
178 selector_1_ = new SSLClientCertificateSelector( 177 selector_1_ = new SSLClientCertificateSelector(
179 browser()->tab_strip_model()->GetWebContentsAt(1), 178 browser()->tab_strip_model()->GetWebContentsAt(1),
180 auth_requestor_1_->cert_request_info_, 179 auth_requestor_1_->cert_request_info_,
181 base::Bind(&SSLClientAuthRequestorMock::CertificateSelected, 180 auth_requestor_1_->CreateDelegate());
182 auth_requestor_1_));
183 selector_1_->Init(); 181 selector_1_->Init();
184 selector_1_->Show(); 182 selector_1_->Show();
185 selector_2_ = new SSLClientCertificateSelector( 183 selector_2_ = new SSLClientCertificateSelector(
186 browser()->tab_strip_model()->GetWebContentsAt(2), 184 browser()->tab_strip_model()->GetWebContentsAt(2),
187 auth_requestor_2_->cert_request_info_, 185 auth_requestor_2_->cert_request_info_,
188 base::Bind(&SSLClientAuthRequestorMock::CertificateSelected, 186 auth_requestor_2_->CreateDelegate());
189 auth_requestor_2_));
190 selector_2_->Init(); 187 selector_2_->Init();
191 selector_2_->Show(); 188 selector_2_->Show();
192 189
193 EXPECT_EQ(2, browser()->tab_strip_model()->active_index()); 190 EXPECT_EQ(2, browser()->tab_strip_model()->active_index());
194 EXPECT_EQ(client_cert_1_.get(), selector_1_->GetSelectedCert()); 191 EXPECT_EQ(client_cert_1_.get(), selector_1_->GetSelectedCert());
195 EXPECT_EQ(client_cert_1_.get(), selector_2_->GetSelectedCert()); 192 EXPECT_EQ(client_cert_1_.get(), selector_2_->GetSelectedCert());
196 } 193 }
197 194
198 void SetUpOnIOThread() override { 195 void SetUpOnIOThread() override {
199 url_request_1_ = 196 url_request_1_ =
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after
249 void SetUpOnMainThread() override { 246 void SetUpOnMainThread() override {
250 browser_1_ = CreateIncognitoBrowser(); 247 browser_1_ = CreateIncognitoBrowser();
251 url_request_context_getter_1_ = browser_1_->profile()->GetRequestContext(); 248 url_request_context_getter_1_ = browser_1_->profile()->GetRequestContext();
252 249
253 // Also calls SetUpOnIOThread. 250 // Also calls SetUpOnIOThread.
254 SSLClientCertificateSelectorTest::SetUpOnMainThread(); 251 SSLClientCertificateSelectorTest::SetUpOnMainThread();
255 252
256 selector_1_ = new SSLClientCertificateSelector( 253 selector_1_ = new SSLClientCertificateSelector(
257 browser_1_->tab_strip_model()->GetActiveWebContents(), 254 browser_1_->tab_strip_model()->GetActiveWebContents(),
258 auth_requestor_1_->cert_request_info_, 255 auth_requestor_1_->cert_request_info_,
259 base::Bind(&SSLClientAuthRequestorMock::CertificateSelected, 256 auth_requestor_1_->CreateDelegate());
260 auth_requestor_1_));
261 selector_1_->Init(); 257 selector_1_->Init();
262 selector_1_->Show(); 258 selector_1_->Show();
263 259
264 EXPECT_EQ(client_cert_1_.get(), selector_1_->GetSelectedCert()); 260 EXPECT_EQ(client_cert_1_.get(), selector_1_->GetSelectedCert());
265 } 261 }
266 262
267 void SetUpOnIOThread() override { 263 void SetUpOnIOThread() override {
268 url_request_1_ = 264 url_request_1_ =
269 MakeURLRequest(url_request_context_getter_1_.get()).release(); 265 MakeURLRequest(url_request_context_getter_1_.get()).release();
270 266
(...skipping 25 matching lines...) Expand all
296 292
297 #if defined(OS_LINUX) && !defined(OS_CHROMEOS) && defined(USE_AURA) 293 #if defined(OS_LINUX) && !defined(OS_CHROMEOS) && defined(USE_AURA)
298 // TODO(erg): linux_aura bringup: http://crbug.com/163931 294 // TODO(erg): linux_aura bringup: http://crbug.com/163931
299 #define MAYBE_SelectNone DISABLED_SelectNone 295 #define MAYBE_SelectNone DISABLED_SelectNone
300 #else 296 #else
301 #define MAYBE_SelectNone SelectNone 297 #define MAYBE_SelectNone SelectNone
302 #endif 298 #endif
303 299
304 300
305 IN_PROC_BROWSER_TEST_F(SSLClientCertificateSelectorTest, MAYBE_SelectNone) { 301 IN_PROC_BROWSER_TEST_F(SSLClientCertificateSelectorTest, MAYBE_SelectNone) {
306 EXPECT_CALL(*auth_requestor_.get(), CertificateSelected(NULL)); 302 EXPECT_CALL(*auth_requestor_.get(), CancelCertificateSelection());
307 303
308 // Let the mock get checked on destruction. 304 // Let the mock get checked on destruction.
309 } 305 }
310 306
311 IN_PROC_BROWSER_TEST_F(SSLClientCertificateSelectorTest, Escape) { 307 IN_PROC_BROWSER_TEST_F(SSLClientCertificateSelectorTest, Escape) {
312 EXPECT_CALL(*auth_requestor_.get(), CertificateSelected(NULL)); 308 EXPECT_CALL(*auth_requestor_.get(), CertificateSelected(NULL));
313 309
314 EXPECT_TRUE(ui_test_utils::SendKeyPressSync( 310 EXPECT_TRUE(ui_test_utils::SendKeyPressSync(
315 browser(), ui::VKEY_ESCAPE, false, false, false, false)); 311 browser(), ui::VKEY_ESCAPE, false, false, false, false));
316 312
(...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after
396 EXPECT_TRUE(ui_test_utils::SendKeyPressSync( 392 EXPECT_TRUE(ui_test_utils::SendKeyPressSync(
397 browser_1_, ui::VKEY_RETURN, false, false, false, false)); 393 browser_1_, ui::VKEY_RETURN, false, false, false, false));
398 394
399 Mock::VerifyAndClear(auth_requestor_.get()); 395 Mock::VerifyAndClear(auth_requestor_.get());
400 Mock::VerifyAndClear(auth_requestor_1_.get()); 396 Mock::VerifyAndClear(auth_requestor_1_.get());
401 397
402 // Now let the default selection for auth_requestor_ mock get checked on 398 // Now let the default selection for auth_requestor_ mock get checked on
403 // destruction. 399 // destruction.
404 EXPECT_CALL(*auth_requestor_.get(), CertificateSelected(NULL)); 400 EXPECT_CALL(*auth_requestor_.get(), CertificateSelected(NULL));
405 } 401 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698