diff --git a/dlls/mshtml/tests/dom.c b/dlls/mshtml/tests/dom.c
index 3a6380acc25..2ab701e9efa 100644
--- a/dlls/mshtml/tests/dom.c
+++ b/dlls/mshtml/tests/dom.c
@@ -6242,7 +6242,55 @@ static void test_child_col_disp(IHTMLDOMChildrenCollection *col)
IDispatchEx_Release(dispex);
}
+static void test_enum_children(IUnknown *unk, unsigned len)
+{
+ IEnumVARIANT *enum_var;
+ ULONG i, fetched;
+ VARIANT v;
+ HRESULT hres;
+ hres = IUnknown_QueryInterface(unk, &IID_IEnumVARIANT, (void**)&enum_var);
+ ok(hres == S_OK, "Could not get IEnumVARIANT iface: %08x\n", hres);
+
+ for(i=0; i 2 ? len-2 : 0);
+ ok(hres == S_OK, "Skip failed: %08x\n", hres);
+
+ hres = IEnumVARIANT_Reset(enum_var);
+ ok(hres == S_OK, "Reset failed: %08x\n", hres);
+
+ hres = IEnumVARIANT_Skip(enum_var, len+1);
+ ok(hres == S_FALSE, "Skip failed: %08x\n", hres);
+
+ IEnumVARIANT_Release(enum_var);
+}
static void test_elems(IHTMLDocument2 *doc)
{
@@ -6702,6 +6750,7 @@ static void test_elems(IHTMLDocument2 *doc)
child_col = get_child_nodes((IUnknown*)elem);
ok(child_col != NULL, "child_coll == NULL\n");
if(child_col) {
+ IUnknown *enum_unk;
LONG length = 0;
test_disp((IUnknown*)child_col, &DIID_DispDOMChildrenCollection, "[object]");
@@ -6753,6 +6802,13 @@ static void test_elems(IHTMLDocument2 *doc)
test_child_col_disp(child_col);
+ hres = IHTMLDOMChildrenCollection_get__newEnum(child_col, &enum_unk);
+ ok(hres == S_OK, "get__newEnum failed: %08x\n", hres);
+
+ test_enum_children(enum_unk, length);
+
+ IUnknown_Release(enum_unk);
+
IHTMLDOMChildrenCollection_Release(child_col);
}