Module: wine Branch: master Commit: 9a9a1821a34d10bb3e96ce1e42a8d046133f0958 URL: https://source.winehq.org/git/wine.git/?a=commit;h=9a9a1821a34d10bb3e96ce1e4...
Author: Jacek Caban jacek@codeweavers.com Date: Fri Jan 24 19:54:57 2020 +0100
jscript/tests: Add more script enter notification tests.
Signed-off-by: Jacek Caban jacek@codeweavers.com Signed-off-by: Alexandre Julliard julliard@winehq.org
---
dlls/jscript/tests/caller.c | 26 +++++++++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-)
diff --git a/dlls/jscript/tests/caller.c b/dlls/jscript/tests/caller.c index ce74594df4..9fb59844c4 100644 --- a/dlls/jscript/tests/caller.c +++ b/dlls/jscript/tests/caller.c @@ -71,7 +71,12 @@ static const CLSID CLSID_JScript = expect_ ## func = called_ ## func = FALSE; \ }while(0)
+#define CLEAR_CALLED(func) \ + expect_ ## func = called_ ## func = FALSE + DEFINE_EXPECT(testArgConv); +DEFINE_EXPECT(OnEnterScript); +DEFINE_EXPECT(OnLeaveScript);
static IVariantChangeType *script_change_type; static IDispatch *stored_obj; @@ -92,9 +97,19 @@ static void _call_change_type(unsigned line, IVariantChangeType *change_type, VA HRESULT hres;
VariantInit(dst); + if(V_VT(src) == VT_DISPATCH && vt != VT_BOOL) { + SET_EXPECT(OnEnterScript); + SET_EXPECT(OnLeaveScript); + } hres = IVariantChangeType_ChangeType(change_type, dst, src, 0, vt); ok_(__FILE__,line)(hres == S_OK, "ChangeType(%d) failed: %08x\n", vt, hres); ok_(__FILE__,line)(V_VT(dst) == vt, "V_VT(dst) = %d\n", V_VT(dst)); + if(V_VT(src) == VT_DISPATCH && vt != VT_BOOL) { + todo_wine + CHECK_CALLED(OnEnterScript); + todo_wine + CHECK_CALLED(OnLeaveScript); + } }
#define change_type_fail(a,b,c,d) _change_type_fail(__LINE__,a,b,c,d) @@ -341,7 +356,9 @@ static HRESULT WINAPI Test_InvokeEx(IDispatchEx *iface, DISPID id, LCID lcid, WO ok(pdp->cArgs == 1, "cArgs = %d\n", pdp->cArgs); ok(V_VT(pdp->rgvarg) == VT_DISPATCH, "V_VT(rgvarg) = %d\n", V_VT(pdp->rgvarg));
+ CHECK_CALLED(OnEnterScript); test_caller(pspCaller, V_DISPATCH(pdp->rgvarg)); + SET_EXPECT(OnLeaveScript);
stored_obj = V_DISPATCH(pdp->rgvarg); IDispatch_AddRef(stored_obj); @@ -440,11 +457,13 @@ static HRESULT WINAPI ActiveScriptSite_OnScriptError(IActiveScriptSite *iface, I
static HRESULT WINAPI ActiveScriptSite_OnEnterScript(IActiveScriptSite *iface) { + CHECK_EXPECT(OnEnterScript); return E_NOTIMPL; }
static HRESULT WINAPI ActiveScriptSite_OnLeaveScript(IActiveScriptSite *iface) { + CHECK_EXPECT(OnLeaveScript); return E_NOTIMPL; }
@@ -515,6 +534,7 @@ static void run_scripts(void) hres = IActiveScriptParse_QueryInterface(parser, &IID_IVariantChangeType, (void**)&script_change_type); ok(hres == S_OK, "Could not get IVariantChangeType iface: %08x\n", hres);
+ SET_EXPECT(OnEnterScript); /* checked in callback */ SET_EXPECT(testArgConv); parse_script(parser, L"var obj = {" @@ -523,6 +543,7 @@ static void run_scripts(void) L"};" L"testArgConv(obj);"); CHECK_CALLED(testArgConv); + CHECK_CALLED(OnLeaveScript); /* set in callback */
test_change_types(script_change_type, stored_obj); IDispatch_Release(stored_obj); @@ -541,9 +562,12 @@ static BOOL check_jscript(void) if(!parser) return FALSE;
+ SET_EXPECT(OnEnterScript); + SET_EXPECT(OnLeaveScript); hres = IActiveScriptParse_ParseScriptText(parser, L"if(!('localeCompare' in String.prototype)) throw 1;", NULL, NULL, NULL, 0, 0, 0, NULL, NULL); - + CLEAR_CALLED(OnEnterScript); + CLEAR_CALLED(OnLeaveScript); if(hres == S_OK) hres = IActiveScriptParse_QueryInterface(parser, &IID_IActiveScriptProperty, (void**)&script_prop); IActiveScriptParse_Release(parser);