[PATCH 1/2] comctl32/tests: Test expanding of a invisible sub tree.

Nicolas Le Cam niko.lecam at gmail.com
Wed Apr 15 05:21:35 CDT 2009


2009/4/15 Florian Köberle <florian at 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



More information about the wine-patches mailing list