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

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

Issue 5669001: FTP: fix compatibility problems with MLSD by removing MLSD support. (Closed)
Patch Set: Created 10 years 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
OLDNEW
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2010 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/ref_counted.h" 9 #include "base/ref_counted.h"
10 #include "base/string_util.h" 10 #include "base/string_util.h"
(...skipping 23 matching lines...) Expand all
34 enum State { 34 enum State {
35 NONE, 35 NONE,
36 PRE_USER, 36 PRE_USER,
37 PRE_PASSWD, 37 PRE_PASSWD,
38 PRE_SYST, 38 PRE_SYST,
39 PRE_PWD, 39 PRE_PWD,
40 PRE_TYPE, 40 PRE_TYPE,
41 PRE_SIZE, 41 PRE_SIZE,
42 PRE_EPSV, 42 PRE_EPSV,
43 PRE_PASV, 43 PRE_PASV,
44 PRE_MLSD,
45 PRE_LIST, 44 PRE_LIST,
46 PRE_RETR, 45 PRE_RETR,
47 PRE_CWD, 46 PRE_CWD,
48 PRE_QUIT, 47 PRE_QUIT,
49 PRE_NOPASV, 48 PRE_NOPASV,
50 QUIT 49 QUIT
51 }; 50 };
52 51
53 FtpSocketDataProvider() 52 FtpSocketDataProvider()
54 : failure_injection_state_(NONE), 53 : failure_injection_state_(NONE),
(...skipping 127 matching lines...) Expand 10 before | Expand all | Expand 10 after
182 } 181 }
183 182
184 virtual MockWriteResult OnWrite(const std::string& data) { 183 virtual MockWriteResult OnWrite(const std::string& data) {
185 if (InjectFault()) 184 if (InjectFault())
186 return MockWriteResult(true, data.length()); 185 return MockWriteResult(true, data.length());
187 switch (state()) { 186 switch (state()) {
188 case PRE_SIZE: 187 case PRE_SIZE:
189 return Verify("SIZE /\r\n", data, PRE_CWD, 188 return Verify("SIZE /\r\n", data, PRE_CWD,
190 "550 I can only retrieve regular files\r\n"); 189 "550 I can only retrieve regular files\r\n");
191 case PRE_CWD: 190 case PRE_CWD:
192 return Verify("CWD /\r\n", data, PRE_MLSD, "200 OK\r\n"); 191 return Verify("CWD /\r\n", data, PRE_LIST, "200 OK\r\n");
193 case PRE_MLSD:
194 return Verify("MLSD\r\n", data, PRE_QUIT,
195 "150 Accepted data connection\r\n"
196 "226 MLSD complete\r\n");
197 case PRE_LIST: 192 case PRE_LIST:
198 return Verify("LIST\r\n", data, PRE_QUIT, "200 OK\r\n"); 193 return Verify("LIST\r\n", data, PRE_QUIT, "200 OK\r\n");
199 default: 194 default:
200 return FtpSocketDataProvider::OnWrite(data); 195 return FtpSocketDataProvider::OnWrite(data);
201 } 196 }
202 } 197 }
203 198
204 private: 199 private:
205 DISALLOW_COPY_AND_ASSIGN(FtpSocketDataProviderDirectoryListing); 200 DISALLOW_COPY_AND_ASSIGN(FtpSocketDataProviderDirectoryListing);
206 }; 201 };
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after
268 "257 \"ANONYMOUS_ROOT:[000000]\"\r\n"); 263 "257 \"ANONYMOUS_ROOT:[000000]\"\r\n");
269 case PRE_EPSV: 264 case PRE_EPSV:
270 return Verify("EPSV\r\n", data, PRE_PASV, "500 Invalid command\r\n"); 265 return Verify("EPSV\r\n", data, PRE_PASV, "500 Invalid command\r\n");
271 case PRE_PASV: 266 case PRE_PASV:
272 return Verify("PASV\r\n", data, PRE_SIZE, 267 return Verify("PASV\r\n", data, PRE_SIZE,
273 "227 Entering Passive Mode 127,0,0,1,123,456\r\n"); 268 "227 Entering Passive Mode 127,0,0,1,123,456\r\n");
274 case PRE_SIZE: 269 case PRE_SIZE:
275 return Verify("SIZE ANONYMOUS_ROOT:[000000]dir\r\n", data, PRE_CWD, 270 return Verify("SIZE ANONYMOUS_ROOT:[000000]dir\r\n", data, PRE_CWD,
276 "550 I can only retrieve regular files\r\n"); 271 "550 I can only retrieve regular files\r\n");
277 case PRE_CWD: 272 case PRE_CWD:
278 return Verify("CWD ANONYMOUS_ROOT:[dir]\r\n", data, PRE_MLSD, 273 return Verify("CWD ANONYMOUS_ROOT:[dir]\r\n", data, PRE_LIST,
279 "200 OK\r\n"); 274 "200 OK\r\n");
280 case PRE_MLSD:
281 return Verify("MLSD\r\n", data, PRE_LIST, "500 Invalid command\r\n");
282 case PRE_LIST: 275 case PRE_LIST:
283 return Verify("LIST *.*;0\r\n", data, PRE_QUIT, "200 OK\r\n"); 276 return Verify("LIST *.*;0\r\n", data, PRE_QUIT, "200 OK\r\n");
284 default: 277 default:
285 return FtpSocketDataProvider::OnWrite(data); 278 return FtpSocketDataProvider::OnWrite(data);
286 } 279 }
287 } 280 }
288 281
289 private: 282 private:
290 DISALLOW_COPY_AND_ASSIGN(FtpSocketDataProviderVMSDirectoryListing); 283 DISALLOW_COPY_AND_ASSIGN(FtpSocketDataProviderVMSDirectoryListing);
291 }; 284 };
(...skipping 16 matching lines...) Expand all
308 case PRE_EPSV: 301 case PRE_EPSV:
309 return Verify("EPSV\r\n", data, PRE_PASV, 302 return Verify("EPSV\r\n", data, PRE_PASV,
310 "500 EPSV command unknown\r\n"); 303 "500 EPSV command unknown\r\n");
311 case PRE_PASV: 304 case PRE_PASV:
312 return Verify("PASV\r\n", data, PRE_SIZE, 305 return Verify("PASV\r\n", data, PRE_SIZE,
313 "227 Entering Passive Mode 127,0,0,1,123,456\r\n"); 306 "227 Entering Passive Mode 127,0,0,1,123,456\r\n");
314 case PRE_SIZE: 307 case PRE_SIZE:
315 return Verify("SIZE ANONYMOUS_ROOT\r\n", data, PRE_CWD, 308 return Verify("SIZE ANONYMOUS_ROOT\r\n", data, PRE_CWD,
316 "550 I can only retrieve regular files\r\n"); 309 "550 I can only retrieve regular files\r\n");
317 case PRE_CWD: 310 case PRE_CWD:
318 return Verify("CWD ANONYMOUS_ROOT:[000000]\r\n", data, PRE_MLSD, 311 return Verify("CWD ANONYMOUS_ROOT:[000000]\r\n", data, PRE_LIST,
319 "200 OK\r\n"); 312 "200 OK\r\n");
320 case PRE_MLSD:
321 return Verify("MLSD\r\n", data, PRE_LIST, "500 Invalid command\r\n");
322 case PRE_LIST: 313 case PRE_LIST:
323 return Verify("LIST *.*;0\r\n", data, PRE_QUIT, "200 OK\r\n"); 314 return Verify("LIST *.*;0\r\n", data, PRE_QUIT, "200 OK\r\n");
324 default: 315 default:
325 return FtpSocketDataProvider::OnWrite(data); 316 return FtpSocketDataProvider::OnWrite(data);
326 } 317 }
327 } 318 }
328 319
329 private: 320 private:
330 DISALLOW_COPY_AND_ASSIGN( 321 DISALLOW_COPY_AND_ASSIGN(
331 FtpSocketDataProviderVMSDirectoryListingRootDirectory); 322 FtpSocketDataProviderVMSDirectoryListingRootDirectory);
(...skipping 990 matching lines...) Expand 10 before | Expand all | Expand 10 after
1322 // Use unallocated 599 FTP error code to make sure it falls into the generic 1313 // Use unallocated 599 FTP error code to make sure it falls into the generic
1323 // ERR_FTP_FAILED bucket. 1314 // ERR_FTP_FAILED bucket.
1324 TransactionFailHelper(&ctrl_socket, 1315 TransactionFailHelper(&ctrl_socket,
1325 "ftp://host", 1316 "ftp://host",
1326 FtpSocketDataProvider::PRE_CWD, 1317 FtpSocketDataProvider::PRE_CWD,
1327 FtpSocketDataProvider::PRE_QUIT, 1318 FtpSocketDataProvider::PRE_QUIT,
1328 "599 fail\r\n", 1319 "599 fail\r\n",
1329 ERR_FTP_FAILED); 1320 ERR_FTP_FAILED);
1330 } 1321 }
1331 1322
1332 TEST_F(FtpNetworkTransactionTest, DirectoryTransactionFailMlsd) {
1333 FtpSocketDataProviderDirectoryListing ctrl_socket;
1334 TransactionFailHelper(&ctrl_socket,
1335 "ftp://host",
1336 FtpSocketDataProvider::PRE_MLSD,
1337 FtpSocketDataProvider::PRE_LIST,
1338 "500 Unrecognized command\r\n",
1339 OK);
1340 }
1341
1342 TEST_F(FtpNetworkTransactionTest, DirectoryTransactionFailList) { 1323 TEST_F(FtpNetworkTransactionTest, DirectoryTransactionFailList) {
1343 FtpSocketDataProviderVMSDirectoryListing ctrl_socket; 1324 FtpSocketDataProviderVMSDirectoryListing ctrl_socket;
1344 // Use unallocated 599 FTP error code to make sure it falls into the generic 1325 // Use unallocated 599 FTP error code to make sure it falls into the generic
1345 // ERR_FTP_FAILED bucket. 1326 // ERR_FTP_FAILED bucket.
1346 TransactionFailHelper(&ctrl_socket, 1327 TransactionFailHelper(&ctrl_socket,
1347 "ftp://host/dir", 1328 "ftp://host/dir",
1348 FtpSocketDataProvider::PRE_LIST, 1329 FtpSocketDataProvider::PRE_LIST,
1349 FtpSocketDataProvider::PRE_QUIT, 1330 FtpSocketDataProvider::PRE_QUIT,
1350 "599 fail\r\n", 1331 "599 fail\r\n",
1351 ERR_FTP_FAILED); 1332 ERR_FTP_FAILED);
(...skipping 91 matching lines...) Expand 10 before | Expand all | Expand 10 after
1443 FtpSocketDataProviderFileDownload ctrl_socket; 1424 FtpSocketDataProviderFileDownload ctrl_socket;
1444 TransactionFailHelper(&ctrl_socket, 1425 TransactionFailHelper(&ctrl_socket,
1445 "ftp://host/file", 1426 "ftp://host/file",
1446 FtpSocketDataProvider::PRE_PWD, 1427 FtpSocketDataProvider::PRE_PWD,
1447 FtpSocketDataProvider::PRE_TYPE, 1428 FtpSocketDataProvider::PRE_TYPE,
1448 "257 \"\"\r\n", 1429 "257 \"\"\r\n",
1449 OK); 1430 OK);
1450 } 1431 }
1451 1432
1452 } // namespace net 1433 } // namespace net
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698