Piotr Caban : comctl32: Add more TVS_CHECKBOXES flag tests.
Alexandre Julliard
julliard at winehq.org
Thu Oct 31 16:12:40 CDT 2013
Module: wine
Branch: master
Commit: c4708bca338dd36bbc381ebfd04a65a4f8802a0a
URL: http://source.winehq.org/git/wine.git/?a=commit;h=c4708bca338dd36bbc381ebfd04a65a4f8802a0a
Author: Piotr Caban <piotr at codeweavers.com>
Date: Thu Oct 31 17:28:05 2013 +0100
comctl32: Add more TVS_CHECKBOXES flag tests.
---
dlls/comctl32/tests/treeview.c | 57 +++++++++++++++++++++++++++++++++++----
1 files changed, 51 insertions(+), 6 deletions(-)
diff --git a/dlls/comctl32/tests/treeview.c b/dlls/comctl32/tests/treeview.c
index 998cc83..24206d5 100644
--- a/dlls/comctl32/tests/treeview.c
+++ b/dlls/comctl32/tests/treeview.c
@@ -1842,12 +1842,6 @@ static void test_TVS_CHECKBOXES(void)
DestroyWindow(hTree);
/* the same, but initially created with TVS_CHECKBOXES */
- hTree = create_treeview_control(0);
- fill_tree(hTree);
- himl = (HIMAGELIST)SendMessageA(hTree, TVM_GETIMAGELIST, TVSIL_STATE, 0);
- ok(himl == NULL, "got %p\n", himl);
- DestroyWindow(hTree);
-
hTree = create_treeview_control(TVS_CHECKBOXES);
fill_tree(hTree);
himl = (HIMAGELIST)SendMessageA(hTree, TVM_GETIMAGELIST, TVSIL_STATE, 0);
@@ -1903,6 +1897,57 @@ static void test_TVS_CHECKBOXES(void)
ok(himl != NULL, "got %p\n", himl);
DestroyWindow(hTree);
+
+ /* check what happens if TVSIL_STATE image list is removed */
+ hTree = create_treeview_control(0);
+ fill_tree(hTree);
+ himl = (HIMAGELIST)SendMessageA(hTree, TVM_GETIMAGELIST, TVSIL_STATE, 0);
+ ok(himl == NULL, "got %p\n", himl);
+
+ SetWindowLongA(hTree, GWL_STYLE, GetWindowLongA(hTree, GWL_STYLE) | TVS_CHECKBOXES);
+ himl = (HIMAGELIST)SendMessageA(hTree, TVM_GETIMAGELIST, TVSIL_STATE, 0);
+ ok(himl != NULL, "got %p\n", himl);
+
+ himl2 = (HIMAGELIST)SendMessageA(hTree, TVM_SETIMAGELIST, TVSIL_STATE, 0);
+ ok(himl2 == himl, "got %p\n", himl2);
+
+ himl2 = (HIMAGELIST)SendMessageA(hTree, TVM_GETIMAGELIST, TVSIL_STATE, 0);
+ ok(himl2 == NULL, "got %p\n", himl2);
+
+ item.hItem = hChild;
+ item.mask = TVIF_STATE;
+ item.state = INDEXTOSTATEIMAGEMASK(2);
+ item.stateMask = TVIS_STATEIMAGEMASK;
+ ret = SendMessageA(hTree, TVM_SETITEMA, 0, (LPARAM)&item);
+ expect(TRUE, ret);
+
+ item.hItem = hChild;
+ item.mask = TVIF_STATE;
+ item.state = 0;
+ ret = SendMessageA(hTree, TVM_GETITEMA, 0, (LPARAM)&item);
+ expect(TRUE, ret);
+ ok(item.state == INDEXTOSTATEIMAGEMASK(2), "got 0x%x\n", item.state);
+
+ while(GetMessageA(&msg, 0, 0, 0))
+ {
+ TranslateMessage(&msg);
+ DispatchMessageA(&msg);
+
+ if((msg.hwnd == hTree) && (msg.message == WM_PAINT))
+ break;
+ }
+
+ item.hItem = hChild;
+ item.mask = TVIF_STATE;
+ item.state = 0;
+ ret = SendMessageA(hTree, TVM_GETITEMA, 0, (LPARAM)&item);
+ expect(TRUE, ret);
+ ok(item.state == INDEXTOSTATEIMAGEMASK(1), "got 0x%x\n", item.state);
+
+ himl = (HIMAGELIST)SendMessageA(hTree, TVM_GETIMAGELIST, TVSIL_STATE, 0);
+ ok(himl != NULL, "got %p\n", himl);
+
+ DestroyWindow(hTree);
}
static void test_TVM_GETNEXTITEM(void)
More information about the wine-cvs
mailing list