shell32: Use the normal list checks for CSIDL_PERSONAL.

This commit is contained in:
Juan Lang 2009-02-03 10:15:35 -08:00 committed by Alexandre Julliard
parent 64e43b6192
commit 5c39ea4509
1 changed files with 2 additions and 26 deletions

View File

@ -95,6 +95,7 @@ static const BYTE controlPanelType[] = { PT_SHELLEXT, PT_GUID };
static const BYTE folderType[] = { PT_FOLDER }; static const BYTE folderType[] = { PT_FOLDER };
static const BYTE favoritesType[] = { PT_FOLDER, 0 }; static const BYTE favoritesType[] = { PT_FOLDER, 0 };
static const BYTE folderOrSpecialType[] = { PT_FOLDER, PT_IESPECIAL2 }; static const BYTE folderOrSpecialType[] = { PT_FOLDER, PT_IESPECIAL2 };
static const BYTE personalType[] = { PT_FOLDER, PT_GUID, PT_DRIVE, 0xff /* Win9x */ };
/* FIXME: don't know the type of 0x71 returned by Vista/2008 for printers */ /* FIXME: don't know the type of 0x71 returned by Vista/2008 for printers */
static const BYTE printersType[] = { PT_YAGUID, PT_SHELLEXT, 0x71 }; static const BYTE printersType[] = { PT_YAGUID, PT_SHELLEXT, 0x71 };
static const BYTE ieSpecialType[] = { PT_IESPECIAL2 }; static const BYTE ieSpecialType[] = { PT_IESPECIAL2 };
@ -115,6 +116,7 @@ static const struct shellExpectedValues requiredShellValues[] = {
DECLARE_TYPE(CSIDL_INTERNET, guidType), DECLARE_TYPE(CSIDL_INTERNET, guidType),
DECLARE_TYPE(CSIDL_NETHOOD, folderType), DECLARE_TYPE(CSIDL_NETHOOD, folderType),
DECLARE_TYPE(CSIDL_NETWORK, guidType), DECLARE_TYPE(CSIDL_NETWORK, guidType),
DECLARE_TYPE(CSIDL_PERSONAL, personalType),
DECLARE_TYPE(CSIDL_PRINTERS, printersType), DECLARE_TYPE(CSIDL_PRINTERS, printersType),
DECLARE_TYPE(CSIDL_PRINTHOOD, folderType), DECLARE_TYPE(CSIDL_PRINTHOOD, folderType),
DECLARE_TYPE(CSIDL_PROGRAMS, folderType), DECLARE_TYPE(CSIDL_PROGRAMS, folderType),
@ -587,36 +589,10 @@ static void testDesktop(void)
testSHGetSpecialFolderLocation(FALSE, CSIDL_DESKTOP); testSHGetSpecialFolderLocation(FALSE, CSIDL_DESKTOP);
} }
static void testPersonal(void)
{
BYTE type;
/* 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.
*/
if (pSHGetFolderLocation)
{
type = testSHGetFolderLocation(FALSE, CSIDL_PERSONAL);
ok(type == PT_FOLDER || type == PT_GUID || type == PT_DRIVE ||
broken(type == 0xff) /* Win9x */,
"CSIDL_PERSONAL returned invalid type 0x%02x, "
"expected PT_FOLDER or PT_GUID or PT_DRIVE\n", type);
if (type == PT_FOLDER)
testSHGetFolderPath(FALSE, CSIDL_PERSONAL);
}
type = testSHGetSpecialFolderLocation(FALSE, CSIDL_PERSONAL);
ok(type == PT_FOLDER || type == PT_GUID || type == PT_DRIVE,
"CSIDL_PERSONAL returned invalid type 0x%02x, "
"expected PT_FOLDER or PT_GUID\n", type);
if (type == PT_FOLDER)
testSHGetSpecialFolderPath(FALSE, CSIDL_PERSONAL);
}
/* Checks the PIDL type of all the known values. */ /* Checks the PIDL type of all the known values. */
static void testPidlTypes(void) static void testPidlTypes(void)
{ {
testDesktop(); testDesktop();
testPersonal();
testShellValues(requiredShellValues, ARRAY_SIZE(requiredShellValues), testShellValues(requiredShellValues, ARRAY_SIZE(requiredShellValues),
FALSE); FALSE);
testShellValues(optionalShellValues, ARRAY_SIZE(optionalShellValues), testShellValues(optionalShellValues, ARRAY_SIZE(optionalShellValues),