Module: wine Branch: master Commit: 6369d7a08ba81ee6d2f036d13dab9a17a23a9c0a URL: http://source.winehq.org/git/wine.git/?a=commit;h=6369d7a08ba81ee6d2f036d13d...
Author: Alexandre Julliard julliard@winehq.org Date: Wed Aug 26 13:09:11 2009 +0200
comctl32/tests: Fix tooltips test failures on older Windows versions.
---
dlls/comctl32/tests/tooltips.c | 31 ++++++++++++++++++++++--------- 1 files changed, 22 insertions(+), 9 deletions(-)
diff --git a/dlls/comctl32/tests/tooltips.c b/dlls/comctl32/tests/tooltips.c index 6a927aa..b8c46cb 100644 --- a/dlls/comctl32/tests/tooltips.c +++ b/dlls/comctl32/tests/tooltips.c @@ -42,7 +42,8 @@ static void test_create_tooltip(void) trace("style = %08x\n", style); exp_style = 0x7fffffff | WS_POPUP; exp_style &= ~(WS_CHILD | WS_MAXIMIZE | WS_BORDER | WS_DLGFRAME); - ok(style == exp_style,"wrong style %08x/%08x\n", style, exp_style); + ok(style == exp_style || broken(style == (exp_style | WS_BORDER)), /* nt4 */ + "wrong style %08x/%08x\n", style, exp_style);
DestroyWindow(hwnd);
@@ -142,7 +143,6 @@ static void test_customdraw(void) { /* Invalid notification responses */ {CDRF_NOTIFYITEMDRAW, TEST_CDDS_PREPAINT}, {CDRF_NOTIFYPOSTERASE, TEST_CDDS_PREPAINT}, - {CDRF_NOTIFYSUBITEMDRAW, TEST_CDDS_PREPAINT}, {CDRF_NEWFONT, TEST_CDDS_PREPAINT} };
@@ -168,6 +168,7 @@ static void test_customdraw(void) { iterationNumber++) {
HWND parent, hwndTip; + RECT rect; TOOLINFO toolInfo = { 0 };
/* Create a main window */ @@ -201,7 +202,7 @@ static void test_customdraw(void) { SWP_NOMOVE | SWP_NOSIZE | SWP_NOACTIVATE);
/* Create a tool */ - toolInfo.cbSize = sizeof(TOOLINFO); + toolInfo.cbSize = TTTOOLINFO_V1_SIZE; toolInfo.hwnd = parent; toolInfo.hinst = GetModuleHandleA(NULL); toolInfo.uFlags = TTF_SUBCLASS; @@ -216,13 +217,18 @@ static void test_customdraw(void) { SendMessage(hwndTip, TTM_SETDELAYTIME, TTDT_INITIAL, MAKELPARAM(1,0));
/* Put cursor inside window, tooltip will appear immediately */ - SetCursorPos(100, 100); + GetWindowRect( parent, &rect ); + SetCursorPos( (rect.left + rect.right) / 2, (rect.top + rect.bottom) / 2 ); flush_events(200);
- /* Check CustomDraw results */ - ok(CD_Stages == expectedResults[iterationNumber].ExpectedCalls, - "CustomDraw run %d stages %x, expected %x\n", iterationNumber, CD_Stages, - expectedResults[iterationNumber].ExpectedCalls); + if (CD_Stages) + { + /* Check CustomDraw results */ + ok(CD_Stages == expectedResults[iterationNumber].ExpectedCalls || + broken(CD_Stages == (expectedResults[iterationNumber].ExpectedCalls & ~TEST_CDDS_POSTPAINT)), /* nt4 */ + "CustomDraw run %d stages %x, expected %x\n", iterationNumber, CD_Stages, + expectedResults[iterationNumber].ExpectedCalls); + }
/* Clean up */ DestroyWindow(hwndTip); @@ -296,6 +302,8 @@ static void test_gettext(void) NULL, NULL, NULL, 0); assert(hwnd);
+ /* use sizeof(TTTOOLINFOA) instead of TTTOOLINFOA_V1_SIZE so that adding it fails on Win9x */ + /* otherwise it crashes on the NULL lpszText */ toolinfoA.cbSize = sizeof(TTTOOLINFOA); toolinfoA.hwnd = NULL; toolinfoA.hinst = GetModuleHandleA(NULL); @@ -305,7 +313,6 @@ static void test_gettext(void) toolinfoA.lParam = 0xdeadbeef; GetClientRect(hwnd, &toolinfoA.rect); r = SendMessageA(hwnd, TTM_ADDTOOL, 0, (LPARAM)&toolinfoA); - ok(r, "Adding the tool to the tooltip failed\n"); if (r) { toolinfoA.hwnd = NULL; @@ -314,6 +321,12 @@ static void test_gettext(void) SendMessageA(hwnd, TTM_GETTEXTA, 0, (LPARAM)&toolinfoA); ok(strcmp(toolinfoA.lpszText, "") == 0, "lpszText should be an empty string\n"); } + else + { + win_skip( "Old comctl32, not testing NULL text\n" ); + DestroyWindow( hwnd ); + return; + }
/* add another tool with text */ toolinfoA.cbSize = sizeof(TTTOOLINFOA);