Module: wine Branch: master Commit: 123dc34aecda9e79ebb0d7b984ae48eb2f4f0de2 URL: http://source.winehq.org/git/wine.git/?a=commit;h=123dc34aecda9e79ebb0d7b984...
Author: Florian Köberle florian@fkoeberle.de Date: Tue Apr 21 12:03:41 2009 +0200
comctl32/tests: Test expanding of a invisible sub tree.
---
dlls/comctl32/tests/treeview.c | 76 ++++++++++++++++++++++++++++++++++++++++ 1 files changed, 76 insertions(+), 0 deletions(-)
diff --git a/dlls/comctl32/tests/treeview.c b/dlls/comctl32/tests/treeview.c index 5f310b5..8939a77 100644 --- a/dlls/comctl32/tests/treeview.c +++ b/dlls/comctl32/tests/treeview.c @@ -748,6 +748,79 @@ static LRESULT CALLBACK MyWndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lPa return 0L; }
+static void TestExpandInvisible(void) +{ + static CHAR nodeText[][5] = {"0", "1", "2", "3", "4"}; + TVINSERTSTRUCTA ins; + HTREEITEM node[5]; + RECT dummyRect; + BOOL nodeVisible; + + /* The test builds the following tree and expands then node 1, while node 0 is collapsed. + * + * 0 + * |- 1 + * | |- 2 + * | |- 3 + * |- 4 + * + */ + + TreeView_DeleteAllItems(hTree); + + ins.hParent = TVI_ROOT; + ins.hInsertAfter = TVI_ROOT; + U(ins).item.mask = TVIF_TEXT; + U(ins).item.pszText = nodeText[0]; + node[0] = TreeView_InsertItem(hTree, &ins); + assert(node[0]); + + ins.hInsertAfter = TVI_LAST; + U(ins).item.mask = TVIF_TEXT; + ins.hParent = node[0]; + + U(ins).item.pszText = nodeText[1]; + node[1] = TreeView_InsertItem(hTree, &ins); + assert(node[1]); + U(ins).item.pszText = nodeText[4]; + node[4] = TreeView_InsertItem(hTree, &ins); + assert(node[4]); + + ins.hParent = node[1]; + + U(ins).item.pszText = nodeText[2]; + node[2] = TreeView_InsertItem(hTree, &ins); + assert(node[2]); + U(ins).item.pszText = nodeText[3]; + node[3] = TreeView_InsertItem(hTree, &ins); + assert(node[3]); + + + nodeVisible = TreeView_GetItemRect(hTree, node[1], &dummyRect, FALSE); + ok(!nodeVisible, "Node 1 should not be visible.\n"); + nodeVisible = TreeView_GetItemRect(hTree, node[2], &dummyRect, FALSE); + ok(!nodeVisible, "Node 2 should not be visible.\n"); + nodeVisible = TreeView_GetItemRect(hTree, node[3], &dummyRect, FALSE); + ok(!nodeVisible, "Node 3 should not be visible.\n"); + nodeVisible = TreeView_GetItemRect(hTree, node[4], &dummyRect, FALSE); + ok(!nodeVisible, "Node 4 should not be visible.\n"); + + ok(TreeView_Expand(hTree, node[1], TVE_EXPAND), "Expand of node 1 failed.\n"); + + nodeVisible = TreeView_GetItemRect(hTree, node[1], &dummyRect, FALSE); + ok(!nodeVisible, "Node 1 should not be visible.\n"); + nodeVisible = TreeView_GetItemRect(hTree, node[2], &dummyRect, FALSE); +todo_wine + ok(!nodeVisible, "Node 2 should not be visible.\n"); + nodeVisible = TreeView_GetItemRect(hTree, node[3], &dummyRect, FALSE); +todo_wine + ok(!nodeVisible, "Node 3 should not be visible.\n"); + nodeVisible = TreeView_GetItemRect(hTree, node[4], &dummyRect, FALSE); +todo_wine + ok(!nodeVisible, "Node 4 should not be visible.\n"); +} + + START_TEST(treeview) { HMODULE hComctl32; @@ -814,6 +887,9 @@ START_TEST(treeview) /* Clears all the previous items */ TestCallback();
+ /* Clears all the previous items */ + TestExpandInvisible(); + PostMessageA(hMainWnd, WM_CLOSE, 0, 0); while(GetMessageA(&msg,0,0,0)) { TranslateMessage(&msg);