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

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

Issue 2848313003: Revert of Remove client_certs from SSLCertRequestInfo. (Closed)
Patch Set: Created 3 years, 7 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 "build/build_config.h" 8 #include "build/build_config.h"
9 #include "chrome/browser/profiles/profile.h" 9 #include "chrome/browser/profiles/profile.h"
10 #include "chrome/browser/ssl/ssl_client_auth_requestor_mock.h" 10 #include "chrome/browser/ssl/ssl_client_auth_requestor_mock.h"
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after
67 // No unlock is attempted if !USE_NSS_CERTS. Thus, there is no need to 67 // No unlock is attempted if !USE_NSS_CERTS. Thus, there is no need to
68 // import a private key. 68 // import a private key.
69 client_cert_1_ = net::ImportCertFromFile(certs_dir, "client_1.pem"); 69 client_cert_1_ = net::ImportCertFromFile(certs_dir, "client_1.pem");
70 client_cert_2_ = net::ImportCertFromFile(certs_dir, "client_2.pem"); 70 client_cert_2_ = net::ImportCertFromFile(certs_dir, "client_2.pem");
71 #endif 71 #endif
72 ASSERT_NE(nullptr, client_cert_1_.get()); 72 ASSERT_NE(nullptr, client_cert_1_.get());
73 ASSERT_NE(nullptr, client_cert_2_.get()); 73 ASSERT_NE(nullptr, client_cert_2_.get());
74 74
75 cert_request_info_ = new net::SSLCertRequestInfo; 75 cert_request_info_ = new net::SSLCertRequestInfo;
76 cert_request_info_->host_and_port = net::HostPortPair("foo", 123); 76 cert_request_info_->host_and_port = net::HostPortPair("foo", 123);
77 client_certs_.push_back(client_cert_1_); 77 cert_request_info_->client_certs.push_back(client_cert_1_);
78 client_certs_.push_back(client_cert_2_); 78 cert_request_info_->client_certs.push_back(client_cert_2_);
79 } 79 }
80 80
81 void SetUpOnMainThread() override { 81 void SetUpOnMainThread() override {
82 url_request_context_getter_ = browser()->profile()->GetRequestContext(); 82 url_request_context_getter_ = browser()->profile()->GetRequestContext();
83 83
84 BrowserThread::PostTask( 84 BrowserThread::PostTask(
85 BrowserThread::IO, FROM_HERE, 85 BrowserThread::IO, FROM_HERE,
86 base::BindOnce(&SSLClientCertificateSelectorTest::SetUpOnIOThread, 86 base::BindOnce(&SSLClientCertificateSelectorTest::SetUpOnIOThread,
87 base::Unretained(this))); 87 base::Unretained(this)));
88 88
89 io_loop_finished_event_.Wait(); 89 io_loop_finished_event_.Wait();
90 90
91 content::WaitForLoadStop( 91 content::WaitForLoadStop(
92 browser()->tab_strip_model()->GetActiveWebContents()); 92 browser()->tab_strip_model()->GetActiveWebContents());
93 selector_ = new SSLClientCertificateSelector( 93 selector_ = new SSLClientCertificateSelector(
94 browser()->tab_strip_model()->GetActiveWebContents(), 94 browser()->tab_strip_model()->GetActiveWebContents(),
95 auth_requestor_->cert_request_info_, client_certs_, 95 auth_requestor_->cert_request_info_, auth_requestor_->CreateDelegate());
96 auth_requestor_->CreateDelegate());
97 selector_->Init(); 96 selector_->Init();
98 selector_->Show(); 97 selector_->Show();
99 98
100 EXPECT_EQ(client_cert_1_.get(), selector_->GetSelectedCert()); 99 EXPECT_EQ(client_cert_1_.get(), selector_->GetSelectedCert());
101 } 100 }
102 101
103 virtual void SetUpOnIOThread() { 102 virtual void SetUpOnIOThread() {
104 url_request_ = MakeURLRequest(url_request_context_getter_.get()).release(); 103 url_request_ = MakeURLRequest(url_request_context_getter_.get()).release();
105 104
106 auth_requestor_ = new StrictMock<SSLClientAuthRequestorMock>( 105 auth_requestor_ = new StrictMock<SSLClientAuthRequestorMock>(
(...skipping 29 matching lines...) Expand all
136 GURL("https://example"), net::DEFAULT_PRIORITY, NULL); 135 GURL("https://example"), net::DEFAULT_PRIORITY, NULL);
137 } 136 }
138 137
139 base::WaitableEvent io_loop_finished_event_; 138 base::WaitableEvent io_loop_finished_event_;
140 139
141 scoped_refptr<net::URLRequestContextGetter> url_request_context_getter_; 140 scoped_refptr<net::URLRequestContextGetter> url_request_context_getter_;
142 net::URLRequest* url_request_; 141 net::URLRequest* url_request_;
143 142
144 scoped_refptr<net::X509Certificate> client_cert_1_; 143 scoped_refptr<net::X509Certificate> client_cert_1_;
145 scoped_refptr<net::X509Certificate> client_cert_2_; 144 scoped_refptr<net::X509Certificate> client_cert_2_;
146 net::CertificateList client_certs_;
147 scoped_refptr<net::SSLCertRequestInfo> cert_request_info_; 145 scoped_refptr<net::SSLCertRequestInfo> cert_request_info_;
148 scoped_refptr<StrictMock<SSLClientAuthRequestorMock> > auth_requestor_; 146 scoped_refptr<StrictMock<SSLClientAuthRequestorMock> > auth_requestor_;
149 // The selector will be deleted when a cert is selected or the tab is closed. 147 // The selector will be deleted when a cert is selected or the tab is closed.
150 SSLClientCertificateSelector* selector_; 148 SSLClientCertificateSelector* selector_;
151 #if defined(USE_NSS_CERTS) 149 #if defined(USE_NSS_CERTS)
152 crypto::ScopedTestNSSDB test_nssdb_; 150 crypto::ScopedTestNSSDB test_nssdb_;
153 #endif 151 #endif
154 }; 152 };
155 153
156 class SSLClientCertificateSelectorMultiTabTest 154 class SSLClientCertificateSelectorMultiTabTest
157 : public SSLClientCertificateSelectorTest { 155 : public SSLClientCertificateSelectorTest {
158 public: 156 public:
159 void SetUpInProcessBrowserTestFixture() override { 157 void SetUpInProcessBrowserTestFixture() override {
160 SSLClientCertificateSelectorTest::SetUpInProcessBrowserTestFixture(); 158 SSLClientCertificateSelectorTest::SetUpInProcessBrowserTestFixture();
161 159
162 cert_request_info_1_ = new net::SSLCertRequestInfo; 160 cert_request_info_1_ = new net::SSLCertRequestInfo;
163 cert_request_info_1_->host_and_port = net::HostPortPair("bar", 123); 161 cert_request_info_1_->host_and_port = net::HostPortPair("bar", 123);
164 client_certs_1_.push_back(client_cert_1_); 162 cert_request_info_1_->client_certs.push_back(client_cert_1_);
165 client_certs_1_.push_back(client_cert_2_); 163 cert_request_info_1_->client_certs.push_back(client_cert_2_);
166 164
167 cert_request_info_2_ = new net::SSLCertRequestInfo; 165 cert_request_info_2_ = new net::SSLCertRequestInfo;
168 cert_request_info_2_->host_and_port = net::HostPortPair("bar", 123); 166 cert_request_info_2_->host_and_port = net::HostPortPair("bar", 123);
169 client_certs_2_.push_back(client_cert_1_); 167 cert_request_info_2_->client_certs.push_back(client_cert_1_);
170 client_certs_2_.push_back(client_cert_2_); 168 cert_request_info_2_->client_certs.push_back(client_cert_2_);
171 } 169 }
172 170
173 void SetUpOnMainThread() override { 171 void SetUpOnMainThread() override {
174 // Also calls SetUpOnIOThread. 172 // Also calls SetUpOnIOThread.
175 SSLClientCertificateSelectorTest::SetUpOnMainThread(); 173 SSLClientCertificateSelectorTest::SetUpOnMainThread();
176 174
177 AddTabAtIndex(1, GURL("about:blank"), ui::PAGE_TRANSITION_LINK); 175 AddTabAtIndex(1, GURL("about:blank"), ui::PAGE_TRANSITION_LINK);
178 AddTabAtIndex(2, GURL("about:blank"), ui::PAGE_TRANSITION_LINK); 176 AddTabAtIndex(2, GURL("about:blank"), ui::PAGE_TRANSITION_LINK);
179 ASSERT_TRUE(NULL != browser()->tab_strip_model()->GetWebContentsAt(0)); 177 ASSERT_TRUE(NULL != browser()->tab_strip_model()->GetWebContentsAt(0));
180 ASSERT_TRUE(NULL != browser()->tab_strip_model()->GetWebContentsAt(1)); 178 ASSERT_TRUE(NULL != browser()->tab_strip_model()->GetWebContentsAt(1));
181 ASSERT_TRUE(NULL != browser()->tab_strip_model()->GetWebContentsAt(2)); 179 ASSERT_TRUE(NULL != browser()->tab_strip_model()->GetWebContentsAt(2));
182 content::WaitForLoadStop(browser()->tab_strip_model()->GetWebContentsAt(1)); 180 content::WaitForLoadStop(browser()->tab_strip_model()->GetWebContentsAt(1));
183 content::WaitForLoadStop(browser()->tab_strip_model()->GetWebContentsAt(2)); 181 content::WaitForLoadStop(browser()->tab_strip_model()->GetWebContentsAt(2));
184 182
185 selector_1_ = new SSLClientCertificateSelector( 183 selector_1_ = new SSLClientCertificateSelector(
186 browser()->tab_strip_model()->GetWebContentsAt(1), 184 browser()->tab_strip_model()->GetWebContentsAt(1),
187 auth_requestor_1_->cert_request_info_, client_certs_1_, 185 auth_requestor_1_->cert_request_info_,
188 auth_requestor_1_->CreateDelegate()); 186 auth_requestor_1_->CreateDelegate());
189 selector_1_->Init(); 187 selector_1_->Init();
190 selector_1_->Show(); 188 selector_1_->Show();
191 selector_2_ = new SSLClientCertificateSelector( 189 selector_2_ = new SSLClientCertificateSelector(
192 browser()->tab_strip_model()->GetWebContentsAt(2), 190 browser()->tab_strip_model()->GetWebContentsAt(2),
193 auth_requestor_2_->cert_request_info_, client_certs_2_, 191 auth_requestor_2_->cert_request_info_,
194 auth_requestor_2_->CreateDelegate()); 192 auth_requestor_2_->CreateDelegate());
195 selector_2_->Init(); 193 selector_2_->Init();
196 selector_2_->Show(); 194 selector_2_->Show();
197 195
198 EXPECT_EQ(2, browser()->tab_strip_model()->active_index()); 196 EXPECT_EQ(2, browser()->tab_strip_model()->active_index());
199 EXPECT_EQ(client_cert_1_.get(), selector_1_->GetSelectedCert()); 197 EXPECT_EQ(client_cert_1_.get(), selector_1_->GetSelectedCert());
200 EXPECT_EQ(client_cert_1_.get(), selector_2_->GetSelectedCert()); 198 EXPECT_EQ(client_cert_1_.get(), selector_2_->GetSelectedCert());
201 } 199 }
202 200
203 void SetUpOnIOThread() override { 201 void SetUpOnIOThread() override {
(...skipping 22 matching lines...) Expand all
226 delete url_request_1_; 224 delete url_request_1_;
227 delete url_request_2_; 225 delete url_request_2_;
228 SSLClientCertificateSelectorTest::CleanUpOnIOThread(); 226 SSLClientCertificateSelectorTest::CleanUpOnIOThread();
229 } 227 }
230 228
231 protected: 229 protected:
232 net::URLRequest* url_request_1_; 230 net::URLRequest* url_request_1_;
233 net::URLRequest* url_request_2_; 231 net::URLRequest* url_request_2_;
234 scoped_refptr<net::SSLCertRequestInfo> cert_request_info_1_; 232 scoped_refptr<net::SSLCertRequestInfo> cert_request_info_1_;
235 scoped_refptr<net::SSLCertRequestInfo> cert_request_info_2_; 233 scoped_refptr<net::SSLCertRequestInfo> cert_request_info_2_;
236 net::CertificateList client_certs_1_;
237 net::CertificateList client_certs_2_;
238 scoped_refptr<StrictMock<SSLClientAuthRequestorMock> > auth_requestor_1_; 234 scoped_refptr<StrictMock<SSLClientAuthRequestorMock> > auth_requestor_1_;
239 scoped_refptr<StrictMock<SSLClientAuthRequestorMock> > auth_requestor_2_; 235 scoped_refptr<StrictMock<SSLClientAuthRequestorMock> > auth_requestor_2_;
240 SSLClientCertificateSelector* selector_1_; 236 SSLClientCertificateSelector* selector_1_;
241 SSLClientCertificateSelector* selector_2_; 237 SSLClientCertificateSelector* selector_2_;
242 }; 238 };
243 239
244 class SSLClientCertificateSelectorMultiProfileTest 240 class SSLClientCertificateSelectorMultiProfileTest
245 : public SSLClientCertificateSelectorTest { 241 : public SSLClientCertificateSelectorTest {
246 public: 242 public:
247 void SetUpInProcessBrowserTestFixture() override { 243 void SetUpInProcessBrowserTestFixture() override {
248 SSLClientCertificateSelectorTest::SetUpInProcessBrowserTestFixture(); 244 SSLClientCertificateSelectorTest::SetUpInProcessBrowserTestFixture();
249 245
250 cert_request_info_1_ = new net::SSLCertRequestInfo; 246 cert_request_info_1_ = new net::SSLCertRequestInfo;
251 cert_request_info_1_->host_and_port = net::HostPortPair("foo", 123); 247 cert_request_info_1_->host_and_port = net::HostPortPair("foo", 123);
252 client_certs_1_.push_back(client_cert_1_); 248 cert_request_info_1_->client_certs.push_back(client_cert_1_);
253 client_certs_1_.push_back(client_cert_2_); 249 cert_request_info_1_->client_certs.push_back(client_cert_2_);
254 } 250 }
255 251
256 void SetUpOnMainThread() override { 252 void SetUpOnMainThread() override {
257 browser_1_ = CreateIncognitoBrowser(); 253 browser_1_ = CreateIncognitoBrowser();
258 url_request_context_getter_1_ = browser_1_->profile()->GetRequestContext(); 254 url_request_context_getter_1_ = browser_1_->profile()->GetRequestContext();
259 255
260 // Also calls SetUpOnIOThread. 256 // Also calls SetUpOnIOThread.
261 SSLClientCertificateSelectorTest::SetUpOnMainThread(); 257 SSLClientCertificateSelectorTest::SetUpOnMainThread();
262 258
263 selector_1_ = new SSLClientCertificateSelector( 259 selector_1_ = new SSLClientCertificateSelector(
264 browser_1_->tab_strip_model()->GetActiveWebContents(), 260 browser_1_->tab_strip_model()->GetActiveWebContents(),
265 auth_requestor_1_->cert_request_info_, client_certs_1_, 261 auth_requestor_1_->cert_request_info_,
266 auth_requestor_1_->CreateDelegate()); 262 auth_requestor_1_->CreateDelegate());
267 selector_1_->Init(); 263 selector_1_->Init();
268 selector_1_->Show(); 264 selector_1_->Show();
269 265
270 gfx::NativeWindow window = browser_1_->window()->GetNativeWindow(); 266 gfx::NativeWindow window = browser_1_->window()->GetNativeWindow();
271 views::Widget* widget = views::Widget::GetWidgetForNativeWindow(window); 267 views::Widget* widget = views::Widget::GetWidgetForNativeWindow(window);
272 ASSERT_NE(nullptr, widget); 268 ASSERT_NE(nullptr, widget);
273 views::test::WidgetActivationWaiter waiter(widget, true); 269 views::test::WidgetActivationWaiter waiter(widget, true);
274 waiter.Wait(); 270 waiter.Wait();
275 271
(...skipping 19 matching lines...) Expand all
295 void CleanUpOnIOThread() override { 291 void CleanUpOnIOThread() override {
296 delete url_request_1_; 292 delete url_request_1_;
297 SSLClientCertificateSelectorTest::CleanUpOnIOThread(); 293 SSLClientCertificateSelectorTest::CleanUpOnIOThread();
298 } 294 }
299 295
300 protected: 296 protected:
301 Browser* browser_1_; 297 Browser* browser_1_;
302 scoped_refptr<net::URLRequestContextGetter> url_request_context_getter_1_; 298 scoped_refptr<net::URLRequestContextGetter> url_request_context_getter_1_;
303 net::URLRequest* url_request_1_; 299 net::URLRequest* url_request_1_;
304 scoped_refptr<net::SSLCertRequestInfo> cert_request_info_1_; 300 scoped_refptr<net::SSLCertRequestInfo> cert_request_info_1_;
305 net::CertificateList client_certs_1_;
306 scoped_refptr<StrictMock<SSLClientAuthRequestorMock> > auth_requestor_1_; 301 scoped_refptr<StrictMock<SSLClientAuthRequestorMock> > auth_requestor_1_;
307 SSLClientCertificateSelector* selector_1_; 302 SSLClientCertificateSelector* selector_1_;
308 }; 303 };
309 304
310 IN_PROC_BROWSER_TEST_F(SSLClientCertificateSelectorTest, SelectNone) { 305 IN_PROC_BROWSER_TEST_F(SSLClientCertificateSelectorTest, SelectNone) {
311 EXPECT_CALL(*auth_requestor_.get(), CancelCertificateSelection()); 306 EXPECT_CALL(*auth_requestor_.get(), CancelCertificateSelection());
312 307
313 // Let the mock get checked on destruction. 308 // Let the mock get checked on destruction.
314 } 309 }
315 310
(...skipping 85 matching lines...) Expand 10 before | Expand all | Expand 10 after
401 EXPECT_TRUE(ui_test_utils::SendKeyPressSync( 396 EXPECT_TRUE(ui_test_utils::SendKeyPressSync(
402 browser_1_, ui::VKEY_RETURN, false, false, false, false)); 397 browser_1_, ui::VKEY_RETURN, false, false, false, false));
403 398
404 Mock::VerifyAndClear(auth_requestor_.get()); 399 Mock::VerifyAndClear(auth_requestor_.get());
405 Mock::VerifyAndClear(auth_requestor_1_.get()); 400 Mock::VerifyAndClear(auth_requestor_1_.get());
406 401
407 // 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
408 // destruction. 403 // destruction.
409 EXPECT_CALL(*auth_requestor_.get(), CancelCertificateSelection()); 404 EXPECT_CALL(*auth_requestor_.get(), CancelCertificateSelection());
410 } 405 }
OLDNEW
« no previous file with comments | « chrome/browser/ui/views/ssl_client_certificate_selector.cc ('k') | chromecast/browser/cast_content_browser_client.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698