James Hawkins : msi: Add tests for components that aren' t associated with a feature.

Alexandre Julliard julliard at wine.codeweavers.com
Fri Jun 23 06:43:41 CDT 2006


Module: wine
Branch: refs/heads/master
Commit: 566beb788b75c3c94aa7d9d6c8601b468a5116ef
URL:    http://source.winehq.org/git/?p=wine.git;a=commit;h=566beb788b75c3c94aa7d9d6c8601b468a5116ef

Author: James Hawkins <truiken at gmail.com>
Date:   Thu Jun 22 13:11:10 2006 -0700

msi: Add tests for components that aren't associated with a feature.

---

 dlls/msi/tests/Makefile.in |    2 +-
 dlls/msi/tests/install.c   |   52 ++++++++++++++++++++++++++++++++++++++++++--
 2 files changed, 51 insertions(+), 3 deletions(-)

diff --git a/dlls/msi/tests/Makefile.in b/dlls/msi/tests/Makefile.in
index f9499de..b86fc99 100644
--- a/dlls/msi/tests/Makefile.in
+++ b/dlls/msi/tests/Makefile.in
@@ -3,7 +3,7 @@ TOPOBJDIR = ../../..
 SRCDIR    = @srcdir@
 VPATH     = @srcdir@
 TESTDLL   = msi.dll
-IMPORTS   = cabinet msi advapi32 kernel32
+IMPORTS   = cabinet msi ole32 advapi32 kernel32
 
 CTESTS = \
 	db.c \
diff --git a/dlls/msi/tests/install.c b/dlls/msi/tests/install.c
index b74d9cf..dfd469b 100644
--- a/dlls/msi/tests/install.c
+++ b/dlls/msi/tests/install.c
@@ -70,7 +70,8 @@ static const CHAR component_dat[] = "Com
                                     "Four\t{FD37B4EA-7209-45C0-8917-535F35A2F080}\tCABOUTDIR\t2\t\tfour.txt\n"
                                     "One\t{783B242E-E185-4A56-AF86-C09815EC053C}\tMSITESTDIR\t2\t\tone.txt\n"
                                     "Three\t{010B6ADD-B27D-4EDD-9B3D-34C4F7D61684}\tCHANGEDDIR\t2\t\tthree.txt\n"
-                                    "Two\t{BF03D1A6-20DA-4A65-82F3-6CAC995915CE}\tFIRSTDIR\t2\t\ttwo.txt";
+                                    "Two\t{BF03D1A6-20DA-4A65-82F3-6CAC995915CE}\tFIRSTDIR\t2\t\ttwo.txt\n"
+                                    "dangler\t{6091DF25-EF96-45F1-B8E9-A9B1420C7A3C}\tTARGETDIR\t4\t\tregdata";
 
 static const CHAR directory_dat[] = "Directory\tDirectory_Parent\tDefaultDir\n"
                                     "s72\tS72\tl255\n"
@@ -151,7 +152,8 @@ static const CHAR registry_dat[] = "Regi
                                    "s72\ti2\tl255\tL255\tL0\ts72\n"
                                    "Registry\tRegistry\n"
                                    "Apples\t2\tSOFTWARE\\Wine\\msitest\tName\timaname\tOne\n"
-                                   "Oranges\t2\tSOFTWARE\\Wine\\msitest\tnumber\t#314\tTwo";
+                                   "Oranges\t2\tSOFTWARE\\Wine\\msitest\tnumber\t#314\tTwo\n"
+                                   "regdata\t2\tSOFTWARE\\Wine\\msitest\tblah\tbad\tdangler";
 
 typedef struct _msi_table
 {
@@ -623,6 +625,14 @@ static void test_MsiInstallProduct(void)
         ok(!lstrcmpA(path, "imaname"), "Expected imaname, got %s\n", path);
     }
 
+    size = MAX_PATH;
+    type = REG_SZ;
+    res = RegQueryValueExA(hkey, "blah", NULL, &type, (LPBYTE)path, &size);
+    todo_wine
+    {
+        ok(res == ERROR_FILE_NOT_FOUND, "Expected ERROR_FILE_NOT_FOUND, got %ld\n", res);
+    }
+
     size = sizeof(num);
     type = REG_DWORD;
     res = RegQueryValueExA(hkey, "number", NULL, &type, (LPBYTE)&num, &size);
@@ -635,6 +645,43 @@ static void test_MsiInstallProduct(void)
     RegDeleteKeyA(HKEY_LOCAL_MACHINE, "SOFTWARE\\Wine\\msitest");
 }
 
+static void test_MsiSetComponentState(void)
+{
+    MSIHANDLE package;
+    char path[MAX_PATH];
+    UINT r;
+
+    CoInitialize(NULL);
+
+    lstrcpy(path, CURR_DIR);
+    lstrcat(path, "\\");
+    lstrcat(path, msifile);
+
+    r = MsiOpenPackage(path, &package);
+    ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %u\n", r);
+
+    r = MsiDoAction(package, "CostInitialize");
+    todo_wine
+    {
+        ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %u\n", r);
+    }
+
+    r = MsiDoAction(package, "FileCost");
+    ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %u\n", r);
+
+    r = MsiDoAction(package, "CostFinalize");
+    ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %u\n", r);
+
+    r = MsiSetComponentState(package, "dangler", INSTALLSTATE_SOURCE);
+    todo_wine
+    {
+        ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %u\n", r);
+    }
+
+    MsiCloseHandle(package);
+    CoUninitialize();
+}
+
 START_TEST(install)
 {
     if (!init_function_pointers())
@@ -644,6 +691,7 @@ START_TEST(install)
     create_database(msifile, tables, sizeof(tables) / sizeof(msi_table));
     
     test_MsiInstallProduct();
+    test_MsiSetComponentState();
     
     delete_test_files();
 }




More information about the wine-cvs mailing list