wininet/tests: Add test for FtpFindFirstFile.
This commit is contained in:
parent
6710560551
commit
e65195f874
|
@ -25,7 +25,6 @@
|
|||
* TODO:
|
||||
* Add W-function tests.
|
||||
* Add missing function tests:
|
||||
* FtpFindFirstFile
|
||||
* FtpGetFileSize
|
||||
* FtpSetCurrentDirectory
|
||||
*/
|
||||
|
@ -723,6 +722,89 @@ static void test_command(HINTERNET hFtp, HINTERNET hConnect)
|
|||
}
|
||||
}
|
||||
|
||||
static void test_find_first_file(HINTERNET hFtp, HINTERNET hConnect)
|
||||
{
|
||||
WIN32_FIND_DATA findData;
|
||||
HINTERNET hSearch;
|
||||
HINTERNET hSearch2;
|
||||
HINTERNET hOpenFile;
|
||||
|
||||
/* NULL as the search file ought to return the first file in the directory */
|
||||
SetLastError(0xdeadbeef);
|
||||
hSearch = FtpFindFirstFileA(hFtp, NULL, &findData, 0, 0);
|
||||
ok ( hSearch != NULL, "Expected FtpFindFirstFileA to pass\n" );
|
||||
|
||||
/* This should fail as the previous handle wasn't closed */
|
||||
SetLastError(0xdeadbeef);
|
||||
hSearch2 = FtpFindFirstFileA(hFtp, "welcome.msg", &findData, 0, 0);
|
||||
todo_wine ok ( hSearch2 == NULL, "Expected FtpFindFirstFileA to fail\n" );
|
||||
todo_wine ok ( GetLastError() == ERROR_FTP_TRANSFER_IN_PROGRESS,
|
||||
"Expected ERROR_FTP_TRANSFER_IN_PROGRESS, got %d\n", GetLastError() );
|
||||
InternetCloseHandle(hSearch2); /* Just in case */
|
||||
|
||||
InternetCloseHandle(hSearch);
|
||||
|
||||
/* Try a valid filename in a subdirectory search */
|
||||
SetLastError(0xdeadbeef);
|
||||
hSearch = FtpFindFirstFileA(hFtp, "pub/wine", &findData, 0, 0);
|
||||
todo_wine ok ( hSearch != NULL, "Expected FtpFindFirstFileA to pass\n" );
|
||||
InternetCloseHandle(hSearch);
|
||||
|
||||
/* Try a valid filename in a subdirectory wildcard search */
|
||||
SetLastError(0xdeadbeef);
|
||||
hSearch = FtpFindFirstFileA(hFtp, "pub/w*", &findData, 0, 0);
|
||||
todo_wine ok ( hSearch != NULL, "Expected FtpFindFirstFileA to pass\n" );
|
||||
InternetCloseHandle(hSearch);
|
||||
|
||||
/* Try an invalid wildcard search */
|
||||
SetLastError(0xdeadbeef);
|
||||
hSearch = FtpFindFirstFileA(hFtp, "*/w*", &findData, 0, 0);
|
||||
ok ( hSearch == NULL, "Expected FtpFindFirstFileA to fail\n" );
|
||||
InternetCloseHandle(hSearch); /* Just in case */
|
||||
|
||||
/* Try FindFirstFile between FtpOpenFile and InternetCloseHandle */
|
||||
SetLastError(0xdeadbeef);
|
||||
hOpenFile = FtpOpenFileA(hFtp, "welcome.msg", GENERIC_READ, FTP_TRANSFER_TYPE_ASCII, 0);
|
||||
ok ( hOpenFile != NULL, "Expected FtpOpenFileA to succeed\n" );
|
||||
ok ( GetLastError() == ERROR_SUCCESS ||
|
||||
broken(GetLastError() == ERROR_FILE_NOT_FOUND), /* Win98 */
|
||||
"Expected ERROR_SUCCESS, got %u\n", GetLastError() );
|
||||
|
||||
/* This should fail as the OpenFile handle wasn't closed */
|
||||
SetLastError(0xdeadbeef);
|
||||
hSearch = FtpFindFirstFileA(hFtp, "welcome.msg", &findData, 0, 0);
|
||||
ok ( hSearch == NULL, "Expected FtpFindFirstFileA to fail\n" );
|
||||
ok ( GetLastError() == ERROR_FTP_TRANSFER_IN_PROGRESS,
|
||||
"Expected ERROR_FTP_TRANSFER_IN_PROGRESS, got %d\n", GetLastError() );
|
||||
InternetCloseHandle(hSearch); /* Just in case */
|
||||
|
||||
InternetCloseHandle(hOpenFile);
|
||||
|
||||
/* Test using a nonexistent filename */
|
||||
SetLastError(0xdeadbeef);
|
||||
hSearch = FtpFindFirstFileA(hFtp, "this_file_should_not_exist", &findData, 0, 0);
|
||||
ok ( hSearch == NULL, "Expected FtpFindFirstFileA to fail\n" );
|
||||
todo_wine ok ( GetLastError() == ERROR_INTERNET_EXTENDED_ERROR,
|
||||
"Expected ERROR_INTERNET_EXTENDED_ERROR, got %d\n", GetLastError() );
|
||||
InternetCloseHandle(hSearch); /* Just in case */
|
||||
|
||||
/* Test using a nonexistent filename and a wildcard */
|
||||
SetLastError(0xdeadbeef);
|
||||
hSearch = FtpFindFirstFileA(hFtp, "this_file_should_not_exist*", &findData, 0, 0);
|
||||
ok ( hSearch == NULL, "Expected FtpFindFirstFileA to fail\n" );
|
||||
todo_wine ok ( GetLastError() == ERROR_NO_MORE_FILES,
|
||||
"Expected ERROR_NO_MORE_FILES, got %d\n", GetLastError() );
|
||||
InternetCloseHandle(hSearch); /* Just in case */
|
||||
|
||||
/* Test using an invalid handle type */
|
||||
SetLastError(0xdeadbeef);
|
||||
hSearch = FtpFindFirstFileA(hConnect, "welcome.msg", &findData, 0, 0);
|
||||
ok ( hSearch == NULL, "Expected FtpFindFirstFileA to fail\n" );
|
||||
ok ( GetLastError() == ERROR_INTERNET_INCORRECT_HANDLE_TYPE,
|
||||
"Expected ERROR_INTERNET_INCORRECT_HANDLE_TYPE, got %d\n", GetLastError() );
|
||||
InternetCloseHandle(hSearch); /* Just in case */
|
||||
}
|
||||
|
||||
static void test_get_current_dir(HINTERNET hFtp, HINTERNET hConnect)
|
||||
{
|
||||
BOOL bRet;
|
||||
|
@ -853,6 +935,7 @@ START_TEST(ftp)
|
|||
test_removedir(hFtp, hHttp);
|
||||
test_renamefile(hFtp, hHttp);
|
||||
test_command(hFtp, hHttp);
|
||||
test_find_first_file(hFtp, hHttp);
|
||||
test_get_current_dir(hFtp, hHttp);
|
||||
|
||||
InternetCloseHandle(hHttp);
|
||||
|
|
Loading…
Reference in New Issue