wined3d: Implement more GLSL instructions and a little cleanup.
[wine] / dlls / msi / tests / msi.c
1 /*
2  * tests for Microsoft Installer functionality
3  *
4  * Copyright 2005 Mike McCormack for CodeWeavers
5  *
6  * This library is free software; you can redistribute it and/or
7  * modify it under the terms of the GNU Lesser General Public
8  * License as published by the Free Software Foundation; either
9  * version 2.1 of the License, or (at your option) any later version.
10  *
11  * This library is distributed in the hope that it will be useful,
12  * but WITHOUT ANY WARRANTY; without even the implied warranty of
13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
14  * Lesser General Public License for more details.
15  *
16  * You should have received a copy of the GNU Lesser General Public
17  * License along with this library; if not, write to the Free Software
18  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
19  */
20
21 #include <stdio.h>
22 #include <windows.h>
23 #include <msi.h>
24 #include <msiquery.h>
25
26 #include "wine/test.h"
27
28 typedef INSTALLSTATE (WINAPI *fnMsiUseFeatureExA)(LPCSTR, LPCSTR ,DWORD, DWORD );
29 fnMsiUseFeatureExA pMsiUseFeatureExA;
30 typedef UINT (WINAPI *fnMsiOpenPackageExA)(LPCSTR, DWORD, MSIHANDLE*);
31 fnMsiOpenPackageExA pMsiOpenPackageExA;
32 typedef UINT (WINAPI *fnMsiOpenPackageExW)(LPCWSTR, DWORD, MSIHANDLE*);
33 fnMsiOpenPackageExW pMsiOpenPackageExW;
34
35 static void test_usefeature(void)
36 {
37     UINT r;
38
39     if (!pMsiUseFeatureExA)
40         return;
41
42     r = MsiQueryFeatureState(NULL,NULL);
43     ok( r == INSTALLSTATE_INVALIDARG, "wrong return val\n");
44
45     r = MsiQueryFeatureState("{9085040-6000-11d3-8cfe-0150048383c9}" ,NULL);
46     ok( r == INSTALLSTATE_INVALIDARG, "wrong return val\n");
47
48     r = pMsiUseFeatureExA(NULL,NULL,0,0);
49     ok( r == INSTALLSTATE_INVALIDARG, "wrong return val\n");
50
51     r = pMsiUseFeatureExA(NULL, "WORDVIEWFiles", -2, 1 );
52     ok( r == INSTALLSTATE_INVALIDARG, "wrong return val\n");
53
54     r = pMsiUseFeatureExA("{90850409-6000-11d3-8cfe-0150048383c9}", 
55                          NULL, -2, 0 );
56     ok( r == INSTALLSTATE_INVALIDARG, "wrong return val\n");
57
58     r = pMsiUseFeatureExA("{9085040-6000-11d3-8cfe-0150048383c9}", 
59                          "WORDVIEWFiles", -2, 0 );
60     ok( r == INSTALLSTATE_INVALIDARG, "wrong return val\n");
61
62     r = pMsiUseFeatureExA("{0085040-6000-11d3-8cfe-0150048383c9}", 
63                          "WORDVIEWFiles", -2, 0 );
64     ok( r == INSTALLSTATE_INVALIDARG, "wrong return val\n");
65
66     r = pMsiUseFeatureExA("{90850409-6000-11d3-8cfe-0150048383c9}", 
67                          "WORDVIEWFiles", -2, 1 );
68     ok( r == INSTALLSTATE_INVALIDARG, "wrong return val\n");
69 }
70
71 static void test_null(void)
72 {
73     MSIHANDLE hpkg;
74     UINT r;
75
76     r = pMsiOpenPackageExW(NULL, 0, &hpkg);
77     ok( r == ERROR_INVALID_PARAMETER,"wrong error\n");
78
79     r = MsiQueryProductStateW(NULL);
80     ok( r == INSTALLSTATE_INVALIDARG, "wrong return\n");
81
82     r = MsiEnumFeaturesW(NULL,0,NULL,NULL);
83     ok( r == ERROR_INVALID_PARAMETER,"wrong error\n");
84 }
85
86 START_TEST(msi)
87 {
88     HMODULE hmod = GetModuleHandle("msi.dll");
89     pMsiUseFeatureExA = (fnMsiUseFeatureExA) 
90         GetProcAddress(hmod, "MsiUseFeatureExA");
91     pMsiOpenPackageExA = (fnMsiOpenPackageExA) 
92         GetProcAddress(hmod, "MsiOpenPackageExA");
93     pMsiOpenPackageExW = (fnMsiOpenPackageExW) 
94         GetProcAddress(hmod, "MsiOpenPackageExW");
95
96     test_usefeature();
97     test_null();
98 }