diff --git a/dlls/mshtml/htmlcomment.c b/dlls/mshtml/htmlcomment.c
index 85fd4e175cd..7040d184077 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 7fd9262d8ae..3a008eae99b 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, "");
+ test_elem_outerhtml((IUnknown*)comment, "");
IHTMLDOMNode_Release(comment);
}