shell32/tests: Add checking known folders' names.

This commit is contained in:
Mariusz Pluciński 2011-07-19 16:17:54 +02:00 committed by Alexandre Julliard
parent 310ab8a22c
commit fa4ba10083
1 changed files with 129 additions and 104 deletions

View File

@ -888,119 +888,120 @@ if (0) { /* crashes */
/* Standard CSIDL values (and their flags) uses only two less-significant bytes */
#define NO_CSIDL 0x10000
#define CSIDL_TODO_WINE 0x20000
#define KNOWN_FOLDER(id, csidl) \
{ &id, # id, csidl, # csidl, __LINE__ }
#define KNOWN_FOLDER(id, csidl, name) \
{ &id, # id, csidl, # csidl, name, __LINE__ }
struct knownFolderDef {
const KNOWNFOLDERID *folderId;
const char *sFolderId;
const int csidl;
const char *sCsidl;
const char *sName;
const int line;
};
static const struct knownFolderDef known_folders[] = {
KNOWN_FOLDER(FOLDERID_AddNewPrograms, NO_CSIDL),
KNOWN_FOLDER(FOLDERID_AdminTools, CSIDL_ADMINTOOLS),
KNOWN_FOLDER(FOLDERID_AppUpdates, NO_CSIDL),
KNOWN_FOLDER(FOLDERID_CDBurning, CSIDL_CDBURN_AREA),
KNOWN_FOLDER(FOLDERID_ChangeRemovePrograms, NO_CSIDL),
KNOWN_FOLDER(FOLDERID_CommonAdminTools, CSIDL_COMMON_ADMINTOOLS),
KNOWN_FOLDER(FOLDERID_CommonOEMLinks, CSIDL_COMMON_OEM_LINKS),
KNOWN_FOLDER(FOLDERID_CommonPrograms, CSIDL_COMMON_PROGRAMS),
KNOWN_FOLDER(FOLDERID_CommonStartMenu, CSIDL_COMMON_STARTMENU),
KNOWN_FOLDER(FOLDERID_CommonStartup, CSIDL_COMMON_STARTUP),
KNOWN_FOLDER(FOLDERID_CommonTemplates, CSIDL_COMMON_TEMPLATES),
KNOWN_FOLDER(FOLDERID_ComputerFolder, CSIDL_DRIVES),
KNOWN_FOLDER(FOLDERID_ConflictFolder, NO_CSIDL),
KNOWN_FOLDER(FOLDERID_ConnectionsFolder, CSIDL_CONNECTIONS),
KNOWN_FOLDER(FOLDERID_Contacts, NO_CSIDL),
KNOWN_FOLDER(FOLDERID_ControlPanelFolder, CSIDL_CONTROLS),
KNOWN_FOLDER(FOLDERID_Cookies, CSIDL_COOKIES),
KNOWN_FOLDER(FOLDERID_Desktop, CSIDL_DESKTOP),
KNOWN_FOLDER(FOLDERID_DeviceMetadataStore, NO_CSIDL),
KNOWN_FOLDER(FOLDERID_Documents, CSIDL_MYDOCUMENTS | CSIDL_TODO_WINE),
KNOWN_FOLDER(FOLDERID_DocumentsLibrary, NO_CSIDL),
KNOWN_FOLDER(FOLDERID_Downloads, NO_CSIDL),
KNOWN_FOLDER(FOLDERID_Favorites, CSIDL_FAVORITES),
KNOWN_FOLDER(FOLDERID_Fonts, CSIDL_FONTS),
KNOWN_FOLDER(FOLDERID_Games, NO_CSIDL),
KNOWN_FOLDER(FOLDERID_GameTasks, NO_CSIDL),
KNOWN_FOLDER(FOLDERID_History, CSIDL_HISTORY),
KNOWN_FOLDER(FOLDERID_HomeGroup, NO_CSIDL),
KNOWN_FOLDER(FOLDERID_ImplicitAppShortcuts, NO_CSIDL),
KNOWN_FOLDER(FOLDERID_InternetCache, CSIDL_INTERNET_CACHE),
KNOWN_FOLDER(FOLDERID_InternetFolder, CSIDL_INTERNET),
KNOWN_FOLDER(FOLDERID_Libraries, NO_CSIDL),
KNOWN_FOLDER(FOLDERID_Links, NO_CSIDL),
KNOWN_FOLDER(FOLDERID_LocalAppData, CSIDL_LOCAL_APPDATA),
KNOWN_FOLDER(FOLDERID_LocalAppDataLow, NO_CSIDL),
KNOWN_FOLDER(FOLDERID_LocalizedResourcesDir, CSIDL_RESOURCES_LOCALIZED),
KNOWN_FOLDER(FOLDERID_Music, CSIDL_MYMUSIC),
KNOWN_FOLDER(FOLDERID_MusicLibrary, NO_CSIDL),
KNOWN_FOLDER(FOLDERID_NetHood, CSIDL_NETHOOD),
KNOWN_FOLDER(FOLDERID_NetworkFolder, CSIDL_NETWORK),
KNOWN_FOLDER(FOLDERID_OriginalImages, NO_CSIDL),
KNOWN_FOLDER(FOLDERID_PhotoAlbums, NO_CSIDL),
KNOWN_FOLDER(FOLDERID_Pictures, CSIDL_MYPICTURES),
KNOWN_FOLDER(FOLDERID_PicturesLibrary, NO_CSIDL),
KNOWN_FOLDER(FOLDERID_Playlists, NO_CSIDL),
KNOWN_FOLDER(FOLDERID_PrintersFolder, CSIDL_PRINTERS),
KNOWN_FOLDER(FOLDERID_PrintHood, CSIDL_PRINTHOOD),
KNOWN_FOLDER(FOLDERID_Profile, CSIDL_PROFILE),
KNOWN_FOLDER(FOLDERID_ProgramData, CSIDL_COMMON_APPDATA),
KNOWN_FOLDER(FOLDERID_ProgramFiles, CSIDL_PROGRAM_FILES),
KNOWN_FOLDER(FOLDERID_ProgramFilesCommon, CSIDL_PROGRAM_FILES_COMMON),
KNOWN_FOLDER(FOLDERID_ProgramFilesCommonX86, NO_CSIDL),
KNOWN_FOLDER(FOLDERID_ProgramFilesX86, CSIDL_PROGRAM_FILESX86),
KNOWN_FOLDER(FOLDERID_Programs, CSIDL_PROGRAMS),
KNOWN_FOLDER(FOLDERID_Public, NO_CSIDL),
KNOWN_FOLDER(FOLDERID_PublicDesktop, CSIDL_COMMON_DESKTOPDIRECTORY),
KNOWN_FOLDER(FOLDERID_PublicDocuments, CSIDL_COMMON_DOCUMENTS),
KNOWN_FOLDER(FOLDERID_PublicDownloads, NO_CSIDL),
KNOWN_FOLDER(FOLDERID_PublicGameTasks, NO_CSIDL),
KNOWN_FOLDER(FOLDERID_PublicLibraries, NO_CSIDL),
KNOWN_FOLDER(FOLDERID_PublicMusic, CSIDL_COMMON_MUSIC),
KNOWN_FOLDER(FOLDERID_PublicPictures, CSIDL_COMMON_PICTURES),
KNOWN_FOLDER(FOLDERID_PublicRingtones, NO_CSIDL),
KNOWN_FOLDER(FOLDERID_PublicVideos, CSIDL_COMMON_VIDEO),
KNOWN_FOLDER(FOLDERID_QuickLaunch, NO_CSIDL),
KNOWN_FOLDER(FOLDERID_Recent, CSIDL_RECENT),
KNOWN_FOLDER(FOLDERID_RecordedTVLibrary, NO_CSIDL),
KNOWN_FOLDER(FOLDERID_RecycleBinFolder, CSIDL_BITBUCKET),
KNOWN_FOLDER(FOLDERID_ResourceDir, CSIDL_RESOURCES),
KNOWN_FOLDER(FOLDERID_Ringtones, NO_CSIDL),
KNOWN_FOLDER(FOLDERID_RoamingAppData, CSIDL_APPDATA),
KNOWN_FOLDER(FOLDERID_SampleMusic, NO_CSIDL),
KNOWN_FOLDER(FOLDERID_SamplePictures, NO_CSIDL),
KNOWN_FOLDER(FOLDERID_SamplePlaylists, NO_CSIDL),
KNOWN_FOLDER(FOLDERID_SampleVideos, NO_CSIDL),
KNOWN_FOLDER(FOLDERID_SavedGames, NO_CSIDL),
KNOWN_FOLDER(FOLDERID_SavedSearches, NO_CSIDL),
KNOWN_FOLDER(FOLDERID_SEARCH_CSC, NO_CSIDL),
KNOWN_FOLDER(FOLDERID_SearchHome, NO_CSIDL),
KNOWN_FOLDER(FOLDERID_SEARCH_MAPI, NO_CSIDL),
KNOWN_FOLDER(FOLDERID_SendTo, CSIDL_SENDTO),
KNOWN_FOLDER(FOLDERID_SidebarDefaultParts, NO_CSIDL),
KNOWN_FOLDER(FOLDERID_SidebarParts, NO_CSIDL),
KNOWN_FOLDER(FOLDERID_StartMenu, CSIDL_STARTMENU),
KNOWN_FOLDER(FOLDERID_Startup, CSIDL_STARTUP),
KNOWN_FOLDER(FOLDERID_SyncManagerFolder, NO_CSIDL),
KNOWN_FOLDER(FOLDERID_SyncResultsFolder, NO_CSIDL),
KNOWN_FOLDER(FOLDERID_SyncSetupFolder, NO_CSIDL),
KNOWN_FOLDER(FOLDERID_System, CSIDL_SYSTEM),
KNOWN_FOLDER(FOLDERID_SystemX86, CSIDL_SYSTEMX86),
KNOWN_FOLDER(FOLDERID_Templates, CSIDL_TEMPLATES),
KNOWN_FOLDER(FOLDERID_UserPinned, NO_CSIDL),
KNOWN_FOLDER(FOLDERID_UserProfiles, NO_CSIDL),
KNOWN_FOLDER(FOLDERID_UserProgramFiles, NO_CSIDL),
KNOWN_FOLDER(FOLDERID_UserProgramFilesCommon, NO_CSIDL),
KNOWN_FOLDER(FOLDERID_UsersFiles, NO_CSIDL),
KNOWN_FOLDER(FOLDERID_UsersLibraries, NO_CSIDL),
KNOWN_FOLDER(FOLDERID_Videos, CSIDL_MYVIDEO),
KNOWN_FOLDER(FOLDERID_VideosLibrary, NO_CSIDL),
KNOWN_FOLDER(FOLDERID_Windows, CSIDL_WINDOWS),
{ NULL, NULL, 0, NULL }
KNOWN_FOLDER(FOLDERID_AddNewPrograms, NO_CSIDL, "AddNewPrograms"),
KNOWN_FOLDER(FOLDERID_AdminTools, CSIDL_ADMINTOOLS, "Administrative Tools"),
KNOWN_FOLDER(FOLDERID_AppUpdates, NO_CSIDL, "AppUpdates"),
KNOWN_FOLDER(FOLDERID_CDBurning, CSIDL_CDBURN_AREA, "CD Burning"),
KNOWN_FOLDER(FOLDERID_ChangeRemovePrograms, NO_CSIDL, "ChangeRemovePrograms"),
KNOWN_FOLDER(FOLDERID_CommonAdminTools, CSIDL_COMMON_ADMINTOOLS, "Common Administrative Tools"),
KNOWN_FOLDER(FOLDERID_CommonOEMLinks, CSIDL_COMMON_OEM_LINKS, "OEM Links"),
KNOWN_FOLDER(FOLDERID_CommonPrograms, CSIDL_COMMON_PROGRAMS, "Common Programs"),
KNOWN_FOLDER(FOLDERID_CommonStartMenu, CSIDL_COMMON_STARTMENU, "Common Start Menu"),
KNOWN_FOLDER(FOLDERID_CommonStartup, CSIDL_COMMON_STARTUP, "Common Startup"),
KNOWN_FOLDER(FOLDERID_CommonTemplates, CSIDL_COMMON_TEMPLATES, "Common Templates"),
KNOWN_FOLDER(FOLDERID_ComputerFolder, CSIDL_DRIVES, "MyComputerFolder"),
KNOWN_FOLDER(FOLDERID_ConflictFolder, NO_CSIDL, "ConflictFolder"),
KNOWN_FOLDER(FOLDERID_ConnectionsFolder, CSIDL_CONNECTIONS, "ConnectionsFolder"),
KNOWN_FOLDER(FOLDERID_Contacts, NO_CSIDL, "Contacts"),
KNOWN_FOLDER(FOLDERID_ControlPanelFolder, CSIDL_CONTROLS, "ControlPanelFolder"),
KNOWN_FOLDER(FOLDERID_Cookies, CSIDL_COOKIES, "Cookies"),
KNOWN_FOLDER(FOLDERID_Desktop, CSIDL_DESKTOP, "Desktop"),
KNOWN_FOLDER(FOLDERID_DeviceMetadataStore, NO_CSIDL, "DeviceMetadataStore"),
KNOWN_FOLDER(FOLDERID_Documents, CSIDL_MYDOCUMENTS | CSIDL_TODO_WINE, "Personal"),
KNOWN_FOLDER(FOLDERID_DocumentsLibrary, NO_CSIDL, "DocumentsLibrary"),
KNOWN_FOLDER(FOLDERID_Downloads, NO_CSIDL, "Downloads"),
KNOWN_FOLDER(FOLDERID_Favorites, CSIDL_FAVORITES, "Favorites"),
KNOWN_FOLDER(FOLDERID_Fonts, CSIDL_FONTS, "Fonts"),
KNOWN_FOLDER(FOLDERID_Games, NO_CSIDL, "Games"),
KNOWN_FOLDER(FOLDERID_GameTasks, NO_CSIDL, "GameTasks"),
KNOWN_FOLDER(FOLDERID_History, CSIDL_HISTORY, "History"),
KNOWN_FOLDER(FOLDERID_HomeGroup, NO_CSIDL, "HomeGroup"),
KNOWN_FOLDER(FOLDERID_ImplicitAppShortcuts, NO_CSIDL, "ImplicitAppShortcuts"),
KNOWN_FOLDER(FOLDERID_InternetCache, CSIDL_INTERNET_CACHE, "Cache"),
KNOWN_FOLDER(FOLDERID_InternetFolder, CSIDL_INTERNET, "InternetFolder"),
KNOWN_FOLDER(FOLDERID_Libraries, NO_CSIDL, "Libraries"),
KNOWN_FOLDER(FOLDERID_Links, NO_CSIDL, "Links"),
KNOWN_FOLDER(FOLDERID_LocalAppData, CSIDL_LOCAL_APPDATA, "Local AppData"),
KNOWN_FOLDER(FOLDERID_LocalAppDataLow, NO_CSIDL, "LocalAppDataLow"),
KNOWN_FOLDER(FOLDERID_LocalizedResourcesDir, CSIDL_RESOURCES_LOCALIZED, "LocalizedResourcesDir"),
KNOWN_FOLDER(FOLDERID_Music, CSIDL_MYMUSIC, "My Music"),
KNOWN_FOLDER(FOLDERID_MusicLibrary, NO_CSIDL, "MusicLibrary"),
KNOWN_FOLDER(FOLDERID_NetHood, CSIDL_NETHOOD, "NetHood"),
KNOWN_FOLDER(FOLDERID_NetworkFolder, CSIDL_NETWORK, "NetworkPlacesFolder"),
KNOWN_FOLDER(FOLDERID_OriginalImages, NO_CSIDL, "OriginalImages"),
KNOWN_FOLDER(FOLDERID_PhotoAlbums, NO_CSIDL, "PhotoAlbums"),
KNOWN_FOLDER(FOLDERID_Pictures, CSIDL_MYPICTURES, "My Pictures"),
KNOWN_FOLDER(FOLDERID_PicturesLibrary, NO_CSIDL, "PicturesLibrary"),
KNOWN_FOLDER(FOLDERID_Playlists, NO_CSIDL, "Playlists"),
KNOWN_FOLDER(FOLDERID_PrintersFolder, CSIDL_PRINTERS, "PrintersFolder"),
KNOWN_FOLDER(FOLDERID_PrintHood, CSIDL_PRINTHOOD, "PrintHood"),
KNOWN_FOLDER(FOLDERID_Profile, CSIDL_PROFILE, "Profile"),
KNOWN_FOLDER(FOLDERID_ProgramData, CSIDL_COMMON_APPDATA, "Common AppData"),
KNOWN_FOLDER(FOLDERID_ProgramFiles, CSIDL_PROGRAM_FILES, "ProgramFiles"),
KNOWN_FOLDER(FOLDERID_ProgramFilesCommon, CSIDL_PROGRAM_FILES_COMMON, "ProgramFilesCommon"),
KNOWN_FOLDER(FOLDERID_ProgramFilesCommonX86, NO_CSIDL, "ProgramFilesCommonX86"),
KNOWN_FOLDER(FOLDERID_ProgramFilesX86, CSIDL_PROGRAM_FILESX86, "ProgramFilesX86"),
KNOWN_FOLDER(FOLDERID_Programs, CSIDL_PROGRAMS, "Programs"),
KNOWN_FOLDER(FOLDERID_Public, NO_CSIDL, "Public"),
KNOWN_FOLDER(FOLDERID_PublicDesktop, CSIDL_COMMON_DESKTOPDIRECTORY, "Common Desktop"),
KNOWN_FOLDER(FOLDERID_PublicDocuments, CSIDL_COMMON_DOCUMENTS, "Common Documents"),
KNOWN_FOLDER(FOLDERID_PublicDownloads, NO_CSIDL, "PublicDownloads"),
KNOWN_FOLDER(FOLDERID_PublicGameTasks, NO_CSIDL, "PublicGameTasks"),
KNOWN_FOLDER(FOLDERID_PublicLibraries, NO_CSIDL, "PublicLibraries"),
KNOWN_FOLDER(FOLDERID_PublicMusic, CSIDL_COMMON_MUSIC, "CommonMusic"),
KNOWN_FOLDER(FOLDERID_PublicPictures, CSIDL_COMMON_PICTURES, "CommonPictures"),
KNOWN_FOLDER(FOLDERID_PublicRingtones, NO_CSIDL, "PublicRingtones"),
KNOWN_FOLDER(FOLDERID_PublicVideos, CSIDL_COMMON_VIDEO, "CommonVideo"),
KNOWN_FOLDER(FOLDERID_QuickLaunch, NO_CSIDL, "QuickLaunch"),
KNOWN_FOLDER(FOLDERID_Recent, CSIDL_RECENT, "Recent"),
KNOWN_FOLDER(FOLDERID_RecordedTVLibrary, NO_CSIDL, "RecordedTVLibrary"),
KNOWN_FOLDER(FOLDERID_RecycleBinFolder, CSIDL_BITBUCKET, "RecycleBinFolder"),
KNOWN_FOLDER(FOLDERID_ResourceDir, CSIDL_RESOURCES, "ResourceDir"),
KNOWN_FOLDER(FOLDERID_Ringtones, NO_CSIDL, "Ringtones"),
KNOWN_FOLDER(FOLDERID_RoamingAppData, CSIDL_APPDATA, "AppData"),
KNOWN_FOLDER(FOLDERID_SampleMusic, NO_CSIDL, "SampleMusic"),
KNOWN_FOLDER(FOLDERID_SamplePictures, NO_CSIDL, "SamplePictures"),
KNOWN_FOLDER(FOLDERID_SamplePlaylists, NO_CSIDL, "SamplePlaylists"),
KNOWN_FOLDER(FOLDERID_SampleVideos, NO_CSIDL, "SampleVideos"),
KNOWN_FOLDER(FOLDERID_SavedGames, NO_CSIDL, "SavedGames"),
KNOWN_FOLDER(FOLDERID_SavedSearches, NO_CSIDL, "SavedSearches"),
KNOWN_FOLDER(FOLDERID_SEARCH_CSC, NO_CSIDL, "SEARCH_CSC"),
KNOWN_FOLDER(FOLDERID_SearchHome, NO_CSIDL, "SearchHome"),
KNOWN_FOLDER(FOLDERID_SEARCH_MAPI, NO_CSIDL, "SEARCH_MAPI"),
KNOWN_FOLDER(FOLDERID_SendTo, CSIDL_SENDTO, "SendTo"),
KNOWN_FOLDER(FOLDERID_SidebarDefaultParts, NO_CSIDL, "SidebarDefaultParts"),
KNOWN_FOLDER(FOLDERID_SidebarParts, NO_CSIDL, "SidebarParts"),
KNOWN_FOLDER(FOLDERID_StartMenu, CSIDL_STARTMENU, "Start Menu"),
KNOWN_FOLDER(FOLDERID_Startup, CSIDL_STARTUP, "Startup"),
KNOWN_FOLDER(FOLDERID_SyncManagerFolder, NO_CSIDL, "SyncManagerFolder"),
KNOWN_FOLDER(FOLDERID_SyncResultsFolder, NO_CSIDL, "SyncResultsFolder"),
KNOWN_FOLDER(FOLDERID_SyncSetupFolder, NO_CSIDL, "SyncSetupFolder"),
KNOWN_FOLDER(FOLDERID_System, CSIDL_SYSTEM, "System"),
KNOWN_FOLDER(FOLDERID_SystemX86, CSIDL_SYSTEMX86, "SystemX86"),
KNOWN_FOLDER(FOLDERID_Templates, CSIDL_TEMPLATES, "Templates"),
KNOWN_FOLDER(FOLDERID_UserPinned, NO_CSIDL, "UserPinned"),
KNOWN_FOLDER(FOLDERID_UserProfiles, NO_CSIDL, "UserProfiles"),
KNOWN_FOLDER(FOLDERID_UserProgramFiles, NO_CSIDL, "UserProgramFiles"),
KNOWN_FOLDER(FOLDERID_UserProgramFilesCommon, NO_CSIDL, "UserProgramFilesCommon"),
KNOWN_FOLDER(FOLDERID_UsersFiles, NO_CSIDL, "UsersFiles"),
KNOWN_FOLDER(FOLDERID_UsersLibraries, NO_CSIDL, "UsersLibraries"),
KNOWN_FOLDER(FOLDERID_Videos, CSIDL_MYVIDEO, "My Video"),
KNOWN_FOLDER(FOLDERID_VideosLibrary, NO_CSIDL, "VideosLibrary"),
KNOWN_FOLDER(FOLDERID_Windows, CSIDL_WINDOWS, "Windows"),
{ NULL, NULL, 0, NULL, NULL, 0 }
};
#undef KNOWN_FOLDER
@ -1008,7 +1009,10 @@ static void check_known_folder(IKnownFolderManager *mgr, KNOWNFOLDERID *folderId
{
HRESULT hr;
const struct knownFolderDef *known_folder = &known_folders[0];
int csidl, expectedCsidl;
int csidl, expectedCsidl, ret;
KNOWNFOLDER_DEFINITION kfd;
IKnownFolder *folder;
WCHAR sName[1024];
while(known_folder->folderId != NULL)
{
@ -1026,6 +1030,27 @@ static void check_known_folder(IKnownFolderManager *mgr, KNOWNFOLDERID *folderId
todo_wine ok_(__FILE__, known_folder->line)(csidl == expectedCsidl, "invalid CSIDL retrieved for folder %s. %d (%s) expected, but %d found\n", known_folder->sFolderId, expectedCsidl, known_folder->sCsidl, csidl);
else
ok_(__FILE__, known_folder->line)(csidl == expectedCsidl, "invalid CSIDL retrieved for folder %s. %d (%s) expected, but %d found\n", known_folder->sFolderId, expectedCsidl, known_folder->sCsidl, csidl);
hr = IKnownFolderManager_GetFolder(mgr, folderId, &folder);
ok_(__FILE__, known_folder->line)(hr == S_OK, "cannot get known folder for %s\n", known_folder->sFolderId);
if(SUCCEEDED(hr))
{
hr = IKnownFolder_GetFolderDefinition(folder, &kfd);
todo_wine
ok_(__FILE__, known_folder->line)(hr == S_OK, "cannot get known folder definition for %s\n", known_folder->sFolderId);
if(SUCCEEDED(hr))
{
ret = MultiByteToWideChar(CP_ACP, 0, known_folder->sName, -1, sName, sizeof(sName)/sizeof(sName[0]));
ok_(__FILE__, known_folder->line)(ret != 0, "cannot convert known folder name \"%s\" to wide characters\n", known_folder->sName);
todo_wine
ok_(__FILE__, known_folder->line)(lstrcmpW(kfd.pszName, sName)==0, "invalid known folder name returned for %s: %s expected, but %s retrieved\n", known_folder->sFolderId, wine_dbgstr_w(sName), wine_dbgstr_w(kfd.pszName));
FreeKnownFolderDefinitionFields(&kfd);
}
IKnownFolder_Release(folder);
}
}
break;