Author: gedmurphy
Date: Thu Aug 31 00:28:33 2006
New Revision: 23818
URL:
http://svn.reactos.org/svn/reactos?rev=23818&view=rev
Log:
update comctl32 winetest
Modified:
trunk/reactos/regtests/winetests/comctl32/comboex.c
trunk/reactos/regtests/winetests/comctl32/header.c
trunk/reactos/regtests/winetests/comctl32/listview.c
Modified: trunk/reactos/regtests/winetests/comctl32/comboex.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/regtests/winetests/comctl3…
==============================================================================
--- trunk/reactos/regtests/winetests/comctl32/comboex.c (original)
+++ trunk/reactos/regtests/winetests/comctl32/comboex.c Thu Aug 31 00:28:33 2006
@@ -72,12 +72,14 @@
HWND myHwnd = 0;
LONG res = -1;
COMBOBOXEXITEM cbexItem;
-
-#define FIRST_ITEM "First Item"
-#define SECOND_ITEM "Second Item"
-#define THIRD_ITEM "Third Item"
-#define MIDDLE_ITEM "Between First and Second Items"
-#define REPLACEMENT_ITEM "Between First and Second Items"
+ static TCHAR first_item[] =
{'F','i','r','s','t','
','I','t','e','m',0},
+ second_item[] =
{'S','e','c','o','n','d','
','I','t','e','m',0},
+ third_item[] =
{'T','h','i','r','d','
','I','t','e','m',0},
+ middle_item[] =
{'B','e','t','w','e','e','n','
','F','i','r','s','t','
','a','n','d',' ',
+
'S','e','c','o','n','d','
','I','t','e','m','s',0},
+ replacement_item[] =
{'B','e','t','w','e','e','n','
','F','i','r','s','t','
','a','n','d',' ',
+
'S','e','c','o','n','d','
','I','t','e','m','s',0},
+ out_of_range_item[] = {'O','u','t','
','o','f','
','R','a','n','g','e','
','I','t','e','m',0};
/* Allocate space for result */
textBuffer = malloc(MAX_CHARS);
@@ -86,19 +88,19 @@
myHwnd = createComboEx(WS_BORDER | WS_VISIBLE | WS_CHILD | CBS_DROPDOWN);
/* Add items onto the end of the combobox */
- res = addItem(myHwnd, -1, FIRST_ITEM);
+ res = addItem(myHwnd, -1, first_item);
ok(res == 0, "Adding simple item failed (%ld)\n", res);
- res = addItem(myHwnd, -1, SECOND_ITEM);
+ res = addItem(myHwnd, -1, second_item);
ok(res == 1, "Adding simple item failed (%ld)\n", res);
- res = addItem(myHwnd, 2, THIRD_ITEM);
+ res = addItem(myHwnd, 2, third_item);
ok(res == 2, "Adding simple item failed (%ld)\n", res);
- res = addItem(myHwnd, 1, MIDDLE_ITEM);
+ res = addItem(myHwnd, 1, middle_item);
ok(res == 1, "Inserting simple item failed (%ld)\n", res);
/* Add an item completely out of range */
- res = addItem(myHwnd, 99, "Out Of Range Item");
+ res = addItem(myHwnd, 99, out_of_range_item);
ok(res == -1, "Adding using out of range index worked unexpectedly
(%ld)\n", res);
- res = addItem(myHwnd, 5, "Out Of Range Item");
+ res = addItem(myHwnd, 5, out_of_range_item);
ok(res == -1, "Adding using out of range index worked unexpectedly
(%ld)\n", res);
/* Removed: Causes traps on Windows XP
res = addItem(myHwnd, -2, "Out Of Range Item");
@@ -116,32 +118,32 @@
/* Get an item in range */
res = getItem(myHwnd, 0, &cbexItem);
ok(res != 0, "Getting item using valid index failed unexpectedly (%ld)\n",
res);
- ok(strcmp(FIRST_ITEM, cbexItem.pszText) == 0, "Getting item returned wrong
string (%s)\n", cbexItem.pszText);
+ ok(strcmp(first_item, cbexItem.pszText) == 0, "Getting item returned wrong
string (%s)\n", cbexItem.pszText);
res = getItem(myHwnd, 1, &cbexItem);
ok(res != 0, "Getting item using valid index failed unexpectedly (%ld)\n",
res);
- ok(strcmp(MIDDLE_ITEM, cbexItem.pszText) == 0, "Getting item returned wrong
string (%s)\n", cbexItem.pszText);
+ ok(strcmp(middle_item, cbexItem.pszText) == 0, "Getting item returned wrong
string (%s)\n", cbexItem.pszText);
res = getItem(myHwnd, 2, &cbexItem);
ok(res != 0, "Getting item using valid index failed unexpectedly (%ld)\n",
res);
- ok(strcmp(SECOND_ITEM, cbexItem.pszText) == 0, "Getting item returned wrong
string (%s)\n", cbexItem.pszText);
+ ok(strcmp(second_item, cbexItem.pszText) == 0, "Getting item returned wrong
string (%s)\n", cbexItem.pszText);
res = getItem(myHwnd, 3, &cbexItem);
ok(res != 0, "Getting item using valid index failed unexpectedly (%ld)\n",
res);
- ok(strcmp(THIRD_ITEM, cbexItem.pszText) == 0, "Getting item returned wrong
string (%s)\n", cbexItem.pszText);
+ ok(strcmp(third_item, cbexItem.pszText) == 0, "Getting item returned wrong
string (%s)\n", cbexItem.pszText);
/* Set an item completely out of range */
- res = setItem(myHwnd, 99, REPLACEMENT_ITEM);
+ res = setItem(myHwnd, 99, replacement_item);
ok(res == 0, "Setting item using out of range index worked unexpectedly
(%ld)\n", res);
- res = setItem(myHwnd, 4, REPLACEMENT_ITEM);
+ res = setItem(myHwnd, 4, replacement_item);
ok(res == 0, "Setting item using out of range index worked unexpectedly
(%ld)\n", res);
- res = setItem(myHwnd, -2, REPLACEMENT_ITEM);
+ res = setItem(myHwnd, -2, replacement_item);
ok(res == 0, "Setting item using out of range index worked unexpectedly
(%ld)\n", res);
/* Set an item in range */
- res = setItem(myHwnd, 0, REPLACEMENT_ITEM);
+ res = setItem(myHwnd, 0, replacement_item);
ok(res != 0, "Setting first item failed (%ld)\n", res);
- res = setItem(myHwnd, 3, REPLACEMENT_ITEM);
+ res = setItem(myHwnd, 3, replacement_item);
ok(res != 0, "Setting last item failed (%ld)\n", res);
/* Remove items completely out of range (4 items in control at this point) */
Modified: trunk/reactos/regtests/winetests/comctl32/header.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/regtests/winetests/comctl3…
==============================================================================
--- trunk/reactos/regtests/winetests/comctl32/header.c (original)
+++ trunk/reactos/regtests/winetests/comctl32/header.c Thu Aug 31 00:28:33 2006
@@ -56,7 +56,7 @@
unexpectedNotify[nUnexpectedNotify++] = iCode;
}
-static BOOL notifies_received()
+static BOOL notifies_received(void)
{
BOOL fRet = (nExpectedNotify == nReceivedNotify);
nExpectedNotify = nReceivedNotify = 0;
@@ -323,7 +323,7 @@
/* field from comctl >4.0 not tested as the system probably won't touch them
*/
}
-static void check_mask()
+static void check_mask(void)
{
HDITEMA hdi;
static CHAR text[] = "ABC";
Modified: trunk/reactos/regtests/winetests/comctl32/listview.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/regtests/winetests/comctl3…
==============================================================================
--- trunk/reactos/regtests/winetests/comctl32/listview.c (original)
+++ trunk/reactos/regtests/winetests/comctl32/listview.c Thu Aug 31 00:28:33 2006
@@ -24,19 +24,15 @@
#include "wine/test.h"
-START_TEST(listview)
+static void test_images(void)
{
HWND hwnd, hwndparent = 0;
- INITCOMMONCONTROLSEX icc;
DWORD r;
LVITEM item;
HIMAGELIST himl;
HBITMAP hbmp;
RECT r1, r2;
-
- icc.dwICC = 0;
- icc.dwSize = sizeof icc;
- InitCommonControlsEx(&icc);
+ static CHAR hello[] = "hello";
himl = ImageList_Create(40, 40, 0, 4, 4);
ok(himl != NULL, "failed to create imagelist\n");
@@ -71,7 +67,7 @@
ok(r == -1, "should fail\n");
item.iSubItem = 0;
- item.pszText = "hello";
+ item.pszText = hello;
r = SendMessage(hwnd, LVM_INSERTITEM, 0, (LPARAM) &item);
ok(r == 0, "should not fail\n");
@@ -83,7 +79,7 @@
ok(r == TRUE, "should not fail\n");
item.iSubItem = 0;
- item.pszText = "hello";
+ item.pszText = hello;
r = SendMessage(hwnd, LVM_INSERTITEM, 0, (LPARAM) &item);
ok(r == 0, "should not fail\n");
@@ -95,3 +91,145 @@
DestroyWindow(hwnd);
}
+
+static void test_checkboxes(void)
+{
+ HWND hwnd, hwndparent = 0;
+ LVITEMA item;
+ DWORD r;
+ static CHAR text[] = "Text",
+ text2[] = "Text2",
+ text3[] = "Text3";
+
+ hwnd = CreateWindowEx(0, "SysListView32", "foo", LVS_REPORT,
+ 10, 10, 100, 200, hwndparent, NULL, NULL, NULL);
+ ok(hwnd != NULL, "failed to create listview window\n");
+
+ /* first without LVS_EX_CHECKBOXES set and an item and check that state is preserved
*/
+ item.mask = LVIF_TEXT | LVIF_STATE;
+ item.stateMask = 0xffff;
+ item.state = 0xfccc;
+ item.iItem = 0;
+ item.iSubItem = 0;
+ item.pszText = text;
+ r = SendMessage(hwnd, LVM_INSERTITEMA, 0, (LPARAM) &item);
+ ok(r == 0, "ret %ld\n", r);
+
+ item.iItem = 0;
+ item.mask = LVIF_STATE;
+ item.stateMask = 0xffff;
+ r = SendMessage(hwnd, LVM_GETITEMA, 0, (LPARAM) &item);
+ ok(item.state == 0xfccc, "state %x\n", item.state);
+
+ /* Don't set LVIF_STATE */
+ item.mask = LVIF_TEXT;
+ item.stateMask = 0xffff;
+ item.state = 0xfccc;
+ item.iItem = 1;
+ item.iSubItem = 0;
+ item.pszText = text;
+ r = SendMessage(hwnd, LVM_INSERTITEMA, 0, (LPARAM) &item);
+ ok(r == 1, "ret %ld\n", r);
+
+ item.iItem = 1;
+ item.mask = LVIF_STATE;
+ item.stateMask = 0xffff;
+ r = SendMessage(hwnd, LVM_GETITEMA, 0, (LPARAM) &item);
+ ok(item.state == 0, "state %x\n", item.state);
+
+ r = SendMessage(hwnd, LVM_SETEXTENDEDLISTVIEWSTYLE, LVS_EX_CHECKBOXES,
LVS_EX_CHECKBOXES);
+ ok(r == 0, "should return zero\n");
+
+ /* Having turned on checkboxes, check that all existing items are set to 0x1000
(unchecked) */
+ item.iItem = 0;
+ item.mask = LVIF_STATE;
+ item.stateMask = 0xffff;
+ r = SendMessage(hwnd, LVM_GETITEMA, 0, (LPARAM) &item);
+ ok(item.state == 0x1ccc, "state %x\n", item.state);
+
+ /* Now add an item without specifying a state and check that it's state goes to
0x1000 */
+ item.iItem = 2;
+ item.mask = LVIF_TEXT;
+ item.state = 0;
+ item.pszText = text2;
+ r = SendMessage(hwnd, LVM_INSERTITEMA, 0, (LPARAM) &item);
+ ok(r == 2, "ret %ld\n", r);
+
+ item.iItem = 2;
+ item.mask = LVIF_STATE;
+ item.stateMask = 0xffff;
+ r = SendMessage(hwnd, LVM_GETITEMA, 0, (LPARAM) &item);
+ ok(item.state == 0x1000, "state %x\n", item.state);
+
+ /* Add a further item this time specifying a state and still it's state goes to
0x1000 */
+ item.iItem = 3;
+ item.mask = LVIF_TEXT | LVIF_STATE;
+ item.stateMask = 0xffff;
+ item.state = 0x2aaa;
+ item.pszText = text3;
+ r = SendMessage(hwnd, LVM_INSERTITEMA, 0, (LPARAM) &item);
+ ok(r == 3, "ret %ld\n", r);
+
+ item.iItem = 3;
+ item.mask = LVIF_STATE;
+ item.stateMask = 0xffff;
+ r = SendMessage(hwnd, LVM_GETITEMA, 0, (LPARAM) &item);
+ ok(item.state == 0x1aaa, "state %x\n", item.state);
+
+ /* Set an item's state to checked */
+ item.iItem = 3;
+ item.mask = LVIF_STATE;
+ item.stateMask = 0xf000;
+ item.state = 0x2000;
+ r = SendMessage(hwnd, LVM_SETITEMA, 0, (LPARAM) &item);
+
+ item.iItem = 3;
+ item.mask = LVIF_STATE;
+ item.stateMask = 0xffff;
+ r = SendMessage(hwnd, LVM_GETITEMA, 0, (LPARAM) &item);
+ ok(item.state == 0x2aaa, "state %x\n", item.state);
+
+ /* Set the style again and check that doesn't change an item's state */
+ r = SendMessage(hwnd, LVM_SETEXTENDEDLISTVIEWSTYLE, LVS_EX_CHECKBOXES,
LVS_EX_CHECKBOXES);
+ ok(r == LVS_EX_CHECKBOXES, "ret %lx\n", r);
+
+ item.iItem = 3;
+ item.mask = LVIF_STATE;
+ item.stateMask = 0xffff;
+ r = SendMessage(hwnd, LVM_GETITEMA, 0, (LPARAM) &item);
+ ok(item.state == 0x2aaa, "state %x\n", item.state);
+
+ /* Unsetting the checkbox extended style doesn't change an item's state */
+ r = SendMessage(hwnd, LVM_SETEXTENDEDLISTVIEWSTYLE, LVS_EX_CHECKBOXES, 0);
+ ok(r == LVS_EX_CHECKBOXES, "ret %lx\n", r);
+
+ item.iItem = 3;
+ item.mask = LVIF_STATE;
+ item.stateMask = 0xffff;
+ r = SendMessage(hwnd, LVM_GETITEMA, 0, (LPARAM) &item);
+ ok(item.state == 0x2aaa, "state %x\n", item.state);
+
+ /* Now setting the style again will change an item's state */
+ r = SendMessage(hwnd, LVM_SETEXTENDEDLISTVIEWSTYLE, LVS_EX_CHECKBOXES,
LVS_EX_CHECKBOXES);
+ ok(r == 0, "ret %lx\n", r);
+
+ item.iItem = 3;
+ item.mask = LVIF_STATE;
+ item.stateMask = 0xffff;
+ r = SendMessage(hwnd, LVM_GETITEMA, 0, (LPARAM) &item);
+ ok(item.state == 0x1aaa, "state %x\n", item.state);
+
+ DestroyWindow(hwnd);
+}
+
+START_TEST(listview)
+{
+ INITCOMMONCONTROLSEX icc;
+
+ icc.dwICC = 0;
+ icc.dwSize = sizeof icc;
+ InitCommonControlsEx(&icc);
+
+ test_images();
+ test_checkboxes();
+}