Mike McCormack : comctl32: Add a short test for the listview.

Alexandre Julliard julliard at wine.codeweavers.com
Thu Jun 15 07:12:21 CDT 2006


Module: wine
Branch: refs/heads/master
Commit: 13115d8cf6952dc493d2da1898de0cf41d2d05a9
URL:    http://source.winehq.org/git/?p=wine.git;a=commit;h=13115d8cf6952dc493d2da1898de0cf41d2d05a9

Author: Mike McCormack <mike at codeweavers.com>
Date:   Thu Jun 15 17:30:49 2006 +0900

comctl32: Add a short test for the listview.

---

 dlls/comctl32/tests/.gitignore  |    1 
 dlls/comctl32/tests/Makefile.in |    1 
 dlls/comctl32/tests/listview.c  |   97 +++++++++++++++++++++++++++++++++++++++
 3 files changed, 99 insertions(+), 0 deletions(-)
 create mode 100644 dlls/comctl32/tests/listview.c

diff --git a/dlls/comctl32/tests/.gitignore b/dlls/comctl32/tests/.gitignore
index e6d715e..58fe16d 100644
--- a/dlls/comctl32/tests/.gitignore
+++ b/dlls/comctl32/tests/.gitignore
@@ -3,6 +3,7 @@ comboex.ok
 dpa.ok
 header.ok
 imagelist.ok
+listview.ok
 monthcal.ok
 mru.ok
 progress.ok
diff --git a/dlls/comctl32/tests/Makefile.in b/dlls/comctl32/tests/Makefile.in
index c277bd4..9d2a56b 100644
--- a/dlls/comctl32/tests/Makefile.in
+++ b/dlls/comctl32/tests/Makefile.in
@@ -10,6 +10,7 @@ CTESTS = \
 	dpa.c \
 	header.c \
 	imagelist.c \
+	listview.c \
 	monthcal.c \
 	mru.c \
 	progress.c \
diff --git a/dlls/comctl32/tests/listview.c b/dlls/comctl32/tests/listview.c
new file mode 100644
index 0000000..c929ed5
--- /dev/null
+++ b/dlls/comctl32/tests/listview.c
@@ -0,0 +1,97 @@
+/*
+ * ListView tests
+ *
+ * Copyright 2006 Mike McCormack for CodeWeavers
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+ */
+
+#include <stdio.h>
+#include <windows.h>
+#include <commctrl.h>
+
+#include "wine/test.h"
+
+START_TEST(listview)
+{
+    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);
+
+    himl = ImageList_Create(40, 40, 0, 4, 4);
+    ok(himl != NULL, "failed to create imagelist\n");
+
+    hbmp = CreateBitmap(40, 40, 1, 1, NULL);
+    ok(hbmp != NULL, "failed to create bitmap\n");
+
+    r = ImageList_Add(himl, hbmp, 0);
+    ok(r == 0, "should be zero\n");
+
+    hwnd = CreateWindowEx(0, "SysListView32", "foo", LVS_OWNERDRAWFIXED, 
+                10, 10, 100, 200, hwndparent, NULL, NULL, NULL);
+    ok(hwnd != NULL, "failed to create listview window\n");
+
+    r = SendMessage(hwnd, LVM_SETEXTENDEDLISTVIEWSTYLE, 0, 0x940);
+    ok(r == 0, "should return zero\n");
+
+    r = SendMessage(hwnd, LVM_SETIMAGELIST, 0, (LPARAM)himl);
+    ok(r == 0, "should return zero\n");
+
+    r = SendMessage(hwnd, LVM_SETICONSPACING, 0, MAKELONG(100,50));
+    /* returns dimensions */
+
+    r = SendMessage(hwnd, LVM_GETITEMCOUNT, 0, 0);
+    ok(r == 0, "should be zero items\n");
+
+    item.mask = LVIF_IMAGE | LVIF_TEXT;
+    item.iItem = 0;
+    item.iSubItem = 1;
+    item.iImage = 0;
+    r = SendMessage(hwnd, LVM_INSERTITEM, 0, (LPARAM) &item);
+    ok(r == -1, "should fail\n");
+
+    item.iSubItem = 0;
+    item.pszText = "hello";
+    r = SendMessage(hwnd, LVM_INSERTITEM, 0, (LPARAM) &item);
+    ok(r == 0, "should not fail\n");
+
+    memset(&r1, 0, sizeof r1);
+    r1.left = LVIR_ICON;
+    r = SendMessage(hwnd, LVM_GETITEMRECT, 0, (LPARAM) &r1);
+
+    r = SendMessage(hwnd, LVM_DELETEALLITEMS, 0, 0);
+    ok(r == TRUE, "should not fail\n");
+
+    item.iSubItem = 0;
+    item.pszText = "hello";
+    r = SendMessage(hwnd, LVM_INSERTITEM, 0, (LPARAM) &item);
+    ok(r == 0, "should not fail\n");
+
+    memset(&r2, 0, sizeof r2);
+    r2.left = LVIR_ICON;
+    r = SendMessage(hwnd, LVM_GETITEMRECT, 0, (LPARAM) &r2);
+
+    ok(!memcmp(&r1, &r2, sizeof r1), "rectangle should be the same\n");
+
+    DestroyWindow(hwnd);
+}




More information about the wine-cvs mailing list