msi: Add a test to show that MsiOpenPackage must apply any existing patches.

This commit is contained in:
Hans Leidekker 2010-04-21 11:37:29 +02:00 committed by Alexandre Julliard
parent ed1711ec54
commit 031d2c63e8
1 changed files with 24 additions and 0 deletions

View File

@ -674,6 +674,8 @@ static void test_simple_patch( void )
UINT r;
DWORD size;
char path[MAX_PATH];
const char *query;
MSIHANDLE hpackage, hdb, hview, hrec;
if (!pMsiApplyPatchA)
{
@ -712,6 +714,28 @@ static void test_simple_patch( void )
strcat( path, "\\" );
strcat( path, msifile );
r = MsiOpenPackageA( path, &hpackage );
ok( r == ERROR_SUCCESS, "expected ERROR_SUCCESS, got %u\n", r );
hdb = MsiGetActiveDatabase( hpackage );
ok( hdb, "failed to get database handle\n" );
query = "SELECT * FROM `Property` where `Property` = 'PATCHNEWPACKAGECODE'";
r = MsiDatabaseOpenView( hdb, query, &hview );
ok( r == ERROR_SUCCESS, "expected ERROR_SUCCESS, got %u\n", r );
r = MsiViewExecute( hview, 0 );
ok( r == ERROR_SUCCESS, "expected ERROR_SUCCESS, got %u\n", r );
r = MsiViewFetch( hview, &hrec );
todo_wine ok( r == ERROR_SUCCESS, "expected ERROR_SUCCESS, got %u\n", r );
MsiCloseHandle( hrec );
MsiViewClose( hview );
MsiCloseHandle( hview );
MsiCloseHandle( hdb );
MsiCloseHandle( hpackage );
r = MsiInstallProductA( msifile, "REMOVE=ALL" );
ok( r == ERROR_SUCCESS, "expected ERROR_SUCCESS, got %u\n", r );