Peter Oberndorfer : comctl32: Add EnumMRUList tests.
Alexandre Julliard
julliard at winehq.org
Thu Dec 6 08:26:48 CST 2007
Module: wine
Branch: master
Commit: dac63ff680de188bcef24087c008a96cbef82be2
URL: http://source.winehq.org/git/wine.git/?a=commit;h=dac63ff680de188bcef24087c008a96cbef82be2
Author: Peter Oberndorfer <kumbayo84 at arcor.de>
Date: Wed Dec 5 20:10:00 2007 +0100
comctl32: Add EnumMRUList tests.
---
dlls/comctl32/tests/mru.c | 68 +++++++++++++++++++++++++++++++++++++++++++-
1 files changed, 66 insertions(+), 2 deletions(-)
diff --git a/dlls/comctl32/tests/mru.c b/dlls/comctl32/tests/mru.c
index 2893a10..bfcc385 100644
--- a/dlls/comctl32/tests/mru.c
+++ b/dlls/comctl32/tests/mru.c
@@ -68,11 +68,12 @@ static HMODULE hComctl32;
static HANDLE (WINAPI *pCreateMRUListA)(LPCREATEMRULISTA);
static void (WINAPI *pFreeMRUList)(HANDLE);
static INT (WINAPI *pAddMRUStringA)(HANDLE,LPCSTR);
+static INT (WINAPI *pEnumMRUList)(HANDLE,INT,LPVOID,DWORD);
/*
static INT (WINAPI *pFindMRUStringA)(HANDLE,LPCSTR,LPINT);
-static INT (WINAPI *pEnumMRUList)(HANDLE,INT,LPVOID,DWORD);
*/
+
static BOOL create_reg_entries(void)
{
HKEY hKey = NULL;
@@ -162,8 +163,13 @@ static void test_MRUListA(void)
pCreateMRUListA = (void*)GetProcAddress(hComctl32,(LPCSTR)151);
pFreeMRUList = (void*)GetProcAddress(hComctl32,(LPCSTR)152);
pAddMRUStringA = (void*)GetProcAddress(hComctl32,(LPCSTR)153);
- if (!pCreateMRUListA || !pFreeMRUList || !pAddMRUStringA)
+ pEnumMRUList = (void*)GetProcAddress(hComctl32,(LPCSTR)154);
+
+ if (!pCreateMRUListA || !pFreeMRUList || !pAddMRUStringA || !pEnumMRUList)
+ {
+ skip("MRU entry points not found\n");
return;
+ }
if (0)
{
@@ -213,6 +219,7 @@ static void test_MRUListA(void)
if (hMRU)
{
+ char buffer[255];
checks[0] = "Test 1";
checks[1] = "Test 2";
checks[2] = "Test 3";
@@ -277,6 +284,63 @@ static void test_MRUListA(void)
checks[0] = checks[3];
check_reg_entries("abc", checks);
+ /* NULL buffer = get list size */
+ iRet = pEnumMRUList(hMRU, 0, NULL, 0);
+ ok(iRet == 3, "EnumMRUList expected %d, got %d\n", LIST_SIZE, iRet);
+
+ todo_wine{
+ /* negative item pos = get list size */
+ iRet = pEnumMRUList(hMRU, -1, NULL, 0);
+ ok(iRet == 3, "EnumMRUList expected %d, got %d\n", LIST_SIZE, iRet);
+
+ /* negative item pos = get list size */
+ iRet = pEnumMRUList(hMRU, -5, NULL, 0);
+ ok(iRet == 3, "EnumMRUList expected %d, got %d\n", LIST_SIZE, iRet);
+
+ /* negative item pos = get list size */
+ iRet = pEnumMRUList(hMRU, -1, buffer, 255);
+ ok(iRet == 3, "EnumMRUList expected %d, got %d\n", LIST_SIZE, iRet);
+
+ /* negative item pos = get list size */
+ iRet = pEnumMRUList(hMRU, -5, buffer, 255);
+ ok(iRet == 3, "EnumMRUList expected %d, got %d\n", LIST_SIZE, iRet);
+ }
+
+ /* check entry 0 */
+ buffer[0] = 0;
+ iRet = pEnumMRUList(hMRU, 0, buffer, 255);
+ todo_wine ok(iRet == strlen(checks[3]), "EnumMRUList expected %d, got %d\n", strlen(checks[3]), iRet);
+ ok(strcmp(buffer, checks[3]) == 0, "EnumMRUList expected %s, got %s\n", checks[3], buffer);
+
+ /* check entry 0 with a too small buffer */
+ buffer[0] = 0; /* overwritten with 'T' */
+ buffer[1] = 'A'; /* overwritten with 0 */
+ buffer[2] = 'A'; /* unchanged */
+ buffer[3] = 0; /* unchanged */
+ iRet = pEnumMRUList(hMRU, 0, buffer, 2);
+ todo_wine ok(iRet == strlen(checks[3]), "EnumMRUList expected %d, got %d\n", strlen(checks[3]), iRet);
+ todo_wine ok(strcmp(buffer, "T") == 0, "EnumMRUList expected %s, got %s\n", "T", buffer);
+ /* make sure space after buffer has old values */
+ ok(buffer[2] == 'A', "EnumMRUList expected %02x, got %02x\n", 'A', buffer[2]);
+
+ /* check entry 1 */
+ buffer[0] = 0;
+ iRet = pEnumMRUList(hMRU, 1, buffer, 255);
+ todo_wine ok(iRet == strlen(checks[1]), "EnumMRUList expected %d, got %d\n", strlen(checks[1]), iRet);
+ ok(strcmp(buffer, checks[1]) == 0, "EnumMRUList expected %s, got %s\n", checks[1], buffer);
+
+ /* check entry 2 */
+ buffer[0] = 0;
+ iRet = pEnumMRUList(hMRU, 2, buffer, 255);
+ todo_wine ok(iRet == strlen(checks[2]), "EnumMRUList expected %d, got %d\n", strlen(checks[2]), iRet);
+ ok(strcmp(buffer, checks[2]) == 0, "EnumMRUList expected %s, got %s\n", checks[2], buffer);
+
+ /* check out of bounds entry 3 */
+ strcpy(buffer, "dummy");
+ iRet = pEnumMRUList(hMRU, 3, buffer, 255);
+ ok(iRet == -1, "EnumMRUList expected %d, got %d\n", -1, iRet);
+ ok(strcmp(buffer, "dummy") == 0, "EnumMRUList expected unchanged buffer %s, got %s\n", "dummy", buffer);
+
/* Finished with this MRU */
pFreeMRUList(hMRU);
}
More information about the wine-cvs
mailing list