diff --git a/dlls/mshtml/tests/htmldoc.c b/dlls/mshtml/tests/htmldoc.c
index 9b99c62f81f..704e9e0f2be 100644
--- a/dlls/mshtml/tests/htmldoc.c
+++ b/dlls/mshtml/tests/htmldoc.c
@@ -1255,6 +1255,53 @@ static LRESULT WINAPI wnd_proc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam
return DefWindowProc(hwnd, msg, wParam, lParam);
}
+static void test_ConnectionPoint(IConnectionPointContainer *container, REFIID riid)
+{
+ IConnectionPointContainer *tmp_container = NULL;
+ IConnectionPoint *cp;
+ IID iid;
+ HRESULT hres;
+
+ hres = IConnectionPointContainer_FindConnectionPoint(container, riid, &cp);
+ ok(hres == S_OK, "FindConnectionPoint failed: %08lx\n", hres);
+ if(FAILED(hres))
+ return;
+
+ hres = IConnectionPoint_GetConnectionInterface(cp, &iid);
+ ok(hres == S_OK, "GetConnectionInterface failed: %08lx\n", hres);
+ ok(IsEqualGUID(riid, &iid), "wrong iid\n");
+
+ hres = IConnectionPoint_GetConnectionInterface(cp, NULL);
+ ok(hres == E_POINTER, "GetConnectionInterface failed: %08lx, expected E_POINTER\n", hres);
+
+ hres = IConnectionPoint_GetConnectionPointContainer(cp, &tmp_container);
+ ok(hres == S_OK, "GetConnectionPointContainer failed: %08lx\n", hres);
+ ok(tmp_container == container, "container != tmp_container\n");
+ if(SUCCEEDED(hres))
+ IConnectionPointContainer_Release(tmp_container);
+
+ hres = IConnectionPoint_GetConnectionPointContainer(cp, NULL);
+ ok(hres == E_POINTER, "GetConnectionPointContainer failed: %08lx, expected E_POINTER\n", hres);
+
+ IConnectionPoint_Release(cp);
+}
+
+static void test_ConnectionPointContainer(IUnknown *unk)
+{
+ IConnectionPointContainer *container;
+ HRESULT hres;
+
+ hres = IUnknown_QueryInterface(unk, &IID_IConnectionPointContainer, (void**)&container);
+ ok(hres == S_OK, "QueryInterface(IID_IConnectionPointContainer) failed: %08lx\n", hres);
+ if(FAILED(hres))
+ return;
+
+ test_ConnectionPoint(container, &DIID_HTMLDocumentEvents);
+ test_ConnectionPoint(container, &DIID_HTMLDocumentEvents2);
+
+ IConnectionPointContainer_Release(container);
+}
+
static void test_Load(IPersistMoniker *persist)
{
IMoniker *mon;
@@ -1927,6 +1974,7 @@ static void test_HTMLDocument(void)
if(FAILED(hres))
return;
+ test_ConnectionPointContainer(unk);
test_Persist(unk);
if(load_state == LD_NO)
test_OnAmbientPropertyChange2(unk);