Jacek Caban : mshtml: Added createElement test.

Alexandre Julliard julliard at winehq.org
Fri Jun 20 06:22:04 CDT 2008


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

Author: Jacek Caban <jacek at codeweavers.com>
Date:   Thu Jun 19 16:16:25 2008 -0500

mshtml: Added createElement test.

---

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

diff --git a/dlls/mshtml/tests/dom.c b/dlls/mshtml/tests/dom.c
index 8bc3861..8611a41 100644
--- a/dlls/mshtml/tests/dom.c
+++ b/dlls/mshtml/tests/dom.c
@@ -82,6 +82,7 @@ typedef enum {
     ET_TBODY,
     ET_SCRIPT,
     ET_TEST,
+    ET_TESTG,
     ET_COMMENT,
     ET_IMG
 } elem_type_t;
@@ -234,6 +235,17 @@ static REFIID const img_iids[] = {
     NULL
 };
 
+static REFIID const generic_iids[] = {
+    &IID_IHTMLDOMNode,
+    &IID_IHTMLDOMNode2,
+    &IID_IHTMLElement,
+    &IID_IHTMLElement2,
+    &IID_IHTMLGenericElement,
+    &IID_IDispatchEx,
+    &IID_IConnectionPointContainer,
+    NULL
+};
+
 typedef struct {
     const char *tag;
     REFIID *iids;
@@ -259,6 +271,7 @@ static const elem_type_info_t elem_type_infos[] = {
     {"TBODY",     elem_iids,        NULL},
     {"SCRIPT",    script_iids,      NULL},
     {"TEST",      elem_iids,        &DIID_DispHTMLUnknownElement},
+    {"TEST",      generic_iids,     &DIID_DispHTMLGenericElement},
     {"!",         comment_iids,     &DIID_DispHTMLCommentElement},
     {"IMG",       img_iids,         &DIID_DispHTMLImg}
 };
@@ -1007,6 +1020,21 @@ static void _test_elem_client_size(unsigned line, IUnknown *unk)
     IHTMLElement2_Release(elem);
 }
 
+#define test_create_elem(d,t) _test_create_elem(__LINE__,d,t)
+static IHTMLElement *_test_create_elem(unsigned line, IHTMLDocument2 *doc, const char *tag)
+{
+    IHTMLElement *elem = NULL;
+    BSTR tmp;
+    HRESULT hres;
+
+    tmp = a2bstr(tag);
+    hres = IHTMLDocument2_createElement(doc, tmp, &elem);
+    ok_(__FILE__,line) (hres == S_OK, "createElement failed: %08x\n", hres);
+    ok_(__FILE__,line) (elem != NULL, "elem == NULL\n");
+
+    return elem;
+}
+
 static void test_elem_col_item(IHTMLElementCollection *col, LPCWSTR n,
         const elem_type_t *elem_types, long len)
 {
@@ -1849,6 +1877,21 @@ static void test_elems(IHTMLDocument2 *doc)
     test_create_option_elem(doc);
 }
 
+static void test_create_elems(IHTMLDocument2 *doc)
+{
+    IHTMLElement *elem;
+    long type;
+
+    elem = test_create_elem(doc, "TEST");
+    test_elem_tag((IUnknown*)elem, "TEST");
+    type = get_node_type((IUnknown*)elem);
+    ok(type == 1, "type=%ld\n", type);
+    test_ifaces((IUnknown*)elem, elem_iids);
+    test_disp((IUnknown*)elem, &DIID_DispHTMLGenericElement);
+
+    IHTMLElement_Release(elem);
+}
+
 static void test_exec(IUnknown *unk, const GUID *grpid, DWORD cmdid, VARIANT *in, VARIANT *out)
 {
     IOleCommandTarget *cmdtrg;
@@ -2082,6 +2125,7 @@ START_TEST(dom)
     run_domtest(range_test_str, test_txtrange);
     run_domtest(range_test2_str, test_txtrange2);
     run_domtest(elem_test_str, test_elems);
+    run_domtest(doc_blank, test_create_elems);
     run_domtest(doc_blank, test_defaults);
     run_domtest(indent_test_str, test_indent);
 




More information about the wine-cvs mailing list