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

Side by Side Diff: net/url_request/url_request_unittest.h

Issue 43115: Change the bad-certificate handler for SSL (using NSS) to return an... (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 11 years, 9 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 | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2006-2008 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2006-2008 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 #ifndef NET_URL_REQUEST_URL_REQUEST_UNITTEST_H_ 5 #ifndef NET_URL_REQUEST_URL_REQUEST_UNITTEST_H_
6 #define NET_URL_REQUEST_URL_REQUEST_UNITTEST_H_ 6 #define NET_URL_REQUEST_URL_REQUEST_UNITTEST_H_
7 7
8 #include <stdlib.h> 8 #include <stdlib.h>
9 9
10 #include <sstream> 10 #include <sstream>
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after
62 }; 62 };
63 63
64 class TestDelegate : public URLRequest::Delegate { 64 class TestDelegate : public URLRequest::Delegate {
65 public: 65 public:
66 TestDelegate() 66 TestDelegate()
67 : cancel_in_rr_(false), 67 : cancel_in_rr_(false),
68 cancel_in_rs_(false), 68 cancel_in_rs_(false),
69 cancel_in_rd_(false), 69 cancel_in_rd_(false),
70 cancel_in_rd_pending_(false), 70 cancel_in_rd_pending_(false),
71 quit_on_complete_(true), 71 quit_on_complete_(true),
72 allow_certificate_errors_(false),
72 response_started_count_(0), 73 response_started_count_(0),
73 received_bytes_count_(0), 74 received_bytes_count_(0),
74 received_redirect_count_(0), 75 received_redirect_count_(0),
75 received_data_before_response_(false), 76 received_data_before_response_(false),
76 request_failed_(false), 77 request_failed_(false),
78 have_certificate_errors_(false),
77 buf_(new net::IOBuffer(kBufferSize)) { 79 buf_(new net::IOBuffer(kBufferSize)) {
78 } 80 }
79 81
80 virtual void OnReceivedRedirect(URLRequest* request, const GURL& new_url) { 82 virtual void OnReceivedRedirect(URLRequest* request, const GURL& new_url) {
81 received_redirect_count_++; 83 received_redirect_count_++;
82 if (cancel_in_rr_) 84 if (cancel_in_rr_)
83 request->Cancel(); 85 request->Cancel();
84 } 86 }
85 87
86 virtual void OnResponseStarted(URLRequest* request) { 88 virtual void OnResponseStarted(URLRequest* request) {
(...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after
151 if (!username_.empty() || !password_.empty()) { 153 if (!username_.empty() || !password_.empty()) {
152 request->SetAuth(username_, password_); 154 request->SetAuth(username_, password_);
153 } else { 155 } else {
154 request->CancelAuth(); 156 request->CancelAuth();
155 } 157 }
156 } 158 }
157 159
158 virtual void OnSSLCertificateError(URLRequest* request, 160 virtual void OnSSLCertificateError(URLRequest* request,
159 int cert_error, 161 int cert_error,
160 net::X509Certificate* cert) { 162 net::X509Certificate* cert) {
161 // Ignore SSL errors, we test the server is started and shut it down by 163 // The caller can control whether it needs all SSL requests to go through,
162 // performing GETs, no security restrictions should apply as we always want 164 // independent of any possible errors, or whether it wants SSL errors to
163 // these GETs to go through. 165 // cancel the request.
164 request->ContinueDespiteLastError(); 166 have_certificate_errors_ = true;
167 if (allow_certificate_errors_)
168 request->ContinueDespiteLastError();
169 else
170 request->Cancel();
165 } 171 }
166 172
167 void set_cancel_in_received_redirect(bool val) { cancel_in_rr_ = val; } 173 void set_cancel_in_received_redirect(bool val) { cancel_in_rr_ = val; }
168 void set_cancel_in_response_started(bool val) { cancel_in_rs_ = val; } 174 void set_cancel_in_response_started(bool val) { cancel_in_rs_ = val; }
169 void set_cancel_in_received_data(bool val) { cancel_in_rd_ = val; } 175 void set_cancel_in_received_data(bool val) { cancel_in_rd_ = val; }
170 void set_cancel_in_received_data_pending(bool val) { 176 void set_cancel_in_received_data_pending(bool val) {
171 cancel_in_rd_pending_ = val; 177 cancel_in_rd_pending_ = val;
172 } 178 }
173 void set_quit_on_complete(bool val) { quit_on_complete_ = val; } 179 void set_quit_on_complete(bool val) { quit_on_complete_ = val; }
180 void set_allow_certificate_errors(bool val) {
181 allow_certificate_errors_ = val;
182 }
174 void set_username(const std::wstring& u) { username_ = u; } 183 void set_username(const std::wstring& u) { username_ = u; }
175 void set_password(const std::wstring& p) { password_ = p; } 184 void set_password(const std::wstring& p) { password_ = p; }
176 185
177 // query state 186 // query state
178 const std::string& data_received() const { return data_received_; } 187 const std::string& data_received() const { return data_received_; }
179 int bytes_received() const { return static_cast<int>(data_received_.size()); } 188 int bytes_received() const { return static_cast<int>(data_received_.size()); }
180 int response_started_count() const { return response_started_count_; } 189 int response_started_count() const { return response_started_count_; }
181 int received_redirect_count() const { return received_redirect_count_; } 190 int received_redirect_count() const { return received_redirect_count_; }
182 bool received_data_before_response() const { 191 bool received_data_before_response() const {
183 return received_data_before_response_; 192 return received_data_before_response_;
184 } 193 }
185 bool request_failed() const { return request_failed_; } 194 bool request_failed() const { return request_failed_; }
195 bool have_certificate_errors() const { return have_certificate_errors_; }
186 196
187 private: 197 private:
188 static const int kBufferSize = 4096; 198 static const int kBufferSize = 4096;
189 // options for controlling behavior 199 // options for controlling behavior
190 bool cancel_in_rr_; 200 bool cancel_in_rr_;
191 bool cancel_in_rs_; 201 bool cancel_in_rs_;
192 bool cancel_in_rd_; 202 bool cancel_in_rd_;
193 bool cancel_in_rd_pending_; 203 bool cancel_in_rd_pending_;
194 bool quit_on_complete_; 204 bool quit_on_complete_;
205 bool allow_certificate_errors_;
195 206
196 std::wstring username_; 207 std::wstring username_;
197 std::wstring password_; 208 std::wstring password_;
198 209
199 // tracks status of callbacks 210 // tracks status of callbacks
200 int response_started_count_; 211 int response_started_count_;
201 int received_bytes_count_; 212 int received_bytes_count_;
202 int received_redirect_count_; 213 int received_redirect_count_;
203 bool received_data_before_response_; 214 bool received_data_before_response_;
204 bool request_failed_; 215 bool request_failed_;
216 bool have_certificate_errors_;
205 std::string data_received_; 217 std::string data_received_;
206 218
207 // our read buffer 219 // our read buffer
208 scoped_refptr<net::IOBuffer> buf_; 220 scoped_refptr<net::IOBuffer> buf_;
209 }; 221 };
210 222
211 // This object bounds the lifetime of an external python-based HTTP/FTP server 223 // This object bounds the lifetime of an external python-based HTTP/FTP server
212 // that can provide various responses useful for testing. 224 // that can provide various responses useful for testing.
213 class BaseTestServer : public base::RefCounted<BaseTestServer> { 225 class BaseTestServer : public base::RefCounted<BaseTestServer> {
214 protected: 226 protected:
(...skipping 309 matching lines...) Expand 10 before | Expand all | Expand 10 after
524 MessageLoop::current()->Run(); 536 MessageLoop::current()->Run();
525 if (request.is_pending()) 537 if (request.is_pending())
526 return false; 538 return false;
527 539
528 return true; 540 return true;
529 } 541 }
530 542
531 }; 543 };
532 544
533 #endif // NET_URL_REQUEST_URL_REQUEST_UNITTEST_H_ 545 #endif // NET_URL_REQUEST_URL_REQUEST_UNITTEST_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698