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); }