https://git.reactos.org/?p=reactos.git;a=commitdiff;h=a38f680cef3a2765997da…
commit a38f680cef3a2765997da24c02ad8dee22f31e48
Author: winesync <ros-dev(a)reactos.org>
AuthorDate: Sun Mar 13 00:16:41 2022 +0100
Commit: Mark Jansen <mark.jansen(a)reactos.org>
CommitDate: Sun Mar 20 19:28:12 2022 +0100
[WINESYNC] msi/tests: Add more tests for MSIMODIFY_REFRESH.
Signed-off-by: Zebediah Figura <z.figura12(a)gmail.com>
Signed-off-by: Hans Leidekker <hans(a)codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard(a)winehq.org>
wine commit id d2e51963a6218e1ecb3d8127004b9c8c128dd746 by Zebediah Figura
<z.figura12(a)gmail.com>
---
modules/rostests/winetests/msi/db.c | 37 +++++++++++++++++++++++++++++++++++++
1 file changed, 37 insertions(+)
diff --git a/modules/rostests/winetests/msi/db.c b/modules/rostests/winetests/msi/db.c
index e59846ffad7..f219b9a9a3f 100644
--- a/modules/rostests/winetests/msi/db.c
+++ b/modules/rostests/winetests/msi/db.c
@@ -6750,6 +6750,17 @@ static void test_viewmodify_refresh(void)
r = MsiViewFetch(hview, &hrec);
ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r);
+ check_record(hrec, 2, "hi", "1");
+
+ MsiRecordSetInteger(hrec, 2, 5);
+ r = MsiViewModify(hview, MSIMODIFY_REFRESH, hrec);
+ ok(!r, "got %u\n", r);
+ check_record(hrec, 2, "hi", "1");
+
+ MsiRecordSetStringA(hrec, 1, "foo");
+ r = MsiViewModify(hview, MSIMODIFY_REFRESH, hrec);
+ ok(!r, "got %u\n", r);
+ check_record(hrec, 2, "hi", "1");
query = "UPDATE `Table` SET `B` = 2 WHERE `A` = 'hi'";
r = run_query(hdb, 0, query);
@@ -6758,6 +6769,14 @@ static void test_viewmodify_refresh(void)
r = MsiViewModify(hview, MSIMODIFY_REFRESH, hrec);
ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r);
check_record(hrec, 2, "hi", "2");
+
+ r = run_query(hdb, 0, "UPDATE `Table` SET `B` = NULL WHERE `A` =
'hi'");
+ ok(!r, "got %u\n", r);
+
+ r = MsiViewModify(hview, MSIMODIFY_REFRESH, hrec);
+ ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", r);
+ check_record(hrec, 2, "hi", "");
+
MsiCloseHandle(hrec);
MsiViewClose(hview);
@@ -6791,6 +6810,24 @@ static void test_viewmodify_refresh(void)
MsiViewClose(hview);
MsiCloseHandle(hview);
+
+ r = MsiDatabaseOpenViewA(hdb, "SELECT `B` FROM `Table` WHERE `A` =
'hello'", &hview);
+ ok(!r, "got %u\n", r);
+ r = MsiViewExecute(hview, 0);
+ ok(!r, "got %u\n", r);
+
+ r = MsiViewFetch(hview, &hrec);
+ ok(!r, "got %u\n", r);
+ check_record(hrec, 1, "2");
+
+ MsiRecordSetInteger(hrec, 1, 8);
+ r = MsiViewModify(hview, MSIMODIFY_REFRESH, hrec);
+ ok(!r, "got %u\n", r);
+ check_record(hrec, 1, "2");
+
+ MsiCloseHandle(hrec);
+ MsiCloseHandle(hview);
+
MsiCloseHandle(hdb);
DeleteFileA(msifile);
}