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

Side by Side Diff: net/ftp/ftp_network_transaction_unittest.cc

Issue 623213004: replace OVERRIDE and FINAL with override and final in net/ (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: undo unwanted change in comment Created 6 years, 2 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
« no previous file with comments | « net/ftp/ftp_network_transaction.h ('k') | net/http/disk_cache_based_quic_server_info.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 "net/ftp/ftp_network_transaction.h" 5 #include "net/ftp/ftp_network_transaction.h"
6 6
7 #include "build/build_config.h" 7 #include "build/build_config.h"
8 8
9 #include "base/compiler_specific.h" 9 #include "base/compiler_specific.h"
10 #include "base/memory/ref_counted.h" 10 #include "base/memory/ref_counted.h"
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after
56 }; 56 };
57 57
58 FtpSocketDataProvider() 58 FtpSocketDataProvider()
59 : failure_injection_state_(NONE), 59 : failure_injection_state_(NONE),
60 multiline_welcome_(false), 60 multiline_welcome_(false),
61 use_epsv_(true), 61 use_epsv_(true),
62 data_type_('I') { 62 data_type_('I') {
63 Init(); 63 Init();
64 } 64 }
65 65
66 virtual MockWriteResult OnWrite(const std::string& data) OVERRIDE { 66 virtual MockWriteResult OnWrite(const std::string& data) override {
67 if (InjectFault()) 67 if (InjectFault())
68 return MockWriteResult(ASYNC, data.length()); 68 return MockWriteResult(ASYNC, data.length());
69 switch (state()) { 69 switch (state()) {
70 case PRE_USER: 70 case PRE_USER:
71 return Verify("USER anonymous\r\n", data, PRE_PASSWD, 71 return Verify("USER anonymous\r\n", data, PRE_PASSWD,
72 "331 Password needed\r\n"); 72 "331 Password needed\r\n");
73 case PRE_PASSWD: 73 case PRE_PASSWD:
74 { 74 {
75 const char* response_one = "230 Welcome\r\n"; 75 const char* response_one = "230 Welcome\r\n";
76 const char* response_multi = "230- One\r\n230- Two\r\n230 Three\r\n"; 76 const char* response_multi = "230- One\r\n230- Two\r\n230 Three\r\n";
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after
124 DCHECK_NE(state, next_state); 124 DCHECK_NE(state, next_state);
125 failure_injection_state_ = state; 125 failure_injection_state_ = state;
126 failure_injection_next_state_ = next_state; 126 failure_injection_next_state_ = next_state;
127 fault_response_ = response; 127 fault_response_ = response;
128 } 128 }
129 129
130 State state() const { 130 State state() const {
131 return state_; 131 return state_;
132 } 132 }
133 133
134 virtual void Reset() OVERRIDE { 134 virtual void Reset() override {
135 DynamicSocketDataProvider::Reset(); 135 DynamicSocketDataProvider::Reset();
136 Init(); 136 Init();
137 } 137 }
138 138
139 void set_multiline_welcome(bool multiline) { multiline_welcome_ = multiline; } 139 void set_multiline_welcome(bool multiline) { multiline_welcome_ = multiline; }
140 140
141 bool use_epsv() const { return use_epsv_; } 141 bool use_epsv() const { return use_epsv_; }
142 void set_use_epsv(bool use_epsv) { use_epsv_ = use_epsv; } 142 void set_use_epsv(bool use_epsv) { use_epsv_ = use_epsv; }
143 143
144 void set_data_type(char data_type) { data_type_ = data_type; } 144 void set_data_type(char data_type) { data_type_ = data_type; }
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after
198 char data_type_; 198 char data_type_;
199 199
200 DISALLOW_COPY_AND_ASSIGN(FtpSocketDataProvider); 200 DISALLOW_COPY_AND_ASSIGN(FtpSocketDataProvider);
201 }; 201 };
202 202
203 class FtpSocketDataProviderDirectoryListing : public FtpSocketDataProvider { 203 class FtpSocketDataProviderDirectoryListing : public FtpSocketDataProvider {
204 public: 204 public:
205 FtpSocketDataProviderDirectoryListing() { 205 FtpSocketDataProviderDirectoryListing() {
206 } 206 }
207 207
208 virtual MockWriteResult OnWrite(const std::string& data) OVERRIDE { 208 virtual MockWriteResult OnWrite(const std::string& data) override {
209 if (InjectFault()) 209 if (InjectFault())
210 return MockWriteResult(ASYNC, data.length()); 210 return MockWriteResult(ASYNC, data.length());
211 switch (state()) { 211 switch (state()) {
212 case PRE_SIZE: 212 case PRE_SIZE:
213 return Verify("SIZE /\r\n", data, 213 return Verify("SIZE /\r\n", data,
214 use_epsv() ? PRE_CWD_EPSV : PRE_CWD_PASV, 214 use_epsv() ? PRE_CWD_EPSV : PRE_CWD_PASV,
215 "550 I can only retrieve regular files\r\n"); 215 "550 I can only retrieve regular files\r\n");
216 case PRE_CWD: 216 case PRE_CWD:
217 return Verify("CWD /\r\n", data, PRE_LIST, "200 OK\r\n"); 217 return Verify("CWD /\r\n", data, PRE_LIST, "200 OK\r\n");
218 case PRE_LIST: 218 case PRE_LIST:
219 return Verify("LIST -l\r\n", data, PRE_QUIT, "200 OK\r\n"); 219 return Verify("LIST -l\r\n", data, PRE_QUIT, "200 OK\r\n");
220 default: 220 default:
221 return FtpSocketDataProvider::OnWrite(data); 221 return FtpSocketDataProvider::OnWrite(data);
222 } 222 }
223 } 223 }
224 224
225 private: 225 private:
226 DISALLOW_COPY_AND_ASSIGN(FtpSocketDataProviderDirectoryListing); 226 DISALLOW_COPY_AND_ASSIGN(FtpSocketDataProviderDirectoryListing);
227 }; 227 };
228 228
229 class FtpSocketDataProviderDirectoryListingWithPasvFallback 229 class FtpSocketDataProviderDirectoryListingWithPasvFallback
230 : public FtpSocketDataProviderDirectoryListing { 230 : public FtpSocketDataProviderDirectoryListing {
231 public: 231 public:
232 FtpSocketDataProviderDirectoryListingWithPasvFallback() { 232 FtpSocketDataProviderDirectoryListingWithPasvFallback() {
233 } 233 }
234 234
235 virtual MockWriteResult OnWrite(const std::string& data) OVERRIDE { 235 virtual MockWriteResult OnWrite(const std::string& data) override {
236 if (InjectFault()) 236 if (InjectFault())
237 return MockWriteResult(ASYNC, data.length()); 237 return MockWriteResult(ASYNC, data.length());
238 switch (state()) { 238 switch (state()) {
239 case PRE_EPSV: 239 case PRE_EPSV:
240 return Verify("EPSV\r\n", data, PRE_PASV, 240 return Verify("EPSV\r\n", data, PRE_PASV,
241 "500 no EPSV for you\r\n"); 241 "500 no EPSV for you\r\n");
242 case PRE_SIZE: 242 case PRE_SIZE:
243 return Verify("SIZE /\r\n", data, PRE_CWD_PASV, 243 return Verify("SIZE /\r\n", data, PRE_CWD_PASV,
244 "550 I can only retrieve regular files\r\n"); 244 "550 I can only retrieve regular files\r\n");
245 default: 245 default:
246 return FtpSocketDataProviderDirectoryListing::OnWrite(data); 246 return FtpSocketDataProviderDirectoryListing::OnWrite(data);
247 } 247 }
248 } 248 }
249 249
250 private: 250 private:
251 DISALLOW_COPY_AND_ASSIGN( 251 DISALLOW_COPY_AND_ASSIGN(
252 FtpSocketDataProviderDirectoryListingWithPasvFallback); 252 FtpSocketDataProviderDirectoryListingWithPasvFallback);
253 }; 253 };
254 254
255 class FtpSocketDataProviderDirectoryListingZeroSize 255 class FtpSocketDataProviderDirectoryListingZeroSize
256 : public FtpSocketDataProviderDirectoryListing { 256 : public FtpSocketDataProviderDirectoryListing {
257 public: 257 public:
258 FtpSocketDataProviderDirectoryListingZeroSize() { 258 FtpSocketDataProviderDirectoryListingZeroSize() {
259 } 259 }
260 260
261 virtual MockWriteResult OnWrite(const std::string& data) OVERRIDE { 261 virtual MockWriteResult OnWrite(const std::string& data) override {
262 if (InjectFault()) 262 if (InjectFault())
263 return MockWriteResult(ASYNC, data.length()); 263 return MockWriteResult(ASYNC, data.length());
264 switch (state()) { 264 switch (state()) {
265 case PRE_SIZE: 265 case PRE_SIZE:
266 return Verify("SIZE /\r\n", data, PRE_CWD, "213 0\r\n"); 266 return Verify("SIZE /\r\n", data, PRE_CWD, "213 0\r\n");
267 default: 267 default:
268 return FtpSocketDataProviderDirectoryListing::OnWrite(data); 268 return FtpSocketDataProviderDirectoryListing::OnWrite(data);
269 } 269 }
270 } 270 }
271 271
272 private: 272 private:
273 DISALLOW_COPY_AND_ASSIGN(FtpSocketDataProviderDirectoryListingZeroSize); 273 DISALLOW_COPY_AND_ASSIGN(FtpSocketDataProviderDirectoryListingZeroSize);
274 }; 274 };
275 275
276 class FtpSocketDataProviderVMSDirectoryListing : public FtpSocketDataProvider { 276 class FtpSocketDataProviderVMSDirectoryListing : public FtpSocketDataProvider {
277 public: 277 public:
278 FtpSocketDataProviderVMSDirectoryListing() { 278 FtpSocketDataProviderVMSDirectoryListing() {
279 } 279 }
280 280
281 virtual MockWriteResult OnWrite(const std::string& data) OVERRIDE { 281 virtual MockWriteResult OnWrite(const std::string& data) override {
282 if (InjectFault()) 282 if (InjectFault())
283 return MockWriteResult(ASYNC, data.length()); 283 return MockWriteResult(ASYNC, data.length());
284 switch (state()) { 284 switch (state()) {
285 case PRE_SYST: 285 case PRE_SYST:
286 return Verify("SYST\r\n", data, PRE_PWD, "215 VMS\r\n"); 286 return Verify("SYST\r\n", data, PRE_PWD, "215 VMS\r\n");
287 case PRE_PWD: 287 case PRE_PWD:
288 return Verify("PWD\r\n", data, PRE_TYPE, 288 return Verify("PWD\r\n", data, PRE_TYPE,
289 "257 \"ANONYMOUS_ROOT:[000000]\"\r\n"); 289 "257 \"ANONYMOUS_ROOT:[000000]\"\r\n");
290 case PRE_EPSV: 290 case PRE_EPSV:
291 return Verify("EPSV\r\n", data, PRE_PASV, "500 Invalid command\r\n"); 291 return Verify("EPSV\r\n", data, PRE_PASV, "500 Invalid command\r\n");
(...skipping 13 matching lines...) Expand all
305 private: 305 private:
306 DISALLOW_COPY_AND_ASSIGN(FtpSocketDataProviderVMSDirectoryListing); 306 DISALLOW_COPY_AND_ASSIGN(FtpSocketDataProviderVMSDirectoryListing);
307 }; 307 };
308 308
309 class FtpSocketDataProviderVMSDirectoryListingRootDirectory 309 class FtpSocketDataProviderVMSDirectoryListingRootDirectory
310 : public FtpSocketDataProvider { 310 : public FtpSocketDataProvider {
311 public: 311 public:
312 FtpSocketDataProviderVMSDirectoryListingRootDirectory() { 312 FtpSocketDataProviderVMSDirectoryListingRootDirectory() {
313 } 313 }
314 314
315 virtual MockWriteResult OnWrite(const std::string& data) OVERRIDE { 315 virtual MockWriteResult OnWrite(const std::string& data) override {
316 if (InjectFault()) 316 if (InjectFault())
317 return MockWriteResult(ASYNC, data.length()); 317 return MockWriteResult(ASYNC, data.length());
318 switch (state()) { 318 switch (state()) {
319 case PRE_SYST: 319 case PRE_SYST:
320 return Verify("SYST\r\n", data, PRE_PWD, "215 VMS\r\n"); 320 return Verify("SYST\r\n", data, PRE_PWD, "215 VMS\r\n");
321 case PRE_PWD: 321 case PRE_PWD:
322 return Verify("PWD\r\n", data, PRE_TYPE, 322 return Verify("PWD\r\n", data, PRE_TYPE,
323 "257 \"ANONYMOUS_ROOT:[000000]\"\r\n"); 323 "257 \"ANONYMOUS_ROOT:[000000]\"\r\n");
324 case PRE_EPSV: 324 case PRE_EPSV:
325 return Verify("EPSV\r\n", data, PRE_PASV, 325 return Verify("EPSV\r\n", data, PRE_PASV,
(...skipping 15 matching lines...) Expand all
341 DISALLOW_COPY_AND_ASSIGN( 341 DISALLOW_COPY_AND_ASSIGN(
342 FtpSocketDataProviderVMSDirectoryListingRootDirectory); 342 FtpSocketDataProviderVMSDirectoryListingRootDirectory);
343 }; 343 };
344 344
345 class FtpSocketDataProviderFileDownloadWithFileTypecode 345 class FtpSocketDataProviderFileDownloadWithFileTypecode
346 : public FtpSocketDataProvider { 346 : public FtpSocketDataProvider {
347 public: 347 public:
348 FtpSocketDataProviderFileDownloadWithFileTypecode() { 348 FtpSocketDataProviderFileDownloadWithFileTypecode() {
349 } 349 }
350 350
351 virtual MockWriteResult OnWrite(const std::string& data) OVERRIDE { 351 virtual MockWriteResult OnWrite(const std::string& data) override {
352 if (InjectFault()) 352 if (InjectFault())
353 return MockWriteResult(ASYNC, data.length()); 353 return MockWriteResult(ASYNC, data.length());
354 switch (state()) { 354 switch (state()) {
355 case PRE_SIZE: 355 case PRE_SIZE:
356 return Verify("SIZE /file\r\n", data, PRE_RETR, 356 return Verify("SIZE /file\r\n", data, PRE_RETR,
357 "213 18\r\n"); 357 "213 18\r\n");
358 case PRE_RETR: 358 case PRE_RETR:
359 return Verify("RETR /file\r\n", data, PRE_QUIT, "200 OK\r\n"); 359 return Verify("RETR /file\r\n", data, PRE_QUIT, "200 OK\r\n");
360 default: 360 default:
361 return FtpSocketDataProvider::OnWrite(data); 361 return FtpSocketDataProvider::OnWrite(data);
362 } 362 }
363 } 363 }
364 364
365 private: 365 private:
366 DISALLOW_COPY_AND_ASSIGN(FtpSocketDataProviderFileDownloadWithFileTypecode); 366 DISALLOW_COPY_AND_ASSIGN(FtpSocketDataProviderFileDownloadWithFileTypecode);
367 }; 367 };
368 368
369 class FtpSocketDataProviderFileDownload : public FtpSocketDataProvider { 369 class FtpSocketDataProviderFileDownload : public FtpSocketDataProvider {
370 public: 370 public:
371 FtpSocketDataProviderFileDownload() { 371 FtpSocketDataProviderFileDownload() {
372 } 372 }
373 373
374 virtual MockWriteResult OnWrite(const std::string& data) OVERRIDE { 374 virtual MockWriteResult OnWrite(const std::string& data) override {
375 if (InjectFault()) 375 if (InjectFault())
376 return MockWriteResult(ASYNC, data.length()); 376 return MockWriteResult(ASYNC, data.length());
377 switch (state()) { 377 switch (state()) {
378 case PRE_SIZE: 378 case PRE_SIZE:
379 return Verify("SIZE /file\r\n", data, PRE_CWD, 379 return Verify("SIZE /file\r\n", data, PRE_CWD,
380 "213 18\r\n"); 380 "213 18\r\n");
381 case PRE_CWD: 381 case PRE_CWD:
382 return Verify("CWD /file\r\n", data, 382 return Verify("CWD /file\r\n", data,
383 use_epsv() ? PRE_RETR_EPSV : PRE_RETR_PASV, 383 use_epsv() ? PRE_RETR_EPSV : PRE_RETR_PASV,
384 "550 Not a directory\r\n"); 384 "550 Not a directory\r\n");
385 case PRE_RETR: 385 case PRE_RETR:
386 return Verify("RETR /file\r\n", data, PRE_QUIT, "200 OK\r\n"); 386 return Verify("RETR /file\r\n", data, PRE_QUIT, "200 OK\r\n");
387 default: 387 default:
388 return FtpSocketDataProvider::OnWrite(data); 388 return FtpSocketDataProvider::OnWrite(data);
389 } 389 }
390 } 390 }
391 391
392 private: 392 private:
393 DISALLOW_COPY_AND_ASSIGN(FtpSocketDataProviderFileDownload); 393 DISALLOW_COPY_AND_ASSIGN(FtpSocketDataProviderFileDownload);
394 }; 394 };
395 395
396 class FtpSocketDataProviderFileNotFound : public FtpSocketDataProvider { 396 class FtpSocketDataProviderFileNotFound : public FtpSocketDataProvider {
397 public: 397 public:
398 FtpSocketDataProviderFileNotFound() { 398 FtpSocketDataProviderFileNotFound() {
399 } 399 }
400 400
401 virtual MockWriteResult OnWrite(const std::string& data) OVERRIDE { 401 virtual MockWriteResult OnWrite(const std::string& data) override {
402 if (InjectFault()) 402 if (InjectFault())
403 return MockWriteResult(ASYNC, data.length()); 403 return MockWriteResult(ASYNC, data.length());
404 switch (state()) { 404 switch (state()) {
405 case PRE_SIZE: 405 case PRE_SIZE:
406 return Verify("SIZE /file\r\n", data, 406 return Verify("SIZE /file\r\n", data,
407 use_epsv() ? PRE_CWD_EPSV : PRE_CWD_PASV, 407 use_epsv() ? PRE_CWD_EPSV : PRE_CWD_PASV,
408 "550 File Not Found\r\n"); 408 "550 File Not Found\r\n");
409 case PRE_CWD: 409 case PRE_CWD:
410 return Verify("CWD /file\r\n", data, 410 return Verify("CWD /file\r\n", data,
411 use_epsv() ? PRE_RETR_EPSV : PRE_RETR_PASV, 411 use_epsv() ? PRE_RETR_EPSV : PRE_RETR_PASV,
412 "550 File Not Found\r\n"); 412 "550 File Not Found\r\n");
413 case PRE_RETR: 413 case PRE_RETR:
414 return Verify("RETR /file\r\n", data, PRE_QUIT, 414 return Verify("RETR /file\r\n", data, PRE_QUIT,
415 "550 File Not Found\r\n"); 415 "550 File Not Found\r\n");
416 default: 416 default:
417 return FtpSocketDataProvider::OnWrite(data); 417 return FtpSocketDataProvider::OnWrite(data);
418 } 418 }
419 } 419 }
420 420
421 private: 421 private:
422 DISALLOW_COPY_AND_ASSIGN(FtpSocketDataProviderFileNotFound); 422 DISALLOW_COPY_AND_ASSIGN(FtpSocketDataProviderFileNotFound);
423 }; 423 };
424 424
425 class FtpSocketDataProviderFileDownloadWithPasvFallback 425 class FtpSocketDataProviderFileDownloadWithPasvFallback
426 : public FtpSocketDataProviderFileDownload { 426 : public FtpSocketDataProviderFileDownload {
427 public: 427 public:
428 FtpSocketDataProviderFileDownloadWithPasvFallback() { 428 FtpSocketDataProviderFileDownloadWithPasvFallback() {
429 } 429 }
430 430
431 virtual MockWriteResult OnWrite(const std::string& data) OVERRIDE { 431 virtual MockWriteResult OnWrite(const std::string& data) override {
432 if (InjectFault()) 432 if (InjectFault())
433 return MockWriteResult(ASYNC, data.length()); 433 return MockWriteResult(ASYNC, data.length());
434 switch (state()) { 434 switch (state()) {
435 case PRE_EPSV: 435 case PRE_EPSV:
436 return Verify("EPSV\r\n", data, PRE_PASV, 436 return Verify("EPSV\r\n", data, PRE_PASV,
437 "500 No can do\r\n"); 437 "500 No can do\r\n");
438 case PRE_CWD: 438 case PRE_CWD:
439 return Verify("CWD /file\r\n", data, PRE_RETR_PASV, 439 return Verify("CWD /file\r\n", data, PRE_RETR_PASV,
440 "550 Not a directory\r\n"); 440 "550 Not a directory\r\n");
441 default: 441 default:
442 return FtpSocketDataProviderFileDownload::OnWrite(data); 442 return FtpSocketDataProviderFileDownload::OnWrite(data);
443 } 443 }
444 } 444 }
445 445
446 private: 446 private:
447 DISALLOW_COPY_AND_ASSIGN(FtpSocketDataProviderFileDownloadWithPasvFallback); 447 DISALLOW_COPY_AND_ASSIGN(FtpSocketDataProviderFileDownloadWithPasvFallback);
448 }; 448 };
449 449
450 class FtpSocketDataProviderFileDownloadZeroSize 450 class FtpSocketDataProviderFileDownloadZeroSize
451 : public FtpSocketDataProviderFileDownload { 451 : public FtpSocketDataProviderFileDownload {
452 public: 452 public:
453 FtpSocketDataProviderFileDownloadZeroSize() { 453 FtpSocketDataProviderFileDownloadZeroSize() {
454 } 454 }
455 455
456 virtual MockWriteResult OnWrite(const std::string& data) OVERRIDE { 456 virtual MockWriteResult OnWrite(const std::string& data) override {
457 if (InjectFault()) 457 if (InjectFault())
458 return MockWriteResult(ASYNC, data.length()); 458 return MockWriteResult(ASYNC, data.length());
459 switch (state()) { 459 switch (state()) {
460 case PRE_SIZE: 460 case PRE_SIZE:
461 return Verify("SIZE /file\r\n", data, PRE_CWD, 461 return Verify("SIZE /file\r\n", data, PRE_CWD,
462 "213 0\r\n"); 462 "213 0\r\n");
463 case PRE_CWD: 463 case PRE_CWD:
464 return Verify("CWD /file\r\n", data, 464 return Verify("CWD /file\r\n", data,
465 use_epsv() ? PRE_RETR_EPSV : PRE_RETR_PASV, 465 use_epsv() ? PRE_RETR_EPSV : PRE_RETR_PASV,
466 "550 not a directory\r\n"); 466 "550 not a directory\r\n");
467 default: 467 default:
468 return FtpSocketDataProviderFileDownload::OnWrite(data); 468 return FtpSocketDataProviderFileDownload::OnWrite(data);
469 } 469 }
470 } 470 }
471 471
472 private: 472 private:
473 DISALLOW_COPY_AND_ASSIGN(FtpSocketDataProviderFileDownloadZeroSize); 473 DISALLOW_COPY_AND_ASSIGN(FtpSocketDataProviderFileDownloadZeroSize);
474 }; 474 };
475 475
476 class FtpSocketDataProviderFileDownloadCWD451 476 class FtpSocketDataProviderFileDownloadCWD451
477 : public FtpSocketDataProviderFileDownload { 477 : public FtpSocketDataProviderFileDownload {
478 public: 478 public:
479 FtpSocketDataProviderFileDownloadCWD451() { 479 FtpSocketDataProviderFileDownloadCWD451() {
480 } 480 }
481 481
482 virtual MockWriteResult OnWrite(const std::string& data) OVERRIDE { 482 virtual MockWriteResult OnWrite(const std::string& data) override {
483 if (InjectFault()) 483 if (InjectFault())
484 return MockWriteResult(ASYNC, data.length()); 484 return MockWriteResult(ASYNC, data.length());
485 switch (state()) { 485 switch (state()) {
486 case PRE_CWD: 486 case PRE_CWD:
487 return Verify("CWD /file\r\n", data, 487 return Verify("CWD /file\r\n", data,
488 use_epsv() ? PRE_RETR_EPSV : PRE_RETR_PASV, 488 use_epsv() ? PRE_RETR_EPSV : PRE_RETR_PASV,
489 "451 not a directory\r\n"); 489 "451 not a directory\r\n");
490 default: 490 default:
491 return FtpSocketDataProviderFileDownload::OnWrite(data); 491 return FtpSocketDataProviderFileDownload::OnWrite(data);
492 } 492 }
493 } 493 }
494 494
495 private: 495 private:
496 DISALLOW_COPY_AND_ASSIGN(FtpSocketDataProviderFileDownloadCWD451); 496 DISALLOW_COPY_AND_ASSIGN(FtpSocketDataProviderFileDownloadCWD451);
497 }; 497 };
498 498
499 class FtpSocketDataProviderVMSFileDownload : public FtpSocketDataProvider { 499 class FtpSocketDataProviderVMSFileDownload : public FtpSocketDataProvider {
500 public: 500 public:
501 FtpSocketDataProviderVMSFileDownload() { 501 FtpSocketDataProviderVMSFileDownload() {
502 } 502 }
503 503
504 virtual MockWriteResult OnWrite(const std::string& data) OVERRIDE { 504 virtual MockWriteResult OnWrite(const std::string& data) override {
505 if (InjectFault()) 505 if (InjectFault())
506 return MockWriteResult(ASYNC, data.length()); 506 return MockWriteResult(ASYNC, data.length());
507 switch (state()) { 507 switch (state()) {
508 case PRE_SYST: 508 case PRE_SYST:
509 return Verify("SYST\r\n", data, PRE_PWD, "215 VMS\r\n"); 509 return Verify("SYST\r\n", data, PRE_PWD, "215 VMS\r\n");
510 case PRE_PWD: 510 case PRE_PWD:
511 return Verify("PWD\r\n", data, PRE_TYPE, 511 return Verify("PWD\r\n", data, PRE_TYPE,
512 "257 \"ANONYMOUS_ROOT:[000000]\"\r\n"); 512 "257 \"ANONYMOUS_ROOT:[000000]\"\r\n");
513 case PRE_EPSV: 513 case PRE_EPSV:
514 return Verify("EPSV\r\n", data, PRE_PASV, 514 return Verify("EPSV\r\n", data, PRE_PASV,
(...skipping 14 matching lines...) Expand all
529 529
530 private: 530 private:
531 DISALLOW_COPY_AND_ASSIGN(FtpSocketDataProviderVMSFileDownload); 531 DISALLOW_COPY_AND_ASSIGN(FtpSocketDataProviderVMSFileDownload);
532 }; 532 };
533 533
534 class FtpSocketDataProviderEscaping : public FtpSocketDataProviderFileDownload { 534 class FtpSocketDataProviderEscaping : public FtpSocketDataProviderFileDownload {
535 public: 535 public:
536 FtpSocketDataProviderEscaping() { 536 FtpSocketDataProviderEscaping() {
537 } 537 }
538 538
539 virtual MockWriteResult OnWrite(const std::string& data) OVERRIDE { 539 virtual MockWriteResult OnWrite(const std::string& data) override {
540 if (InjectFault()) 540 if (InjectFault())
541 return MockWriteResult(ASYNC, data.length()); 541 return MockWriteResult(ASYNC, data.length());
542 switch (state()) { 542 switch (state()) {
543 case PRE_SIZE: 543 case PRE_SIZE:
544 return Verify("SIZE / !\"#$%y\200\201\r\n", data, PRE_CWD, 544 return Verify("SIZE / !\"#$%y\200\201\r\n", data, PRE_CWD,
545 "213 18\r\n"); 545 "213 18\r\n");
546 case PRE_CWD: 546 case PRE_CWD:
547 return Verify("CWD / !\"#$%y\200\201\r\n", data, 547 return Verify("CWD / !\"#$%y\200\201\r\n", data,
548 use_epsv() ? PRE_RETR_EPSV : PRE_RETR_PASV, 548 use_epsv() ? PRE_RETR_EPSV : PRE_RETR_PASV,
549 "550 Not a directory\r\n"); 549 "550 Not a directory\r\n");
550 case PRE_RETR: 550 case PRE_RETR:
551 return Verify("RETR / !\"#$%y\200\201\r\n", data, PRE_QUIT, 551 return Verify("RETR / !\"#$%y\200\201\r\n", data, PRE_QUIT,
552 "200 OK\r\n"); 552 "200 OK\r\n");
553 default: 553 default:
554 return FtpSocketDataProviderFileDownload::OnWrite(data); 554 return FtpSocketDataProviderFileDownload::OnWrite(data);
555 } 555 }
556 } 556 }
557 557
558 private: 558 private:
559 DISALLOW_COPY_AND_ASSIGN(FtpSocketDataProviderEscaping); 559 DISALLOW_COPY_AND_ASSIGN(FtpSocketDataProviderEscaping);
560 }; 560 };
561 561
562 class FtpSocketDataProviderFileDownloadTransferStarting 562 class FtpSocketDataProviderFileDownloadTransferStarting
563 : public FtpSocketDataProviderFileDownload { 563 : public FtpSocketDataProviderFileDownload {
564 public: 564 public:
565 FtpSocketDataProviderFileDownloadTransferStarting() { 565 FtpSocketDataProviderFileDownloadTransferStarting() {
566 } 566 }
567 567
568 virtual MockWriteResult OnWrite(const std::string& data) OVERRIDE { 568 virtual MockWriteResult OnWrite(const std::string& data) override {
569 if (InjectFault()) 569 if (InjectFault())
570 return MockWriteResult(ASYNC, data.length()); 570 return MockWriteResult(ASYNC, data.length());
571 switch (state()) { 571 switch (state()) {
572 case PRE_RETR: 572 case PRE_RETR:
573 return Verify("RETR /file\r\n", data, PRE_QUIT, 573 return Verify("RETR /file\r\n", data, PRE_QUIT,
574 "125-Data connection already open.\r\n" 574 "125-Data connection already open.\r\n"
575 "125 Transfer starting.\r\n" 575 "125 Transfer starting.\r\n"
576 "226 Transfer complete.\r\n"); 576 "226 Transfer complete.\r\n");
577 default: 577 default:
578 return FtpSocketDataProviderFileDownload::OnWrite(data); 578 return FtpSocketDataProviderFileDownload::OnWrite(data);
579 } 579 }
580 } 580 }
581 581
582 private: 582 private:
583 DISALLOW_COPY_AND_ASSIGN(FtpSocketDataProviderFileDownloadTransferStarting); 583 DISALLOW_COPY_AND_ASSIGN(FtpSocketDataProviderFileDownloadTransferStarting);
584 }; 584 };
585 585
586 class FtpSocketDataProviderDirectoryListingTransferStarting 586 class FtpSocketDataProviderDirectoryListingTransferStarting
587 : public FtpSocketDataProviderDirectoryListing { 587 : public FtpSocketDataProviderDirectoryListing {
588 public: 588 public:
589 FtpSocketDataProviderDirectoryListingTransferStarting() { 589 FtpSocketDataProviderDirectoryListingTransferStarting() {
590 } 590 }
591 591
592 virtual MockWriteResult OnWrite(const std::string& data) OVERRIDE { 592 virtual MockWriteResult OnWrite(const std::string& data) override {
593 if (InjectFault()) 593 if (InjectFault())
594 return MockWriteResult(ASYNC, data.length()); 594 return MockWriteResult(ASYNC, data.length());
595 switch (state()) { 595 switch (state()) {
596 case PRE_LIST: 596 case PRE_LIST:
597 return Verify("LIST -l\r\n", data, PRE_QUIT, 597 return Verify("LIST -l\r\n", data, PRE_QUIT,
598 "125-Data connection already open.\r\n" 598 "125-Data connection already open.\r\n"
599 "125 Transfer starting.\r\n" 599 "125 Transfer starting.\r\n"
600 "226 Transfer complete.\r\n"); 600 "226 Transfer complete.\r\n");
601 default: 601 default:
602 return FtpSocketDataProviderDirectoryListing::OnWrite(data); 602 return FtpSocketDataProviderDirectoryListing::OnWrite(data);
603 } 603 }
604 } 604 }
605 605
606 private: 606 private:
607 DISALLOW_COPY_AND_ASSIGN( 607 DISALLOW_COPY_AND_ASSIGN(
608 FtpSocketDataProviderDirectoryListingTransferStarting); 608 FtpSocketDataProviderDirectoryListingTransferStarting);
609 }; 609 };
610 610
611 class FtpSocketDataProviderFileDownloadInvalidResponse 611 class FtpSocketDataProviderFileDownloadInvalidResponse
612 : public FtpSocketDataProviderFileDownload { 612 : public FtpSocketDataProviderFileDownload {
613 public: 613 public:
614 FtpSocketDataProviderFileDownloadInvalidResponse() { 614 FtpSocketDataProviderFileDownloadInvalidResponse() {
615 } 615 }
616 616
617 virtual MockWriteResult OnWrite(const std::string& data) OVERRIDE { 617 virtual MockWriteResult OnWrite(const std::string& data) override {
618 if (InjectFault()) 618 if (InjectFault())
619 return MockWriteResult(ASYNC, data.length()); 619 return MockWriteResult(ASYNC, data.length());
620 switch (state()) { 620 switch (state()) {
621 case PRE_SIZE: 621 case PRE_SIZE:
622 // Use unallocated 599 FTP error code to make sure it falls into the 622 // Use unallocated 599 FTP error code to make sure it falls into the
623 // generic ERR_FTP_FAILED bucket. 623 // generic ERR_FTP_FAILED bucket.
624 return Verify("SIZE /file\r\n", data, PRE_QUIT, 624 return Verify("SIZE /file\r\n", data, PRE_QUIT,
625 "599 Evil Response\r\n" 625 "599 Evil Response\r\n"
626 "599 More Evil\r\n"); 626 "599 More Evil\r\n");
627 default: 627 default:
(...skipping 13 matching lines...) Expand all
641 epsv_response_length_(std::strlen(epsv_response)), 641 epsv_response_length_(std::strlen(epsv_response)),
642 expected_state_(expected_state) {} 642 expected_state_(expected_state) {}
643 643
644 FtpSocketDataProviderEvilEpsv(const char* epsv_response, 644 FtpSocketDataProviderEvilEpsv(const char* epsv_response,
645 size_t epsv_response_length, 645 size_t epsv_response_length,
646 State expected_state) 646 State expected_state)
647 : epsv_response_(epsv_response), 647 : epsv_response_(epsv_response),
648 epsv_response_length_(epsv_response_length), 648 epsv_response_length_(epsv_response_length),
649 expected_state_(expected_state) {} 649 expected_state_(expected_state) {}
650 650
651 virtual MockWriteResult OnWrite(const std::string& data) OVERRIDE { 651 virtual MockWriteResult OnWrite(const std::string& data) override {
652 if (InjectFault()) 652 if (InjectFault())
653 return MockWriteResult(ASYNC, data.length()); 653 return MockWriteResult(ASYNC, data.length());
654 switch (state()) { 654 switch (state()) {
655 case PRE_EPSV: 655 case PRE_EPSV:
656 return Verify("EPSV\r\n", data, expected_state_, 656 return Verify("EPSV\r\n", data, expected_state_,
657 epsv_response_, epsv_response_length_); 657 epsv_response_, epsv_response_length_);
658 default: 658 default:
659 return FtpSocketDataProviderFileDownload::OnWrite(data); 659 return FtpSocketDataProviderFileDownload::OnWrite(data);
660 } 660 }
661 } 661 }
662 662
663 private: 663 private:
664 const char* epsv_response_; 664 const char* epsv_response_;
665 const size_t epsv_response_length_; 665 const size_t epsv_response_length_;
666 const State expected_state_; 666 const State expected_state_;
667 667
668 DISALLOW_COPY_AND_ASSIGN(FtpSocketDataProviderEvilEpsv); 668 DISALLOW_COPY_AND_ASSIGN(FtpSocketDataProviderEvilEpsv);
669 }; 669 };
670 670
671 class FtpSocketDataProviderEvilPasv 671 class FtpSocketDataProviderEvilPasv
672 : public FtpSocketDataProviderFileDownloadWithPasvFallback { 672 : public FtpSocketDataProviderFileDownloadWithPasvFallback {
673 public: 673 public:
674 FtpSocketDataProviderEvilPasv(const char* pasv_response, State expected_state) 674 FtpSocketDataProviderEvilPasv(const char* pasv_response, State expected_state)
675 : pasv_response_(pasv_response), 675 : pasv_response_(pasv_response),
676 expected_state_(expected_state) { 676 expected_state_(expected_state) {
677 } 677 }
678 678
679 virtual MockWriteResult OnWrite(const std::string& data) OVERRIDE { 679 virtual MockWriteResult OnWrite(const std::string& data) override {
680 if (InjectFault()) 680 if (InjectFault())
681 return MockWriteResult(ASYNC, data.length()); 681 return MockWriteResult(ASYNC, data.length());
682 switch (state()) { 682 switch (state()) {
683 case PRE_PASV: 683 case PRE_PASV:
684 return Verify("PASV\r\n", data, expected_state_, pasv_response_); 684 return Verify("PASV\r\n", data, expected_state_, pasv_response_);
685 default: 685 default:
686 return FtpSocketDataProviderFileDownloadWithPasvFallback::OnWrite(data); 686 return FtpSocketDataProviderFileDownloadWithPasvFallback::OnWrite(data);
687 } 687 }
688 } 688 }
689 689
690 private: 690 private:
691 const char* pasv_response_; 691 const char* pasv_response_;
692 const State expected_state_; 692 const State expected_state_;
693 693
694 DISALLOW_COPY_AND_ASSIGN(FtpSocketDataProviderEvilPasv); 694 DISALLOW_COPY_AND_ASSIGN(FtpSocketDataProviderEvilPasv);
695 }; 695 };
696 696
697 class FtpSocketDataProviderEvilSize : public FtpSocketDataProviderFileDownload { 697 class FtpSocketDataProviderEvilSize : public FtpSocketDataProviderFileDownload {
698 public: 698 public:
699 FtpSocketDataProviderEvilSize(const char* size_response, State expected_state) 699 FtpSocketDataProviderEvilSize(const char* size_response, State expected_state)
700 : size_response_(size_response), 700 : size_response_(size_response),
701 expected_state_(expected_state) { 701 expected_state_(expected_state) {
702 } 702 }
703 703
704 virtual MockWriteResult OnWrite(const std::string& data) OVERRIDE { 704 virtual MockWriteResult OnWrite(const std::string& data) override {
705 if (InjectFault()) 705 if (InjectFault())
706 return MockWriteResult(ASYNC, data.length()); 706 return MockWriteResult(ASYNC, data.length());
707 switch (state()) { 707 switch (state()) {
708 case PRE_SIZE: 708 case PRE_SIZE:
709 return Verify("SIZE /file\r\n", data, expected_state_, size_response_); 709 return Verify("SIZE /file\r\n", data, expected_state_, size_response_);
710 default: 710 default:
711 return FtpSocketDataProviderFileDownload::OnWrite(data); 711 return FtpSocketDataProviderFileDownload::OnWrite(data);
712 } 712 }
713 } 713 }
714 714
715 private: 715 private:
716 const char* size_response_; 716 const char* size_response_;
717 const State expected_state_; 717 const State expected_state_;
718 718
719 DISALLOW_COPY_AND_ASSIGN(FtpSocketDataProviderEvilSize); 719 DISALLOW_COPY_AND_ASSIGN(FtpSocketDataProviderEvilSize);
720 }; 720 };
721 721
722 class FtpSocketDataProviderEvilLogin 722 class FtpSocketDataProviderEvilLogin
723 : public FtpSocketDataProviderFileDownload { 723 : public FtpSocketDataProviderFileDownload {
724 public: 724 public:
725 FtpSocketDataProviderEvilLogin(const char* expected_user, 725 FtpSocketDataProviderEvilLogin(const char* expected_user,
726 const char* expected_password) 726 const char* expected_password)
727 : expected_user_(expected_user), 727 : expected_user_(expected_user),
728 expected_password_(expected_password) { 728 expected_password_(expected_password) {
729 } 729 }
730 730
731 virtual MockWriteResult OnWrite(const std::string& data) OVERRIDE { 731 virtual MockWriteResult OnWrite(const std::string& data) override {
732 if (InjectFault()) 732 if (InjectFault())
733 return MockWriteResult(ASYNC, data.length()); 733 return MockWriteResult(ASYNC, data.length());
734 switch (state()) { 734 switch (state()) {
735 case PRE_USER: 735 case PRE_USER:
736 return Verify(std::string("USER ") + expected_user_ + "\r\n", data, 736 return Verify(std::string("USER ") + expected_user_ + "\r\n", data,
737 PRE_PASSWD, "331 Password needed\r\n"); 737 PRE_PASSWD, "331 Password needed\r\n");
738 case PRE_PASSWD: 738 case PRE_PASSWD:
739 return Verify(std::string("PASS ") + expected_password_ + "\r\n", data, 739 return Verify(std::string("PASS ") + expected_password_ + "\r\n", data,
740 PRE_SYST, "230 Welcome\r\n"); 740 PRE_SYST, "230 Welcome\r\n");
741 default: 741 default:
742 return FtpSocketDataProviderFileDownload::OnWrite(data); 742 return FtpSocketDataProviderFileDownload::OnWrite(data);
743 } 743 }
744 } 744 }
745 745
746 private: 746 private:
747 const char* expected_user_; 747 const char* expected_user_;
748 const char* expected_password_; 748 const char* expected_password_;
749 749
750 DISALLOW_COPY_AND_ASSIGN(FtpSocketDataProviderEvilLogin); 750 DISALLOW_COPY_AND_ASSIGN(FtpSocketDataProviderEvilLogin);
751 }; 751 };
752 752
753 class FtpSocketDataProviderCloseConnection : public FtpSocketDataProvider { 753 class FtpSocketDataProviderCloseConnection : public FtpSocketDataProvider {
754 public: 754 public:
755 FtpSocketDataProviderCloseConnection() { 755 FtpSocketDataProviderCloseConnection() {
756 } 756 }
757 757
758 virtual MockWriteResult OnWrite(const std::string& data) OVERRIDE { 758 virtual MockWriteResult OnWrite(const std::string& data) override {
759 if (InjectFault()) 759 if (InjectFault())
760 return MockWriteResult(ASYNC, data.length()); 760 return MockWriteResult(ASYNC, data.length());
761 switch (state()) { 761 switch (state()) {
762 case PRE_USER: 762 case PRE_USER:
763 return Verify("USER anonymous\r\n", data, 763 return Verify("USER anonymous\r\n", data,
764 PRE_QUIT, ""); 764 PRE_QUIT, "");
765 default: 765 default:
766 return FtpSocketDataProvider::OnWrite(data); 766 return FtpSocketDataProvider::OnWrite(data);
767 } 767 }
768 } 768 }
(...skipping 825 matching lines...) Expand 10 before | Expand all | Expand 10 after
1594 FtpSocketDataProvider::PRE_TYPE, 1594 FtpSocketDataProvider::PRE_TYPE,
1595 "257 \"\"\r\n", 1595 "257 \"\"\r\n",
1596 OK); 1596 OK);
1597 } 1597 }
1598 1598
1599 INSTANTIATE_TEST_CASE_P(FTP, 1599 INSTANTIATE_TEST_CASE_P(FTP,
1600 FtpNetworkTransactionTest, 1600 FtpNetworkTransactionTest,
1601 ::testing::Values(AF_INET, AF_INET6)); 1601 ::testing::Values(AF_INET, AF_INET6));
1602 1602
1603 } // namespace net 1603 } // namespace net
OLDNEW
« no previous file with comments | « net/ftp/ftp_network_transaction.h ('k') | net/http/disk_cache_based_quic_server_info.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698