comctl32: header: Check for HDN_GETDISPINFO not being sent during INSERT/SETITEM.
diff --git a/dlls/comctl32/tests/header.c b/dlls/comctl32/tests/header.c
index 87dec21..f85b92c 100644
--- a/dlls/comctl32/tests/header.c
+++ b/dlls/comctl32/tests/header.c
@@ -34,6 +34,8 @@
 EXPECTEDNOTIFY expectedNotify[10];
 INT nExpectedNotify = 0;
 INT nReceivedNotify = 0;
+INT unexpectedNotify[10];
+INT nUnexpectedNotify = 0;
 
 static HWND hHeaderParentWnd;
 static HWND hWndHeader;
@@ -48,10 +50,17 @@
     nExpectedNotify++;
 }
 
+static void dont_expect_notify(INT iCode)
+{
+    assert(nUnexpectedNotify < 10);
+    unexpectedNotify[nUnexpectedNotify++] = iCode;
+}
+
 static BOOL notifies_received()
 {
     BOOL fRet = (nExpectedNotify == nReceivedNotify);
     nExpectedNotify = nReceivedNotify = 0;
+    nUnexpectedNotify = 0;
     return fRet;
 }
 
@@ -156,6 +165,11 @@
     }
     if (hdi1->mask & HDI_TEXT)
     {
+        if (hdi1->pszText == LPSTR_TEXTCALLBACKA)
+        {
+            ok(hdi1->pszText == LPSTR_TEXTCALLBACKA, "Notify %d - only one item is LPSTR_TEXTCALLBACK\n", iCode);
+        }
+        else
         if (fUnicode)
         {
             char buf1[260];
@@ -252,6 +266,17 @@
     setItemUnicodeNotify(hWndHeader, 3, pszUniTestA, pszUniTestW);
     SendMessageA(hWndHeader, WM_NOTIFYFORMAT, (WPARAM)hHeaderParentWnd, (LPARAM)NF_REQUERY);
     setItem(hWndHeader, 3, str_items[4], TRUE);
+    
+    dont_expect_notify(HDN_GETDISPINFOA);
+    dont_expect_notify(HDN_GETDISPINFOW);
+    addItem(hWndHeader, 0, LPSTR_TEXTCALLBACKA);
+    setItem(hWndHeader, 0, str_items[4], TRUE);
+    /* unexpected notifies cleared by notifies_received in setItem */
+    dont_expect_notify(HDN_GETDISPINFOA);
+    dont_expect_notify(HDN_GETDISPINFOW);
+    setItem(hWndHeader, 0, LPSTR_TEXTCALLBACKA, TRUE);
+    /* unexpected notifies cleared by notifies_received in setItem */
+    delItem(hWndHeader, 0);
 
     res = delItem(hWndHeader, 5);
     ok(res == 1, "Deleting Out of Range item should fail with 1 (%ld)\n", res);
@@ -284,6 +309,10 @@
     {
         NMHEADERA *hdr = (NMHEADER *)lParam;
         EXPECTEDNOTIFY *expected;
+        int i;
+        
+        for (i=0; i<nUnexpectedNotify; i++)
+            ok(hdr->hdr.code != unexpectedNotify[i], "Received invalid notify %d\n", hdr->hdr.code);
         
         if (nReceivedNotify >= nExpectedNotify || hdr->hdr.hwndFrom != hWndHeader )
             break;