Piotr Caban : mshtml/tests: Added IHTMLAttributeCollection IDispatchEx tests.

Alexandre Julliard julliard at winehq.org
Fri Sep 2 13:13:39 CDT 2011


Module: wine
Branch: master
Commit: 48e2f9426cb09957e06bc4281dc0e9ce55a6468d
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=48e2f9426cb09957e06bc4281dc0e9ce55a6468d

Author: Piotr Caban <piotr at codeweavers.com>
Date:   Fri Sep  2 14:17:58 2011 +0200

mshtml/tests: Added IHTMLAttributeCollection IDispatchEx tests.

---

 dlls/mshtml/tests/dom.c |   50 +++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 50 insertions(+), 0 deletions(-)

diff --git a/dlls/mshtml/tests/dom.c b/dlls/mshtml/tests/dom.c
index 959bfe3..ab9e8b5 100644
--- a/dlls/mshtml/tests/dom.c
+++ b/dlls/mshtml/tests/dom.c
@@ -2413,6 +2413,54 @@ static void test_dynamic_properties(IHTMLElement *elem)
     SysFreeString(attr1);
 }
 
+static void test_attr_collection_disp(IDispatch *disp)
+{
+    IDispatchEx *dispex;
+    IHTMLDOMAttribute *attr;
+    DISPPARAMS dp = {NULL, NULL, 0, 0};
+    VARIANT var;
+    EXCEPINFO ei;
+    DISPID id;
+    BSTR bstr;
+    HRESULT hres;
+
+    hres = IDispatch_QueryInterface(disp, &IID_IDispatchEx, (void**)&dispex);
+    ok(hres == S_OK, "QueryInterface failed: %08x\n", hres);
+
+    bstr = a2bstr("0");
+    hres = IDispatchEx_GetDispID(dispex, bstr, fdexNameCaseSensitive, &id);
+    ok(hres == S_OK, "GetDispID failed: %08x\n", hres);
+    SysFreeString(bstr);
+
+    VariantInit(&var);
+    hres = IDispatchEx_InvokeEx(dispex, id, LOCALE_NEUTRAL, INVOKE_PROPERTYGET, &dp, &var, &ei, NULL);
+    ok(hres == S_OK, "InvokeEx failed: %08x\n", hres);
+    ok(V_VT(&var) == VT_DISPATCH, "V_VT(var)=%d\n", V_VT(&var));
+    ok(V_DISPATCH(&var) != NULL, "V_DISPATCH(var) == NULL\n");
+    VariantClear(&var);
+
+    bstr = a2bstr("attr1");
+    hres = IDispatchEx_GetDispID(dispex, bstr, fdexNameCaseSensitive, &id);
+    ok(hres == S_OK, "GetDispID failed: %08x\n", hres);
+    SysFreeString(bstr);
+
+    VariantInit(&var);
+    hres = IDispatchEx_InvokeEx(dispex, id, LOCALE_NEUTRAL, INVOKE_PROPERTYGET, &dp, &var, &ei, NULL);
+    ok(hres == S_OK, "InvokeEx failed: %08x\n", hres);
+    ok(V_VT(&var) == VT_DISPATCH, "V_VT(var)=%d\n", V_VT(&var));
+    ok(V_DISPATCH(&var) != NULL, "V_DISPATCH(var) == NULL\n");
+    hres = IDispatch_QueryInterface(V_DISPATCH(&var), &IID_IHTMLDOMAttribute, (void**)&attr);
+    ok(hres == S_OK, "QueryInterface failed: %08x\n", hres);
+    hres = IHTMLDOMAttribute_get_nodeName(attr, &bstr);
+    ok(hres == S_OK, "get_nodeName failed: %08x\n", hres);
+    ok(!strcmp_wa(bstr, "attr1"), "node name is %s, expected attr1\n", wine_dbgstr_w(bstr));
+    SysFreeString(bstr);
+    IHTMLDOMAttribute_Release(attr);
+    VariantClear(&var);
+
+    IDispatchEx_Release(dispex);
+}
+
 static void test_attr_collection(IHTMLElement *elem)
 {
     static const WCHAR testW[] = {'t','e','s','t',0};
@@ -2516,6 +2564,8 @@ static void test_attr_collection(IHTMLElement *elem)
     ok(hres == E_INVALIDARG, "item failed: %08x\n", hres);
     VariantClear(&id);
 
+    test_attr_collection_disp(disp);
+
     IDispatch_Release(disp);
     IHTMLAttributeCollection_Release(attr_col);
 }




More information about the wine-cvs mailing list