Mike McCormack : msi: Add another test for the SourceDir property.

Alexandre Julliard julliard at wine.codeweavers.com
Mon Nov 20 05:52:26 CST 2006


Module: wine
Branch: master
Commit: 69c6fff384bc5344d7bf90acb6b9cb1cae6e9700
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=69c6fff384bc5344d7bf90acb6b9cb1cae6e9700

Author: Mike McCormack <mike at codeweavers.com>
Date:   Mon Nov 20 16:16:50 2006 +0900

msi: Add another test for the SourceDir property.

---

 dlls/msi/tests/package.c |   77 ++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 77 insertions(+), 0 deletions(-)

diff --git a/dlls/msi/tests/package.c b/dlls/msi/tests/package.c
index 4aaa001..d731ad2 100644
--- a/dlls/msi/tests/package.c
+++ b/dlls/msi/tests/package.c
@@ -2893,6 +2893,82 @@ static void test_sourcedirprop(void)
     DeleteFileA(msifile);
 }
 
+static void test_prop_path(void)
+{
+    MSIHANDLE hpkg, hdb;
+    char buffer[MAX_PATH], cwd[MAX_PATH];
+    DWORD sz;
+    UINT r;
+
+    GetCurrentDirectory(MAX_PATH, cwd);
+    strcat(cwd, "\\");
+
+    hdb = create_package_db();
+    ok( hdb, "failed to create database\n");
+
+    r = add_directory_entry( hdb, "'TARGETDIR','','SourceDir'" );
+    ok( r == ERROR_SUCCESS, "cannot add directory: %d\n", r );
+
+    r = add_directory_entry( hdb, "'foo','TARGETDIR','foosrc:footgt'" );
+    ok( r == ERROR_SUCCESS, "cannot add directory: %d\n", r );
+
+    hpkg = package_from_db(hdb);
+    ok( hpkg, "failed to create package\n");
+
+    r = MsiGetSourcePath(hpkg, "SourceDir", buffer, &sz );
+    ok( r == ERROR_DIRECTORY, "failed to get source path\n");
+
+    r = MsiGetSourcePath(hpkg, "SOURCEDIR", buffer, &sz );
+    ok( r == ERROR_DIRECTORY, "failed to get source path\n");
+
+    r = MsiDoAction( hpkg, "CostInitialize");
+    ok( r == ERROR_SUCCESS, "cost init failed\n");
+
+    sz = sizeof buffer;
+    buffer[0] = 0;
+    r = MsiGetProperty(hpkg, "SourceDir", buffer, &sz);
+    ok( r == ERROR_SUCCESS, "property not set\n");
+    ok( !buffer[0], "SourceDir should be empty\n");
+
+    sz = sizeof buffer;
+    buffer[0] = 0;
+    r = MsiGetProperty(hpkg, "SOURCEDIR", buffer, &sz);
+    ok( r == ERROR_SUCCESS, "property not set\n");
+    ok( !buffer[0], "SourceDir should be empty\n");
+
+    sz = sizeof buffer;
+    buffer[0] = 0;
+    r = MsiGetSourcePath(hpkg, "SourceDir", buffer, &sz );
+    todo_wine {
+    ok( r == ERROR_SUCCESS, "failed to get source path\n");
+    ok( !lstrcmpi(cwd, buffer), "SourceDir (%s) should be current dir (%s)\n", buffer, cwd);
+    }
+
+    sz = sizeof buffer;
+    buffer[0] = 0;
+    r = MsiGetProperty(hpkg, "SourceDir", buffer, &sz);
+    ok( r == ERROR_SUCCESS, "property not set\n");
+    todo_wine {
+    ok( !lstrcmpi(cwd, buffer), "SourceDir (%s) should be current dir (%s)\n", buffer, cwd);
+    }
+
+    sz = sizeof buffer;
+    buffer[0] = 0;
+    r = MsiGetSourcePath(hpkg, "SOURCEDIR", buffer, &sz );
+    ok( r == ERROR_DIRECTORY, "failed to get source path\n");
+
+    sz = sizeof buffer;
+    buffer[0] = 0;
+    r = MsiGetProperty(hpkg, "SOURCEDIR", buffer, &sz);
+    ok( r == ERROR_SUCCESS, "property not set\n");
+    todo_wine {
+    ok( !lstrcmpi(cwd, buffer), "SourceDir (%s) should be current dir (%s)\n", buffer, cwd);
+    }
+
+    MsiCloseHandle( hpkg );
+    DeleteFile(msifile);
+}
+
 START_TEST(package)
 {
     test_createpackage();
@@ -2913,4 +2989,5 @@ START_TEST(package)
     test_featureparents();
     test_installprops();
     test_sourcedirprop();
+    test_prop_path();
 }




More information about the wine-cvs mailing list