shell32/tests: Fix FO_RENAME tests for old shell32.
This commit is contained in:
parent
0a84bd728a
commit
1bd7956a7d
|
@ -47,6 +47,8 @@
|
||||||
broken(retval == ret_prewin32),\
|
broken(retval == ret_prewin32),\
|
||||||
"Expected %d, got %d\n", ret, retval)
|
"Expected %d, got %d\n", ret, retval)
|
||||||
|
|
||||||
|
static BOOL old_shell32 = FALSE;
|
||||||
|
|
||||||
static CHAR CURR_DIR[MAX_PATH];
|
static CHAR CURR_DIR[MAX_PATH];
|
||||||
static const WCHAR UNICODE_PATH[] = {'c',':','\\',0x00ae,'\0','\0'};
|
static const WCHAR UNICODE_PATH[] = {'c',':','\\',0x00ae,'\0','\0'};
|
||||||
/* "c:\®" can be used in all codepages */
|
/* "c:\®" can be used in all codepages */
|
||||||
|
@ -764,6 +766,8 @@ static void test_rename(void)
|
||||||
/* pTo already exist */
|
/* pTo already exist */
|
||||||
shfo.pFrom = "test1.txt\0";
|
shfo.pFrom = "test1.txt\0";
|
||||||
shfo.pTo = "test2.txt\0";
|
shfo.pTo = "test2.txt\0";
|
||||||
|
if (old_shell32)
|
||||||
|
shfo.fFlags |= FOF_NOCONFIRMMKDIR;
|
||||||
retval = SHFileOperationA(&shfo);
|
retval = SHFileOperationA(&shfo);
|
||||||
if (retval == ERROR_SUCCESS)
|
if (retval == ERROR_SUCCESS)
|
||||||
{
|
{
|
||||||
|
@ -2235,12 +2239,56 @@ test_shlmenu(void) {
|
||||||
ok (hres == 0x4242, "expected 0x4242 but got %x\n", hres);
|
ok (hres == 0x4242, "expected 0x4242 but got %x\n", hres);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Check for old shell32 (4.0.x) */
|
||||||
|
static BOOL is_old_shell32(void)
|
||||||
|
{
|
||||||
|
SHFILEOPSTRUCTA shfo;
|
||||||
|
CHAR from[5*MAX_PATH];
|
||||||
|
CHAR to[5*MAX_PATH];
|
||||||
|
DWORD retval;
|
||||||
|
|
||||||
|
shfo.hwnd = NULL;
|
||||||
|
shfo.wFunc = FO_COPY;
|
||||||
|
shfo.pFrom = from;
|
||||||
|
shfo.pTo = to;
|
||||||
|
/* FOF_NOCONFIRMMKDIR is needed for old shell32 */
|
||||||
|
shfo.fFlags = FOF_NOCONFIRMATION | FOF_SILENT | FOF_NOERRORUI | FOF_MULTIDESTFILES | FOF_NOCONFIRMMKDIR;
|
||||||
|
shfo.hNameMappings = NULL;
|
||||||
|
shfo.lpszProgressTitle = NULL;
|
||||||
|
|
||||||
|
set_curr_dir_path(from, "test1.txt\0test2.txt\0test3.txt");
|
||||||
|
set_curr_dir_path(to, "test6.txt\0test7.txt\0");
|
||||||
|
retval = SHFileOperationA(&shfo);
|
||||||
|
|
||||||
|
/* Delete extra files on old shell32 and Vista+*/
|
||||||
|
DeleteFileA("test6.txt\\test1.txt");
|
||||||
|
/* Delete extra files on old shell32 */
|
||||||
|
DeleteFileA("test6.txt\\test2.txt");
|
||||||
|
DeleteFileA("test6.txt\\test3.txt");
|
||||||
|
/* Delete extra directory on old shell32 and Vista+ */
|
||||||
|
RemoveDirectoryA("test6.txt");
|
||||||
|
/* Delete extra files/directories on Vista+*/
|
||||||
|
DeleteFileA("test7.txt\\test2.txt");
|
||||||
|
RemoveDirectoryA("test7.txt");
|
||||||
|
|
||||||
|
if (retval == ERROR_SUCCESS)
|
||||||
|
return TRUE;
|
||||||
|
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
START_TEST(shlfileop)
|
START_TEST(shlfileop)
|
||||||
{
|
{
|
||||||
InitFunctionPointers();
|
InitFunctionPointers();
|
||||||
|
|
||||||
clean_after_shfo_tests();
|
clean_after_shfo_tests();
|
||||||
|
|
||||||
|
init_shfo_tests();
|
||||||
|
old_shell32 = is_old_shell32();
|
||||||
|
if (old_shell32)
|
||||||
|
win_skip("Need to cater for old shell32 (4.0.x) on Win95\n");
|
||||||
|
clean_after_shfo_tests();
|
||||||
|
|
||||||
init_shfo_tests();
|
init_shfo_tests();
|
||||||
test_get_file_info();
|
test_get_file_info();
|
||||||
test_get_file_info_iconlist();
|
test_get_file_info_iconlist();
|
||||||
|
|
Loading…
Reference in New Issue