[PROPSYS_WINETEST] Sync with Wine Staging 3.3. CORE-14434

This commit is contained in:
Amine Khaldi 2018-03-21 13:10:09 +01:00
parent 3e3d28dfef
commit e270fbfd8d
2 changed files with 116 additions and 26 deletions

View file

@ -18,24 +18,20 @@
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
*/ */
#define WIN32_NO_STATUS
#define _INC_WINDOWS
#define COM_NO_WINDOWS_H
#define COBJMACROS #define COBJMACROS
#include <stdarg.h> #include <stdarg.h>
//#include <stdio.h> #include <stdio.h>
#define NONAMELESSUNION #define NONAMELESSUNION
#include <windef.h> #include "windef.h"
#include <winbase.h> #include "winbase.h"
#include <objbase.h> #include "objbase.h"
#include <propsys.h> #include "propsys.h"
#include <wine/test.h> #include "wine/test.h"
#include <initguid.h> #include "initguid.h"
DEFINE_GUID(PKEY_WineTest, 0x7b317433, 0xdfa3, 0x4c44, 0xad, 0x3e, 0x2f, 0x80, 0x4b, 0x90, 0xdb, 0xf4); DEFINE_GUID(PKEY_WineTest, 0x7b317433, 0xdfa3, 0x4c44, 0xad, 0x3e, 0x2f, 0x80, 0x4b, 0x90, 0xdb, 0xf4);

View file

@ -19,27 +19,20 @@
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
*/ */
#define WIN32_NO_STATUS
#define _INC_WINDOWS
#define COM_NO_WINDOWS_H
#define COBJMACROS #define COBJMACROS
//#include <stdarg.h> #include <stdarg.h>
#include <stdio.h> #include <stdio.h>
#define NONAMELESSUNION #define NONAMELESSUNION
#include <windef.h> #include "windef.h"
#include <winbase.h> #include "winbase.h"
#include <winreg.h> #include "objbase.h"
#include <winnls.h> #include "initguid.h"
//#include "objbase.h" #include "propsys.h"
#include <ole2.h> #include "propvarutil.h"
#include <initguid.h> #include "wine/test.h"
#include <propsys.h>
#include <propvarutil.h>
#include <wine/test.h>
DEFINE_GUID(GUID_NULL,0,0,0,0,0,0,0,0,0,0,0); DEFINE_GUID(GUID_NULL,0,0,0,0,0,0,0,0,0,0,0);
DEFINE_GUID(dummy_guid, 0xdeadbeef, 0xdead, 0xbeef, 0xde, 0xad, 0xbe, 0xef, 0xca, 0xfe, 0xba, 0xbe); DEFINE_GUID(dummy_guid, 0xdeadbeef, 0xdead, 0xbeef, 0xde, 0xad, 0xbe, 0xef, 0xca, 0xfe, 0xba, 0xbe);
@ -1101,6 +1094,106 @@ static void test_PropVariantToBoolean(void)
ok(val == TRUE, "Unexpected value %d\n", val); ok(val == TRUE, "Unexpected value %d\n", val);
} }
static void test_PropVariantToStringWithDefault(void)
{
PROPVARIANT propvar;
static WCHAR default_value[] = {'t', 'e', 's', 't', 0};
static WCHAR wstr_test2[] = {'t', 'e', 's', 't', '2', 0};
static WCHAR wstr_empty[] = {0};
static WCHAR wstr_space[] = {' ', 0};
static CHAR str_test2[] = "test2";
static CHAR str_empty[] = "";
static CHAR str_space[] = " ";
LPCWSTR result;
propvar.vt = VT_EMPTY;
result = PropVariantToStringWithDefault(&propvar, default_value);
ok(result == default_value, "Unexpected value %s\n", wine_dbgstr_w(result));
propvar.vt = VT_NULL;
result = PropVariantToStringWithDefault(&propvar, default_value);
ok(result == default_value, "Unexpected value %s\n", wine_dbgstr_w(result));
propvar.vt = VT_BOOL;
propvar.u.boolVal = VARIANT_TRUE;
result = PropVariantToStringWithDefault(&propvar, default_value);
ok(result == default_value, "Unexpected value %s\n", wine_dbgstr_w(result));
propvar.vt = VT_I4;
propvar.u.lVal = 15;
result = PropVariantToStringWithDefault(&propvar, default_value);
ok(result == default_value, "Unexpected value %s\n", wine_dbgstr_w(result));
/* VT_LPWSTR */
propvar.vt = VT_LPWSTR;
propvar.u.pwszVal = NULL;
result = PropVariantToStringWithDefault(&propvar, default_value);
ok(result == default_value, "Unexpected value %s\n", wine_dbgstr_w(result));
propvar.vt = VT_LPWSTR;
propvar.u.pwszVal = wstr_empty;
result = PropVariantToStringWithDefault(&propvar, default_value);
ok(result == wstr_empty, "Unexpected value %s\n", wine_dbgstr_w(result));
propvar.vt = VT_LPWSTR;
propvar.u.pwszVal = wstr_space;
result = PropVariantToStringWithDefault(&propvar, default_value);
ok(result == wstr_space, "Unexpected value %s\n", wine_dbgstr_w(result));
propvar.vt = VT_LPWSTR;
propvar.u.pwszVal = wstr_test2;
result = PropVariantToStringWithDefault(&propvar, default_value);
ok(result == wstr_test2, "Unexpected value %s\n", wine_dbgstr_w(result));
/* VT_LPSTR */
propvar.vt = VT_LPSTR;
propvar.u.pszVal = NULL;
result = PropVariantToStringWithDefault(&propvar, default_value);
ok(result == default_value, "Unexpected value %s\n", wine_dbgstr_w(result));
propvar.vt = VT_LPSTR;
propvar.u.pszVal = str_empty;
result = PropVariantToStringWithDefault(&propvar, default_value);
ok(result == default_value, "Unexpected value %s\n", wine_dbgstr_w(result));
propvar.vt = VT_LPSTR;
propvar.u.pszVal = str_space;
result = PropVariantToStringWithDefault(&propvar, default_value);
ok(result == default_value, "Unexpected value %s\n", wine_dbgstr_w(result));
propvar.vt = VT_LPSTR;
propvar.u.pszVal = str_test2;
result = PropVariantToStringWithDefault(&propvar, default_value);
ok(result == default_value, "Unexpected value %s\n", wine_dbgstr_w(result));
/* VT_BSTR */
propvar.vt = VT_BSTR;
propvar.u.bstrVal = NULL;
result = PropVariantToStringWithDefault(&propvar, default_value);
ok(!lstrcmpW(result, wstr_empty), "Unexpected value %s\n", wine_dbgstr_w(result));
propvar.vt = VT_BSTR;
propvar.u.bstrVal = SysAllocString(wstr_empty);
result = PropVariantToStringWithDefault(&propvar, default_value);
ok(!lstrcmpW(result, wstr_empty), "Unexpected value %s\n", wine_dbgstr_w(result));
SysFreeString(propvar.u.bstrVal);
propvar.vt = VT_BSTR;
propvar.u.bstrVal = SysAllocString(wstr_space);
result = PropVariantToStringWithDefault(&propvar, default_value);
ok(!lstrcmpW(result, wstr_space), "Unexpected value %s\n", wine_dbgstr_w(result));
SysFreeString(propvar.u.bstrVal);
propvar.vt = VT_BSTR;
propvar.u.bstrVal = SysAllocString(wstr_test2);
result = PropVariantToStringWithDefault(&propvar, default_value);
ok(!lstrcmpW(result, wstr_test2), "Unexpected value %s\n", wine_dbgstr_w(result));
SysFreeString(propvar.u.bstrVal);
}
static void test_PropVariantChangeType_LPWSTR(void) static void test_PropVariantChangeType_LPWSTR(void)
{ {
PROPVARIANT dest, src; PROPVARIANT dest, src;
@ -1150,4 +1243,5 @@ START_TEST(propsys)
test_intconversions(); test_intconversions();
test_PropVariantChangeType_LPWSTR(); test_PropVariantChangeType_LPWSTR();
test_PropVariantToBoolean(); test_PropVariantToBoolean();
test_PropVariantToStringWithDefault();
} }