Jacek Caban : mshtml: Added IHTMLDOMChildrenCollection:: get__newEnum tests.
Alexandre Julliard
julliard at winehq.org
Tue Apr 22 13:23:20 CDT 2014
Module: wine
Branch: master
Commit: 12dc23db7269a0bea76958373393520ff0c1fe85
URL: http://source.winehq.org/git/wine.git/?a=commit;h=12dc23db7269a0bea76958373393520ff0c1fe85
Author: Jacek Caban <jacek at codeweavers.com>
Date: Tue Apr 22 16:23:35 2014 +0200
mshtml: Added IHTMLDOMChildrenCollection::get__newEnum tests.
---
dlls/mshtml/tests/dom.c | 56 +++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 56 insertions(+)
diff --git a/dlls/mshtml/tests/dom.c b/dlls/mshtml/tests/dom.c
index 3a6380a..2ab701e 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<len; i++) {
+ fetched = 0;
+ V_VT(&v) = VT_ERROR;
+ hres = IEnumVARIANT_Next(enum_var, 1, &v, i ? &fetched : NULL);
+ ok(hres == S_OK, "Next failed: %08x\n", hres);
+ if(i)
+ ok(fetched == 1, "fetched = %d\n", fetched);
+ ok(V_VT(&v) == VT_DISPATCH && V_DISPATCH(&v), "V_VT(v) = %d\n", V_VT(&v));
+ IDispatch_Release(V_DISPATCH(&v));
+ }
+
+ fetched = 0xdeadbeef;
+ V_VT(&v) = VT_BOOL;
+ hres = IEnumVARIANT_Next(enum_var, 1, &v, &fetched);
+ ok(hres == S_FALSE, "Next returned %08x, expected S_FALSE\n", hres);
+ ok(fetched == 0, "fetched = %d\n", fetched);
+ ok(V_VT(&v) == VT_BOOL, "V_VT(v) = %d\n", V_VT(&v));
+ hres = IEnumVARIANT_Reset(enum_var);
+ ok(hres == S_OK, "Reset failed: %08x\n", hres);
+
+ fetched = 0xdeadbeef;
+ V_VT(&v) = VT_BOOL;
+ hres = IEnumVARIANT_Next(enum_var, 0, &v, &fetched);
+ ok(hres == S_OK, "Next returned %08x, expected S_FALSE\n", hres);
+ ok(fetched == 0, "fetched = %d\n", fetched);
+ ok(V_VT(&v) == VT_BOOL, "V_VT(v) = %d\n", V_VT(&v));
+
+ hres = IEnumVARIANT_Skip(enum_var, len > 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);
}
More information about the wine-cvs
mailing list