Module: wine Branch: master Commit: cc88c5a3312a5de11e7eb618a0570865397bf694 URL: http://source.winehq.org/git/wine.git/?a=commit;h=cc88c5a3312a5de11e7eb618a0...
Author: Jacek Caban jacek@codeweavers.com Date: Fri Dec 10 16:35:59 2010 +0100
mshtml: Added IPersistPropertyBag calls test.
---
dlls/mshtml/tests/activex.c | 84 +++++++++++++++++++++++++++++++++++-------- 1 files changed, 69 insertions(+), 15 deletions(-)
diff --git a/dlls/mshtml/tests/activex.c b/dlls/mshtml/tests/activex.c index 9984ae0..8e46a25 100644 --- a/dlls/mshtml/tests/activex.c +++ b/dlls/mshtml/tests/activex.c @@ -60,6 +60,8 @@ DEFINE_EXPECT(CreateInstance); DEFINE_EXPECT(FreezeEvents_TRUE); DEFINE_EXPECT(FreezeEvents_FALSE); DEFINE_EXPECT(QuickActivate); +DEFINE_EXPECT(IPersistPropertyBag_InitNew); +DEFINE_EXPECT(IPersistPropertyBag_Load);
static HWND container_hwnd;
@@ -68,18 +70,6 @@ static HWND container_hwnd; static const GUID CLSID_TestActiveX = {0x178fc163,0xf585,0x4e24,{0x9c,0x13,0x4b,0xb7,0xf6,0x68,0x07,0x46}};
-static const char *debugstr_guid(REFIID riid) -{ - static char buf[50]; - - sprintf(buf, "{%08X-%04X-%04X-%02X%02X-%02X%02X%02X%02X%02X%02X}", - riid->Data1, riid->Data2, riid->Data3, riid->Data4[0], - riid->Data4[1], riid->Data4[2], riid->Data4[3], riid->Data4[4], - riid->Data4[5], riid->Data4[6], riid->Data4[7]); - - return buf; -} - static const char object_ax_str[] = "<html><head></head><body>" "<object classid="clsid:" TESTACTIVEX_CLSID "" width="300" height="200" id="objid">" @@ -102,7 +92,7 @@ static const REFIID pluginhost_iids[] = { NULL };
-static const char *dbgstr_guid(REFIID riid) +static const char *debugstr_guid(REFIID riid) { static char buf[50];
@@ -138,7 +128,7 @@ static void _test_ifaces(unsigned line, IUnknown *iface, REFIID *iids)
for(piid = iids; *piid; piid++) { hres = IDispatch_QueryInterface(iface, *piid, (void**)&unk); - ok_(__FILE__,line) (hres == S_OK, "Could not get %s interface: %08x\n", dbgstr_guid(*piid), hres); + ok_(__FILE__,line) (hres == S_OK, "Could not get %s interface: %08x\n", debugstr_guid(*piid), hres); if(SUCCEEDED(hres)) IUnknown_Release(unk); } @@ -280,6 +270,62 @@ static const IQuickActivateVtbl QuickActivateVtbl = {
static IQuickActivate QuickActivate = { &QuickActivateVtbl };
+static HRESULT WINAPI PersistPropertyBag_QueryInterface(IPersistPropertyBag *iface, REFIID riid, void **ppv) +{ + return ax_qi(riid, ppv); +} + +static ULONG WINAPI PersistPropertyBag_AddRef(IPersistPropertyBag *iface) +{ + return 2; +} + +static ULONG WINAPI PersistPropertyBag_Release(IPersistPropertyBag *iface) +{ + return 1; +} + +static HRESULT WINAPI PersistPropertyBag_GetClassID(IPersistPropertyBag *face, CLSID *pClassID) +{ + ok(0, "unexpected call\n"); + return E_NOTIMPL; +} + +static HRESULT WINAPI PersistPropertyBag_InitNew(IPersistPropertyBag *face) +{ + CHECK_EXPECT(IPersistPropertyBag_InitNew); + return S_OK; +} + +static HRESULT WINAPI PersistPropertyBag_Load(IPersistPropertyBag *face, IPropertyBag *pPropBag, IErrorLog *pErrorLog) +{ + CHECK_EXPECT(IPersistPropertyBag_Load); + + ok(pPropBag != NULL, "pPropBag == NULL\n"); + ok(!pErrorLog, "pErrorLog != NULL\n"); + + return S_OK; +} + +static HRESULT WINAPI PersistPropertyBag_Save(IPersistPropertyBag *face, IPropertyBag *pPropBag, BOOL fClearDisrty, BOOL fSaveAllProperties) +{ + ok(0, "unexpected call\n"); + return E_NOTIMPL; +} + +static const IPersistPropertyBagVtbl PersistPropertyBagVtbl = { + PersistPropertyBag_QueryInterface, + PersistPropertyBag_AddRef, + PersistPropertyBag_Release, + PersistPropertyBag_GetClassID, + PersistPropertyBag_InitNew, + PersistPropertyBag_Load, + PersistPropertyBag_Save + +}; + +static IPersistPropertyBag PersistPropertyBag = { &PersistPropertyBagVtbl }; + static HRESULT ax_qi(REFIID riid, void **ppv) { if(IsEqualGUID(riid, &IID_IUnknown) || IsEqualGUID(riid, &IID_IOleControl)) { @@ -292,6 +338,11 @@ static HRESULT ax_qi(REFIID riid, void **ppv) return S_OK; }
+ if(IsEqualGUID(riid, &IID_IPersistPropertyBag)) { + *ppv = &PersistPropertyBag; + return S_OK; + } + *ppv = NULL; return E_NOINTERFACE; } @@ -351,6 +402,8 @@ static const IClassFactoryVtbl ClassFactoryVtbl = { ClassFactory_LockServer };
+static IClassFactory activex_cf = { &ClassFactoryVtbl }; + static HRESULT cs_qi(REFIID,void **); static IOleDocumentView *view;
@@ -726,7 +779,6 @@ static HRESULT cs_qi(REFIID riid, void **ppv) return *ppv ? S_OK : E_NOINTERFACE; }
-static IClassFactory activex_cf = { &ClassFactoryVtbl }; static IHTMLDocument2 *notif_doc; static BOOL doc_complete;
@@ -914,6 +966,7 @@ static void test_object_ax(void) SET_EXPECT(FreezeEvents_TRUE); SET_EXPECT(QuickActivate); SET_EXPECT(FreezeEvents_FALSE); + SET_EXPECT(IPersistPropertyBag_Load);
doc = create_doc(object_ax_str, &called_CreateInstance);
@@ -923,6 +976,7 @@ static void test_object_ax(void) CHECK_CALLED(QuickActivate); todo_wine CHECK_CALLED(FreezeEvents_FALSE); + CHECK_CALLED(IPersistPropertyBag_Load);
release_doc(doc); }