Index: chrome/browser/ui/cocoa/ssl_client_certificate_selector_cocoa_browsertest.mm |
diff --git a/chrome/browser/ui/cocoa/ssl_client_certificate_selector_cocoa_browsertest.mm b/chrome/browser/ui/cocoa/ssl_client_certificate_selector_cocoa_browsertest.mm |
index a0c71106e6692e7941e9f90ba3cd50fc2e7e4115..b6546252769240e3c00173896f1239c130757b35 100644 |
--- a/chrome/browser/ui/cocoa/ssl_client_certificate_selector_cocoa_browsertest.mm |
+++ b/chrome/browser/ui/cocoa/ssl_client_certificate_selector_cocoa_browsertest.mm |
@@ -8,12 +8,14 @@ |
#include "base/bind.h" |
#import "base/mac/mac_util.h" |
+#include "base/macros.h" |
#include "chrome/browser/ssl/ssl_client_certificate_selector.h" |
#include "chrome/browser/ssl/ssl_client_certificate_selector_test.h" |
#include "chrome/browser/ui/browser.h" |
#include "chrome/browser/ui/browser_commands.h" |
#include "chrome/browser/ui/tabs/tab_strip_model.h" |
#include "components/web_modal/web_contents_modal_dialog_manager.h" |
+#include "content/public/browser/client_certificate_delegate.h" |
#include "content/public/browser/web_contents.h" |
#include "content/public/test/test_utils.h" |
#include "ui/base/cocoa/window_size_constants.h" |
@@ -22,12 +24,34 @@ using web_modal::WebContentsModalDialogManager; |
namespace { |
-void OnCertificateSelected(net::X509Certificate** out_cert, |
- int* out_count, |
- net::X509Certificate* cert) { |
- *out_cert = cert; |
- ++(*out_count); |
-} |
+class TestClientCertificateDelegate |
+ : public content::ClientCertificateDelegate { |
+ public: |
+ TestClientCertificateDelegate(net::X509Certificate** out_cert, int* out_count) |
+ : out_cert_(out_cert), out_count_(out_count) {} |
+ |
+ // content::ClientCertificateDelegate. |
+ void ContinueWithCertificate(net::X509Certificate* cert) override { |
+ // TODO(davidben): Add a test which explicitly tests selecting a |
+ // certificate, or selecting no certificate, since closing the dialog |
+ // (normally by closing the tab) is not the same as explicitly selecting no |
+ // certificate. |
+ ADD_FAILURE() << "Certificate selected"; |
+ } |
+ |
+ void CancelCertificateSelection() override { |
+ if (out_cert_) |
+ *out_cert_ = nullptr; |
+ if (out_count_) |
+ ++(*out_count_); |
+ } |
+ |
+ private: |
+ net::X509Certificate** out_cert_; |
+ int* out_count_; |
+ |
+ DISALLOW_COPY_AND_ASSIGN(TestClientCertificateDelegate); |
+}; |
} // namespace |
@@ -52,9 +76,9 @@ IN_PROC_BROWSER_TEST_F(SSLClientCertificateSelectorCocoaTest, DISABLED_Basic) { |
[[SSLClientCertificateSelectorCocoa alloc] |
initWithBrowserContext:web_contents->GetBrowserContext() |
certRequestInfo:auth_requestor_->cert_request_info_.get() |
- callback:base::Bind(&OnCertificateSelected, |
- &cert, |
- &count)]; |
+ delegate:scoped_ptr<content::ClientCertificateDelegate>( |
+ new TestClientCertificateDelegate( |
+ &cert, &count))]; |
[selector displayForWebContents:web_contents]; |
content::RunAllPendingInMessageLoop(); |
EXPECT_TRUE([selector panel]); |
@@ -78,7 +102,9 @@ IN_PROC_BROWSER_TEST_F(SSLClientCertificateSelectorCocoaTest, HideShow) { |
[[SSLClientCertificateSelectorCocoa alloc] |
initWithBrowserContext:web_contents->GetBrowserContext() |
certRequestInfo:auth_requestor_->cert_request_info_.get() |
- callback:chrome::SelectCertificateCallback()]; |
+ delegate:scoped_ptr<content::ClientCertificateDelegate>( |
+ new TestClientCertificateDelegate( |
+ nullptr, nullptr))]; |
[selector displayForWebContents:web_contents]; |
content::RunAllPendingInMessageLoop(); |