mirror of
git://source.winehq.org/git/wine.git
synced 2024-10-01 19:38:31 +00:00
kernel32/tests: Test GetFileMUIInfo on language resource file.
This commit is contained in:
parent
fe6af4fb9e
commit
08c0978f0b
|
@ -644,11 +644,20 @@ static struct mui_res
|
||||||
offsetof(struct mui_res, mui_type_ids), sizeof(ln_mui_res.mui_type_ids), 0, 0,
|
offsetof(struct mui_res, mui_type_ids), sizeof(ln_mui_res.mui_type_ids), 0, 0,
|
||||||
offsetof(struct mui_res, fallback_lang), sizeof(L"en-US"),
|
offsetof(struct mui_res, fallback_lang), sizeof(L"en-US"),
|
||||||
{'M','U','I',0,0}, {RT_CURSOR}, {'M','U','I',0,0}, {RT_STRING}, {0}, {'e','n','-','U','S',0},
|
{'M','U','I',0,0}, {RT_CURSOR}, {'M','U','I',0,0}, {RT_STRING}, {0}, {'e','n','-','U','S',0},
|
||||||
|
}, en_mui_res = {
|
||||||
|
0xfecdfecd, sizeof(ln_mui_res), 0x10000, 0,
|
||||||
|
MUI_FILETYPE_LANGUAGE_NEUTRAL_MUI >> 1,
|
||||||
|
0, 0, {'s','c'}, {'c'}, {0}, 0, 0, {0},
|
||||||
|
offsetof(struct mui_res, ln_type_names), sizeof(L"MUI\0"),
|
||||||
|
offsetof(struct mui_res, ln_type_ids), sizeof(ln_mui_res.ln_type_ids),
|
||||||
|
0, 0, 0, 0, offsetof(struct mui_res, lang), sizeof(L"en-US"), 0, 0,
|
||||||
|
{'M','U','I',0,0}, {RT_STRING}, {0}, {0}, {'e','n','-','U','S',0}
|
||||||
};
|
};
|
||||||
|
|
||||||
static void test_mui(void)
|
static void test_mui(void)
|
||||||
{
|
{
|
||||||
static const WCHAR ln_dll[] = L"test_mui.dll";
|
static const WCHAR ln_dll[] = L"test_mui.dll";
|
||||||
|
static const WCHAR en_dll[] = L"en-US\\test_mui.dll.mui";
|
||||||
static const BYTE zeros[16] = { 0 };
|
static const BYTE zeros[16] = { 0 };
|
||||||
BYTE buf[1024];
|
BYTE buf[1024];
|
||||||
FILEMUIINFO *info = (FILEMUIINFO *)buf;
|
FILEMUIINFO *info = (FILEMUIINFO *)buf;
|
||||||
|
@ -663,6 +672,8 @@ static void test_mui(void)
|
||||||
ok( GetLastError() == ERROR_FILE_NOT_FOUND, "GetLastError() = %ld\n", GetLastError() );
|
ok( GetLastError() == ERROR_FILE_NOT_FOUND, "GetLastError() = %ld\n", GetLastError() );
|
||||||
|
|
||||||
create_test_dll( ln_dll );
|
create_test_dll( ln_dll );
|
||||||
|
CreateDirectoryW( L"en-US", NULL );
|
||||||
|
create_test_dll( en_dll );
|
||||||
|
|
||||||
size = 0;
|
size = 0;
|
||||||
r = GetFileMUIInfo( 0, ln_dll, NULL, &size );
|
r = GetFileMUIInfo( 0, ln_dll, NULL, &size );
|
||||||
|
@ -760,7 +771,45 @@ static void test_mui(void)
|
||||||
str += wcslen(str) + 1;
|
str += wcslen(str) + 1;
|
||||||
ok( !str[0], "string list is not NULL terminated: %s\n", wine_dbgstr_w(str) );
|
ok( !str[0], "string list is not NULL terminated: %s\n", wine_dbgstr_w(str) );
|
||||||
|
|
||||||
|
res = BeginUpdateResourceW( en_dll, TRUE );
|
||||||
|
ok( res != NULL, "BeginUpdateResourceW failed: %ld\n", GetLastError() );
|
||||||
|
r = UpdateResourceW( res, L"MUI", MAKEINTRESOURCEW(1), 0, &en_mui_res, sizeof(en_mui_res) );
|
||||||
|
ok( r, "UpdateResource failed: %ld\n", GetLastError() );
|
||||||
|
ok( EndUpdateResourceW( res, FALSE ), "EndUpdateResourceW failed: %ld\n", GetLastError() );
|
||||||
|
|
||||||
|
memset( buf, 0xfe, sizeof(buf) );
|
||||||
|
size = sizeof(buf);
|
||||||
|
info->dwSize = sizeof(buf);
|
||||||
|
info->dwVersion = MUI_FILEINFO_VERSION;
|
||||||
|
r = GetFileMUIInfo( MUI_QUERY_TYPE | MUI_QUERY_CHECKSUM | MUI_QUERY_LANGUAGE_NAME
|
||||||
|
| MUI_QUERY_RESOURCE_TYPES, en_dll, info, &size );
|
||||||
|
ok( r, "GetFileMUIInfo failed: %ld\n", GetLastError() );
|
||||||
|
ok( info->dwSize == sizeof(buf), "dwSize = %ld\n", info->dwSize );
|
||||||
|
ok( info->dwVersion == MUI_FILEINFO_VERSION, "dwVersion = %ld\n", info->dwVersion );
|
||||||
|
ok( info->dwFileType == MUI_FILETYPE_LANGUAGE_NEUTRAL_MUI, "dwFileType = %ld\n", info->dwFileType );
|
||||||
|
ok( info->pChecksum[0] == 'c', "pChecksum = %s\n",
|
||||||
|
wine_dbgstr_an((char *)info->pChecksum, sizeof(info->pChecksum)) );
|
||||||
|
ok( info->pServiceChecksum[0] == 's', "pServiceChecksum = %s\n",
|
||||||
|
wine_dbgstr_an((char *)info->pServiceChecksum, sizeof(info->pServiceChecksum)) );
|
||||||
|
ok( info->dwLanguageNameOffset == 72, "dwLanguageNameOffset = %ld\n", info->dwLanguageNameOffset );
|
||||||
|
str = (WCHAR *)(buf + info->dwLanguageNameOffset);
|
||||||
|
ok( !wcscmp(str, L"en-US"), "language name = %s\n", wine_dbgstr_w(str) );
|
||||||
|
ok( !info->dwTypeIDMainSize, "dwTypeIDMainSize = %ld\n", info->dwTypeIDMainSize );
|
||||||
|
ok( !info->dwTypeIDMainOffset, "dwTypeIDMainOffset = %ld\n", info->dwTypeIDMainOffset );
|
||||||
|
ok( !info->dwTypeNameMainOffset, "dwTypeNameMainOffset = %ld\n", info->dwTypeNameMainOffset );
|
||||||
|
ok( info->dwTypeIDMUISize == 1, "dwTypeIDMUISize = %ld\n", info->dwTypeIDMUISize );
|
||||||
|
ok( info->dwTypeIDMUIOffset == 84, "dwTypeIDMUIOffset = %ld\n", info->dwTypeIDMUIOffset );
|
||||||
|
id = (DWORD *)(buf + info->dwTypeIDMUIOffset);
|
||||||
|
ok( id[0] == RT_STRING, "type ID MUI[0] = %ld\n", id[0] );
|
||||||
|
ok( info->dwTypeNameMUIOffset == 88, "dwTypeNameMUIOffset = %ld\n", info->dwTypeNameMUIOffset );
|
||||||
|
str = (WCHAR *)(buf + info->dwTypeNameMUIOffset);
|
||||||
|
ok( !wcscmp(str, L"MUI"), "type name MUI[0] = %s\n", wine_dbgstr_w(str) );
|
||||||
|
str += wcslen(str) + 1;
|
||||||
|
ok( !str[0], "string list is not NULL terminated: %s\n", wine_dbgstr_w(str) );
|
||||||
|
|
||||||
DeleteFileW( ln_dll );
|
DeleteFileW( ln_dll );
|
||||||
|
DeleteFileW( en_dll );
|
||||||
|
RemoveDirectoryW( L"en-US" );
|
||||||
}
|
}
|
||||||
|
|
||||||
START_TEST(resource)
|
START_TEST(resource)
|
||||||
|
|
Loading…
Reference in a new issue