[PATCH 4/4] explorerframe: Some additional basic tests.

David Hedberg david.hedberg at gmail.com
Thu Aug 19 01:17:56 CDT 2010


---
 dlls/explorerframe/tests/nstc.c |   55 +++++++++++++++++++++++++++++++++++++++
 1 files changed, 55 insertions(+), 0 deletions(-)

diff --git a/dlls/explorerframe/tests/nstc.c b/dlls/explorerframe/tests/nstc.c
index cb6ed44..83ec748 100644
--- a/dlls/explorerframe/tests/nstc.c
+++ b/dlls/explorerframe/tests/nstc.c
@@ -737,6 +737,7 @@ static void test_basics(void)
     RECT rc;
     IShellItem *roots[10];
     POINT pt;
+    int cbstate;
     WCHAR curdirW[MAX_PATH];
     WCHAR buf[MAX_PATH];
     static const WCHAR testdirW[] = {'t','e','s','t','d','i','r',0};
@@ -744,6 +745,8 @@ static void test_basics(void)
         {'t','e','s','t','d','i','r','\\','t','e','s','t','d','i','r','2',0};
     static const WCHAR test1W[] =
         {'t','e','s','t','d','i','r','\\','t','e','s','t','1','.','t','x','t',0};
+    static const WCHAR explorerW[] = {'E','x','p','l','o','r','e','r',0};
+    static const WCHAR randomW[] = {'_','_','h','e','l','l','o',0};
 
     /* These should exist on platforms supporting the NSTC */
     ok(pSHCreateShellItem != NULL, "No SHCreateShellItem.\n");
@@ -1641,6 +1644,58 @@ static void test_basics(void)
     hr = INameSpaceTreeControl_RemoveAllRoots(pnstc);
     ok(hr == S_OK, "Got 0x%08x\n", hr);
 
+    /* GetItemCustomState / SetItemCustomState */
+    if(0)
+    {
+        /* Crashes under Windows 7 */
+        hr = INameSpaceTreeControl_GetItemCustomState(pnstc, NULL, NULL);
+        hr = INameSpaceTreeControl_GetItemCustomState(pnstc, NULL, &cbstate);
+        hr = INameSpaceTreeControl_GetItemCustomState(pnstc, psitestdir, NULL);
+        hr = INameSpaceTreeControl_SetItemCustomState(pnstc, NULL, 0);
+    }
+
+    hr = INameSpaceTreeControl_AppendRoot(pnstc, psitestdir,
+                                          SHCONTF_FOLDERS | SHCONTF_NONFOLDERS,
+                                          0, NULL);
+    process_msgs();
+    ok(hr == S_OK, "Got 0x%08x\n", hr);
+
+    todo_wine
+    {
+        hr = INameSpaceTreeControl_GetItemCustomState(pnstc, psitestdir, &cbstate);
+        ok(hr == S_OK, "Got 0x%08x\n", hr);
+        ok(cbstate == BST_UNCHECKED || broken(cbstate == BST_CHECKED /* Vista x64 */),
+           "Got %d\n", cbstate);
+
+        hr = INameSpaceTreeControl_SetItemCustomState(pnstc, psitestdir, BST_CHECKED);
+        ok(hr == S_OK, "Got 0x%08x\n", hr);
+
+        hr = INameSpaceTreeControl_GetItemCustomState(pnstc, psitestdir, &cbstate);
+        ok(hr == S_OK, "Got 0x%08x\n", hr);
+        ok(cbstate == BST_CHECKED, "Got %d\n", cbstate);
+
+        hr = INameSpaceTreeControl_SetItemCustomState(pnstc, psitestdir, 0xFFF);
+        ok(hr == S_OK, "Got 0x%08x\n", hr);
+
+        hr = INameSpaceTreeControl_GetItemCustomState(pnstc, psitestdir, &cbstate);
+        ok(hr == S_OK, "Got 0x%08x\n", hr);
+        ok(cbstate == 0xF, "Got %d\n", cbstate);
+    }
+
+    /* SetTheme */
+    todo_wine
+    {
+        hr = INameSpaceTreeControl_SetTheme(pnstc, NULL);
+        ok(hr == S_OK, "Got 0x%08x\n", hr);
+        hr = INameSpaceTreeControl_SetTheme(pnstc, explorerW);
+        ok(hr == S_OK, "Got 0x%08x\n", hr);
+        hr = INameSpaceTreeControl_SetTheme(pnstc, randomW);
+        ok(hr == S_OK, "Got 0x%08x\n", hr);
+    }
+
+    hr = INameSpaceTreeControl_RemoveAllRoots(pnstc);
+    ok(hr == S_OK, "Got (0x%08x)\n", hr);
+
     IShellItem_Release(psidesktop);
     IShellItem_Release(psidesktop2);
     IShellItem_Release(psitestdir);
-- 
1.7.2




More information about the wine-patches mailing list