Module: wine Branch: master Commit: 326a1b6c4734540952633b99349d7f1f5b994784 URL: http://source.winehq.org/git/wine.git/?a=commit;h=326a1b6c4734540952633b9934...
Author: James Hawkins jhawkins@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");