From c706bba6a83d75d39ffb7202819cbe6dc023cfdb Mon Sep 17 00:00:00 2001 From: Jacek Caban Date: Mon, 6 Dec 2010 18:48:42 +0100 Subject: [PATCH] mshtml: Added QuickActivate tests. --- dlls/mshtml/tests/activex.c | 84 +++++++++++++++++++++++++++++++++++++ 1 file changed, 84 insertions(+) diff --git a/dlls/mshtml/tests/activex.c b/dlls/mshtml/tests/activex.c index d62291af14..dc3d903ffe 100644 --- a/dlls/mshtml/tests/activex.c +++ b/dlls/mshtml/tests/activex.c @@ -59,6 +59,7 @@ DEFINE_EXPECT(CreateInstance); DEFINE_EXPECT(FreezeEvents_TRUE); DEFINE_EXPECT(FreezeEvents_FALSE); +DEFINE_EXPECT(QuickActivate); static HWND container_hwnd; @@ -142,6 +143,82 @@ static const IOleControlVtbl OleControlVtbl = { static IOleControl OleControl = { &OleControlVtbl }; +static HRESULT WINAPI QuickActivate_QueryInterface(IQuickActivate *iface, REFIID riid, void **ppv) +{ + return ax_qi(riid, ppv); +} + +static ULONG WINAPI QuickActivate_AddRef(IQuickActivate *iface) +{ + return 2; +} + +static ULONG WINAPI QuickActivate_Release(IQuickActivate *iface) +{ + return 1; +} + +static HRESULT WINAPI QuickActivate_QuickActivate(IQuickActivate *iface, QACONTAINER *container, QACONTROL *control) +{ + CHECK_EXPECT(QuickActivate); + + ok(container != NULL, "container == NULL\n"); + ok(container->cbSize == sizeof(*container), "container->cbSize = %d\n", container->cbSize); + ok(container->pClientSite != NULL, "container->pClientSite == NULL\n"); + todo_wine + ok(container->pAdviseSink != NULL, "container->pAdviseSink == NULL\n"); + todo_wine + ok(container->pPropertyNotifySink != NULL, "container->pPropertyNotifySink == NULL\n"); + ok(!container->pUnkEventSink, "container->pUnkEventSink != NULL\n"); + ok(container->dwAmbientFlags == (QACONTAINER_SUPPORTSMNEMONICS|QACONTAINER_MESSAGEREFLECT|QACONTAINER_USERMODE), + "container->dwAmbientFlags = %x\n", container->dwAmbientFlags); + ok(!container->colorFore, "container->colorFore == 0\n"); /* FIXME */ + todo_wine + ok(container->colorBack, "container->colorBack == 0\n"); /* FIXME */ + todo_wine + ok(container->pFont != NULL, "container->pFont == NULL\n"); + todo_wine + ok(container->pUndoMgr != NULL, "container->pUndoMgr == NULL\n"); + ok(!container->dwAppearance, "container->dwAppearance = %x\n", container->dwAppearance); + ok(!container->lcid, "container->lcid = %x\n", container->lcid); + ok(!container->hpal, "container->hpal = %p\n", container->hpal); + ok(!container->pBindHost, "container->pBindHost != NULL\n"); + ok(!container->pOleControlSite, "container->pOleControlSite != NULL\n"); + ok(!container->pServiceProvider, "container->pServiceProvider != NULL\n"); + + ok(control->cbSize == sizeof(*control), "control->cbSize = %d\n", control->cbSize); + ok(!control->dwMiscStatus, "control->dwMiscStatus = %x\n", control->dwMiscStatus); + ok(!control->dwViewStatus, "control->dwViewStatus = %x\n", control->dwViewStatus); + ok(!control->dwEventCookie, "control->dwEventCookie = %x\n", control->dwEventCookie); + ok(!control->dwPropNotifyCookie, "control->dwPropNotifyCookie = %x\n", control->dwPropNotifyCookie); + ok(!control->dwPointerActivationPolicy, "control->dwPointerActivationPolicy = %x\n", control->dwPointerActivationPolicy); + + return S_OK; +} + +static HRESULT WINAPI QuickActivate_SetContentExtent(IQuickActivate *iface, LPSIZEL pSizel) +{ + ok(0, "unexpected call\n"); + return E_NOTIMPL; +} + +static HRESULT WINAPI QuickActivate_GetContentExtent(IQuickActivate *iface, LPSIZEL pSizel) +{ + ok(0, "unexpected call\n"); + return E_NOTIMPL; +} + +static const IQuickActivateVtbl QuickActivateVtbl = { + QuickActivate_QueryInterface, + QuickActivate_AddRef, + QuickActivate_Release, + QuickActivate_QuickActivate, + QuickActivate_GetContentExtent, + QuickActivate_SetContentExtent +}; + +static IQuickActivate QuickActivate = { &QuickActivateVtbl }; + static HRESULT ax_qi(REFIID riid, void **ppv) { if(IsEqualGUID(riid, &IID_IUnknown) || IsEqualGUID(riid, &IID_IOleControl)) { @@ -149,6 +226,11 @@ static HRESULT ax_qi(REFIID riid, void **ppv) return S_OK; } + if(IsEqualGUID(riid, &IID_IQuickActivate)) { + *ppv = &QuickActivate; + return S_OK; + } + *ppv = NULL; return E_NOINTERFACE; } @@ -769,6 +851,7 @@ static void test_object_ax(void) */ SET_EXPECT(CreateInstance); SET_EXPECT(FreezeEvents_TRUE); + SET_EXPECT(QuickActivate); SET_EXPECT(FreezeEvents_FALSE); doc = create_doc(object_ax_str, &called_CreateInstance); @@ -776,6 +859,7 @@ static void test_object_ax(void) CHECK_CALLED(CreateInstance); todo_wine CHECK_CALLED(FreezeEvents_TRUE); + CHECK_CALLED(QuickActivate); todo_wine CHECK_CALLED(FreezeEvents_FALSE);