Misha Koshelev : msi/tests: Add test for empty MsiGetProductInfo parameters not referencing default registry values .

Alexandre Julliard julliard at wine.codeweavers.com
Thu May 17 06:42:34 CDT 2007


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

Author: Misha Koshelev <mk144210 at bcm.edu>
Date:   Thu May 17 00:42:13 2007 -0500

msi/tests: Add test for empty MsiGetProductInfo parameters not referencing default registry values.

---

 dlls/msi/tests/msi.c |   62 ++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 62 insertions(+), 0 deletions(-)

diff --git a/dlls/msi/tests/msi.c b/dlls/msi/tests/msi.c
index 3b98d53..81a5b73 100644
--- a/dlls/msi/tests/msi.c
+++ b/dlls/msi/tests/msi.c
@@ -81,6 +81,9 @@ static void test_null(void)
 {
     MSIHANDLE hpkg;
     UINT r;
+    HKEY hkey;
+    DWORD dwType, cbData;
+    LPBYTE lpData = NULL;
 
     r = pMsiOpenPackageExW(NULL, 0, &hpkg);
     ok( r == ERROR_INVALID_PARAMETER,"wrong error\n");
@@ -102,6 +105,65 @@ static void test_null(void)
 
     r = MsiConfigureFeatureA("{00000000-0000-0000-0000-000000000000}", "foo", INSTALLSTATE_DEFAULT);
     ok( r == ERROR_UNKNOWN_PRODUCT, "wrong error %d\n", r);
+
+    /* make sure empty string to MsiGetProductInfo is not a handle to default registry value, saving and restoring the
+     * necessary registry values */
+
+    /* empty product string */
+    r = RegOpenKeyA(HKEY_LOCAL_MACHINE, "SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall", &hkey);
+    ok( r == ERROR_SUCCESS, "wrong error %d\n", r);
+
+    r = RegQueryValueExA(hkey, NULL, 0, &dwType, lpData, &cbData);
+    ok ( r == ERROR_SUCCESS || r == ERROR_FILE_NOT_FOUND, "wrong error %d\n", r);
+    if ( r == ERROR_SUCCESS )
+    {
+        lpData = HeapAlloc(GetProcessHeap(), 0, cbData);
+        if (!lpData)
+            skip("Out of memory\n");
+        else
+        {
+            r = RegQueryValueExA(hkey, NULL, 0, &dwType, lpData, &cbData);
+            ok ( r == ERROR_SUCCESS, "wrong error %d\n", r);
+        }
+    }
+
+    r = RegSetValueA(hkey, NULL, REG_SZ, "test", strlen("test"));
+    ok( r == ERROR_SUCCESS, "wrong error %d\n", r);
+
+    r = MsiGetProductInfoA("", "", NULL, NULL);
+    todo_wine ok ( r == ERROR_INVALID_PARAMETER, "wrong error %d\n", r);
+
+    if (lpData)
+    {
+        r = RegSetValueExA(hkey, NULL, 0, dwType, lpData, cbData);
+        ok ( r == ERROR_SUCCESS, "wrong error %d\n", r);
+
+        HeapFree(GetProcessHeap(), 0, lpData);
+    }
+    else
+    {
+        r = RegDeleteValueA(hkey, NULL);
+        ok ( r == ERROR_SUCCESS, "wrong error %d\n", r);
+    }
+
+    r = RegCloseKey(hkey);
+    ok( r == ERROR_SUCCESS, "wrong error %d\n", r);
+
+    /* empty attribute */
+    r = RegCreateKeyA(HKEY_LOCAL_MACHINE, "SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\{F1C3AF50-8B56-4A69-A00C-00773FE42F30}", &hkey);
+    ok( r == ERROR_SUCCESS, "wrong error %d\n", r);
+
+    r = RegSetValueA(hkey, NULL, REG_SZ, "test", strlen("test"));
+    ok( r == ERROR_SUCCESS, "wrong error %d\n", r);
+
+    r = MsiGetProductInfoA("{F1C3AF50-8B56-4A69-A00C-00773FE42F30}", "", NULL, NULL);
+    todo_wine ok ( r == ERROR_UNKNOWN_PROPERTY, "wrong error %d\n", r);
+
+    r = RegCloseKey(hkey);
+    ok( r == ERROR_SUCCESS, "wrong error %d\n", r);
+
+    r = RegDeleteKeyA(HKEY_LOCAL_MACHINE, "SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\{F1C3AF50-8B56-4A69-A00C-00773FE42F30}");
+    ok( r == ERROR_SUCCESS, "wrong error %d\n", r);
 }
 
 static void test_getcomponentpath(void)




More information about the wine-cvs mailing list