shell32/tests: Skip some tests if functions are not available.

This commit is contained in:
Paul Vriens 2008-06-24 12:08:26 +02:00 committed by Alexandre Julliard
parent bb4e7832b4
commit 732a07957d

View file

@ -478,11 +478,14 @@ static void testShellValues(const struct shellExpectedValues testEntries[],
{ {
BYTE type; BYTE type;
if (pSHGetFolderLocation)
{
type = testSHGetFolderLocation(optional, testEntries[i].folder); type = testSHGetFolderLocation(optional, testEntries[i].folder);
ok(type == testEntries[i].pidlType || optional, ok(type == testEntries[i].pidlType || optional,
"%s has type %d (0x%02x), expected %d (0x%02x)\n", "%s has type %d (0x%02x), expected %d (0x%02x)\n",
getFolderName(testEntries[i].folder), type, type, getFolderName(testEntries[i].folder), type, type,
testEntries[i].pidlType, testEntries[i].pidlType); testEntries[i].pidlType, testEntries[i].pidlType);
}
type = testSHGetSpecialFolderLocation(optional, testEntries[i].folder); type = testSHGetSpecialFolderLocation(optional, testEntries[i].folder);
ok(type == testEntries[i].pidlType || optional, ok(type == testEntries[i].pidlType || optional,
"%s has type %d (0x%02x), expected %d (0x%02x)\n", "%s has type %d (0x%02x), expected %d (0x%02x)\n",
@ -576,12 +579,15 @@ static void testPersonal(void)
/* The pidl may be a real folder, or a virtual directory, or a drive if the /* The pidl may be a real folder, or a virtual directory, or a drive if the
* home directory is set to the root directory of a drive. * home directory is set to the root directory of a drive.
*/ */
if (pSHGetFolderLocation)
{
type = testSHGetFolderLocation(FALSE, CSIDL_PERSONAL); type = testSHGetFolderLocation(FALSE, CSIDL_PERSONAL);
ok(type == PT_FOLDER || type == PT_GUID || type == PT_DRIVE, ok(type == PT_FOLDER || type == PT_GUID || type == PT_DRIVE,
"CSIDL_PERSONAL returned invalid type 0x%02x, " "CSIDL_PERSONAL returned invalid type 0x%02x, "
"expected PT_FOLDER or PT_GUID\n", type); "expected PT_FOLDER or PT_GUID\n", type);
if (type == PT_FOLDER) if (type == PT_FOLDER)
testSHGetFolderPath(FALSE, CSIDL_PERSONAL); testSHGetFolderPath(FALSE, CSIDL_PERSONAL);
}
type = testSHGetSpecialFolderLocation(FALSE, CSIDL_PERSONAL); type = testSHGetSpecialFolderLocation(FALSE, CSIDL_PERSONAL);
ok(type == PT_FOLDER || type == PT_GUID || type == PT_DRIVE, ok(type == PT_FOLDER || type == PT_GUID || type == PT_DRIVE,
"CSIDL_PERSONAL returned invalid type 0x%02x, " "CSIDL_PERSONAL returned invalid type 0x%02x, "
@ -898,6 +904,10 @@ START_TEST(shellpath)
doChild(myARGV[2]); doChild(myARGV[2]);
else else
{ {
/* Report missing functions once */
if (!pSHGetFolderLocation)
skip("SHGetFolderLocation is not available\n");
/* first test various combinations of parameters: */ /* first test various combinations of parameters: */
testApiParameters(); testApiParameters();