Index: net/ftp/ftp_network_transaction_unittest.cc |
diff --git a/net/ftp/ftp_network_transaction_unittest.cc b/net/ftp/ftp_network_transaction_unittest.cc |
index 537ce147e5246c424394588090bbffc252a38d5d..13d744d412fd5d1191107f9dfcba9317e31c24d6 100644 |
--- a/net/ftp/ftp_network_transaction_unittest.cc |
+++ b/net/ftp/ftp_network_transaction_unittest.cc |
@@ -68,47 +68,62 @@ class FtpSocketDataProvider : public DynamicSocketDataProvider { |
return MockWriteResult(ASYNC, data.length()); |
switch (state()) { |
case PRE_USER: |
- return Verify("USER anonymous\r\n", data, PRE_PASSWD, |
- "331 Password needed\r\n"); |
- case PRE_PASSWD: |
- { |
- const char* response_one = "230 Welcome\r\n"; |
- const char* response_multi = "230- One\r\n230- Two\r\n230 Three\r\n"; |
- return Verify("PASS chrome@example.com\r\n", data, PRE_SYST, |
- multiline_welcome_ ? response_multi : response_one); |
- } |
+ return Verify( |
+ "USER anonymous\r\n", data, PRE_PASSWD, "331 Password needed\r\n"); |
+ case PRE_PASSWD: { |
+ const char* response_one = "230 Welcome\r\n"; |
+ const char* response_multi = "230- One\r\n230- Two\r\n230 Three\r\n"; |
+ return Verify("PASS chrome@example.com\r\n", |
+ data, |
+ PRE_SYST, |
+ multiline_welcome_ ? response_multi : response_one); |
+ } |
case PRE_SYST: |
return Verify("SYST\r\n", data, PRE_PWD, "215 UNIX\r\n"); |
case PRE_PWD: |
- return Verify("PWD\r\n", data, PRE_TYPE, |
+ return Verify("PWD\r\n", |
+ data, |
+ PRE_TYPE, |
"257 \"/\" is your current location\r\n"); |
case PRE_TYPE: |
- return Verify(std::string("TYPE ") + data_type_ + "\r\n", data, |
+ return Verify(std::string("TYPE ") + data_type_ + "\r\n", |
+ data, |
use_epsv_ ? PRE_EPSV : PRE_PASV, |
"200 TYPE set successfully\r\n"); |
case PRE_EPSV: |
- return Verify("EPSV\r\n", data, PRE_SIZE, |
+ return Verify("EPSV\r\n", |
+ data, |
+ PRE_SIZE, |
"227 Entering Extended Passive Mode (|||31744|)\r\n"); |
case PRE_CWD_EPSV: |
- return Verify("EPSV\r\n", data, PRE_CWD, |
+ return Verify("EPSV\r\n", |
+ data, |
+ PRE_CWD, |
"227 Entering Extended Passive Mode (|||31744|)\r\n"); |
case PRE_RETR_EPSV: |
- return Verify("EPSV\r\n", data, PRE_RETR, |
+ return Verify("EPSV\r\n", |
+ data, |
+ PRE_RETR, |
"227 Entering Extended Passive Mode (|||31744|)\r\n"); |
case PRE_CWD_PASV: |
- return Verify("PASV\r\n", data, PRE_CWD, |
+ return Verify("PASV\r\n", |
+ data, |
+ PRE_CWD, |
"227 Entering Passive Mode 127,0,0,1,123,456\r\n"); |
case PRE_RETR_PASV: |
- return Verify("PASV\r\n", data, PRE_RETR, |
+ return Verify("PASV\r\n", |
+ data, |
+ PRE_RETR, |
"227 Entering Passive Mode 127,0,0,1,123,456\r\n"); |
case PRE_PASV: |
- return Verify("PASV\r\n", data, PRE_SIZE, |
+ return Verify("PASV\r\n", |
+ data, |
+ PRE_SIZE, |
"227 Entering Passive Mode 127,0,0,1,123,456\r\n"); |
case PRE_NOPASV: |
// Use unallocated 599 FTP error code to make sure it falls into the |
// generic ERR_FTP_FAILED bucket. |
- return Verify("PASV\r\n", data, PRE_QUIT, |
- "599 fail\r\n"); |
+ return Verify("PASV\r\n", data, PRE_QUIT, "599 fail\r\n"); |
case PRE_QUIT: |
return Verify("QUIT\r\n", data, QUIT, "221 Goodbye.\r\n"); |
default: |
@@ -127,9 +142,7 @@ class FtpSocketDataProvider : public DynamicSocketDataProvider { |
fault_response_ = response; |
} |
- State state() const { |
- return state_; |
- } |
+ State state() const { return state_; } |
virtual void Reset() OVERRIDE { |
DynamicSocketDataProvider::Reset(); |
@@ -177,11 +190,10 @@ class FtpSocketDataProvider : public DynamicSocketDataProvider { |
const std::string& data, |
State next_state, |
const char* next_read) { |
- return Verify(expected, data, next_state, |
- next_read, std::strlen(next_read)); |
+ return Verify( |
+ expected, data, next_state, next_read, std::strlen(next_read)); |
} |
- |
private: |
State state_; |
State failure_injection_state_; |
@@ -202,15 +214,15 @@ class FtpSocketDataProvider : public DynamicSocketDataProvider { |
class FtpSocketDataProviderDirectoryListing : public FtpSocketDataProvider { |
public: |
- FtpSocketDataProviderDirectoryListing() { |
- } |
+ FtpSocketDataProviderDirectoryListing() {} |
virtual MockWriteResult OnWrite(const std::string& data) OVERRIDE { |
if (InjectFault()) |
return MockWriteResult(ASYNC, data.length()); |
switch (state()) { |
case PRE_SIZE: |
- return Verify("SIZE /\r\n", data, |
+ return Verify("SIZE /\r\n", |
+ data, |
use_epsv() ? PRE_CWD_EPSV : PRE_CWD_PASV, |
"550 I can only retrieve regular files\r\n"); |
case PRE_CWD: |
@@ -229,18 +241,18 @@ class FtpSocketDataProviderDirectoryListing : public FtpSocketDataProvider { |
class FtpSocketDataProviderDirectoryListingWithPasvFallback |
: public FtpSocketDataProviderDirectoryListing { |
public: |
- FtpSocketDataProviderDirectoryListingWithPasvFallback() { |
- } |
+ FtpSocketDataProviderDirectoryListingWithPasvFallback() {} |
virtual MockWriteResult OnWrite(const std::string& data) OVERRIDE { |
if (InjectFault()) |
return MockWriteResult(ASYNC, data.length()); |
switch (state()) { |
case PRE_EPSV: |
- return Verify("EPSV\r\n", data, PRE_PASV, |
- "500 no EPSV for you\r\n"); |
+ return Verify("EPSV\r\n", data, PRE_PASV, "500 no EPSV for you\r\n"); |
case PRE_SIZE: |
- return Verify("SIZE /\r\n", data, PRE_CWD_PASV, |
+ return Verify("SIZE /\r\n", |
+ data, |
+ PRE_CWD_PASV, |
"550 I can only retrieve regular files\r\n"); |
default: |
return FtpSocketDataProviderDirectoryListing::OnWrite(data); |
@@ -255,8 +267,7 @@ class FtpSocketDataProviderDirectoryListingWithPasvFallback |
class FtpSocketDataProviderDirectoryListingZeroSize |
: public FtpSocketDataProviderDirectoryListing { |
public: |
- FtpSocketDataProviderDirectoryListingZeroSize() { |
- } |
+ FtpSocketDataProviderDirectoryListingZeroSize() {} |
virtual MockWriteResult OnWrite(const std::string& data) OVERRIDE { |
if (InjectFault()) |
@@ -275,8 +286,7 @@ class FtpSocketDataProviderDirectoryListingZeroSize |
class FtpSocketDataProviderVMSDirectoryListing : public FtpSocketDataProvider { |
public: |
- FtpSocketDataProviderVMSDirectoryListing() { |
- } |
+ FtpSocketDataProviderVMSDirectoryListing() {} |
virtual MockWriteResult OnWrite(const std::string& data) OVERRIDE { |
if (InjectFault()) |
@@ -285,16 +295,18 @@ class FtpSocketDataProviderVMSDirectoryListing : public FtpSocketDataProvider { |
case PRE_SYST: |
return Verify("SYST\r\n", data, PRE_PWD, "215 VMS\r\n"); |
case PRE_PWD: |
- return Verify("PWD\r\n", data, PRE_TYPE, |
- "257 \"ANONYMOUS_ROOT:[000000]\"\r\n"); |
+ return Verify( |
+ "PWD\r\n", data, PRE_TYPE, "257 \"ANONYMOUS_ROOT:[000000]\"\r\n"); |
case PRE_EPSV: |
return Verify("EPSV\r\n", data, PRE_PASV, "500 Invalid command\r\n"); |
case PRE_SIZE: |
- return Verify("SIZE ANONYMOUS_ROOT:[000000]dir\r\n", data, PRE_CWD_PASV, |
+ return Verify("SIZE ANONYMOUS_ROOT:[000000]dir\r\n", |
+ data, |
+ PRE_CWD_PASV, |
"550 I can only retrieve regular files\r\n"); |
case PRE_CWD: |
- return Verify("CWD ANONYMOUS_ROOT:[dir]\r\n", data, PRE_LIST, |
- "200 OK\r\n"); |
+ return Verify( |
+ "CWD ANONYMOUS_ROOT:[dir]\r\n", data, PRE_LIST, "200 OK\r\n"); |
case PRE_LIST: |
return Verify("LIST *.*;0\r\n", data, PRE_QUIT, "200 OK\r\n"); |
default: |
@@ -309,8 +321,7 @@ class FtpSocketDataProviderVMSDirectoryListing : public FtpSocketDataProvider { |
class FtpSocketDataProviderVMSDirectoryListingRootDirectory |
: public FtpSocketDataProvider { |
public: |
- FtpSocketDataProviderVMSDirectoryListingRootDirectory() { |
- } |
+ FtpSocketDataProviderVMSDirectoryListingRootDirectory() {} |
virtual MockWriteResult OnWrite(const std::string& data) OVERRIDE { |
if (InjectFault()) |
@@ -319,17 +330,19 @@ class FtpSocketDataProviderVMSDirectoryListingRootDirectory |
case PRE_SYST: |
return Verify("SYST\r\n", data, PRE_PWD, "215 VMS\r\n"); |
case PRE_PWD: |
- return Verify("PWD\r\n", data, PRE_TYPE, |
- "257 \"ANONYMOUS_ROOT:[000000]\"\r\n"); |
+ return Verify( |
+ "PWD\r\n", data, PRE_TYPE, "257 \"ANONYMOUS_ROOT:[000000]\"\r\n"); |
case PRE_EPSV: |
- return Verify("EPSV\r\n", data, PRE_PASV, |
- "500 EPSV command unknown\r\n"); |
+ return Verify( |
+ "EPSV\r\n", data, PRE_PASV, "500 EPSV command unknown\r\n"); |
case PRE_SIZE: |
- return Verify("SIZE ANONYMOUS_ROOT\r\n", data, PRE_CWD_PASV, |
+ return Verify("SIZE ANONYMOUS_ROOT\r\n", |
+ data, |
+ PRE_CWD_PASV, |
"550 I can only retrieve regular files\r\n"); |
case PRE_CWD: |
- return Verify("CWD ANONYMOUS_ROOT:[000000]\r\n", data, PRE_LIST, |
- "200 OK\r\n"); |
+ return Verify( |
+ "CWD ANONYMOUS_ROOT:[000000]\r\n", data, PRE_LIST, "200 OK\r\n"); |
case PRE_LIST: |
return Verify("LIST *.*;0\r\n", data, PRE_QUIT, "200 OK\r\n"); |
default: |
@@ -345,16 +358,14 @@ class FtpSocketDataProviderVMSDirectoryListingRootDirectory |
class FtpSocketDataProviderFileDownloadWithFileTypecode |
: public FtpSocketDataProvider { |
public: |
- FtpSocketDataProviderFileDownloadWithFileTypecode() { |
- } |
+ FtpSocketDataProviderFileDownloadWithFileTypecode() {} |
virtual MockWriteResult OnWrite(const std::string& data) OVERRIDE { |
if (InjectFault()) |
return MockWriteResult(ASYNC, data.length()); |
switch (state()) { |
case PRE_SIZE: |
- return Verify("SIZE /file\r\n", data, PRE_RETR, |
- "213 18\r\n"); |
+ return Verify("SIZE /file\r\n", data, PRE_RETR, "213 18\r\n"); |
case PRE_RETR: |
return Verify("RETR /file\r\n", data, PRE_QUIT, "200 OK\r\n"); |
default: |
@@ -368,18 +379,17 @@ class FtpSocketDataProviderFileDownloadWithFileTypecode |
class FtpSocketDataProviderFileDownload : public FtpSocketDataProvider { |
public: |
- FtpSocketDataProviderFileDownload() { |
- } |
+ FtpSocketDataProviderFileDownload() {} |
virtual MockWriteResult OnWrite(const std::string& data) OVERRIDE { |
if (InjectFault()) |
return MockWriteResult(ASYNC, data.length()); |
switch (state()) { |
case PRE_SIZE: |
- return Verify("SIZE /file\r\n", data, PRE_CWD, |
- "213 18\r\n"); |
+ return Verify("SIZE /file\r\n", data, PRE_CWD, "213 18\r\n"); |
case PRE_CWD: |
- return Verify("CWD /file\r\n", data, |
+ return Verify("CWD /file\r\n", |
+ data, |
use_epsv() ? PRE_RETR_EPSV : PRE_RETR_PASV, |
"550 Not a directory\r\n"); |
case PRE_RETR: |
@@ -395,24 +405,25 @@ class FtpSocketDataProviderFileDownload : public FtpSocketDataProvider { |
class FtpSocketDataProviderFileNotFound : public FtpSocketDataProvider { |
public: |
- FtpSocketDataProviderFileNotFound() { |
- } |
+ FtpSocketDataProviderFileNotFound() {} |
virtual MockWriteResult OnWrite(const std::string& data) OVERRIDE { |
if (InjectFault()) |
return MockWriteResult(ASYNC, data.length()); |
switch (state()) { |
case PRE_SIZE: |
- return Verify("SIZE /file\r\n", data, |
+ return Verify("SIZE /file\r\n", |
+ data, |
use_epsv() ? PRE_CWD_EPSV : PRE_CWD_PASV, |
"550 File Not Found\r\n"); |
case PRE_CWD: |
- return Verify("CWD /file\r\n", data, |
+ return Verify("CWD /file\r\n", |
+ data, |
use_epsv() ? PRE_RETR_EPSV : PRE_RETR_PASV, |
"550 File Not Found\r\n"); |
case PRE_RETR: |
- return Verify("RETR /file\r\n", data, PRE_QUIT, |
- "550 File Not Found\r\n"); |
+ return Verify( |
+ "RETR /file\r\n", data, PRE_QUIT, "550 File Not Found\r\n"); |
default: |
return FtpSocketDataProvider::OnWrite(data); |
} |
@@ -425,19 +436,17 @@ class FtpSocketDataProviderFileNotFound : public FtpSocketDataProvider { |
class FtpSocketDataProviderFileDownloadWithPasvFallback |
: public FtpSocketDataProviderFileDownload { |
public: |
- FtpSocketDataProviderFileDownloadWithPasvFallback() { |
- } |
+ FtpSocketDataProviderFileDownloadWithPasvFallback() {} |
virtual MockWriteResult OnWrite(const std::string& data) OVERRIDE { |
if (InjectFault()) |
return MockWriteResult(ASYNC, data.length()); |
switch (state()) { |
case PRE_EPSV: |
- return Verify("EPSV\r\n", data, PRE_PASV, |
- "500 No can do\r\n"); |
+ return Verify("EPSV\r\n", data, PRE_PASV, "500 No can do\r\n"); |
case PRE_CWD: |
- return Verify("CWD /file\r\n", data, PRE_RETR_PASV, |
- "550 Not a directory\r\n"); |
+ return Verify( |
+ "CWD /file\r\n", data, PRE_RETR_PASV, "550 Not a directory\r\n"); |
default: |
return FtpSocketDataProviderFileDownload::OnWrite(data); |
} |
@@ -450,18 +459,17 @@ class FtpSocketDataProviderFileDownloadWithPasvFallback |
class FtpSocketDataProviderFileDownloadZeroSize |
: public FtpSocketDataProviderFileDownload { |
public: |
- FtpSocketDataProviderFileDownloadZeroSize() { |
- } |
+ FtpSocketDataProviderFileDownloadZeroSize() {} |
virtual MockWriteResult OnWrite(const std::string& data) OVERRIDE { |
if (InjectFault()) |
return MockWriteResult(ASYNC, data.length()); |
switch (state()) { |
case PRE_SIZE: |
- return Verify("SIZE /file\r\n", data, PRE_CWD, |
- "213 0\r\n"); |
+ return Verify("SIZE /file\r\n", data, PRE_CWD, "213 0\r\n"); |
case PRE_CWD: |
- return Verify("CWD /file\r\n", data, |
+ return Verify("CWD /file\r\n", |
+ data, |
use_epsv() ? PRE_RETR_EPSV : PRE_RETR_PASV, |
"550 not a directory\r\n"); |
default: |
@@ -476,15 +484,15 @@ class FtpSocketDataProviderFileDownloadZeroSize |
class FtpSocketDataProviderFileDownloadCWD451 |
: public FtpSocketDataProviderFileDownload { |
public: |
- FtpSocketDataProviderFileDownloadCWD451() { |
- } |
+ FtpSocketDataProviderFileDownloadCWD451() {} |
virtual MockWriteResult OnWrite(const std::string& data) OVERRIDE { |
if (InjectFault()) |
return MockWriteResult(ASYNC, data.length()); |
switch (state()) { |
case PRE_CWD: |
- return Verify("CWD /file\r\n", data, |
+ return Verify("CWD /file\r\n", |
+ data, |
use_epsv() ? PRE_RETR_EPSV : PRE_RETR_PASV, |
"451 not a directory\r\n"); |
default: |
@@ -498,8 +506,7 @@ class FtpSocketDataProviderFileDownloadCWD451 |
class FtpSocketDataProviderVMSFileDownload : public FtpSocketDataProvider { |
public: |
- FtpSocketDataProviderVMSFileDownload() { |
- } |
+ FtpSocketDataProviderVMSFileDownload() {} |
virtual MockWriteResult OnWrite(const std::string& data) OVERRIDE { |
if (InjectFault()) |
@@ -508,19 +515,25 @@ class FtpSocketDataProviderVMSFileDownload : public FtpSocketDataProvider { |
case PRE_SYST: |
return Verify("SYST\r\n", data, PRE_PWD, "215 VMS\r\n"); |
case PRE_PWD: |
- return Verify("PWD\r\n", data, PRE_TYPE, |
- "257 \"ANONYMOUS_ROOT:[000000]\"\r\n"); |
+ return Verify( |
+ "PWD\r\n", data, PRE_TYPE, "257 \"ANONYMOUS_ROOT:[000000]\"\r\n"); |
case PRE_EPSV: |
- return Verify("EPSV\r\n", data, PRE_PASV, |
- "500 EPSV command unknown\r\n"); |
+ return Verify( |
+ "EPSV\r\n", data, PRE_PASV, "500 EPSV command unknown\r\n"); |
case PRE_SIZE: |
- return Verify("SIZE ANONYMOUS_ROOT:[000000]file\r\n", data, PRE_CWD, |
+ return Verify("SIZE ANONYMOUS_ROOT:[000000]file\r\n", |
+ data, |
+ PRE_CWD, |
"213 18\r\n"); |
case PRE_CWD: |
- return Verify("CWD ANONYMOUS_ROOT:[file]\r\n", data, PRE_RETR_PASV, |
+ return Verify("CWD ANONYMOUS_ROOT:[file]\r\n", |
+ data, |
+ PRE_RETR_PASV, |
"550 Not a directory\r\n"); |
case PRE_RETR: |
- return Verify("RETR ANONYMOUS_ROOT:[000000]file\r\n", data, PRE_QUIT, |
+ return Verify("RETR ANONYMOUS_ROOT:[000000]file\r\n", |
+ data, |
+ PRE_QUIT, |
"200 OK\r\n"); |
default: |
return FtpSocketDataProvider::OnWrite(data); |
@@ -533,23 +546,23 @@ class FtpSocketDataProviderVMSFileDownload : public FtpSocketDataProvider { |
class FtpSocketDataProviderEscaping : public FtpSocketDataProviderFileDownload { |
public: |
- FtpSocketDataProviderEscaping() { |
- } |
+ FtpSocketDataProviderEscaping() {} |
virtual MockWriteResult OnWrite(const std::string& data) OVERRIDE { |
if (InjectFault()) |
return MockWriteResult(ASYNC, data.length()); |
switch (state()) { |
case PRE_SIZE: |
- return Verify("SIZE / !\"#$%y\200\201\r\n", data, PRE_CWD, |
- "213 18\r\n"); |
+ return Verify( |
+ "SIZE / !\"#$%y\200\201\r\n", data, PRE_CWD, "213 18\r\n"); |
case PRE_CWD: |
- return Verify("CWD / !\"#$%y\200\201\r\n", data, |
+ return Verify("CWD / !\"#$%y\200\201\r\n", |
+ data, |
use_epsv() ? PRE_RETR_EPSV : PRE_RETR_PASV, |
"550 Not a directory\r\n"); |
case PRE_RETR: |
- return Verify("RETR / !\"#$%y\200\201\r\n", data, PRE_QUIT, |
- "200 OK\r\n"); |
+ return Verify( |
+ "RETR / !\"#$%y\200\201\r\n", data, PRE_QUIT, "200 OK\r\n"); |
default: |
return FtpSocketDataProviderFileDownload::OnWrite(data); |
} |
@@ -562,15 +575,16 @@ class FtpSocketDataProviderEscaping : public FtpSocketDataProviderFileDownload { |
class FtpSocketDataProviderFileDownloadTransferStarting |
: public FtpSocketDataProviderFileDownload { |
public: |
- FtpSocketDataProviderFileDownloadTransferStarting() { |
- } |
+ FtpSocketDataProviderFileDownloadTransferStarting() {} |
virtual MockWriteResult OnWrite(const std::string& data) OVERRIDE { |
if (InjectFault()) |
return MockWriteResult(ASYNC, data.length()); |
switch (state()) { |
case PRE_RETR: |
- return Verify("RETR /file\r\n", data, PRE_QUIT, |
+ return Verify("RETR /file\r\n", |
+ data, |
+ PRE_QUIT, |
"125-Data connection already open.\r\n" |
"125 Transfer starting.\r\n" |
"226 Transfer complete.\r\n"); |
@@ -586,15 +600,16 @@ class FtpSocketDataProviderFileDownloadTransferStarting |
class FtpSocketDataProviderDirectoryListingTransferStarting |
: public FtpSocketDataProviderDirectoryListing { |
public: |
- FtpSocketDataProviderDirectoryListingTransferStarting() { |
- } |
+ FtpSocketDataProviderDirectoryListingTransferStarting() {} |
virtual MockWriteResult OnWrite(const std::string& data) OVERRIDE { |
if (InjectFault()) |
return MockWriteResult(ASYNC, data.length()); |
switch (state()) { |
case PRE_LIST: |
- return Verify("LIST -l\r\n", data, PRE_QUIT, |
+ return Verify("LIST -l\r\n", |
+ data, |
+ PRE_QUIT, |
"125-Data connection already open.\r\n" |
"125 Transfer starting.\r\n" |
"226 Transfer complete.\r\n"); |
@@ -611,8 +626,7 @@ class FtpSocketDataProviderDirectoryListingTransferStarting |
class FtpSocketDataProviderFileDownloadInvalidResponse |
: public FtpSocketDataProviderFileDownload { |
public: |
- FtpSocketDataProviderFileDownloadInvalidResponse() { |
- } |
+ FtpSocketDataProviderFileDownloadInvalidResponse() {} |
virtual MockWriteResult OnWrite(const std::string& data) OVERRIDE { |
if (InjectFault()) |
@@ -621,7 +635,9 @@ class FtpSocketDataProviderFileDownloadInvalidResponse |
case PRE_SIZE: |
// Use unallocated 599 FTP error code to make sure it falls into the |
// generic ERR_FTP_FAILED bucket. |
- return Verify("SIZE /file\r\n", data, PRE_QUIT, |
+ return Verify("SIZE /file\r\n", |
+ data, |
+ PRE_QUIT, |
"599 Evil Response\r\n" |
"599 More Evil\r\n"); |
default: |
@@ -635,15 +651,14 @@ class FtpSocketDataProviderFileDownloadInvalidResponse |
class FtpSocketDataProviderEvilEpsv : public FtpSocketDataProviderFileDownload { |
public: |
- FtpSocketDataProviderEvilEpsv(const char* epsv_response, |
- State expected_state) |
+ FtpSocketDataProviderEvilEpsv(const char* epsv_response, State expected_state) |
: epsv_response_(epsv_response), |
epsv_response_length_(std::strlen(epsv_response)), |
expected_state_(expected_state) {} |
FtpSocketDataProviderEvilEpsv(const char* epsv_response, |
- size_t epsv_response_length, |
- State expected_state) |
+ size_t epsv_response_length, |
+ State expected_state) |
: epsv_response_(epsv_response), |
epsv_response_length_(epsv_response_length), |
expected_state_(expected_state) {} |
@@ -653,8 +668,11 @@ class FtpSocketDataProviderEvilEpsv : public FtpSocketDataProviderFileDownload { |
return MockWriteResult(ASYNC, data.length()); |
switch (state()) { |
case PRE_EPSV: |
- return Verify("EPSV\r\n", data, expected_state_, |
- epsv_response_, epsv_response_length_); |
+ return Verify("EPSV\r\n", |
+ data, |
+ expected_state_, |
+ epsv_response_, |
+ epsv_response_length_); |
default: |
return FtpSocketDataProviderFileDownload::OnWrite(data); |
} |
@@ -672,9 +690,7 @@ class FtpSocketDataProviderEvilPasv |
: public FtpSocketDataProviderFileDownloadWithPasvFallback { |
public: |
FtpSocketDataProviderEvilPasv(const char* pasv_response, State expected_state) |
- : pasv_response_(pasv_response), |
- expected_state_(expected_state) { |
- } |
+ : pasv_response_(pasv_response), expected_state_(expected_state) {} |
virtual MockWriteResult OnWrite(const std::string& data) OVERRIDE { |
if (InjectFault()) |
@@ -697,9 +713,7 @@ class FtpSocketDataProviderEvilPasv |
class FtpSocketDataProviderEvilSize : public FtpSocketDataProviderFileDownload { |
public: |
FtpSocketDataProviderEvilSize(const char* size_response, State expected_state) |
- : size_response_(size_response), |
- expected_state_(expected_state) { |
- } |
+ : size_response_(size_response), expected_state_(expected_state) {} |
virtual MockWriteResult OnWrite(const std::string& data) OVERRIDE { |
if (InjectFault()) |
@@ -723,21 +737,23 @@ class FtpSocketDataProviderEvilLogin |
: public FtpSocketDataProviderFileDownload { |
public: |
FtpSocketDataProviderEvilLogin(const char* expected_user, |
- const char* expected_password) |
- : expected_user_(expected_user), |
- expected_password_(expected_password) { |
- } |
+ const char* expected_password) |
+ : expected_user_(expected_user), expected_password_(expected_password) {} |
virtual MockWriteResult OnWrite(const std::string& data) OVERRIDE { |
if (InjectFault()) |
return MockWriteResult(ASYNC, data.length()); |
switch (state()) { |
case PRE_USER: |
- return Verify(std::string("USER ") + expected_user_ + "\r\n", data, |
- PRE_PASSWD, "331 Password needed\r\n"); |
+ return Verify(std::string("USER ") + expected_user_ + "\r\n", |
+ data, |
+ PRE_PASSWD, |
+ "331 Password needed\r\n"); |
case PRE_PASSWD: |
- return Verify(std::string("PASS ") + expected_password_ + "\r\n", data, |
- PRE_SYST, "230 Welcome\r\n"); |
+ return Verify(std::string("PASS ") + expected_password_ + "\r\n", |
+ data, |
+ PRE_SYST, |
+ "230 Welcome\r\n"); |
default: |
return FtpSocketDataProviderFileDownload::OnWrite(data); |
} |
@@ -752,16 +768,14 @@ class FtpSocketDataProviderEvilLogin |
class FtpSocketDataProviderCloseConnection : public FtpSocketDataProvider { |
public: |
- FtpSocketDataProviderCloseConnection() { |
- } |
+ FtpSocketDataProviderCloseConnection() {} |
virtual MockWriteResult OnWrite(const std::string& data) OVERRIDE { |
if (InjectFault()) |
return MockWriteResult(ASYNC, data.length()); |
switch (state()) { |
case PRE_USER: |
- return Verify("USER anonymous\r\n", data, |
- PRE_QUIT, ""); |
+ return Verify("USER anonymous\r\n", data, PRE_QUIT, ""); |
default: |
return FtpSocketDataProvider::OnWrite(data); |
} |
@@ -771,9 +785,8 @@ class FtpSocketDataProviderCloseConnection : public FtpSocketDataProvider { |
DISALLOW_COPY_AND_ASSIGN(FtpSocketDataProviderCloseConnection); |
}; |
-class FtpNetworkTransactionTest |
- : public PlatformTest, |
- public ::testing::WithParamInterface<int> { |
+class FtpNetworkTransactionTest : public PlatformTest, |
+ public ::testing::WithParamInterface<int> { |
public: |
FtpNetworkTransactionTest() |
: host_resolver_(new MockHostResolver), |
@@ -794,9 +807,7 @@ class FtpNetworkTransactionTest |
protected: |
// Accessor to make code refactoring-friendly, e.g. when we change the way |
// parameters are passed (like more parameters). |
- int GetFamily() { |
- return GetParam(); |
- } |
+ int GetFamily() { return GetParam(); } |
FtpRequestInfo GetRequestInfo(const std::string& url) { |
FtpRequestInfo info; |
@@ -815,10 +826,11 @@ class FtpNetworkTransactionTest |
std::string mock_data("mock-data"); |
MockRead data_reads[] = { |
- // Usually FTP servers close the data connection after the entire data has |
- // been received. |
- MockRead(SYNCHRONOUS, ERR_TEST_PEER_CLOSE_AFTER_NEXT_MOCK_READ), |
- MockRead(mock_data.c_str()), |
+ // Usually FTP servers close the data connection after the entire data |
+ // has |
+ // been received. |
+ MockRead(SYNCHRONOUS, ERR_TEST_PEER_CLOSE_AFTER_NEXT_MOCK_READ), |
+ MockRead(mock_data.c_str()), |
}; |
ScopedVector<StaticSocketDataProvider> data_sockets; |
@@ -827,7 +839,7 @@ class FtpNetworkTransactionTest |
// We only read from one data socket, other ones are dummy. |
if (i == data_socket) { |
data_sockets.push_back(new StaticSocketDataProvider( |
- data_reads, arraysize(data_reads), NULL, 0)); |
+ data_reads, arraysize(data_reads), NULL, 0)); |
} else { |
data_sockets.push_back(new StaticSocketDataProvider); |
} |
@@ -836,24 +848,24 @@ class FtpNetworkTransactionTest |
FtpRequestInfo request_info = GetRequestInfo(request); |
EXPECT_EQ(LOAD_STATE_IDLE, transaction_.GetLoadState()); |
- ASSERT_EQ(ERR_IO_PENDING, |
- transaction_.Start(&request_info, callback_.callback(), |
- BoundNetLog())); |
+ ASSERT_EQ( |
+ ERR_IO_PENDING, |
+ transaction_.Start(&request_info, callback_.callback(), BoundNetLog())); |
EXPECT_NE(LOAD_STATE_IDLE, transaction_.GetLoadState()); |
ASSERT_EQ(expected_result, callback_.WaitForResult()); |
if (expected_result == OK) { |
scoped_refptr<IOBuffer> io_buffer(new IOBuffer(kBufferSize)); |
memset(io_buffer->data(), 0, kBufferSize); |
ASSERT_EQ(ERR_IO_PENDING, |
- transaction_.Read(io_buffer.get(), kBufferSize, |
- callback_.callback())); |
+ transaction_.Read( |
+ io_buffer.get(), kBufferSize, callback_.callback())); |
ASSERT_EQ(static_cast<int>(mock_data.length()), |
callback_.WaitForResult()); |
EXPECT_EQ(mock_data, std::string(io_buffer->data(), mock_data.length())); |
// Do another Read to detect that the data socket is now closed. |
- int rv = transaction_.Read(io_buffer.get(), kBufferSize, |
- callback_.callback()); |
+ int rv = |
+ transaction_.Read(io_buffer.get(), kBufferSize, callback_.callback()); |
if (rv == ERR_IO_PENDING) { |
EXPECT_EQ(0, callback_.WaitForResult()); |
} else { |
@@ -889,9 +901,9 @@ TEST_P(FtpNetworkTransactionTest, FailedLookup) { |
host_resolver_->set_rules(rules.get()); |
EXPECT_EQ(LOAD_STATE_IDLE, transaction_.GetLoadState()); |
- ASSERT_EQ(ERR_IO_PENDING, |
- transaction_.Start(&request_info, callback_.callback(), |
- BoundNetLog())); |
+ ASSERT_EQ( |
+ ERR_IO_PENDING, |
+ transaction_.Start(&request_info, callback_.callback(), BoundNetLog())); |
ASSERT_EQ(ERR_NAME_NOT_RESOLVED, callback_.WaitForResult()); |
EXPECT_EQ(LOAD_STATE_IDLE, transaction_.GetLoadState()); |
} |
@@ -1109,20 +1121,20 @@ TEST_P(FtpNetworkTransactionTest, DownloadTransactionEvilPasvUnsafeHost) { |
ctrl_socket.set_use_epsv(GetFamily() != AF_INET); |
std::string mock_data("mock-data"); |
MockRead data_reads[] = { |
- MockRead(mock_data.c_str()), |
+ MockRead(mock_data.c_str()), |
}; |
StaticSocketDataProvider data_socket1; |
- StaticSocketDataProvider data_socket2(data_reads, arraysize(data_reads), |
- NULL, 0); |
+ StaticSocketDataProvider data_socket2( |
+ data_reads, arraysize(data_reads), NULL, 0); |
mock_socket_factory_.AddSocketDataProvider(&ctrl_socket); |
mock_socket_factory_.AddSocketDataProvider(&data_socket1); |
mock_socket_factory_.AddSocketDataProvider(&data_socket2); |
FtpRequestInfo request_info = GetRequestInfo("ftp://host/file"); |
// Start the transaction. |
- ASSERT_EQ(ERR_IO_PENDING, |
- transaction_.Start(&request_info, callback_.callback(), |
- BoundNetLog())); |
+ ASSERT_EQ( |
+ ERR_IO_PENDING, |
+ transaction_.Start(&request_info, callback_.callback(), BoundNetLog())); |
ASSERT_EQ(OK, callback_.WaitForResult()); |
// The transaction fires the callback when we can start reading data. That |
@@ -1136,7 +1148,8 @@ TEST_P(FtpNetworkTransactionTest, DownloadTransactionEvilPasvUnsafeHost) { |
// to the address we used for control connection (which could be 127.0.0.1 |
// or ::1 depending on whether we use IPv6). |
for (AddressList::const_iterator it = data_socket->addresses().begin(); |
- it != data_socket->addresses().end(); ++it) { |
+ it != data_socket->addresses().end(); |
+ ++it) { |
EXPECT_NE("10.1.2.3", it->ToStringWithoutPort()); |
} |
} |
@@ -1187,8 +1200,8 @@ TEST_P(FtpNetworkTransactionTest, DownloadTransactionEvilEpsvReallyBadFormat5) { |
return; |
const char response[] = "227 Portscan (\0\0\031773\0)\r\n"; |
- FtpSocketDataProviderEvilEpsv ctrl_socket(response, sizeof(response)-1, |
- FtpSocketDataProvider::PRE_QUIT); |
+ FtpSocketDataProviderEvilEpsv ctrl_socket( |
+ response, sizeof(response) - 1, FtpSocketDataProvider::PRE_QUIT); |
ExecuteTransaction(&ctrl_socket, "ftp://host/file", 1, ERR_INVALID_RESPONSE); |
} |
@@ -1292,27 +1305,25 @@ TEST_P(FtpNetworkTransactionTest, EvilRestartUser) { |
FtpRequestInfo request_info = GetRequestInfo("ftp://host/file"); |
- ASSERT_EQ(ERR_IO_PENDING, |
- transaction_.Start(&request_info, callback_.callback(), |
- BoundNetLog())); |
+ ASSERT_EQ( |
+ ERR_IO_PENDING, |
+ transaction_.Start(&request_info, callback_.callback(), BoundNetLog())); |
ASSERT_EQ(ERR_FTP_FAILED, callback_.WaitForResult()); |
MockRead ctrl_reads[] = { |
- MockRead("220 host TestFTPd\r\n"), |
- MockRead("221 Goodbye!\r\n"), |
- MockRead(SYNCHRONOUS, OK), |
+ MockRead("220 host TestFTPd\r\n"), MockRead("221 Goodbye!\r\n"), |
+ MockRead(SYNCHRONOUS, OK), |
}; |
MockWrite ctrl_writes[] = { |
- MockWrite("QUIT\r\n"), |
+ MockWrite("QUIT\r\n"), |
}; |
- StaticSocketDataProvider ctrl_socket2(ctrl_reads, arraysize(ctrl_reads), |
- ctrl_writes, arraysize(ctrl_writes)); |
+ StaticSocketDataProvider ctrl_socket2( |
+ ctrl_reads, arraysize(ctrl_reads), ctrl_writes, arraysize(ctrl_writes)); |
mock_socket_factory_.AddSocketDataProvider(&ctrl_socket2); |
ASSERT_EQ(ERR_IO_PENDING, |
transaction_.RestartWithAuth( |
- AuthCredentials( |
- base::ASCIIToUTF16("foo\nownz0red"), |
- base::ASCIIToUTF16("innocent")), |
+ AuthCredentials(base::ASCIIToUTF16("foo\nownz0red"), |
+ base::ASCIIToUTF16("innocent")), |
callback_.callback())); |
EXPECT_EQ(ERR_MALFORMED_IDENTITY, callback_.WaitForResult()); |
} |
@@ -1326,23 +1337,21 @@ TEST_P(FtpNetworkTransactionTest, EvilRestartPassword) { |
FtpRequestInfo request_info = GetRequestInfo("ftp://host/file"); |
- ASSERT_EQ(ERR_IO_PENDING, |
- transaction_.Start(&request_info, callback_.callback(), |
- BoundNetLog())); |
+ ASSERT_EQ( |
+ ERR_IO_PENDING, |
+ transaction_.Start(&request_info, callback_.callback(), BoundNetLog())); |
ASSERT_EQ(ERR_FTP_FAILED, callback_.WaitForResult()); |
MockRead ctrl_reads[] = { |
- MockRead("220 host TestFTPd\r\n"), |
- MockRead("331 User okay, send password\r\n"), |
- MockRead("221 Goodbye!\r\n"), |
- MockRead(SYNCHRONOUS, OK), |
+ MockRead("220 host TestFTPd\r\n"), |
+ MockRead("331 User okay, send password\r\n"), |
+ MockRead("221 Goodbye!\r\n"), MockRead(SYNCHRONOUS, OK), |
}; |
MockWrite ctrl_writes[] = { |
- MockWrite("USER innocent\r\n"), |
- MockWrite("QUIT\r\n"), |
+ MockWrite("USER innocent\r\n"), MockWrite("QUIT\r\n"), |
}; |
- StaticSocketDataProvider ctrl_socket2(ctrl_reads, arraysize(ctrl_reads), |
- ctrl_writes, arraysize(ctrl_writes)); |
+ StaticSocketDataProvider ctrl_socket2( |
+ ctrl_reads, arraysize(ctrl_reads), ctrl_writes, arraysize(ctrl_writes)); |
mock_socket_factory_.AddSocketDataProvider(&ctrl_socket2); |
ASSERT_EQ(ERR_IO_PENDING, |
transaction_.RestartWithAuth( |
@@ -1354,8 +1363,8 @@ TEST_P(FtpNetworkTransactionTest, EvilRestartPassword) { |
TEST_P(FtpNetworkTransactionTest, Escaping) { |
FtpSocketDataProviderEscaping ctrl_socket; |
- ExecuteTransaction(&ctrl_socket, "ftp://host/%20%21%22%23%24%25%79%80%81", |
- 1, OK); |
+ ExecuteTransaction( |
+ &ctrl_socket, "ftp://host/%20%21%22%23%24%25%79%80%81", 1, OK); |
} |
// Test for http://crbug.com/23794. |
@@ -1370,9 +1379,8 @@ TEST_P(FtpNetworkTransactionTest, DownloadTransactionEvilSize) { |
// Test for http://crbug.com/36360. |
TEST_P(FtpNetworkTransactionTest, DownloadTransactionBigSize) { |
// Pass a valid, but large file size. The transaction should not fail. |
- FtpSocketDataProviderEvilSize ctrl_socket( |
- "213 3204427776\r\n", |
- FtpSocketDataProvider::PRE_CWD); |
+ FtpSocketDataProviderEvilSize ctrl_socket("213 3204427776\r\n", |
+ FtpSocketDataProvider::PRE_CWD); |
ExecuteTransaction(&ctrl_socket, "ftp://host/file", 1, OK); |
EXPECT_EQ(3204427776LL, |
transaction_.GetResponseInfo()->expected_content_size); |