[PATCH 1/2] comctl32/tests: Run some tooltips tests on version 6 too

Nikolay Sivov nsivov at codeweavers.com
Wed Feb 21 07:18:53 CST 2018


Signed-off-by: Nikolay Sivov <nsivov at codeweavers.com>
---
 dlls/comctl32/tests/tooltips.c | 48 ++++++++++++++++++++++++++++++------------
 1 file changed, 35 insertions(+), 13 deletions(-)

diff --git a/dlls/comctl32/tests/tooltips.c b/dlls/comctl32/tests/tooltips.c
index 7e82604376..207536cadf 100644
--- a/dlls/comctl32/tests/tooltips.c
+++ b/dlls/comctl32/tests/tooltips.c
@@ -24,9 +24,11 @@
 
 #include "wine/test.h"
 
+#include "v6util.h"
+
 #define expect(expected, got) ok(got == expected, "Expected %d, got %d\n", expected, got)
 
-static void test_create_tooltip(void)
+static void test_create_tooltip(BOOL is_v6)
 {
     HWND parent, hwnd;
     DWORD style, exp_style;
@@ -56,9 +58,12 @@ static void test_create_tooltip(void)
     ok(hwnd != NULL, "failed to create tooltip wnd\n");
 
     style = GetWindowLongA(hwnd, GWL_STYLE);
-    trace("style = %08x\n", style);
-    ok(style == (WS_POPUP | WS_CLIPSIBLINGS | WS_BORDER),
-       "wrong style %08x\n", style);
+    exp_style = WS_POPUP | WS_CLIPSIBLINGS;
+    if (!is_v6)
+        exp_style |= WS_BORDER;
+todo_wine_if(is_v6)
+    ok(style == exp_style || broken(style == (exp_style | WS_BORDER)) /* XP */,
+        "Unexpected window style %#x.\n", style);
 
     DestroyWindow(hwnd);
 
@@ -273,9 +278,10 @@ static LRESULT WINAPI parent_wnd_proc(HWND hwnd, UINT message, WPARAM wParam, LP
     return DefWindowProcA(hwnd, message, wParam, lParam);
 }
 
-static BOOL register_parent_wnd_class(void)
+static void register_parent_wnd_class(void)
 {
     WNDCLASSA cls;
+    BOOL ret;
 
     cls.style = 0;
     cls.lpfnWndProc = parent_wnd_proc;
@@ -287,14 +293,12 @@ static BOOL register_parent_wnd_class(void)
     cls.hbrBackground = GetStockObject(WHITE_BRUSH);
     cls.lpszMenuName = NULL;
     cls.lpszClassName = "Tooltips test parent class";
-    return RegisterClassA(&cls);
+    ret = RegisterClassA(&cls);
+    ok(ret, "Failed to register test parent class.\n");
 }
 
 static HWND create_parent_window(void)
 {
-    if (!register_parent_wnd_class())
-        return NULL;
-
     return CreateWindowExA(0, "Tooltips test parent class",
                           "Tooltips test parent window",
                           WS_CAPTION | WS_SYSMENU | WS_MINIMIZEBOX |
@@ -884,7 +888,7 @@ static LRESULT CALLBACK info_wnd_proc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM
     return 0;
 }
 
-static void test_setinfo(void)
+static void test_setinfo(BOOL is_v6)
 {
    WNDCLASSA wc;
    LRESULT   lResult;
@@ -976,7 +980,8 @@ static void test_setinfo(void)
    toolInfo2.uId = 0x1234ABCD;
    lResult = SendMessageA(hwndTip, TTM_GETTOOLINFOA, 0, (LPARAM)&toolInfo2);
    ok(lResult, "GetToolInfo failed\n");
-   ok(toolInfo2.uFlags & TTF_SUBCLASS, "uFlags does not have subclass\n");
+   ok(toolInfo2.uFlags & TTF_SUBCLASS || broken(is_v6 && !(toolInfo2.uFlags & TTF_SUBCLASS)) /* XP */,
+       "uFlags does not have subclass\n");
    wndProc = (WNDPROC)GetWindowLongPtrA(parent, GWLP_WNDPROC);
    ok (wndProc != info_wnd_proc, "Window Proc is wrong\n");
 
@@ -1057,15 +1062,32 @@ static void test_margin(void)
 
 START_TEST(tooltips)
 {
+    ULONG_PTR ctx_cookie;
+    HANDLE hCtx;
+
     LoadLibraryA("comctl32.dll");
 
-    test_create_tooltip();
+    register_parent_wnd_class();
+
+    test_create_tooltip(FALSE);
     test_customdraw();
     test_gettext();
     test_ttm_gettoolinfo();
     test_longtextA();
     test_longtextW();
     test_track();
-    test_setinfo();
+    test_setinfo(FALSE);
     test_margin();
+
+    if (!load_v6_module(&ctx_cookie, &hCtx))
+        return;
+
+    test_create_tooltip(TRUE);
+    test_customdraw();
+    test_longtextW();
+    test_track();
+    test_setinfo(TRUE);
+    test_margin();
+
+    unload_v6_module(ctx_cookie, hCtx);
 }
-- 
2.16.1




More information about the wine-devel mailing list