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