Jacek Caban : jscript: Added IObjectSafety tests.
Alexandre Julliard
julliard at winehq.org
Thu Apr 10 04:39:30 CDT 2008
Module: wine
Branch: master
Commit: b9117b6166de3c8f27483ace5225f5c63975f85e
URL: http://source.winehq.org/git/wine.git/?a=commit;h=b9117b6166de3c8f27483ace5225f5c63975f85e
Author: Jacek Caban <jacek at codeweavers.com>
Date: Thu Apr 10 10:37:17 2008 +0200
jscript: Added IObjectSafety tests.
---
dlls/jscript/tests/Makefile.in | 1 +
dlls/jscript/tests/jscript.c | 64 ++++++++++++++++++++++++++++++++++++++-
2 files changed, 63 insertions(+), 2 deletions(-)
diff --git a/dlls/jscript/tests/Makefile.in b/dlls/jscript/tests/Makefile.in
index 2201a4a..d707ed5 100644
--- a/dlls/jscript/tests/Makefile.in
+++ b/dlls/jscript/tests/Makefile.in
@@ -4,6 +4,7 @@ SRCDIR = @srcdir@
VPATH = @srcdir@
TESTDLL = jscript.dll
IMPORTS = ole32 kernel32
+EXTRALIBS = -luuid
CTESTS = \
jscript.c
diff --git a/dlls/jscript/tests/jscript.c b/dlls/jscript/tests/jscript.c
index a811ef2..2fec01c 100644
--- a/dlls/jscript/tests/jscript.c
+++ b/dlls/jscript/tests/jscript.c
@@ -18,16 +18,74 @@
#define COBJMACROS
-#include <initguid.h>
-
#include <ole2.h>
#include <activscp.h>
+#include <objsafe.h>
#include "wine/test.h"
static const CLSID CLSID_JScript =
{0xf414c260,0x6ac0,0x11cf,{0xb6,0xd1,0x00,0xaa,0x00,0xbb,0xbb,0x58}};
+static void test_safety(IUnknown *unk)
+{
+ IObjectSafety *safety;
+ DWORD supported, enabled;
+ HRESULT hres;
+
+ hres = IUnknown_QueryInterface(unk, &IID_IObjectSafety, (void**)&safety);
+ ok(hres == S_OK, "Could not get IObjectSafety: %08x\n", hres);
+ if(FAILED(hres))
+ return;
+
+ hres = IObjectSafety_GetInterfaceSafetyOptions(safety, &IID_NULL, &supported, NULL);
+ ok(hres == E_POINTER, "GetInterfaceSafetyOptions failed: %08x, expected E_POINTER\n", hres);
+ hres = IObjectSafety_GetInterfaceSafetyOptions(safety, &IID_NULL, NULL, &enabled);
+ ok(hres == E_POINTER, "GetInterfaceSafetyOptions failed: %08x, expected E_POINTER\n", hres);
+
+ supported = enabled = 0xdeadbeef;
+ hres = IObjectSafety_GetInterfaceSafetyOptions(safety, &IID_NULL, &supported, &enabled);
+ ok(hres == S_OK, "GetInterfaceSafetyOptions failed: %08x\n", hres);
+ ok(supported == (INTERFACESAFE_FOR_UNTRUSTED_DATA|INTERFACE_USES_DISPEX|INTERFACE_USES_SECURITY_MANAGER),
+ "supported=%x\n", supported);
+ ok(enabled == INTERFACE_USES_DISPEX, "enabled=%x\n", enabled);
+
+ supported = enabled = 0xdeadbeef;
+ hres = IObjectSafety_GetInterfaceSafetyOptions(safety, &IID_IActiveScript, &supported, &enabled);
+ ok(hres == S_OK, "GetInterfaceSafetyOptions failed: %08x\n", hres);
+ ok(supported == (INTERFACESAFE_FOR_UNTRUSTED_DATA|INTERFACE_USES_DISPEX|INTERFACE_USES_SECURITY_MANAGER),
+ "supported=%x\n", supported);
+ ok(enabled == INTERFACE_USES_DISPEX, "enabled=%x\n", enabled);
+
+ supported = enabled = 0xdeadbeef;
+ hres = IObjectSafety_GetInterfaceSafetyOptions(safety, &IID_IActiveScriptParse, &supported, &enabled);
+ ok(hres == S_OK, "GetInterfaceSafetyOptions failed: %08x\n", hres);
+ ok(supported == (INTERFACESAFE_FOR_UNTRUSTED_DATA|INTERFACE_USES_DISPEX|INTERFACE_USES_SECURITY_MANAGER),
+ "supported=%x\n", supported);
+ ok(enabled == INTERFACE_USES_DISPEX, "enabled=%x\n", enabled);
+
+ hres = IObjectSafety_SetInterfaceSafetyOptions(safety, &IID_IActiveScriptParse,
+ INTERFACESAFE_FOR_UNTRUSTED_DATA|INTERFACE_USES_DISPEX|INTERFACE_USES_SECURITY_MANAGER
+ |INTERFACESAFE_FOR_UNTRUSTED_CALLER,
+ INTERFACESAFE_FOR_UNTRUSTED_DATA|INTERFACE_USES_DISPEX|INTERFACE_USES_SECURITY_MANAGER);
+ ok(hres == E_FAIL, "SetInterfaceSafetyOptions failed: %08x\n, expected E_FAIL", hres);
+
+ hres = IObjectSafety_SetInterfaceSafetyOptions(safety, &IID_IActiveScriptParse,
+ INTERFACESAFE_FOR_UNTRUSTED_DATA|INTERFACE_USES_DISPEX|INTERFACE_USES_SECURITY_MANAGER,
+ INTERFACESAFE_FOR_UNTRUSTED_DATA|INTERFACE_USES_DISPEX|INTERFACE_USES_SECURITY_MANAGER);
+ ok(hres == S_OK, "SetInterfaceSafetyOptions failed: %08x\n", hres);
+
+ supported = enabled = 0xdeadbeef;
+ hres = IObjectSafety_GetInterfaceSafetyOptions(safety, &IID_IActiveScriptParse, &supported, &enabled);
+ ok(hres == S_OK, "GetInterfaceSafetyOptions failed: %08x\n", hres);
+ ok(supported == (INTERFACESAFE_FOR_UNTRUSTED_DATA|INTERFACE_USES_DISPEX|INTERFACE_USES_SECURITY_MANAGER),
+ "supported=%x\n", supported);
+ ok(enabled == (INTERFACESAFE_FOR_UNTRUSTED_DATA|INTERFACE_USES_DISPEX|INTERFACE_USES_SECURITY_MANAGER),
+ "enabled=%x\n", enabled);
+
+ IObjectSafety_Release(safety);
+}
+
static void test_jscript(void)
{
IActiveScriptParse *parse;
@@ -47,6 +105,8 @@ static void test_jscript(void)
hres = IUnknown_QueryInterface(unk, &IID_IActiveScriptParse, (void**)&parse);
ok(hres == S_OK, "Could not get IActiveScriptParse: %08x\n", hres);
+ test_safety(unk);
+
IActiveScriptParse_Release(parse);
IActiveScript_Release(script);
IUnknown_Release(unk);
More information about the wine-cvs
mailing list