https://git.reactos.org/?p=reactos.git;a=commitdiff;h=a8bfcb28ab3345d49cbe0…
commit a8bfcb28ab3345d49cbe0a46025be3930f14a5fc
Author: winesync <ros-dev(a)reactos.org>
AuthorDate: Sat Mar 12 23:57:39 2022 +0100
Commit: Mark Jansen <mark.jansen(a)reactos.org>
CommitDate: Sun Mar 20 19:28:01 2022 +0100
[WINESYNC] msi/tests: Add some tests for remote MSI summary info APIs.
Signed-off-by: Dmitry Timoshkov <dmitry(a)baikal.ru>
Signed-off-by: Hans Leidekker <hans(a)codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard(a)winehq.org>
wine commit id 4acd7b6c45faa960aee3d753d2979315ad4d2b46 by Dmitry Timoshkov
<dmitry(a)baikal.ru>
---
modules/rostests/winetests/msi/custom.c | 52 ++++++++++++++++++++++++++++++++-
1 file changed, 51 insertions(+), 1 deletion(-)
diff --git a/modules/rostests/winetests/msi/custom.c
b/modules/rostests/winetests/msi/custom.c
index 6332d68768a..1cf24536d04 100644
--- a/modules/rostests/winetests/msi/custom.c
+++ b/modules/rostests/winetests/msi/custom.c
@@ -30,6 +30,7 @@
#include <msxml.h>
#include <msi.h>
#include <msiquery.h>
+#include <msidefs.h>
static int todo_level, todo_do_loop;
@@ -279,7 +280,9 @@ static void test_db(MSIHANDLE hinst)
MSIHANDLE hdb, view, rec, rec2, suminfo;
char buffer[10];
DWORD sz;
- UINT r;
+ UINT r, count, type;
+ INT int_value;
+ FILETIME ft;
hdb = MsiGetActiveDatabase(hinst);
ok(hinst, hdb, "MsiGetActiveDatabase failed\n");
@@ -452,6 +455,53 @@ static void test_db(MSIHANDLE hinst)
r = MsiGetSummaryInformationA(hdb, NULL, 1, &suminfo);
ok(hinst, !r, "got %u\n", r);
+ r = MsiSummaryInfoGetPropertyCount(suminfo, NULL);
+todo_wine
+ ok(hinst, r == RPC_X_NULL_REF_POINTER, "got %u\n", r);
+
+ count = 0xdeadbeef;
+ r = MsiSummaryInfoGetPropertyCount(suminfo, &count);
+todo_wine
+ ok(hinst, !r, "got %u\n", r);
+todo_wine
+ ok(hinst, count == 5, "got %u\n", count);
+
+ r = MsiSummaryInfoGetPropertyA(suminfo, 0, NULL, NULL, NULL, NULL, NULL);
+todo_wine
+ ok(hinst, r == RPC_X_NULL_REF_POINTER, "got %u\n", r);
+
+ type = 0xdeadbeef;
+ int_value = 0xdeadbeef;
+ strcpy(buffer, "deadbeef");
+ sz = sizeof(buffer);
+ r = MsiSummaryInfoGetPropertyA(suminfo, PID_AUTHOR, &type, &int_value,
&ft, buffer, &sz);
+todo_wine
+ ok(hinst, !r, "got %u\n", r);
+todo_wine
+ ok(hinst, type == 0, "got %u\n", type);
+todo_wine
+ ok(hinst, int_value == 0, "got %u\n", int_value);
+ ok(hinst, sz == sizeof(buffer), "got %u\n", sz);
+ ok(hinst, !lstrcmpA(buffer, "deadbeef"), "got %s\n", buffer);
+
+ type = 0xdeadbeef;
+ int_value = 0xdeadbeef;
+ strcpy(buffer, "deadbeef");
+ sz = sizeof(buffer);
+ r = MsiSummaryInfoGetPropertyA(suminfo, PID_CODEPAGE, &type, &int_value,
&ft, buffer, &sz);
+todo_wine
+ ok(hinst, !r, "got %u\n", r);
+todo_wine
+ ok(hinst, type == 0, "got %u\n", type);
+todo_wine
+ ok(hinst, int_value == 0, "got %u\n", int_value);
+ ok(hinst, sz == sizeof(buffer), "got %u\n", sz);
+ ok(hinst, !lstrcmpA(buffer, "deadbeef"), "got %s\n", buffer);
+
+ r = MsiSummaryInfoSetPropertyA(suminfo, PID_CODEPAGE, VT_I2, 1252, &ft,
"");
+todo_wine
+ ok(hinst, r == ERROR_FUNCTION_FAILED, "got %u\n", r);
+
r = MsiCloseHandle(suminfo);
ok(hinst, !r, "got %u\n", r);