OLD | NEW |
1 // Copyright (c) 2009 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2009 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 #if defined(OS_WIN) | 9 #if defined(OS_WIN) |
10 #include <ws2tcpip.h> | 10 #include <ws2tcpip.h> |
(...skipping 285 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
296 | 296 |
297 virtual MockWriteResult OnWrite(const std::string& data) { | 297 virtual MockWriteResult OnWrite(const std::string& data) { |
298 if (InjectFault()) | 298 if (InjectFault()) |
299 return MockWriteResult(true, data.length()); | 299 return MockWriteResult(true, data.length()); |
300 switch (state()) { | 300 switch (state()) { |
301 case PRE_PASV2: | 301 case PRE_PASV2: |
302 return Verify("PASV\r\n", data, PRE_CWD, | 302 return Verify("PASV\r\n", data, PRE_CWD, |
303 "227 Entering Passive Mode (127,0,0,1,123,456)\r\n"); | 303 "227 Entering Passive Mode (127,0,0,1,123,456)\r\n"); |
304 case PRE_CWD: | 304 case PRE_CWD: |
305 return Verify("CWD /file\r\n", data, PRE_QUIT, | 305 return Verify("CWD /file\r\n", data, PRE_QUIT, |
306 "500 file is a directory\r\n"); | 306 "550 file is a directory\r\n"); |
307 default: | 307 default: |
308 return FtpMockControlSocketFileDownload::OnWrite(data); | 308 return FtpMockControlSocketFileDownload::OnWrite(data); |
309 } | 309 } |
310 } | 310 } |
311 | 311 |
312 private: | 312 private: |
313 DISALLOW_COPY_AND_ASSIGN(FtpMockControlSocketFileDownloadRetrFail); | 313 DISALLOW_COPY_AND_ASSIGN(FtpMockControlSocketFileDownloadRetrFail); |
314 }; | 314 }; |
315 | 315 |
316 class FtpMockControlSocketEvilPasv : public FtpMockControlSocketFileDownload { | 316 class FtpMockControlSocketEvilPasv : public FtpMockControlSocketFileDownload { |
(...skipping 360 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
677 TEST_F(FtpNetworkTransactionTest, DirectoryTransactionFailCwd) { | 677 TEST_F(FtpNetworkTransactionTest, DirectoryTransactionFailCwd) { |
678 FtpMockControlSocketDirectoryListing ctrl_socket; | 678 FtpMockControlSocketDirectoryListing ctrl_socket; |
679 TransactionFailHelper(&ctrl_socket, | 679 TransactionFailHelper(&ctrl_socket, |
680 "ftp://host", | 680 "ftp://host", |
681 FtpMockControlSocket::PRE_CWD, | 681 FtpMockControlSocket::PRE_CWD, |
682 FtpMockControlSocket::PRE_QUIT, | 682 FtpMockControlSocket::PRE_QUIT, |
683 "500 failed cwd\r\n", | 683 "500 failed cwd\r\n", |
684 ERR_FAILED); | 684 ERR_FAILED); |
685 } | 685 } |
686 | 686 |
| 687 TEST_F(FtpNetworkTransactionTest, DirectoryTransactionFileNotFound) { |
| 688 FtpMockControlSocketDirectoryListing ctrl_socket; |
| 689 TransactionFailHelper(&ctrl_socket, |
| 690 "ftp://host", |
| 691 FtpMockControlSocket::PRE_CWD, |
| 692 FtpMockControlSocket::PRE_QUIT, |
| 693 "550 cannot open file\r\n", |
| 694 ERR_FILE_NOT_FOUND); |
| 695 } |
| 696 |
687 TEST_F(FtpNetworkTransactionTest, DirectoryTransactionFailList) { | 697 TEST_F(FtpNetworkTransactionTest, DirectoryTransactionFailList) { |
688 FtpMockControlSocketDirectoryListing ctrl_socket; | 698 FtpMockControlSocketDirectoryListing ctrl_socket; |
689 TransactionFailHelper(&ctrl_socket, | 699 TransactionFailHelper(&ctrl_socket, |
690 "ftp://host", | 700 "ftp://host", |
691 FtpMockControlSocket::PRE_LIST, | 701 FtpMockControlSocket::PRE_LIST, |
692 FtpMockControlSocket::PRE_QUIT, | 702 FtpMockControlSocket::PRE_QUIT, |
693 "500 failed list\r\n", | 703 "500 failed list\r\n", |
694 ERR_FAILED); | 704 ERR_FAILED); |
695 } | 705 } |
696 | 706 |
(...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
762 FtpMockControlSocket::PRE_RETR, | 772 FtpMockControlSocket::PRE_RETR, |
763 "500 failed mdtm\r\n", | 773 "500 failed mdtm\r\n", |
764 OK); | 774 OK); |
765 } | 775 } |
766 | 776 |
767 TEST_F(FtpNetworkTransactionTest, DownloadTransactionFailRetr) { | 777 TEST_F(FtpNetworkTransactionTest, DownloadTransactionFailRetr) { |
768 FtpMockControlSocketFileDownloadRetrFail ctrl_socket; | 778 FtpMockControlSocketFileDownloadRetrFail ctrl_socket; |
769 TransactionFailHelper(&ctrl_socket, | 779 TransactionFailHelper(&ctrl_socket, |
770 "ftp://host/file", | 780 "ftp://host/file", |
771 FtpMockControlSocket::PRE_RETR, | 781 FtpMockControlSocket::PRE_RETR, |
| 782 FtpMockControlSocket::PRE_QUIT, |
| 783 "500 failed retr\r\n", |
| 784 ERR_FAILED); |
| 785 } |
| 786 |
| 787 TEST_F(FtpNetworkTransactionTest, DownloadTransactionFileNotFound) { |
| 788 FtpMockControlSocketFileDownloadRetrFail ctrl_socket; |
| 789 TransactionFailHelper(&ctrl_socket, |
| 790 "ftp://host/file", |
| 791 FtpMockControlSocket::PRE_RETR, |
772 FtpMockControlSocket::PRE_PASV2, | 792 FtpMockControlSocket::PRE_PASV2, |
773 "500 failed retr\r\n", | 793 "550 cannot open file\r\n", |
774 ERR_FAILED); | 794 ERR_FILE_NOT_FOUND); |
775 } | 795 } |
776 | 796 |
777 } // namespace net | 797 } // namespace net |
OLD | NEW |