shell32/tests: Skip interactive part of SetNameOf test on Win2k.
Passing an absolute path to SetNameOf on Win2k display an error message box about invalid characters in filename, forcing interaction during test.
This commit is contained in:
parent
1f52f12f3c
commit
eb57396fc6
|
@ -473,7 +473,7 @@ static void test_GetDisplayName(void)
|
|||
IShellFolder_Release(psfFile);
|
||||
}
|
||||
|
||||
if(!pSHBindToParent)
|
||||
if (!pSHBindToParent)
|
||||
{
|
||||
win_skip("SHBindToParent is missing\n");
|
||||
DeleteFileA(szTestFile);
|
||||
|
@ -482,37 +482,42 @@ static void test_GetDisplayName(void)
|
|||
}
|
||||
|
||||
/* Some tests for IShellFolder::SetNameOf */
|
||||
hr = pSHBindToParent(pidlTestFile, &IID_IShellFolder, (VOID**)&psfPersonal, &pidlLast);
|
||||
ok(SUCCEEDED(hr), "SHBindToParent failed! hr = %08x\n", hr);
|
||||
if (SUCCEEDED(hr)) {
|
||||
/* It's ok to use this fixed path. Call will fail anyway. */
|
||||
WCHAR wszAbsoluteFilename[] = { 'C',':','\\','w','i','n','e','t','e','s','t', 0 };
|
||||
LPITEMIDLIST pidlNew;
|
||||
if (pSHGetFolderPathAndSubDirA)
|
||||
{
|
||||
hr = pSHBindToParent(pidlTestFile, &IID_IShellFolder, (VOID**)&psfPersonal, &pidlLast);
|
||||
ok(SUCCEEDED(hr), "SHBindToParent failed! hr = %08x\n", hr);
|
||||
if (SUCCEEDED(hr)) {
|
||||
/* It's ok to use this fixed path. Call will fail anyway. */
|
||||
WCHAR wszAbsoluteFilename[] = { 'C',':','\\','w','i','n','e','t','e','s','t', 0 };
|
||||
LPITEMIDLIST pidlNew;
|
||||
|
||||
/* The pidl returned through the last parameter of SetNameOf is a simple one. */
|
||||
hr = IShellFolder_SetNameOf(psfPersonal, NULL, pidlLast, wszDirName, SHGDN_NORMAL, &pidlNew);
|
||||
ok (SUCCEEDED(hr), "SetNameOf failed! hr = %08x\n", hr);
|
||||
if(hr == S_OK)
|
||||
{
|
||||
ok (((LPITEMIDLIST)((LPBYTE)pidlNew+pidlNew->mkid.cb))->mkid.cb == 0,
|
||||
"pidl returned from SetNameOf should be simple!\n");
|
||||
|
||||
/* Passing an absolute path to SetNameOf fails. The HRESULT code indicates that SetNameOf
|
||||
* is implemented on top of SHFileOperation in WinXP. */
|
||||
hr = IShellFolder_SetNameOf(psfPersonal, NULL, pidlNew, wszAbsoluteFilename,
|
||||
SHGDN_FORPARSING, NULL);
|
||||
ok (hr == HRESULT_FROM_WIN32(ERROR_CANCELLED), "SetNameOf succeeded! hr = %08x\n", hr);
|
||||
|
||||
/* Rename the file back to its original name. SetNameOf ignores the fact, that the
|
||||
* SHGDN flags specify an absolute path. */
|
||||
hr = IShellFolder_SetNameOf(psfPersonal, NULL, pidlNew, wszFileName, SHGDN_FORPARSING, NULL);
|
||||
/* The pidl returned through the last parameter of SetNameOf is a simple one. */
|
||||
hr = IShellFolder_SetNameOf(psfPersonal, NULL, pidlLast, wszDirName, SHGDN_NORMAL, &pidlNew);
|
||||
ok (SUCCEEDED(hr), "SetNameOf failed! hr = %08x\n", hr);
|
||||
if (hr == S_OK)
|
||||
{
|
||||
ok (((LPITEMIDLIST)((LPBYTE)pidlNew+pidlNew->mkid.cb))->mkid.cb == 0,
|
||||
"pidl returned from SetNameOf should be simple!\n");
|
||||
|
||||
pILFree(pidlNew);
|
||||
/* Passing an absolute path to SetNameOf fails. The HRESULT code indicates that SetNameOf
|
||||
* is implemented on top of SHFileOperation in WinXP. */
|
||||
hr = IShellFolder_SetNameOf(psfPersonal, NULL, pidlNew, wszAbsoluteFilename,
|
||||
SHGDN_FORPARSING, NULL);
|
||||
ok (hr == HRESULT_FROM_WIN32(ERROR_CANCELLED), "SetNameOf succeeded! hr = %08x\n", hr);
|
||||
|
||||
/* Rename the file back to its original name. SetNameOf ignores the fact, that the
|
||||
* SHGDN flags specify an absolute path. */
|
||||
hr = IShellFolder_SetNameOf(psfPersonal, NULL, pidlNew, wszFileName, SHGDN_FORPARSING, NULL);
|
||||
ok (SUCCEEDED(hr), "SetNameOf failed! hr = %08x\n", hr);
|
||||
|
||||
pILFree(pidlNew);
|
||||
}
|
||||
|
||||
IShellFolder_Release(psfPersonal);
|
||||
}
|
||||
|
||||
IShellFolder_Release(psfPersonal);
|
||||
}
|
||||
else
|
||||
win_skip("Avoid needs of interaction on Win2k\n");
|
||||
|
||||
/* Deleting the file and the directory */
|
||||
DeleteFileA(szTestFile);
|
||||
|
|
Loading…
Reference in New Issue