2009/4/15 Florian Köberle <flor...@fkoeberle.de>: > --- > dlls/comctl32/tests/treeview.c | 80 > ++++++++++++++++++++++++++++++++++++++++ > 1 files changed, 80 insertions(+), 0 deletions(-) > > diff --git a/dlls/comctl32/tests/treeview.c b/dlls/comctl32/tests/treeview.c > index 5f310b5..7d9fcfa 100644 > --- a/dlls/comctl32/tests/treeview.c > +++ b/dlls/comctl32/tests/treeview.c > @@ -748,6 +748,84 @@ static LRESULT CALLBACK MyWndProc(HWND hWnd, UINT msg, > WPARAM wParam, LPARAM lPa > return 0L; > } > > +static void TestExpandInvisible(void) > +{ > + static CHAR nodeRText[] = "R", > + nodeIText[] = "I", > + nodeIIText[] = "II", > + node1Text[] = "1", > + node2Text[] = "2"; > + TVINSERTSTRUCTA ins; > + HTREEITEM nodeR; > + HTREEITEM nodeI; > + HTREEITEM nodeII; > + HTREEITEM node1; > + HTREEITEM node2; > + RECT dummyRect; > + BOOL nodeIVisible; > + BOOL nodeIIVisible; > + BOOL node1Visible; > + BOOL node2Visible; > + HWND window = CreateWindowExA(0, "MyTestWnd", "treeview: > TestExpandInvisible", WS_OVERLAPPEDWINDOW, > + CW_USEDEFAULT, CW_USEDEFAULT, 130, 105, NULL, NULL, > GetModuleHandleA(NULL), 0); > + > + HWND tree = CreateWindowExA(WS_EX_CLIENTEDGE, WC_TREEVIEWA, NULL, > WS_CHILD|WS_VISIBLE| > + TVS_LINESATROOT|TVS_HASLINES|TVS_HASBUTTONS|TVS_EDITLABELS, > + 0, 0, 120, 100, window, (HMENU)100, GetModuleHandleA(0), 0); > + > + > + ins.hParent = TVI_ROOT; > + ins.hInsertAfter = TVI_ROOT; > + U(ins).item.mask = TVIF_TEXT; > + U(ins).item.pszText = nodeRText; > + nodeR = TreeView_InsertItem(tree, &ins); > + assert(nodeR); > + > + ins.hInsertAfter = TVI_LAST; > + U(ins).item.mask = TVIF_TEXT; > + ins.hParent = nodeR; > + > + U(ins).item.pszText = nodeIText; > + nodeI = TreeView_InsertItem(tree, &ins); > + assert(nodeI); > + U(ins).item.pszText = nodeIIText; > + nodeII = TreeView_InsertItem(tree, &ins); > + assert(nodeII); > + > + ins.hParent = nodeI; > + > + U(ins).item.pszText = node1Text; > + node1 = TreeView_InsertItem(tree, &ins); > + assert(node1); > + U(ins).item.pszText = node2Text; > + node2 = TreeView_InsertItem(tree, &ins); > + assert(node1); > + > + nodeIVisible = TreeView_GetItemRect(tree, nodeI, &dummyRect, FALSE); > + ok(!nodeIVisible, "Node I should not be visible.\n"); > + node1Visible = TreeView_GetItemRect(tree, node1, &dummyRect, FALSE); > + ok(!node1Visible, "Node 1 should not be visible.\n"); > + node2Visible = TreeView_GetItemRect(tree, node2, &dummyRect, FALSE); > + ok(!node2Visible, "Node 2 should not be visible.\n"); > + nodeIIVisible = TreeView_GetItemRect(tree, nodeII, &dummyRect, FALSE); > + ok(!nodeIIVisible, "Node II should not be visible.\n"); > + > + ok(TreeView_Expand(tree, nodeI, TVE_EXPAND), "Expand of node I > failed.\n"); > + > + nodeIVisible = TreeView_GetItemRect(tree, nodeI, &dummyRect, FALSE); > + ok(!nodeIVisible, "Node I should not be visible.\n"); > + node1Visible = TreeView_GetItemRect(tree, node1, &dummyRect, FALSE); > +todo_wine > + ok(!node1Visible, "Node 1 should not be visible.\n"); > + node2Visible = TreeView_GetItemRect(tree, node2, &dummyRect, FALSE); > +todo_wine > + ok(!node2Visible, "Node 2 should not be visible.\n"); > + nodeIIVisible = TreeView_GetItemRect(tree, nodeII, &dummyRect, FALSE); > +todo_wine > + ok(!nodeIIVisible, "Node II should not be visible.\n"); > +} > + > + > START_TEST(treeview) > { > HMODULE hComctl32; > @@ -819,4 +897,6 @@ START_TEST(treeview) > TranslateMessage(&msg); > DispatchMessageA(&msg); > } > + > + TestExpandInvisible(); > } > -- > 1.5.4.3 > > > >
Hi Florian, I think you should use already created dialog and treeview. Place your new function just after TestCallback(), clear tree view and fill it, then just test visibility of expandable items. -- Nicolas Le Cam