Alexandre Julliard : comctl32/tests: Fix some toolbar test failures on older Windows versions.

Alexandre Julliard julliard at winehq.org
Sat Aug 29 11:36:30 CDT 2009


Module: wine
Branch: master
Commit: a561c5d49ff42f8f3bd716306e6200104f62f9fe
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=a561c5d49ff42f8f3bd716306e6200104f62f9fe

Author: Alexandre Julliard <julliard at winehq.org>
Date:   Sat Aug 29 14:15:52 2009 +0200

comctl32/tests: Fix some toolbar test failures on older Windows versions.

---

 dlls/comctl32/tests/toolbar.c |   59 +++++++++++++++++++++++++++--------------
 1 files changed, 39 insertions(+), 20 deletions(-)

diff --git a/dlls/comctl32/tests/toolbar.c b/dlls/comctl32/tests/toolbar.c
index 9827b14..86e9027 100644
--- a/dlls/comctl32/tests/toolbar.c
+++ b/dlls/comctl32/tests/toolbar.c
@@ -83,7 +83,6 @@ static LRESULT MyWnd_Notify(LPARAM lParam)
             nmdisp = (NMTBDISPINFOA *)lParam;
 
             compare(nmdisp->dwMask, g_dwExpectedDispInfoMask, "%x");
-            compare(nmdisp->iImage, -1, "%d");
             ok(nmdisp->pszText == NULL, "pszText is not NULL\n");
         break;
     }
@@ -1002,10 +1001,17 @@ static void test_sizes(void)
     tbinfo.cx = 672;
     tbinfo.cbSize = sizeof(TBBUTTONINFO);
     tbinfo.dwMask = TBIF_SIZE | TBIF_BYINDEX;
-    ok(SendMessageA(hToolbar, TB_SETBUTTONINFO, 0, (LPARAM)&tbinfo) != 0, "TB_SETBUTTONINFO failed\n");
-    ok(SendMessageA(hToolbar, TB_SETBUTTONINFO, 1, (LPARAM)&tbinfo) != 0, "TB_SETBUTTONINFO failed\n");
-    SendMessageA(hToolbar, TB_AUTOSIZE, 0, 0);
-    check_sizes();
+    if (SendMessageA(hToolbar, TB_SETBUTTONINFO, 0, (LPARAM)&tbinfo))
+    {
+        ok(SendMessageA(hToolbar, TB_SETBUTTONINFO, 1, (LPARAM)&tbinfo) != 0, "TB_SETBUTTONINFO failed\n");
+        SendMessageA(hToolbar, TB_AUTOSIZE, 0, 0);
+        check_sizes();
+    }
+    else  /* TBIF_BYINDEX probably not supported, confirm that this was the reason for the failure */
+    {
+        tbinfo.dwMask = TBIF_SIZE;
+        ok(SendMessageA(hToolbar, TB_SETBUTTONINFO, 33, (LPARAM)&tbinfo) != 0, "TB_SETBUTTONINFO failed\n");
+    }
 
     DestroyWindow(hToolbar);
 }
@@ -1061,16 +1067,19 @@ static void test_recalc(void)
     CHAR test[] = "Test";
     const int EX_STYLES_COUNT = 5;
     int i;
+    BOOL recalc;
 
     /* Like TB_ADDBUTTONS tested in test_sized, inserting a button without text
      * results in a relayout, while adding one with text forces a recalc */
     prepare_recalc_test(&hToolbar);
     SendMessage(hToolbar, TB_INSERTBUTTON, 1, (LPARAM)&buttons3[0]);
-    ok(!did_recalc(hToolbar), "Unexpected recalc - adding button without text\n");
+    recalc = did_recalc(hToolbar);
+    ok(!recalc, "Unexpected recalc - adding button without text\n");
 
     prepare_recalc_test(&hToolbar);
     SendMessage(hToolbar, TB_INSERTBUTTON, 1, (LPARAM)&buttons3[3]);
-    ok(did_recalc(hToolbar), "Expected a recalc - adding button with text\n");
+    recalc = did_recalc(hToolbar);
+    ok(recalc, "Expected a recalc - adding button with text\n");
 
     /* TB_SETBUTTONINFO, even when adding a text, results only in a relayout */
     prepare_recalc_test(&hToolbar);
@@ -1078,7 +1087,8 @@ static void test_recalc(void)
     bi.dwMask = TBIF_TEXT;
     bi.pszText = test;
     SendMessage(hToolbar, TB_SETBUTTONINFO, 1, (LPARAM)&bi);
-    ok(!did_recalc(hToolbar), "Unexpected recalc - setting a button text\n");
+    recalc = did_recalc(hToolbar);
+    ok(!recalc, "Unexpected recalc - setting a button text\n");
 
     /* most extended styled doesn't force a recalc (testing all the bits gives
      * the same results, but prints some ERRs while testing) */
@@ -1089,22 +1099,31 @@ static void test_recalc(void)
         prepare_recalc_test(&hToolbar);
         expect(0, (int)SendMessage(hToolbar, TB_GETEXTENDEDSTYLE, 0, 0));
         SendMessage(hToolbar, TB_SETEXTENDEDSTYLE, 0, (1 << i));
-        ok(!did_recalc(hToolbar), "Unexpected recalc - setting bit %d\n", i);
+        recalc = did_recalc(hToolbar);
+        ok(!recalc, "Unexpected recalc - setting bit %d\n", i);
         SendMessage(hToolbar, TB_SETEXTENDEDSTYLE, 0, 0);
-        ok(!did_recalc(hToolbar), "Unexpected recalc - clearing bit %d\n", i);
+        recalc = did_recalc(hToolbar);
+        ok(!recalc, "Unexpected recalc - clearing bit %d\n", i);
         expect(0, (int)SendMessage(hToolbar, TB_GETEXTENDEDSTYLE, 0, 0));
     }
 
     /* TBSTYLE_EX_MIXEDBUTTONS does a recalc on change */
     prepare_recalc_test(&hToolbar);
     SendMessage(hToolbar, TB_SETEXTENDEDSTYLE, 0, TBSTYLE_EX_MIXEDBUTTONS);
-    ok(did_recalc(hToolbar), "Expected a recalc - setting TBSTYLE_EX_MIXEDBUTTONS\n");
-    restore_recalc_state(hToolbar);
-    SendMessage(hToolbar, TB_SETEXTENDEDSTYLE, 0, TBSTYLE_EX_MIXEDBUTTONS);
-    ok(!did_recalc(hToolbar), "Unexpected recalc - setting TBSTYLE_EX_MIXEDBUTTONS again\n");
-    restore_recalc_state(hToolbar);
-    SendMessage(hToolbar, TB_SETEXTENDEDSTYLE, 0, 0);
-    ok(did_recalc(hToolbar), "Expected a recalc - clearing TBSTYLE_EX_MIXEDBUTTONS\n");
+    recalc = did_recalc(hToolbar);
+    if (recalc)
+    {
+        ok(recalc, "Expected a recalc - setting TBSTYLE_EX_MIXEDBUTTONS\n");
+        restore_recalc_state(hToolbar);
+        SendMessage(hToolbar, TB_SETEXTENDEDSTYLE, 0, TBSTYLE_EX_MIXEDBUTTONS);
+        recalc = did_recalc(hToolbar);
+        ok(!recalc, "Unexpected recalc - setting TBSTYLE_EX_MIXEDBUTTONS again\n");
+        restore_recalc_state(hToolbar);
+        SendMessage(hToolbar, TB_SETEXTENDEDSTYLE, 0, 0);
+        recalc = did_recalc(hToolbar);
+        ok(recalc, "Expected a recalc - clearing TBSTYLE_EX_MIXEDBUTTONS\n");
+    }
+    else win_skip( "No recalc on TBSTYLE_EX_MIXEDBUTTONS\n" );
 
     /* undocumented exstyle 0x2 seems to changes the top margin, what
      * interferes with these tests */
@@ -1124,8 +1143,8 @@ static void test_getbuttoninfo(void)
         int ret;
 
         tbi.cbSize = i;
-        tbi.dwMask = TBIF_BYINDEX | TBIF_COMMAND;
-        ret = (int)SendMessage(hToolbar, TB_GETBUTTONINFO, 0, (LPARAM)&tbi);
+        tbi.dwMask = TBIF_COMMAND;
+        ret = (int)SendMessage(hToolbar, TB_GETBUTTONINFO, 1, (LPARAM)&tbi);
         if (i == sizeof(TBBUTTONINFO)) {
             compare(ret, 0, "%d");
         } else {
@@ -1196,7 +1215,7 @@ static void test_dispinfo(void)
     rebuild_toolbar(&hToolbar);
     SendMessageA(hToolbar, TB_LOADIMAGES, IDB_HIST_SMALL_COLOR, (LPARAM)HINST_COMMCTRL);
     SendMessageA(hToolbar, TB_ADDBUTTONS, 2, (LPARAM)buttons_disp);
-    g_dwExpectedDispInfoMask = 1;
+    g_dwExpectedDispInfoMask = TBNF_IMAGE;
     /* Some TBN_GETDISPINFO tests will be done in MyWnd_Notify function.
      * We will receive TBN_GETDISPINFOW even if the control is ANSI */
     compare((BOOL)SendMessageA(hToolbar, CCM_GETUNICODEFORMAT, 0, 0), 0, "%d");




More information about the wine-cvs mailing list