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