diff --git a/dlls/mshtml/tests/dom.c b/dlls/mshtml/tests/dom.c
index 586df7d8a5b..b615eb7a82b 100644
--- a/dlls/mshtml/tests/dom.c
+++ b/dlls/mshtml/tests/dom.c
@@ -567,11 +567,16 @@ static const elem_type_info_t elem_type_infos[] = {
{"tspan", tspan_iids, NULL}
};
+static int strncmp_wa(LPCWSTR strw, const char *stra, size_t len)
+{
+ WCHAR buf[512];
+ size_t wlen = MultiByteToWideChar(CP_ACP, 0, stra, len, buf, sizeof(buf));
+ return wlen == len && memcmp(strw, buf, len * sizeof(WCHAR));
+}
+
static int strcmp_wa(LPCWSTR strw, const char *stra)
{
- CHAR buf[512];
- WideCharToMultiByte(CP_ACP, 0, strw, -1, buf, sizeof(buf), NULL, NULL);
- return lstrcmpA(stra, buf);
+ return strncmp_wa(strw, stra, strlen(stra));
}
static BOOL is_prefix_wa(const WCHAR *strw, const char *prefix)
@@ -2033,12 +2038,16 @@ static IHTMLFormElement *_get_textarea_form(unsigned line, IUnknown *unk)
static void _test_comment_text(unsigned line, IUnknown *unk, const char *extext)
{
IHTMLCommentElement *comment = _get_comment_iface(__LINE__,unk);
+ const char *p;
BSTR text;
HRESULT hres;
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);
+ if((p = strstr(extext, "-->")) && SysStringLen(text) == p - extext) /* Some IEs drop comment ending */
+ ok_(__FILE__,line)(!strncmp_wa(text, extext, p - extext), "text = \"%s\", expected \"%s\"\n", wine_dbgstr_w(text), extext);
+ else
+ ok_(__FILE__,line)(!strcmp_wa(text, extext), "text = \"%s\", expected \"%s\"\n", wine_dbgstr_w(text), extext);
IHTMLCommentElement_Release(comment);
SysFreeString(text);
@@ -3050,12 +3059,17 @@ static void _test_elem_set_outerhtml(unsigned line, IUnknown *unk, const char *o
static void _test_elem_outerhtml(unsigned line, IUnknown *unk, const char *outer_html)
{
IHTMLElement *elem = _get_elem_iface(line, unk);
+ const char *p;
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);
+ if((p = strstr(outer_html, "-->")) && !p[3] && SysStringLen(html) == p - outer_html) /* Some IEs drop comment ending */
+ ok_(__FILE__,line)(!strncmp_wa(html, outer_html, p - outer_html), "text = \"%s\", expected \"%s\"\n",
+ wine_dbgstr_w(html), outer_html);
+ else
+ ok_(__FILE__,line)(!strcmp_wa(html, outer_html), "outerHTML = '%s', expected '%s'\n", wine_dbgstr_w(html), outer_html);
IHTMLElement_Release(elem);
SysFreeString(html);