James Hawkins : msi: Add more tests for the RegLocator part of the AppSearch action.
Alexandre Julliard
julliard at winehq.org
Mon Oct 20 08:00:49 CDT 2008
Module: wine
Branch: master
Commit: 326a1b6c4734540952633b99349d7f1f5b994784
URL: http://source.winehq.org/git/wine.git/?a=commit;h=326a1b6c4734540952633b99349d7f1f5b994784
Author: James Hawkins <jhawkins at codeweavers.com>
Date: Mon Oct 20 04:19:49 2008 -0500
msi: Add more tests for the RegLocator part of the AppSearch action.
---
dlls/msi/tests/package.c | 97 +++++++++++++++++++++++++++++++++++++++++++---
1 files changed, 91 insertions(+), 6 deletions(-)
diff --git a/dlls/msi/tests/package.c b/dlls/msi/tests/package.c
index a900b73..4225af8 100644
--- a/dlls/msi/tests/package.c
+++ b/dlls/msi/tests/package.c
@@ -6149,6 +6149,7 @@ static void test_appsearch_reglocator(void)
HKEY hklm, classes;
HKEY hkcu, users;
LPCSTR str;
+ LPSTR ptr;
LONG res;
UINT r;
@@ -6328,6 +6329,21 @@ static void test_appsearch_reglocator(void)
r = add_appsearch_entry(hdb, "'SIGPROP23', 'NewSignature23'");
ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r);
+ r = add_appsearch_entry(hdb, "'SIGPROP24', 'NewSignature24'");
+ ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r);
+
+ r = add_appsearch_entry(hdb, "'SIGPROP25', 'NewSignature25'");
+ ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r);
+
+ r = add_appsearch_entry(hdb, "'SIGPROP26', 'NewSignature26'");
+ ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r);
+
+ r = add_appsearch_entry(hdb, "'SIGPROP27', 'NewSignature27'");
+ ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r);
+
+ r = add_appsearch_entry(hdb, "'SIGPROP28', 'NewSignature28'");
+ ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r);
+
r = create_reglocator_table(hdb);
ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r);
@@ -6371,12 +6387,12 @@ static void test_appsearch_reglocator(void)
r = add_reglocator_entry(hdb, str);
ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r);
- /* HKLM, msidbLocatorTypeFileName, file exists */
+ /* HKLM, msidbLocatorTypeFileName, signature, file exists */
str = "'NewSignature9', 2, 'Software\\Wine', 'Value9', 1";
r = add_reglocator_entry(hdb, str);
ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r);
- /* HKLM, msidbLocatorTypeFileName, file does not exist */
+ /* HKLM, msidbLocatorTypeFileName, signature, file does not exist */
str = "'NewSignature10', 2, 'Software\\Wine', 'Value10', 1";
r = add_reglocator_entry(hdb, str);
ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r);
@@ -6386,17 +6402,17 @@ static void test_appsearch_reglocator(void)
r = add_reglocator_entry(hdb, str);
ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r);
- /* HKLM, msidbLocatorTypeDirectory, file exists */
+ /* HKLM, msidbLocatorTypeDirectory, no signature, file exists */
str = "'NewSignature12', 2, 'Software\\Wine', 'Value9', 0";
r = add_reglocator_entry(hdb, str);
ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r);
- /* HKLM, msidbLocatorTypeDirectory, directory */
+ /* HKLM, msidbLocatorTypeDirectory, no signature, directory exists */
str = "'NewSignature13', 2, 'Software\\Wine', 'Value11', 0";
r = add_reglocator_entry(hdb, str);
ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r);
- /* HKLM, msidbLocatorTypeDirectory, file exists, with signature */
+ /* HKLM, msidbLocatorTypeDirectory, signature, file exists */
str = "'NewSignature14', 2, 'Software\\Wine', 'Value9', 0";
r = add_reglocator_entry(hdb, str);
ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r);
@@ -6431,7 +6447,7 @@ static void test_appsearch_reglocator(void)
r = add_reglocator_entry(hdb, str);
ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r);
- /* HKLM, msidbLocatorTypeFileName, file exists w/ version, signature */
+ /* HKLM, msidbLocatorTypeFileName, signature, file exists w/ version */
str = "'NewSignature21', 2, 'Software\\Wine', 'Value13', 1";
r = add_reglocator_entry(hdb, str);
ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r);
@@ -6446,6 +6462,31 @@ static void test_appsearch_reglocator(void)
r = add_reglocator_entry(hdb, str);
ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r);
+ /* HKLM, msidbLocatorTypeFileName, no signature, directory exists */
+ str = "'NewSignature24', 2, 'Software\\Wine', 'Value11', 1";
+ r = add_reglocator_entry(hdb, str);
+ ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r);
+
+ /* HKLM, msidbLocatorTypeFileName, no signature, file does not exist */
+ str = "'NewSignature25', 2, 'Software\\Wine', 'Value10', 1";
+ r = add_reglocator_entry(hdb, str);
+ ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r);
+
+ /* HKLM, msidbLocatorTypeDirectory, signature, directory exists */
+ str = "'NewSignature26', 2, 'Software\\Wine', 'Value11', 0";
+ r = add_reglocator_entry(hdb, str);
+ ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r);
+
+ /* HKLM, msidbLocatorTypeDirectory, signature, file does not exist */
+ str = "'NewSignature27', 2, 'Software\\Wine', 'Value10', 0";
+ r = add_reglocator_entry(hdb, str);
+ ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r);
+
+ /* HKLM, msidbLocatorTypeDirectory, no signature, file does not exist */
+ str = "'NewSignature28', 2, 'Software\\Wine', 'Value10', 0";
+ r = add_reglocator_entry(hdb, str);
+ ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r);
+
r = create_signature_table(hdb);
ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r);
@@ -6473,6 +6514,15 @@ static void test_appsearch_reglocator(void)
r = add_signature_entry(hdb, str);
ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r);
+ ptr = strrchr(CURR_DIR, '\\') + 1;
+ sprintf(path, "'NewSignature26', '%s', '', '', '', '', '', '', ''", ptr);
+ r = add_signature_entry(hdb, path);
+ ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r);
+
+ str = "'NewSignature27', 'FileName2', '', '', '', '', '', '', ''";
+ r = add_signature_entry(hdb, str);
+ ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r);
+
hpkg = package_from_db(hdb);
ok(hpkg, "Expected a valid package handle\n");
@@ -6616,6 +6666,41 @@ static void test_appsearch_reglocator(void)
ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r);
ok(!lstrcmpA(prop, path), "Expected \"%s\", got \"%s\"\n", path, prop);
+ size = MAX_PATH;
+ lstrcpyA(path, CURR_DIR);
+ ptr = strrchr(path, '\\') + 1;
+ *ptr = '\0';
+ r = MsiGetPropertyA(hpkg, "SIGPROP24", prop, &size);
+ ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r);
+ todo_wine
+ {
+ ok(!lstrcmpA(prop, path), "Expected \"%s\", got \"%s\"\n", path, prop);
+ }
+
+ size = MAX_PATH;
+ sprintf(path, "%s\\", CURR_DIR);
+ r = MsiGetPropertyA(hpkg, "SIGPROP25", prop, &size);
+ ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r);
+ todo_wine
+ {
+ ok(!lstrcmpA(prop, path), "Expected \"%s\", got \"%s\"\n", path, prop);
+ }
+
+ size = MAX_PATH;
+ r = MsiGetPropertyA(hpkg, "SIGPROP26", prop, &size);
+ ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r);
+ ok(!lstrcmpA(prop, ""), "Expected \"\", got \"%s\"\n", prop);
+
+ size = MAX_PATH;
+ r = MsiGetPropertyA(hpkg, "SIGPROP27", prop, &size);
+ ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r);
+ ok(!lstrcmpA(prop, ""), "Expected \"\", got \"%s\"\n", prop);
+
+ size = MAX_PATH;
+ r = MsiGetPropertyA(hpkg, "SIGPROP28", prop, &size);
+ ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r);
+ ok(!lstrcmpA(prop, ""), "Expected \"\", got \"%s\"\n", prop);
+
RegSetValueA(hklm, NULL, REG_SZ, "", 0);
RegDeleteValueA(hklm, "Value1");
RegDeleteValueA(hklm, "Value2");
More information about the wine-cvs
mailing list