[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