From 859783e83b8c70e397b72594e0ce59c96803c3e6 Mon Sep 17 00:00:00 2001 From: Jacek Caban Date: Tue, 19 Jan 2021 14:33:29 +0100 Subject: [PATCH] jscript/tests: Add VT_DATE handling tests. Signed-off-by: Jacek Caban Signed-off-by: Alexandre Julliard --- dlls/jscript/tests/lang.js | 9 +++++++++ dlls/jscript/tests/run.c | 29 +++++++++++++++++++++++++++++ 2 files changed, 38 insertions(+) diff --git a/dlls/jscript/tests/lang.js b/dlls/jscript/tests/lang.js index be0d0d2fa10..dfe33f2f615 100644 --- a/dlls/jscript/tests/lang.js +++ b/dlls/jscript/tests/lang.js @@ -190,6 +190,15 @@ ok(testFunc1.arguments === null, "testFunc1.arguments = " + testFunc1.arguments) (tmp) = 3; ok(tmp === 3, "tmp = " + tmp); +(function() { + /* VT_DATE handling */ + var d, e; + ok(getVT(v_date(0)) === "VT_DATE", "vt v_date(0) = " + getVT(v_date(0))); + d = v_date(0); + e = Date.parse("Sat Dec 30 00:00:00 1899"); + ok(getVT(d) === "VT_DATE", "vt v_date(0) = " + getVT(d)); +})(); + function testRecFunc(x) { ok(testRecFunc.arguments === arguments, "testRecFunc.arguments = " + testRecFunc.arguments); if(x) { diff --git a/dlls/jscript/tests/run.c b/dlls/jscript/tests/run.c index 1deb460f715..7837d5fee4d 100644 --- a/dlls/jscript/tests/run.c +++ b/dlls/jscript/tests/run.c @@ -166,6 +166,7 @@ DEFINE_EXPECT(BindHandler); #define DISPID_GLOBAL_PROPARGPUTOP 0x1020 #define DISPID_GLOBAL_THROWINT 0x1021 #define DISPID_GLOBAL_THROWEI 0x1022 +#define DISPID_GLOBAL_VDATE 0x1023 #define DISPID_GLOBAL_TESTPROPDELETE 0x2000 #define DISPID_GLOBAL_TESTNOPROPDELETE 0x2001 @@ -966,6 +967,11 @@ static HRESULT WINAPI Global_GetDispID(IDispatchEx *iface, BSTR bstrName, DWORD return S_OK; } + if(!lstrcmpW(bstrName, L"v_date")) { + *pid = DISPID_GLOBAL_VDATE; + return S_OK; + } + if(!lstrcmpW(bstrName, L"testArgTypes")) { *pid = DISPID_GLOBAL_TESTARGTYPES; return S_OK; @@ -1161,6 +1167,9 @@ static HRESULT WINAPI Global_InvokeEx(IDispatchEx *iface, DISPID id, LCID lcid, case VT_ARRAY|VT_VARIANT: V_BSTR(pvarRes) = SysAllocString(L"VT_ARRAY|VT_VARIANT"); break; + case VT_DATE: + V_BSTR(pvarRes) = SysAllocString(L"VT_DATE"); + break; default: ok(0, "unknown vt %d\n", V_VT(pdp->rgvarg)); return E_FAIL; @@ -1507,6 +1516,26 @@ static HRESULT WINAPI Global_InvokeEx(IDispatchEx *iface, DISPID id, LCID lcid, V_I2(pvarRes) = 10; return S_OK; + case DISPID_GLOBAL_VDATE: + ok(wFlags == (DISPATCH_METHOD|DISPATCH_PROPERTYGET), "wFlags = %x\n", wFlags); + ok(pdp != NULL, "pdp == NULL\n"); + ok(pdp->cArgs == 1, "cArgs = %d\n", pdp->cArgs); + ok(pvarRes != NULL, "pvarRes != NULL\n"); + V_VT(pvarRes) = VT_DATE; + switch(V_VT(pdp->rgvarg)) + { + case VT_I4: + V_DATE(pvarRes) = V_I4(pdp->rgvarg); + break; + case VT_R8: + V_DATE(pvarRes) = V_R8(pdp->rgvarg); + break; + default: + ok(0, "vt = %u\n", V_VT(pdp->rgvarg)); + return E_INVALIDARG; + } + return S_OK; + case DISPID_GLOBAL_INTPROP: V_VT(pvarRes) = VT_INT; V_INT(pvarRes) = 22;