Nikolay Sivov : shell32/tests: Test valid special folder IDs with NameSpace() method.

Alexandre Julliard julliard at winehq.org
Tue Jan 10 15:24:42 CST 2017


Module: wine
Branch: master
Commit: dba1a78a2013d845e5cf6f9abefefe450005cde0
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=dba1a78a2013d845e5cf6f9abefefe450005cde0

Author: Nikolay Sivov <nsivov at codeweavers.com>
Date:   Tue Jan 10 16:49:51 2017 +0300

shell32/tests: Test valid special folder IDs with NameSpace() method.

Signed-off-by: Nikolay Sivov <nsivov at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 dlls/shell32/tests/shelldispatch.c | 61 +++++++++++++++++++++++++++++++++++++-
 1 file changed, 60 insertions(+), 1 deletion(-)

diff --git a/dlls/shell32/tests/shelldispatch.c b/dlls/shell32/tests/shelldispatch.c
index 3f2d902..0c71125 100644
--- a/dlls/shell32/tests/shelldispatch.c
+++ b/dlls/shell32/tests/shelldispatch.c
@@ -58,6 +58,48 @@ static void init_function_pointers(void)
 
 static void test_namespace(void)
 {
+    static const ShellSpecialFolderConstants special_folders[] =
+    {
+        ssfDESKTOP,
+        ssfPROGRAMS,
+        ssfCONTROLS,
+        ssfPRINTERS,
+        ssfPERSONAL,
+        ssfFAVORITES,
+        ssfSTARTUP,
+        ssfRECENT,
+        ssfSENDTO,
+        ssfBITBUCKET,
+        ssfSTARTMENU,
+        ssfDESKTOPDIRECTORY,
+        ssfDRIVES,
+        ssfNETWORK,
+        ssfNETHOOD,
+        ssfFONTS,
+        ssfTEMPLATES,
+        ssfCOMMONSTARTMENU,
+        ssfCOMMONPROGRAMS,
+        ssfCOMMONSTARTUP,
+        ssfCOMMONDESKTOPDIR,
+        ssfAPPDATA,
+        ssfPRINTHOOD,
+        ssfLOCALAPPDATA,
+        ssfALTSTARTUP,
+        ssfCOMMONALTSTARTUP,
+        ssfCOMMONFAVORITES,
+        ssfINTERNETCACHE,
+        ssfCOOKIES,
+        ssfHISTORY,
+        ssfCOMMONAPPDATA,
+        ssfWINDOWS,
+        ssfSYSTEM,
+        ssfPROGRAMFILES,
+        ssfMYPICTURES,
+        ssfPROFILE,
+        ssfSYSTEMx86,
+        ssfPROGRAMFILESx86,
+    };
+
     static const WCHAR backslashW[] = {'\\',0};
     static const WCHAR clsidW[] = {
         ':',':','{','6','4','5','F','F','0','4','0','-','5','0','8','1','-',
@@ -73,7 +115,7 @@ static void test_namespace(void)
     FolderItem *item;
     VARIANT var;
     BSTR title, item_path;
-    int len;
+    int len, i;
 
     r = CoCreateInstance(&CLSID_Shell, NULL, CLSCTX_INPROC_SERVER,
      &IID_IShellDispatch, (LPVOID*)&sd);
@@ -92,6 +134,21 @@ static void test_namespace(void)
     ok(r == S_FALSE, "expected S_FALSE, got %08x\n", r);
     ok(folder == NULL, "expected NULL, got %p\n", folder);
 
+    /* test valid folder ids */
+    for (i = 0; i < sizeof(special_folders)/sizeof(special_folders[0]); i++)
+    {
+        V_VT(&var) = VT_I4;
+        V_I4(&var) = special_folders[i];
+        folder = (void*)0xdeadbeef;
+        r = IShellDispatch_NameSpace(sd, var, &folder);
+        if (special_folders[i] == ssfALTSTARTUP || special_folders[i] == ssfCOMMONALTSTARTUP)
+            ok(r == S_OK || broken(r == S_FALSE) /* winxp */, "Failed to get folder for index %#x, got %08x\n", special_folders[i], r);
+        else
+            ok(r == S_OK, "Failed to get folder for index %#x, got %08x\n", special_folders[i], r);
+        if (folder)
+            Folder_Release(folder);
+    }
+
     V_VT(&var) = VT_I4;
     V_I4(&var) = -1;
     folder = (void*)0xdeadbeef;
@@ -99,6 +156,8 @@ static void test_namespace(void)
     todo_wine {
     ok(r == S_FALSE, "expected S_FALSE, got %08x\n", r);
     ok(folder == NULL, "got %p\n", folder);
+    if (r == S_OK)
+        Folder_Release(folder);
 }
     V_VT(&var) = VT_I4;
     V_I4(&var) = ssfPROGRAMFILES;




More information about the wine-cvs mailing list