comctl32/tests: treeview shouldn't modify cChildren if it was explicitly set

Daniel Jelinski djelinski1 at gmail.com
Thu Jun 7 08:06:10 CDT 2012


-------------- next part --------------
From 0f2e069d1b15d78661d9c9e12b8873ee3b982879 Mon Sep 17 00:00:00 2001
From: Daniel Jelinski <djelinski1 at gmail.com>
Date: Thu, 7 Jun 2012 14:17:50 +0200
Subject: comctl32/tests: treeview shouldn't modify cChildren if it was
 explicitly set

---
 dlls/comctl32/tests/treeview.c |   50 ++++++++++++++++++++++++++++++++++++++++
 1 files changed, 50 insertions(+), 0 deletions(-)

diff --git a/dlls/comctl32/tests/treeview.c b/dlls/comctl32/tests/treeview.c
index 9161330..fe20af8 100644
--- a/dlls/comctl32/tests/treeview.c
+++ b/dlls/comctl32/tests/treeview.c
@@ -1663,6 +1663,55 @@ static void test_delete_items(void)
     DestroyWindow(hTree);
 }
 
+static void test_cchildren(void)
+{
+    HWND hTree;
+    INT ret;
+    TVITEMA item;
+
+    hTree = create_treeview_control(0);
+    fill_tree(hTree);
+
+    ret = SendMessage(hTree, TVM_DELETEITEM, 0, (LPARAM)hChild);
+    expect(TRUE, ret);
+
+    /* check cChildren - automatic mode */
+    item.hItem = hRoot;
+    item.mask = TVIF_CHILDREN;
+
+    ret = SendMessageA(hTree, TVM_GETITEMA, 0, (LPARAM)&item);
+    expect(TRUE, ret);
+    expect(0, item.cChildren);
+
+    DestroyWindow(hTree);
+
+    /* start over */
+    hTree = create_treeview_control(0);
+    fill_tree(hTree);
+
+    /* turn off automatic mode by setting cChildren explicitly */
+    item.hItem = hRoot;
+    item.mask = TVIF_CHILDREN;
+
+    ret = SendMessageA(hTree, TVM_GETITEMA, 0, (LPARAM)&item);
+    expect(TRUE, ret);
+    expect(1, item.cChildren);
+
+    ret = SendMessageA(hTree, TVM_SETITEMA, 0, (LPARAM)&item);
+    expect(TRUE, ret);
+
+    ret = SendMessage(hTree, TVM_DELETEITEM, 0, (LPARAM)hChild);
+    expect(TRUE, ret);
+
+    /* check cChildren */
+    ret = SendMessageA(hTree, TVM_GETITEMA, 0, (LPARAM)&item);
+    expect(TRUE, ret);
+todo_wine
+    expect(1, item.cChildren);
+
+    DestroyWindow(hTree);
+}
+
 struct _ITEM_DATA
 {
     HTREEITEM  parent; /* for root value of parent field is unidetified */
@@ -2040,6 +2089,7 @@ START_TEST(treeview)
     test_TVS_SINGLEEXPAND();
     test_WM_PAINT();
     test_delete_items();
+    test_cchildren();
     test_htreeitem_layout();
     test_TVS_CHECKBOXES();
     test_TVM_GETNEXTITEM();
-- 
1.7.5.4


More information about the wine-patches mailing list