[PATCH 3/3] jscript/tests: added IActiveScriptError tests.

Reece Dunn msclrhd at googlemail.com
Thu Oct 7 02:29:49 CDT 2010


- Reece
-------------- next part --------------
From 553a8ee9250f57a67ddbf2737b1d6de462378bc3 Mon Sep 17 00:00:00 2001
From: Reece Dunn <msclrhd at gmail.com>
Date: Thu, 7 Oct 2010 08:22:11 +0100
Subject: [PATCH 3/3] jscript/tests: added IActiveScriptError tests.

---
 dlls/jscript/tests/run.c |   76 ++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 76 insertions(+), 0 deletions(-)

diff --git a/dlls/jscript/tests/run.c b/dlls/jscript/tests/run.c
index eefca42..55a74db 100644
--- a/dlls/jscript/tests/run.c
+++ b/dlls/jscript/tests/run.c
@@ -30,6 +30,8 @@
 static const CLSID CLSID_JScript =
     {0xf414c260,0x6ac0,0x11cf,{0xb6,0xd1,0x00,0xaa,0x00,0xbb,0xbb,0x58}};
 
+static SCODE script_scode = 0xdeadbeef;
+
 #define DEFINE_EXPECT(func) \
     static BOOL expect_ ## func = FALSE, called_ ## func = FALSE
 
@@ -662,7 +664,76 @@ static HRESULT WINAPI ActiveScriptSite_OnStateChange(IActiveScriptSite *iface, S
 
 static HRESULT WINAPI ActiveScriptSite_OnScriptError(IActiveScriptSite *iface, IActiveScriptError *pscripterror)
 {
+    HRESULT hres;
+    EXCEPINFO excep;
+    DWORD source_context;
+    ULONG line_number;
+    LONG char_position;
+
     CHECK_EXPECT(ActiveScriptSite_OnScriptError);
+    ok(pscripterror != NULL, "ActiveScriptSite_OnScriptError expected a non-NULL IActiveScriptError object\n");
+
+    /* IActiveScriptError_GetSourcePosition */
+
+    hres = IActiveScriptError_GetSourcePosition(pscripterror, NULL, NULL, NULL);
+    ok(hres == S_OK, "IActiveScriptError_GetSourcePosition -- hres: expected S_OK, got 0x%08x\n", hres);
+
+    source_context = 0xdeadbeef;
+    hres = IActiveScriptError_GetSourcePosition(pscripterror, &source_context, NULL, NULL);
+    ok(hres == S_OK, "IActiveScriptError_GetSourcePosition -- hres: expected S_OK, got 0x%08x\n", hres);
+    ok(source_context == 0, "IActiveScriptError_GetSourcePosition -- source_context: expected 0, got 0x%08x\n", source_context);
+
+    line_number = 0xdeadbeef;
+    hres = IActiveScriptError_GetSourcePosition(pscripterror, NULL, &line_number, NULL);
+    ok(hres == S_OK, "IActiveScriptError_GetSourcePosition -- hres: expected S_OK, got 0x%08x\n", hres);
+    ok(line_number != 0xdeadbeef, "IActiveScriptError_GetSourcePosition -- line_number is not set\n");
+
+    char_position = 0xdeadbeef;
+    hres = IActiveScriptError_GetSourcePosition(pscripterror, NULL, NULL, &char_position);
+    ok(hres == S_OK, "IActiveScriptError_GetSourcePosition -- hres: expected S_OK, got 0x%08x\n", hres);
+    ok(char_position != 0xdeadbeef, "IActiveScriptError_GetSourcePosition -- char_position is not set\n");
+
+    /* IActiveScriptError_GetSourceLineText */
+
+    hres = IActiveScriptError_GetSourceLineText(pscripterror, NULL);
+    ok(hres == E_POINTER, "IActiveScriptError_GetSourceLineText -- hres: expected E_POINTER, got 0x%08x\n", hres);
+
+    /* IActiveScriptError_GetExceptionInfo */
+
+    hres = IActiveScriptError_GetExceptionInfo(pscripterror, NULL);
+    ok(hres == E_POINTER, "IActiveScriptError_GetExceptionInfo -- hres: expected E_POINTER, got 0x%08x\n", hres);
+
+    excep.wCode = 0xdead;
+    excep.wReserved = 0xdead;
+    excep.bstrSource = (BSTR)0xdeadbeef;
+    excep.bstrDescription = (BSTR)0xdeadbeef;
+    excep.bstrHelpFile = (BSTR)0xdeadbeef;
+    excep.dwHelpContext = 0xdeadbeef;
+    excep.pvReserved = (void *)0xdeadbeef;
+    excep.pfnDeferredFillIn = (void *)0xdeadbeef;
+    excep.scode = 0xdeadbeef;
+
+    hres = IActiveScriptError_GetExceptionInfo(pscripterror, &excep);
+    ok(hres == S_OK, "IActiveScriptError_GetExceptionInfo -- hres: expected S_OK, got 0x%08x\n", hres);
+
+    ok(excep.wCode == 0, "IActiveScriptError_GetExceptionInfo -- excep.wCode: expected 0, got %d\n", excep.wCode);
+    ok(excep.wReserved == 0, "IActiveScriptError_GetExceptionInfo -- excep.wReserved: expected 0, got %d\n", excep.wReserved);
+    ok(excep.bstrSource != (BSTR)0xdeadbeef && excep.bstrSource != NULL,
+       "IActiveScriptError_GetExceptionInfo -- excep.bstrSource is not valid: got %p\n", excep.bstrSource);
+    ok(excep.bstrDescription != (BSTR)0xdeadbeef && excep.bstrDescription != NULL,
+       "IActiveScriptError_GetExceptionInfo -- excep.bstrDescription is not valid: got %p\n", excep.bstrDescription);
+    ok(excep.bstrHelpFile == NULL,
+       "IActiveScriptError_GetExceptionInfo -- excep.bstrHelpFile is not NULL: got %p\n", excep.bstrHelpFile);
+    ok(excep.dwHelpContext == 0, "IActiveScriptError_GetExceptionInfo -- excep.dwHelpContext: expected 0, got %d\n", excep.dwHelpContext);
+    ok(excep.pvReserved == NULL, "IActiveScriptError_GetExceptionInfo -- excep.pvReserved: expected NULL, got %p\n", excep.pvReserved);
+    ok(excep.pfnDeferredFillIn == NULL, "IActiveScriptError_GetExceptionInfo -- excep.pfnDeferredFillIn: expected NULL, got %p\n", excep.pfnDeferredFillIn);
+    ok(excep.scode == script_scode, "IActiveScriptError_GetExceptionInfo -- excep.scode: expected 0x%08x, got 0x%08x\n", script_scode, excep.scode);
+    script_scode = 0xdeadbeef;
+
+    SysFreeString(excep.bstrSource);
+    SysFreeString(excep.bstrDescription);
+    SysFreeString(excep.bstrHelpFile);
+
     return S_OK;
 }
 
@@ -1050,6 +1121,7 @@ static void run_tests(void)
     run_from_res("api.js");
 
     SET_EXPECT(ActiveScriptSite_OnScriptError);
+    script_scode = 0x800a139e;
     run_from_res("regexp.js");
     todo_wine CHECK_CALLED(ActiveScriptSite_OnScriptError);
 
@@ -1071,16 +1143,19 @@ static void run_tests(void)
     ok(hres == S_OK, "ParseScriptText failed: %08x\n", hres);
 
     SET_EXPECT(ActiveScriptSite_OnScriptError);
+    script_scode = 0x800a03ee;
     hres = parse_htmlscript_a("var a=1;\nif(a\n-->0) a=5;\n");
     todo_wine ok(hres == 0x80020101, "ParseScriptText should have returned 0x80020101, got: 0x%08x\n", hres);
     todo_wine CHECK_CALLED(ActiveScriptSite_OnScriptError);
 
     SET_EXPECT(ActiveScriptSite_OnScriptError);
+    script_scode = 0x800a03f1;
     hres = parse_script_ex_a("{");
     todo_wine ok(hres == 0x80020101, "ParseScriptText should have returned 0x80020101, got: 0x%08x\n", hres);
     todo_wine CHECK_CALLED(ActiveScriptSite_OnScriptError);
 
     SET_EXPECT(ActiveScriptSite_OnScriptError);
+    script_scode = 0x800a138f;
     hres = parse_script_ex_a("new null;");
     todo_wine ok(hres == 0x80020101, "ParseScriptText should have returned 0x80020101, got: 0x%08x\n", hres);
     todo_wine CHECK_CALLED(ActiveScriptSite_OnScriptError);
@@ -1098,6 +1173,7 @@ static BOOL check_jscript(void)
     IActiveScriptProperty_Release(script_prop);
 
     SET_EXPECT(ActiveScriptSite_OnScriptError);
+    script_scode = 0x800a03ee;
     hres = parse_script_ex_a("if(!('localeCompare' in String.prototype)) throw 1;");
     UNSET_EXPECT(ActiveScriptSite_OnScriptError);
 
-- 
1.7.0.4


More information about the wine-patches mailing list