Jacek Caban : jscript/tests: Add VT_DATE handling tests.

Alexandre Julliard julliard at winehq.org
Tue Jan 19 15:44:00 CST 2021


Module: wine
Branch: master
Commit: 859783e83b8c70e397b72594e0ce59c96803c3e6
URL:    https://source.winehq.org/git/wine.git/?a=commit;h=859783e83b8c70e397b72594e0ce59c96803c3e6

Author: Jacek Caban <jacek at codeweavers.com>
Date:   Tue Jan 19 14:33:29 2021 +0100

jscript/tests: Add VT_DATE handling tests.

Signed-off-by: Jacek Caban <jacek at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 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;




More information about the wine-cvs mailing list