From a38f680cef3a2765997da24c02ad8dee22f31e48 Mon Sep 17 00:00:00 2001 From: winesync Date: Sun, 13 Mar 2022 00:16:41 +0100 Subject: [PATCH] [WINESYNC] msi/tests: Add more tests for MSIMODIFY_REFRESH. Signed-off-by: Zebediah Figura Signed-off-by: Hans Leidekker Signed-off-by: Alexandre Julliard wine commit id d2e51963a6218e1ecb3d8127004b9c8c128dd746 by Zebediah Figura --- 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); }