Jacek Caban : mshtml: Forward IHTMLCommentElement::get_text to IHTMLElement ::get_outerHTML.

Alexandre Julliard julliard at winehq.org
Wed Feb 10 10:44:50 CST 2010


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

Author: Jacek Caban <jacek at codeweavers.com>
Date:   Tue Feb  9 19:35:20 2010 +0100

mshtml: Forward IHTMLCommentElement::get_text to IHTMLElement::get_outerHTML.

---

 dlls/mshtml/htmlcomment.c |    6 ++++--
 dlls/mshtml/tests/dom.c   |   44 ++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 48 insertions(+), 2 deletions(-)

diff --git a/dlls/mshtml/htmlcomment.c b/dlls/mshtml/htmlcomment.c
index 85fd4e1..7040d18 100644
--- a/dlls/mshtml/htmlcomment.c
+++ b/dlls/mshtml/htmlcomment.c
@@ -103,8 +103,10 @@ static HRESULT WINAPI HTMLCommentElement_put_text(IHTMLCommentElement *iface, BS
 static HRESULT WINAPI HTMLCommentElement_get_text(IHTMLCommentElement *iface, BSTR *p)
 {
     HTMLCommentElement *This = HTMLCOMMENT_THIS(iface);
-    FIXME("(%p)->(%p)\n", This, p);
-    return E_NOTIMPL;
+
+    TRACE("(%p)->(%p)\n", This, p);
+
+    return IHTMLElement_get_outerHTML(HTMLELEM(&This->element), p);
 }
 
 static HRESULT WINAPI HTMLCommentElement_put_atomic(IHTMLCommentElement *iface, LONG v)
diff --git a/dlls/mshtml/tests/dom.c b/dlls/mshtml/tests/dom.c
index 7fd9262..3a008ea 100644
--- a/dlls/mshtml/tests/dom.c
+++ b/dlls/mshtml/tests/dom.c
@@ -684,6 +684,17 @@ static IHTMLDOMTextNode *_get_text_iface(unsigned line, IUnknown *unk)
     return text;
 }
 
+#define get_comment_iface(u) _get_comment_iface(__LINE__,u)
+static IHTMLCommentElement *_get_comment_iface(unsigned line, IUnknown *unk)
+{
+    IHTMLCommentElement *comment;
+    HRESULT hres;
+
+    hres = IUnknown_QueryInterface(unk, &IID_IHTMLCommentElement, (void**)&comment);
+    ok_(__FILE__,line) (hres == S_OK, "Could not get IHTMLCommentElement: %08x\n", hres);
+    return comment;
+}
+
 #define test_node_name(u,n) _test_node_name(__LINE__,u,n)
 static void _test_node_name(unsigned line, IUnknown *unk, const char *exname)
 {
@@ -1102,6 +1113,22 @@ static void _test_option_put_value(unsigned line, IHTMLOptionElement *option, co
     _test_option_value(line, option, value);
 }
 
+#define test_comment_text(c,t) _test_comment_text(__LINE__,c,t)
+static void _test_comment_text(unsigned line, IUnknown *unk, const char *extext)
+{
+    IHTMLCommentElement *comment = _get_comment_iface(__LINE__,unk);
+    BSTR text;
+    HRESULT hres;
+
+    text = a2bstr(extext);
+    hres = IHTMLCommentElement_get_text(comment, &text);
+    ok_(__FILE__,line)(hres == S_OK, "get_text failed: %08x\n", hres);
+    ok_(__FILE__,line)(!strcmp_wa(text, extext), "text = \"%s\", expected \"%s\"\n", wine_dbgstr_w(text), extext);
+
+    IHTMLCommentElement_Release(comment);
+    SysFreeString(text);
+}
+
 #define create_option_elem(d,t,v) _create_option_elem(__LINE__,d,t,v)
 static IHTMLOptionElement *_create_option_elem(unsigned line, IHTMLDocument2 *doc,
         const char *txt, const char *val)
@@ -1654,6 +1681,21 @@ static void _test_elem_set_outerhtml(unsigned line, IUnknown *unk, const char *o
     SysFreeString(html);
 }
 
+#define test_elem_outerhtml(e,t) _test_elem_outerhtml(__LINE__,e,t)
+static void _test_elem_outerhtml(unsigned line, IUnknown *unk, const char *outer_html)
+{
+    IHTMLElement *elem = _get_elem_iface(line, unk);
+    BSTR html;
+    HRESULT hres;
+
+    hres = IHTMLElement_get_outerHTML(elem, &html);
+    ok_(__FILE__,line)(hres == S_OK, "get_outerHTML failed: %08x\n", hres);
+    ok_(__FILE__,line)(!strcmp_wa(html, outer_html), "outerHTML = '%s', expected '%s'\n", wine_dbgstr_w(html), outer_html);
+
+    IHTMLElement_Release(elem);
+    SysFreeString(html);
+}
+
 #define get_first_child(n) _get_first_child(__LINE__,n)
 static IHTMLDOMNode *_get_first_child(unsigned line, IUnknown *unk)
 {
@@ -5911,6 +5953,8 @@ static void test_create_elems(IHTMLDocument2 *doc)
             test_elem_title((IUnknown*)comment, NULL);
             test_elem_set_title((IUnknown*)comment, "comment title");
             test_elem_title((IUnknown*)comment, "comment title");
+            test_comment_text((IUnknown*)comment, "<!--testing-->");
+            test_elem_outerhtml((IUnknown*)comment, "<!--testing-->");
 
             IHTMLDOMNode_Release(comment);
         }




More information about the wine-cvs mailing list