Jacek Caban : mshtml: Added IHTMLElement2::getElementsByTagName tests.

Alexandre Julliard julliard at winehq.org
Mon Jul 14 05:56:54 CDT 2008


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

Author: Jacek Caban <jacek at codeweavers.com>
Date:   Fri Jul 11 23:45:22 2008 +0200

mshtml: Added IHTMLElement2::getElementsByTagName tests.

---

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

diff --git a/dlls/mshtml/tests/dom.c b/dlls/mshtml/tests/dom.c
index 4540ed4..2c25870 100644
--- a/dlls/mshtml/tests/dom.c
+++ b/dlls/mshtml/tests/dom.c
@@ -841,7 +841,7 @@ static void _test_elem_collection(unsigned line, IUnknown *unk,
     HRESULT hres;
 
     hres = IUnknown_QueryInterface(unk, &IID_IHTMLElementCollection, (void**)&col);
-    ok(hres == S_OK, "Could not get IHTMLElementCollection: %08x\n", hres);
+    ok_(__FILE__,line) (hres == S_OK, "Could not get IHTMLElementCollection: %08x\n", hres);
 
     test_disp((IUnknown*)col, &DIID_DispHTMLElementCollection);
 
@@ -883,6 +883,34 @@ static void _test_elem_collection(unsigned line, IUnknown *unk,
     IHTMLElementCollection_Release(col);
 }
 
+#define test_elem_getelembytag(u,t,l) _test_elem_getelembytag(__LINE__,u,t,l)
+static void _test_elem_getelembytag(unsigned line, IUnknown *unk, elem_type_t type, long exlen)
+{
+    IHTMLElement2 *elem = _get_elem2_iface(line, unk);
+    IHTMLElementCollection *col = NULL;
+    elem_type_t *types = NULL;
+    BSTR tmp;
+    int i;
+    HRESULT hres;
+
+    tmp = a2bstr(elem_type_infos[type].tag);
+    hres = IHTMLElement2_getElementsByTagName(elem, tmp, &col);
+    SysFreeString(tmp);
+    IHTMLElement2_Release(elem);
+    ok_(__FILE__,line) (hres == S_OK, "getElementByTagName failed: %08x\n", hres);
+    ok_(__FILE__,line) (col != NULL, "col == NULL\n");
+
+    if(exlen) {
+        types = HeapAlloc(GetProcessHeap(), 0, exlen*sizeof(elem_type_t));
+        for(i=0; i<exlen; i++)
+            types[i] = type;
+    }
+
+    _test_elem_collection(line, (IUnknown*)col, types, exlen);
+
+    HeapFree(GetProcessHeap(), 0, types);
+}
+
 #define get_first_child(n) _get_first_child(__LINE__,n)
 static IHTMLDOMNode *_get_first_child(unsigned line, IUnknown *unk)
 {
@@ -2146,6 +2174,10 @@ static void test_elems(IHTMLDocument2 *doc)
         IHTMLDOMNode_Release(node);
         ok(node2 == NULL, "node != NULL\n");
 
+        test_elem_getelembytag((IUnknown*)elem, ET_OPTION, 2);
+        test_elem_getelembytag((IUnknown*)elem, ET_SELECT, 0);
+        test_elem_getelembytag((IUnknown*)elem, ET_HTML, 0);
+
         IHTMLElement_Release(elem);
     }
 




More information about the wine-cvs mailing list