Dmitry Timoshkov : ole32: Add a couple more defaulthandler tests.
Alexandre Julliard
julliard at winehq.org
Thu May 30 14:51:32 CDT 2013
Module: wine
Branch: master
Commit: 748c3ea9c9b3ddf9baceccc190e366f10b4349f7
URL: http://source.winehq.org/git/wine.git/?a=commit;h=748c3ea9c9b3ddf9baceccc190e366f10b4349f7
Author: Dmitry Timoshkov <dmitry at baikal.ru>
Date: Thu May 30 17:30:12 2013 +0900
ole32: Add a couple more defaulthandler tests.
---
dlls/ole32/tests/defaulthandler.c | 28 +++++++++++++++++++++++++---
1 files changed, 25 insertions(+), 3 deletions(-)
diff --git a/dlls/ole32/tests/defaulthandler.c b/dlls/ole32/tests/defaulthandler.c
index 0196e51..67fc5e8 100644
--- a/dlls/ole32/tests/defaulthandler.c
+++ b/dlls/ole32/tests/defaulthandler.c
@@ -171,7 +171,7 @@ static ULONG WINAPI test_class_Release(IUnknown *iface)
return 1;
}
-static IUnknownVtbl test_class_vtbl = {
+static const IUnknownVtbl test_class_vtbl = {
test_class_QueryInterface,
test_class_AddRef,
test_class_Release,
@@ -231,7 +231,7 @@ static HRESULT WINAPI ClassFactory_LockServer(IClassFactory *iface, BOOL fLock)
return E_NOTIMPL;
}
-static IClassFactoryVtbl ClassFactoryVtbl = {
+static const IClassFactoryVtbl ClassFactoryVtbl = {
ClassFactory_QueryInterface,
ClassFactory_AddRef,
ClassFactory_Release,
@@ -247,6 +247,8 @@ static void test_default_handler_run(void)
IUnknown *unk;
IRunnableObject *ro;
+ IOleObject *oleobj;
+ IPersistStorage *persist;
DWORD class_reg;
HRESULT hres;
@@ -281,6 +283,14 @@ static void test_default_handler_run(void)
hres = OleCreateDefaultHandler(&test_server_clsid, NULL, &IID_IUnknown, (void**)&unk);
ok(hres == S_OK, "OleCreateDefaultHandler failed: %x\n", hres);
+ hres = IUnknown_QueryInterface(unk, &IID_IOleObject, (void**)&oleobj);
+ ok(hres == S_OK, "QueryInterface(IID_IOleObject) failed: %x\n", hres);
+
+ hres = IOleObject_QueryInterface(oleobj, &IID_IPersistStorage, (void**)&persist);
+ ok(hres == S_OK, "QueryInterface(IID_IPersistStorage) failed: %x\n", hres);
+ IPersistStorage_Release(persist);
+ IOleObject_Release(oleobj);
+
hres = IUnknown_QueryInterface(unk, &IID_IRunnableObject, (void**)&ro);
ok(hres == S_OK, "QueryInterface(IRunnableObject) failed: %x\n", hres);
IUnknown_Release(unk);
@@ -288,11 +298,23 @@ static void test_default_handler_run(void)
SET_EXPECT(CF_QueryInterface_ClassFactory);
SET_EXPECT(CF_CreateInstance);
hres = IRunnableObject_Run(ro, NULL);
- todo_wine ok(hres == S_OK, "Run failed: %x\n", hres);
+todo_wine
+ ok(hres == S_OK, "Run failed: %x\n", hres);
CHECK_CALLED(CF_QueryInterface_ClassFactory);
CHECK_CALLED(CF_CreateInstance);
IRunnableObject_Release(ro);
+ SET_EXPECT(CF_QueryInterface_ClassFactory);
+ SET_EXPECT(CF_CreateInstance);
+ hres = CoCreateInstance(&test_server_clsid, NULL, CLSCTX_LOCAL_SERVER,
+ &IID_IOleObject, (void**)&oleobj);
+todo_wine
+ ok(hres == REGDB_E_CLASSNOTREG, "expected REGDB_E_CLASSNOTREG, got %x\n", hres);
+todo_wine
+ CHECK_NOT_CALLED(CF_QueryInterface_ClassFactory);
+todo_wine
+ CHECK_NOT_CALLED(CF_CreateInstance);
+
SET_EXPECT(CF_QueryInterface_IMarshal);
CoRevokeClassObject(class_reg);
todo_wine CHECK_CALLED(CF_QueryInterface_IMarshal);
More information about the wine-cvs
mailing list