Zhiyi Zhang : comctl32/tests: Test button styles.

Alexandre Julliard julliard at winehq.org
Wed May 6 15:34:28 CDT 2020


Module: wine
Branch: master
Commit: 01fbe206174c0113f947ba24129e88365de7d643
URL:    https://source.winehq.org/git/wine.git/?a=commit;h=01fbe206174c0113f947ba24129e88365de7d643

Author: Zhiyi Zhang <zzhang at codeweavers.com>
Date:   Wed May  6 16:47:47 2020 +0800

comctl32/tests: Test button styles.

Signed-off-by: Zhiyi Zhang <zzhang at codeweavers.com>
Signed-off-by: Nikolay Sivov <nsivov at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 dlls/comctl32/tests/button.c | 36 ++++++++++++++++++++++++++++++++++++
 1 file changed, 36 insertions(+)

diff --git a/dlls/comctl32/tests/button.c b/dlls/comctl32/tests/button.c
index 14071b2ecd..933db6e982 100644
--- a/dlls/comctl32/tests/button.c
+++ b/dlls/comctl32/tests/button.c
@@ -2276,6 +2276,41 @@ static void test_bcm_get_ideal_size(void)
     DeleteObject(hfont);
 }
 
+static void test_style(void)
+{
+    DWORD type, expected_type;
+    HWND button;
+    LRESULT ret;
+    DWORD i, j;
+
+    for (i = BS_PUSHBUTTON; i <= BS_DEFCOMMANDLINK; ++i)
+    {
+        button = CreateWindowA(WC_BUTTONA, "test", i, 0, 0, 50, 50, NULL, 0, 0, NULL);
+        ok(button != NULL, "Expected button not null.\n");
+
+        type = GetWindowLongW(button, GWL_STYLE) & BS_TYPEMASK;
+        expected_type = (i == BS_USERBUTTON ? BS_PUSHBUTTON : i);
+        ok(type == expected_type, "Expected type %#x, got %#x.\n", expected_type, type);
+
+        for (j = BS_PUSHBUTTON; j <= BS_DEFCOMMANDLINK; ++j)
+        {
+            ret = SendMessageA(button, BM_SETSTYLE, j, FALSE);
+            ok(ret == 0, "Expected %#x, got %#lx.\n", 0, ret);
+
+            type = GetWindowLongW(button, GWL_STYLE) & BS_TYPEMASK;
+            if (i >= BS_SPLITBUTTON && j <= BS_DEFPUSHBUTTON)
+                expected_type = (i & ~BS_DEFPUSHBUTTON) | j;
+            else
+                expected_type = j;
+
+            todo_wine_if(i >= BS_SPLITBUTTON && j <= BS_DEFPUSHBUTTON)
+            ok(type == expected_type || broken(type == j), /* XP */
+                    "Original type %#x, expected new type %#x, got %#x.\n", i, expected_type, type);
+        }
+        DestroyWindow(button);
+    }
+}
+
 START_TEST(button)
 {
     ULONG_PTR ctx_cookie;
@@ -2298,6 +2333,7 @@ START_TEST(button)
     test_get_set_textmargin();
     test_state();
     test_bcm_get_ideal_size();
+    test_style();
 
     unload_v6_module(ctx_cookie, hCtx);
 }




More information about the wine-cvs mailing list