Jacek Caban : jscript: Added script types tests.

Alexandre Julliard julliard at winehq.org
Thu Sep 11 08:00:57 CDT 2008


Module: wine
Branch: master
Commit: beba0f711d0059b186dd205b0fcd09c253eac4c3
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=beba0f711d0059b186dd205b0fcd09c253eac4c3

Author: Jacek Caban <jacek at codeweavers.com>
Date:   Wed Sep 10 21:12:19 2008 +0200

jscript: Added script types tests.

---

 dlls/jscript/tests/lang.js |    8 +++++++
 dlls/jscript/tests/run.c   |   46 ++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 54 insertions(+), 0 deletions(-)

diff --git a/dlls/jscript/tests/lang.js b/dlls/jscript/tests/lang.js
index 7096401..b58e0f8 100644
--- a/dlls/jscript/tests/lang.js
+++ b/dlls/jscript/tests/lang.js
@@ -153,4 +153,12 @@ ok(blockVar === 2, "blockVar !== 2");
 ok((true ? 1 : 2) === 1, "conditional expression true is not 1");
 ok((0 === 2 ? 1 : 2) === 2, "conditional expression true is not 2");
 
+ok(getVT(undefined) === "VT_EMPTY", "getVT(undefined) is not VT_EMPTY");
+ok(getVT(null) === "VT_NULL", "getVT(null) is not VT_NULL");
+ok(getVT(0) === "VT_I4", "getVT(0) is not VT_I4");
+ok(getVT(0.5) === "VT_R8", "getVT(1.5) is not VT_R8");
+ok(getVT("test") === "VT_BSTR", "getVT(\"test\") is not VT_BSTR");
+ok(getVT(Math) === "VT_DISPATCH", "getVT(Math) is not VT_DISPATCH");
+ok(getVT(false) === "VT_BOOL", "getVT(false) is not VT_BOOL");
+
 reportSuccess();
diff --git a/dlls/jscript/tests/run.c b/dlls/jscript/tests/run.c
index 46e3387..bb8b47f 100644
--- a/dlls/jscript/tests/run.c
+++ b/dlls/jscript/tests/run.c
@@ -69,6 +69,7 @@ DEFINE_EXPECT(global_success_i);
 #define DISPID_GLOBAL_REPORTSUCCESS 0x1002
 #define DISPID_GLOBAL_TRACE         0x1003
 #define DISPID_GLOBAL_OK            0x1004
+#define DISPID_GLOBAL_GETVT         0x1005
 
 static const WCHAR testW[] = {'t','e','s','t',0};
 
@@ -224,6 +225,11 @@ static HRESULT WINAPI Global_GetDispID(IDispatchEx *iface, BSTR bstrName, DWORD
         *pid = DISPID_GLOBAL_TESTPROPPUT;
         return S_OK;
     }
+    if(!strcmp_wa(bstrName, "getVT")) {
+        ok(grfdex == fdexNameCaseSensitive, "grfdex = %x\n", grfdex);
+        *pid = DISPID_GLOBAL_GETVT;
+        return S_OK;
+    }
 
     if(strict_dispid_check)
         ok(0, "unexpected call %s\n", debugstr_w(bstrName));
@@ -312,6 +318,46 @@ static HRESULT WINAPI Global_InvokeEx(IDispatchEx *iface, DISPID id, LCID lcid,
         ok(V_VT(pdp->rgvarg) == VT_I4, "V_VT(pdp->rgvarg)=%d\n", V_VT(pdp->rgvarg));
         ok(V_I4(pdp->rgvarg) == 1, "V_I4(pdp->rgvarg)=%d\n", V_I4(pdp->rgvarg));
         return S_OK;
+
+     case DISPID_GLOBAL_GETVT:
+        ok(pdp != NULL, "pdp == NULL\n");
+        ok(pdp->rgvarg != NULL, "rgvarg == NULL\n");
+        ok(!pdp->rgdispidNamedArgs, "rgdispidNamedArgs != NULL\n");
+        ok(pdp->cArgs == 1, "cArgs = %d\n", pdp->cArgs);
+        ok(!pdp->cNamedArgs, "cNamedArgs = %d\n", pdp->cNamedArgs);
+        ok(pvarRes != NULL, "pvarRes == NULL\n");
+        ok(V_VT(pvarRes) ==  VT_EMPTY, "V_VT(pvarRes) = %d\n", V_VT(pvarRes));
+        ok(pei != NULL, "pei == NULL\n");
+
+        V_VT(pvarRes) = VT_BSTR;
+        switch(V_VT(pdp->rgvarg)) {
+        case VT_EMPTY:
+            V_BSTR(pvarRes) = a2bstr("VT_EMPTY");
+            break;
+        case VT_NULL:
+            V_BSTR(pvarRes) = a2bstr("VT_NULL");
+            break;
+        case VT_I4:
+            V_BSTR(pvarRes) = a2bstr("VT_I4");
+            break;
+        case VT_R8:
+            V_BSTR(pvarRes) = a2bstr("VT_R8");
+            break;
+        case VT_BSTR:
+            V_BSTR(pvarRes) = a2bstr("VT_BSTR");
+            break;
+        case VT_DISPATCH:
+            V_BSTR(pvarRes) = a2bstr("VT_DISPATCH");
+            break;
+        case VT_BOOL:
+            V_BSTR(pvarRes) = a2bstr("VT_BOOL");
+            break;
+        default:
+            ok(0, "unknown vt %d\n", V_VT(pdp->rgvarg));
+            return E_FAIL;
+        }
+
+        return S_OK;
      }
 
     ok(0, "unexpected call %x\n", id);




More information about the wine-cvs mailing list