Jacek Caban : mshtml: Added more IDispatchEx tests.

Alexandre Julliard julliard at winehq.org
Thu Apr 24 15:56:40 CDT 2008


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

Author: Jacek Caban <jacek at codeweavers.com>
Date:   Thu Apr 24 18:22:10 2008 +0200

mshtml: Added more IDispatchEx tests.

---

 dlls/mshtml/tests/dom.c |   56 +++++++++++++++++++++++++++++++----------------
 1 files changed, 37 insertions(+), 19 deletions(-)

diff --git a/dlls/mshtml/tests/dom.c b/dlls/mshtml/tests/dom.c
index ae716d9..893a9c9 100644
--- a/dlls/mshtml/tests/dom.c
+++ b/dlls/mshtml/tests/dom.c
@@ -45,6 +45,7 @@ static const char elem_test_str[] =
     "<textarea id=\"X\">text text</textarea>"
     "<table><tbody></tbody></table>"
     "<script id=\"sc\" type=\"text/javascript\"></script>"
+    "<test />"
     "</body></html>";
 static const char indent_test_str[] =
     "<html><head><title>test</title></head><body>abc<br /><a href=\"about:blank\">123</a></body></html>";
@@ -74,7 +75,8 @@ typedef enum {
     ET_BR,
     ET_TABLE,
     ET_TBODY,
-    ET_SCRIPT
+    ET_SCRIPT,
+    ET_TEST
 } elem_type_t;
 
 static REFIID const none_iids[] = {
@@ -86,6 +88,7 @@ static REFIID const elem_iids[] = {
     &IID_IHTMLDOMNode,
     &IID_IHTMLElement,
     &IID_IHTMLElement2,
+    &IID_IDispatchEx,
     &IID_IConnectionPointContainer,
     NULL
 };
@@ -96,6 +99,7 @@ static REFIID const body_iids[] = {
     &IID_IHTMLElement2,
     &IID_IHTMLTextContainer,
     &IID_IHTMLBodyElement,
+    &IID_IDispatchEx,
     &IID_IConnectionPointContainer,
     NULL
 };
@@ -105,6 +109,7 @@ static REFIID const anchor_iids[] = {
     &IID_IHTMLElement,
     &IID_IHTMLElement2,
     &IID_IHTMLAnchorElement,
+    &IID_IDispatchEx,
     &IID_IConnectionPointContainer,
     NULL
 };
@@ -115,6 +120,7 @@ static REFIID const input_iids[] = {
     &IID_IHTMLElement2,
     &IID_IHTMLInputElement,
     &IID_IHTMLInputTextElement,
+    &IID_IDispatchEx,
     &IID_IConnectionPointContainer,
     NULL
 };
@@ -124,6 +130,7 @@ static REFIID const select_iids[] = {
     &IID_IHTMLElement,
     &IID_IHTMLElement2,
     &IID_IHTMLSelectElement,
+    &IID_IDispatchEx,
     &IID_IConnectionPointContainer,
     NULL
 };
@@ -133,6 +140,7 @@ static REFIID const textarea_iids[] = {
     &IID_IHTMLElement,
     &IID_IHTMLElement2,
     &IID_IHTMLTextAreaElement,
+    &IID_IDispatchEx,
     &IID_IConnectionPointContainer,
     NULL
 };
@@ -142,6 +150,7 @@ static REFIID const option_iids[] = {
     &IID_IHTMLElement,
     &IID_IHTMLElement2,
     &IID_IHTMLOptionElement,
+    &IID_IDispatchEx,
     &IID_IConnectionPointContainer,
     NULL
 };
@@ -151,6 +160,7 @@ static REFIID const table_iids[] = {
     &IID_IHTMLElement,
     &IID_IHTMLElement2,
     &IID_IHTMLTable,
+    &IID_IDispatchEx,
     &IID_IConnectionPointContainer,
     NULL
 };
@@ -160,6 +170,7 @@ static REFIID const script_iids[] = {
     &IID_IHTMLElement,
     &IID_IHTMLElement2,
     &IID_IHTMLScriptElement,
+    &IID_IDispatchEx,
     &IID_IConnectionPointContainer,
     NULL
 };
@@ -174,32 +185,35 @@ static REFIID const window_iids[] = {
     &IID_IDispatch,
     &IID_IHTMLWindow2,
     &IID_IHTMLWindow3,
+    &IID_IDispatchEx,
     NULL
 };
 
 typedef struct {
     const char *tag;
     REFIID *iids;
+    const IID *dispiid;
 } elem_type_info_t;
 
 static const elem_type_info_t elem_type_infos[] = {
-    {"",          none_iids},
-    {"HTML",      elem_iids},
-    {"HEAD",      elem_iids},
-    {"TITLE",     elem_iids},
-    {"BODY",      body_iids},
-    {"A",         anchor_iids},
-    {"INPUT",     input_iids},
-    {"SELECT",    select_iids},
-    {"TEXTAREA",  textarea_iids},
-    {"OPTION",    option_iids},
-    {"STYLE",     elem_iids},
-    {"BLOCKQUOTE",elem_iids},
-    {"P",         elem_iids},
-    {"BR",        elem_iids},
-    {"TABLE",     table_iids},
-    {"TBODY",     elem_iids},
-    {"SCRIPT",    script_iids}
+    {"",          none_iids,        NULL},
+    {"HTML",      elem_iids,        NULL},
+    {"HEAD",      elem_iids,        NULL},
+    {"TITLE",     elem_iids,        NULL},
+    {"BODY",      body_iids,        NULL},
+    {"A",         anchor_iids,      NULL},
+    {"INPUT",     input_iids,       NULL},
+    {"SELECT",    select_iids,      NULL},
+    {"TEXTAREA",  textarea_iids,    NULL},
+    {"OPTION",    option_iids,      NULL},
+    {"STYLE",     elem_iids,        NULL},
+    {"BLOCKQUOTE",elem_iids,        NULL},
+    {"P",         elem_iids,        NULL},
+    {"BR",        elem_iids,        NULL},
+    {"TABLE",     table_iids,       NULL},
+    {"TBODY",     elem_iids,        NULL},
+    {"SCRIPT",    script_iids,      NULL},
+    {"TEST",      elem_iids,        &DIID_DispHTMLUnknownElement}
 };
 
 static const char *dbgstr_w(LPCWSTR str)
@@ -345,6 +359,9 @@ static void _test_elem_type(unsigned line, IUnknown *unk, elem_type_t type)
 {
     _test_elem_tag(line, unk, elem_type_infos[type].tag);
     _test_ifaces(line, unk, elem_type_infos[type].iids);
+
+    if(elem_type_infos[type].dispiid)
+        _test_disp(line, unk, elem_type_infos[type].dispiid);
 }
 
 static void test_doc_elem(IHTMLDocument2 *doc)
@@ -1349,7 +1366,8 @@ static void test_elems(IHTMLDocument2 *doc)
         ET_TEXTAREA,
         ET_TABLE,
         ET_TBODY,
-        ET_SCRIPT
+        ET_SCRIPT,
+        ET_TEST
     };
 
     static const elem_type_t item_types[] = {




More information about the wine-cvs mailing list