From: Nikolay Sivov Subject: [PATCH] comctl32/tests: Add some tests for TBBUTTON.iBitmap for separators. Message-Id: <20220127134709.1494116-1-nsivov@codeweavers.com> Date: Thu, 27 Jan 2022 16:47:09 +0300 Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=52465 Signed-off-by: Nikolay Sivov --- dlls/comctl32/tests/toolbar.c | 92 +++++++++++++++++++++++++++++++++++ 1 file changed, 92 insertions(+) diff --git a/dlls/comctl32/tests/toolbar.c b/dlls/comctl32/tests/toolbar.c index 1c52c70f2aa..cfe4f16f430 100644 --- a/dlls/comctl32/tests/toolbar.c +++ b/dlls/comctl32/tests/toolbar.c @@ -2705,6 +2705,96 @@ static void init_functions(void) #undef X } +static void test_BTNS_SEP(void) +{ + TBBUTTON buttons[1], button; + LRESULT ret; + HWND hwnd; + + rebuild_toolbar(&hwnd); + + /* 0 iBitmap */ + memset(buttons, 0, sizeof(buttons)); + buttons[0].idCommand = 5; + buttons[0].fsStyle = BTNS_SEP; + buttons[0].fsState = TBSTATE_ENABLED; + buttons[0].iString = -1; + + ret = SendMessageA(hwnd, TB_ADDBUTTONSA, 1, (LPARAM)buttons); + ok(ret == 1, "Unexpected return value.\n"); + ret = SendMessageA(hwnd, TB_AUTOSIZE, 0, 0); + ok(!ret, "Unexpected return value.\n"); + + memset(&button, 0, sizeof(button)); + ret = SendMessageA(hwnd, TB_GETBUTTON, 0, (LPARAM)&button); + ok(ret == 1, "Unexpected return value.\n"); +todo_wine + ok(button.iBitmap == 8, "Unexpected iBitmap value %d.\n", button.iBitmap); + + rebuild_toolbar(&hwnd); + + /* Nonzero iBitmap */ + memset(buttons, 0, sizeof(buttons)); + buttons[0].idCommand = 5; + buttons[0].fsStyle = BTNS_SEP; + buttons[0].fsState = TBSTATE_ENABLED; + buttons[0].iString = -1; + buttons[0].iBitmap = 2; + + ret = SendMessageA(hwnd, TB_ADDBUTTONSA, 1, (LPARAM)buttons); + ok(ret == 1, "Unexpected return value.\n"); + ret = SendMessageA(hwnd, TB_AUTOSIZE, 0, 0); + ok(!ret, "Unexpected return value.\n"); + + memset(&button, 0, sizeof(button)); + ret = SendMessageA(hwnd, TB_GETBUTTON, 0, (LPARAM)&button); + ok(ret == 1, "Unexpected return value.\n"); + ok(button.iBitmap == 2, "Unexpected iBitmap value %d.\n", button.iBitmap); + + rebuild_toolbar(&hwnd); + + /* Exceeds default width */ + memset(buttons, 0, sizeof(buttons)); + buttons[0].idCommand = 5; + buttons[0].fsStyle = BTNS_SEP; + buttons[0].fsState = TBSTATE_ENABLED; + buttons[0].iString = -1; + buttons[0].iBitmap = 32; + + ret = SendMessageA(hwnd, TB_ADDBUTTONSA, 1, (LPARAM)buttons); + ok(ret == 1, "Unexpected return value.\n"); + ret = SendMessageA(hwnd, TB_AUTOSIZE, 0, 0); + ok(!ret, "Unexpected return value.\n"); + + memset(&button, 0, sizeof(button)); + ret = SendMessageA(hwnd, TB_GETBUTTON, 0, (LPARAM)&button); + ok(ret == 1, "Unexpected return value.\n"); + ok(button.iBitmap == 32, "Unexpected iBitmap value %d.\n", button.iBitmap); + + rebuild_toolbar(&hwnd); + + /* Negative */ + memset(buttons, 0, sizeof(buttons)); + buttons[0].idCommand = 5; + buttons[0].fsStyle = BTNS_SEP; + buttons[0].fsState = TBSTATE_ENABLED; + buttons[0].iString = -1; + buttons[0].iBitmap = -3; + + ret = SendMessageA(hwnd, TB_ADDBUTTONSA, 1, (LPARAM)buttons); + ok(ret == 1, "Unexpected return value.\n"); + ret = SendMessageA(hwnd, TB_AUTOSIZE, 0, 0); + ok(!ret, "Unexpected return value.\n"); + + memset(&button, 0, sizeof(button)); + ret = SendMessageA(hwnd, TB_GETBUTTON, 0, (LPARAM)&button); + ok(ret == 1, "Unexpected return value.\n"); +todo_wine + ok(button.iBitmap == 8, "Unexpected iBitmap value %d.\n", button.iBitmap); + + DestroyWindow(hwnd); +} + START_TEST(toolbar) { ULONG_PTR ctx_cookie; @@ -2755,12 +2845,14 @@ START_TEST(toolbar) test_save(); test_drawtext_flags(); test_imagelist(); + test_BTNS_SEP(); if (!load_v6_module(&ctx_cookie, &ctx)) return; test_create(TRUE); test_visual(); + test_BTNS_SEP(); PostQuitMessage(0); while(GetMessageA(&msg,0,0,0)) { -- 2.34.1