[PATCH 1/5] msi/tests: Add some tests for remote MSI summary info APIs.

Dmitry Timoshkov dmitry at baikal.ru
Fri Sep 7 22:45:02 CDT 2018


These patches depend on "msi: Add exception handling around all custom action RPC calls."

Signed-off-by: Dmitry Timoshkov <dmitry at baikal.ru>
---
 dlls/msi/tests/custom.c | 52 ++++++++++++++++++++++++++++++++++++++++-
 1 file changed, 51 insertions(+), 1 deletion(-)

diff --git a/dlls/msi/tests/custom.c b/dlls/msi/tests/custom.c
index 6332d68768..1cf24536d0 100644
--- a/dlls/msi/tests/custom.c
+++ b/dlls/msi/tests/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);
 
-- 
2.17.1




More information about the wine-devel mailing list