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

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: extension test 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 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
66 BrowserThread::PostTask( 67 BrowserThread::PostTask(
67 BrowserThread::IO, FROM_HERE, 68 BrowserThread::IO, FROM_HERE,
68 base::Bind(&SSLClientCertificateSelectorTest::SetUpOnIOThread, this)); 69 base::Bind(&SSLClientCertificateSelectorTest::SetUpOnIOThread, this));
69 70
70 io_loop_finished_event_.Wait(); 71 io_loop_finished_event_.Wait();
71 72
72 content::WaitForLoadStop( 73 content::WaitForLoadStop(
73 browser()->tab_strip_model()->GetActiveWebContents()); 74 browser()->tab_strip_model()->GetActiveWebContents());
74 selector_ = new SSLClientCertificateSelector( 75 selector_ = new SSLClientCertificateSelector(
75 browser()->tab_strip_model()->GetActiveWebContents(), 76 browser()->tab_strip_model()->GetActiveWebContents(),
76 auth_requestor_->cert_request_info_, 77 auth_requestor_->cert_request_info_, auth_requestor_->CreateDelegate());
77 base::Bind(&SSLClientAuthRequestorMock::CertificateSelected,
78 auth_requestor_));
79 selector_->Init(); 78 selector_->Init();
80 79
81 EXPECT_EQ(mit_davidben_cert_.get(), selector_->GetSelectedCert()); 80 EXPECT_EQ(mit_davidben_cert_.get(), selector_->GetSelectedCert());
82 } 81 }
83 82
84 virtual void SetUpOnIOThread() { 83 virtual void SetUpOnIOThread() {
85 url_request_ = MakeURLRequest(url_request_context_getter_.get()).release(); 84 url_request_ = MakeURLRequest(url_request_context_getter_.get()).release();
86 85
87 auth_requestor_ = new StrictMock<SSLClientAuthRequestorMock>( 86 auth_requestor_ = new StrictMock<SSLClientAuthRequestorMock>(
88 url_request_, 87 url_request_,
(...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after
154 AddTabAtIndex(2, GURL("about:blank"), ui::PAGE_TRANSITION_LINK); 153 AddTabAtIndex(2, GURL("about:blank"), ui::PAGE_TRANSITION_LINK);
155 ASSERT_TRUE(NULL != browser()->tab_strip_model()->GetWebContentsAt(0)); 154 ASSERT_TRUE(NULL != browser()->tab_strip_model()->GetWebContentsAt(0));
156 ASSERT_TRUE(NULL != browser()->tab_strip_model()->GetWebContentsAt(1)); 155 ASSERT_TRUE(NULL != browser()->tab_strip_model()->GetWebContentsAt(1));
157 ASSERT_TRUE(NULL != browser()->tab_strip_model()->GetWebContentsAt(2)); 156 ASSERT_TRUE(NULL != browser()->tab_strip_model()->GetWebContentsAt(2));
158 content::WaitForLoadStop(browser()->tab_strip_model()->GetWebContentsAt(1)); 157 content::WaitForLoadStop(browser()->tab_strip_model()->GetWebContentsAt(1));
159 content::WaitForLoadStop(browser()->tab_strip_model()->GetWebContentsAt(2)); 158 content::WaitForLoadStop(browser()->tab_strip_model()->GetWebContentsAt(2));
160 159
161 selector_1_ = new SSLClientCertificateSelector( 160 selector_1_ = new SSLClientCertificateSelector(
162 browser()->tab_strip_model()->GetWebContentsAt(1), 161 browser()->tab_strip_model()->GetWebContentsAt(1),
163 auth_requestor_1_->cert_request_info_, 162 auth_requestor_1_->cert_request_info_,
164 base::Bind(&SSLClientAuthRequestorMock::CertificateSelected, 163 auth_requestor_1_->CreateDelegate());
165 auth_requestor_1_));
166 selector_1_->Init(); 164 selector_1_->Init();
167 selector_2_ = new SSLClientCertificateSelector( 165 selector_2_ = new SSLClientCertificateSelector(
168 browser()->tab_strip_model()->GetWebContentsAt(2), 166 browser()->tab_strip_model()->GetWebContentsAt(2),
169 auth_requestor_2_->cert_request_info_, 167 auth_requestor_2_->cert_request_info_,
170 base::Bind(&SSLClientAuthRequestorMock::CertificateSelected, 168 auth_requestor_2_->CreateDelegate());
171 auth_requestor_2_));
172 selector_2_->Init(); 169 selector_2_->Init();
173 170
174 EXPECT_EQ(2, browser()->tab_strip_model()->active_index()); 171 EXPECT_EQ(2, browser()->tab_strip_model()->active_index());
175 EXPECT_EQ(mit_davidben_cert_.get(), selector_1_->GetSelectedCert()); 172 EXPECT_EQ(mit_davidben_cert_.get(), selector_1_->GetSelectedCert());
176 EXPECT_EQ(mit_davidben_cert_.get(), selector_2_->GetSelectedCert()); 173 EXPECT_EQ(mit_davidben_cert_.get(), selector_2_->GetSelectedCert());
177 } 174 }
178 175
179 void SetUpOnIOThread() override { 176 void SetUpOnIOThread() override {
180 url_request_1_ = 177 url_request_1_ =
181 MakeURLRequest(url_request_context_getter_.get()).release(); 178 MakeURLRequest(url_request_context_getter_.get()).release();
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after
230 void SetUpOnMainThread() override { 227 void SetUpOnMainThread() override {
231 browser_1_ = CreateIncognitoBrowser(); 228 browser_1_ = CreateIncognitoBrowser();
232 url_request_context_getter_1_ = browser_1_->profile()->GetRequestContext(); 229 url_request_context_getter_1_ = browser_1_->profile()->GetRequestContext();
233 230
234 // Also calls SetUpOnIOThread. 231 // Also calls SetUpOnIOThread.
235 SSLClientCertificateSelectorTest::SetUpOnMainThread(); 232 SSLClientCertificateSelectorTest::SetUpOnMainThread();
236 233
237 selector_1_ = new SSLClientCertificateSelector( 234 selector_1_ = new SSLClientCertificateSelector(
238 browser_1_->tab_strip_model()->GetActiveWebContents(), 235 browser_1_->tab_strip_model()->GetActiveWebContents(),
239 auth_requestor_1_->cert_request_info_, 236 auth_requestor_1_->cert_request_info_,
240 base::Bind(&SSLClientAuthRequestorMock::CertificateSelected, 237 auth_requestor_1_->CreateDelegate());
241 auth_requestor_1_));
242 selector_1_->Init(); 238 selector_1_->Init();
243 239
244 EXPECT_EQ(mit_davidben_cert_.get(), selector_1_->GetSelectedCert()); 240 EXPECT_EQ(mit_davidben_cert_.get(), selector_1_->GetSelectedCert());
245 } 241 }
246 242
247 void SetUpOnIOThread() override { 243 void SetUpOnIOThread() override {
248 url_request_1_ = 244 url_request_1_ =
249 MakeURLRequest(url_request_context_getter_1_.get()).release(); 245 MakeURLRequest(url_request_context_getter_1_.get()).release();
250 246
251 auth_requestor_1_ = new StrictMock<SSLClientAuthRequestorMock>( 247 auth_requestor_1_ = new StrictMock<SSLClientAuthRequestorMock>(
(...skipping 24 matching lines...) Expand all
276 272
277 #if defined(OS_LINUX) && !defined(OS_CHROMEOS) && defined(USE_AURA) 273 #if defined(OS_LINUX) && !defined(OS_CHROMEOS) && defined(USE_AURA)
278 // TODO(erg): linux_aura bringup: http://crbug.com/163931 274 // TODO(erg): linux_aura bringup: http://crbug.com/163931
279 #define MAYBE_SelectNone DISABLED_SelectNone 275 #define MAYBE_SelectNone DISABLED_SelectNone
280 #else 276 #else
281 #define MAYBE_SelectNone SelectNone 277 #define MAYBE_SelectNone SelectNone
282 #endif 278 #endif
283 279
284 280
285 IN_PROC_BROWSER_TEST_F(SSLClientCertificateSelectorTest, MAYBE_SelectNone) { 281 IN_PROC_BROWSER_TEST_F(SSLClientCertificateSelectorTest, MAYBE_SelectNone) {
286 EXPECT_CALL(*auth_requestor_.get(), CertificateSelected(NULL)); 282 EXPECT_CALL(*auth_requestor_.get(), CancelCertificateSelection());
287 283
288 // Let the mock get checked on destruction. 284 // Let the mock get checked on destruction.
289 } 285 }
290 286
291 // http://crbug.com/121007 287 // http://crbug.com/121007
292 IN_PROC_BROWSER_TEST_F(SSLClientCertificateSelectorTest, DISABLED_Escape) { 288 IN_PROC_BROWSER_TEST_F(SSLClientCertificateSelectorTest, DISABLED_Escape) {
293 EXPECT_CALL(*auth_requestor_.get(), CertificateSelected(NULL)); 289 EXPECT_CALL(*auth_requestor_.get(), CertificateSelected(NULL));
294 290
295 EXPECT_TRUE(ui_test_utils::SendKeyPressSync( 291 EXPECT_TRUE(ui_test_utils::SendKeyPressSync(
296 browser(), ui::VKEY_ESCAPE, false, false, false, false)); 292 browser(), ui::VKEY_ESCAPE, false, false, false, false));
(...skipping 89 matching lines...) Expand 10 before | Expand all | Expand 10 after
386 EXPECT_TRUE(ui_test_utils::SendKeyPressSync( 382 EXPECT_TRUE(ui_test_utils::SendKeyPressSync(
387 browser_1_, ui::VKEY_RETURN, false, false, false, false)); 383 browser_1_, ui::VKEY_RETURN, false, false, false, false));
388 384
389 Mock::VerifyAndClear(auth_requestor_.get()); 385 Mock::VerifyAndClear(auth_requestor_.get());
390 Mock::VerifyAndClear(auth_requestor_1_.get()); 386 Mock::VerifyAndClear(auth_requestor_1_.get());
391 387
392 // Now let the default selection for auth_requestor_ mock get checked on 388 // Now let the default selection for auth_requestor_ mock get checked on
393 // destruction. 389 // destruction.
394 EXPECT_CALL(*auth_requestor_.get(), CertificateSelected(NULL)); 390 EXPECT_CALL(*auth_requestor_.get(), CertificateSelected(NULL));
395 } 391 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698