Mohamad Al-Jaf : propsys/tests: Add VariantToStringWithDefault tests.
Alexandre Julliard
julliard at winehq.org
Fri Apr 1 16:04:28 CDT 2022
Module: wine
Branch: master
Commit: 89aba13dc381dbbda62d1019e1af2af5a589b0cf
URL: https://source.winehq.org/git/wine.git/?a=commit;h=89aba13dc381dbbda62d1019e1af2af5a589b0cf
Author: Mohamad Al-Jaf <mohamadaljaf at gmail.com>
Date: Fri Apr 1 16:10:14 2022 +0300
propsys/tests: Add VariantToStringWithDefault tests.
Signed-off-by: Mohamad Al-Jaf <mohamadaljaf at gmail.com>
Signed-off-by: Nikolay Sivov <nsivov at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>
---
dlls/propsys/tests/propsys.c | 187 +++++++++++++++++++++++++++++++++++++++++++
1 file changed, 187 insertions(+)
diff --git a/dlls/propsys/tests/propsys.c b/dlls/propsys/tests/propsys.c
index 124b3405bcb..47a7930a18b 100644
--- a/dlls/propsys/tests/propsys.c
+++ b/dlls/propsys/tests/propsys.c
@@ -2064,6 +2064,192 @@ static void test_InitVariantFromFileTime(void)
ok(V_DATE(&var) == d, "got wrong value: %f, expected %f\n", V_DATE(&var), d);
}
+static void test_VariantToStringWithDefault(void)
+{
+ static WCHAR default_value[] = L"test";
+ VARIANT var, var2;
+ PCWSTR result;
+ BSTR b;
+
+ V_VT(&var) = VT_EMPTY;
+ result = VariantToStringWithDefault(&var, NULL);
+ ok(result == NULL, "Unexpected value %s\n", wine_dbgstr_w(result));
+ result = VariantToStringWithDefault(&var, default_value);
+ ok(result == default_value, "Unexpected value %s\n", wine_dbgstr_w(result));
+
+ V_VT(&var) = VT_NULL;
+ result = VariantToStringWithDefault(&var, NULL);
+ ok(result == NULL, "Unexpected value %s\n", wine_dbgstr_w(result));
+ result = VariantToStringWithDefault(&var, default_value);
+ ok(result == default_value, "Unexpected value %s\n", wine_dbgstr_w(result));
+
+ V_VT(&var) = VT_BOOL;
+ result = VariantToStringWithDefault(&var, NULL);
+ ok(result == NULL, "Unexpected value %s\n", wine_dbgstr_w(result));
+ V_BOOL(&var) = VARIANT_TRUE;
+ result = VariantToStringWithDefault(&var, default_value);
+ ok(result == default_value, "Unexpected value %s\n", wine_dbgstr_w(result));
+
+ V_VT(&var) = VT_CY;
+ V_CY(&var).int64 = 100000;
+ result = VariantToStringWithDefault(&var, NULL);
+ ok(result == NULL, "Unexpected value %s\n", wine_dbgstr_w(result));
+ result = VariantToStringWithDefault(&var, default_value);
+ ok(result == default_value, "Unexpected value %s\n", wine_dbgstr_w(result));
+
+ V_VT(&var) = VT_DATE;
+ V_DATE(&var) = 42.0;
+ result = VariantToStringWithDefault(&var, NULL);
+ ok(result == NULL, "Unexpected value %s\n", wine_dbgstr_w(result));
+ result = VariantToStringWithDefault(&var, default_value);
+ ok(result == default_value, "Unexpected value %s\n", wine_dbgstr_w(result));
+
+ V_VT(&var) = VT_ERROR;
+ V_ERROR(&var) = DISP_E_PARAMNOTFOUND;
+ result = VariantToStringWithDefault(&var, NULL);
+ ok(result == NULL, "Unexpected value %s\n", wine_dbgstr_w(result));
+ result = VariantToStringWithDefault(&var, default_value);
+ ok(result == default_value, "Unexpected value %s\n", wine_dbgstr_w(result));
+
+ V_VT(&var) = VT_I4;
+ V_I4(&var) = 15;
+ result = VariantToStringWithDefault(&var, NULL);
+ ok(result == NULL, "Unexpected value %s\n", wine_dbgstr_w(result));
+ result = VariantToStringWithDefault(&var, default_value);
+ ok(result == default_value, "Unexpected value %s\n", wine_dbgstr_w(result));
+
+ V_VT(&var) = VT_I1;
+ V_I1(&var) = 1;
+ result = VariantToStringWithDefault(&var, NULL);
+ ok(result == NULL, "Unexpected value %s\n", wine_dbgstr_w(result));
+ result = VariantToStringWithDefault(&var, default_value);
+ ok(result == default_value, "Unexpected value %s\n", wine_dbgstr_w(result));
+
+ /* V_BSTR */
+
+ V_VT(&var) = VT_BSTR;
+ V_BSTR(&var) = NULL;
+ result = VariantToStringWithDefault(&var, default_value);
+ ok(result[0] == '\0', "Unexpected value %s\n", wine_dbgstr_w(result));
+
+ V_VT(&var) = VT_BSTR;
+ V_BSTR(&var) = SysAllocString(L"");
+ result = VariantToStringWithDefault(&var, default_value);
+ ok(result == V_BSTR(&var), "Unexpected value %s\n", wine_dbgstr_w(result));
+ VariantClear(&var);
+
+ V_VT(&var) = VT_BSTR;
+ V_BSTR(&var) = SysAllocString(L" ");
+ result = VariantToStringWithDefault(&var, default_value);
+ ok(result == V_BSTR(&var), "Unexpected value %s\n", wine_dbgstr_w(result));
+ VariantClear(&var);
+
+ V_VT(&var) = VT_BSTR;
+ V_BSTR(&var) = SysAllocString(L"test1");
+ result = VariantToStringWithDefault(&var, default_value);
+ ok(result == V_BSTR(&var), "Unexpected value %s\n", wine_dbgstr_w(result));
+ VariantClear(&var);
+
+ /* V_BSTRREF */
+
+ V_VT(&var) = VT_BYREF | VT_BSTR;
+ b = NULL;
+ V_BSTRREF(&var) = &b;
+ result = VariantToStringWithDefault(&var, default_value);
+ ok(result[0] == '\0', "Unexpected value %s\n", wine_dbgstr_w(result));
+
+ V_VT(&var) = VT_BYREF | VT_BSTR;
+ b = SysAllocString(L"");
+ V_BSTRREF(&var) = &b;
+ result = VariantToStringWithDefault(&var, default_value);
+ ok(result == b, "Unexpected value %s\n", wine_dbgstr_w(result));
+ SysFreeString(b);
+
+ V_VT(&var) = VT_BYREF | VT_BSTR;
+ b = SysAllocString(L" ");
+ V_BSTRREF(&var) = &b;
+ result = VariantToStringWithDefault(&var, default_value);
+ ok(result == b, "Unexpected value %s\n", wine_dbgstr_w(result));
+ SysFreeString(b);
+
+ V_VT(&var) = VT_BYREF | VT_BSTR;
+ b = SysAllocString(L"test1");
+ V_BSTRREF(&var) = &b;
+ result = VariantToStringWithDefault(&var, default_value);
+ ok(result == b, "Unexpected value %s\n", wine_dbgstr_w(result));
+ SysFreeString(b);
+
+ /* Nested V_BSTR */
+
+ V_VT(&var) = VT_BYREF | VT_VARIANT;
+ V_VT(&var2) = VT_BSTR;
+ V_BSTR(&var2) = NULL;
+ V_VARIANTREF(&var) = &var2;
+ result = VariantToStringWithDefault(&var, default_value);
+ ok(result[0] == '\0', "Unexpected value %s\n", wine_dbgstr_w(result));
+
+ V_VT(&var) = VT_BYREF | VT_VARIANT;
+ V_VT(&var2) = VT_BSTR;
+ V_BSTR(&var2) = SysAllocString(L"");
+ V_VARIANTREF(&var) = &var2;
+ result = VariantToStringWithDefault(&var, default_value);
+ ok(result == V_BSTR(&var2), "Unexpected value %s\n", wine_dbgstr_w(result));
+ VariantClear(&var2);
+
+ V_VT(&var) = VT_BYREF | VT_VARIANT;
+ V_VT(&var2) = VT_BSTR;
+ V_BSTR(&var2) = SysAllocString(L" ");
+ V_VARIANTREF(&var) = &var2;
+ result = VariantToStringWithDefault(&var, default_value);
+ ok(result == V_BSTR(&var2), "Unexpected value %s\n", wine_dbgstr_w(result));
+ VariantClear(&var2);
+
+ V_VT(&var) = VT_BYREF | VT_VARIANT;
+ V_VT(&var2) = VT_BSTR;
+ V_BSTR(&var2) = SysAllocString(L"test1");
+ V_VARIANTREF(&var) = &var2;
+ result = VariantToStringWithDefault(&var, default_value);
+ ok(result == V_BSTR(&var2), "Unexpected value %s\n", wine_dbgstr_w(result));
+ VariantClear(&var2);
+
+ /* Nested V_BSTRREF */
+
+ V_VT(&var) = VT_BYREF | VT_VARIANT;
+ V_VT(&var2) = VT_BYREF | VT_BSTR;
+ b = NULL;
+ V_BSTRREF(&var2) = &b;
+ V_VARIANTREF(&var) = &var2;
+ result = VariantToStringWithDefault(&var, default_value);
+ ok(result[0] == '\0', "Unexpected value %s\n", wine_dbgstr_w(result));
+
+ V_VT(&var) = VT_BYREF | VT_VARIANT;
+ V_VT(&var2) = VT_BYREF | VT_BSTR;
+ b = SysAllocString(L"");
+ V_BSTRREF(&var2) = &b;
+ V_VARIANTREF(&var) = &var2;
+ result = VariantToStringWithDefault(&var, default_value);
+ ok(result == b, "Unexpected value %s\n", wine_dbgstr_w(result));
+ SysFreeString(b);
+
+ V_VT(&var) = VT_BYREF | VT_VARIANT;
+ V_VT(&var2) = VT_BYREF | VT_BSTR;
+ b = SysAllocString(L" ");
+ V_BSTRREF(&var2) = &b;
+ V_VARIANTREF(&var) = &var2;
+ result = VariantToStringWithDefault(&var, default_value);
+ ok(result == b, "Unexpected value %s\n", wine_dbgstr_w(result));
+ SysFreeString(b);
+
+ V_VT(&var) = VT_BYREF | VT_VARIANT;
+ V_VT(&var2) = VT_BYREF | VT_BSTR;
+ b = SysAllocString(L"test1");
+ V_BSTRREF(&var2) = &b;
+ V_VARIANTREF(&var) = &var2;
+ result = VariantToStringWithDefault(&var, default_value);
+ ok(result == b, "Unexpected value %s\n", wine_dbgstr_w(result));
+ SysFreeString(b);
+}
+
START_TEST(propsys)
{
test_PSStringFromPropertyKey();
@@ -2088,4 +2274,5 @@ START_TEST(propsys)
test_propertystore();
test_PSCreatePropertyStoreFromObject();
test_InitVariantFromFileTime();
+ test_VariantToStringWithDefault();
}
More information about the wine-cvs
mailing list