Index: chrome/browser/ssl/ssl_client_auth_requestor_mock.cc |
diff --git a/chrome/browser/ssl/ssl_client_auth_requestor_mock.cc b/chrome/browser/ssl/ssl_client_auth_requestor_mock.cc |
index 6f63c323818c94d2661f064abd2e91675e1f53c8..8e5aceb9075b7d7f23a45451c7e8b7103514d4a6 100644 |
--- a/chrome/browser/ssl/ssl_client_auth_requestor_mock.cc |
+++ b/chrome/browser/ssl/ssl_client_auth_requestor_mock.cc |
@@ -4,9 +4,38 @@ |
#include "chrome/browser/ssl/ssl_client_auth_requestor_mock.h" |
+#include "base/macros.h" |
+#include "content/public/browser/client_certificate_delegate.h" |
#include "net/ssl/ssl_cert_request_info.h" |
#include "net/url_request/url_request.h" |
+namespace { |
+ |
+class MockClientCertificateDelegate |
Ryan Sleevi
2015/02/25 06:31:36
Pedantry: This seems more a Fake than a Mock.
davidben
2015/02/26 18:09:41
Done.
|
+ : public content::ClientCertificateDelegate { |
+ public: |
+ explicit MockClientCertificateDelegate(SSLClientAuthRequestorMock* requestor) |
+ : requestor_(requestor) {} |
+ |
+ ~MockClientCertificateDelegate() override { |
+ if (requestor_) |
+ requestor_->CancelCertificateSelection(); |
+ } |
+ |
+ // content::ClientCertificateDelegate implementation: |
+ void ContinueWithCertificate(net::X509Certificate* cert) override { |
+ requestor_->CertificateSelected(cert); |
+ requestor_ = nullptr; |
+ } |
+ |
+ private: |
+ scoped_refptr<SSLClientAuthRequestorMock> requestor_; |
+ |
+ DISALLOW_COPY_AND_ASSIGN(MockClientCertificateDelegate); |
+}; |
+ |
+} // namespace |
+ |
SSLClientAuthRequestorMock::SSLClientAuthRequestorMock( |
net::URLRequest* request, |
const scoped_refptr<net::SSLCertRequestInfo>& cert_request_info) |
@@ -14,3 +43,8 @@ SSLClientAuthRequestorMock::SSLClientAuthRequestorMock( |
} |
SSLClientAuthRequestorMock::~SSLClientAuthRequestorMock() {} |
+ |
+scoped_ptr<content::ClientCertificateDelegate> |
+SSLClientAuthRequestorMock::CreateDelegate() { |
+ return make_scoped_ptr(new MockClientCertificateDelegate(this)); |
+} |