Jacek Caban : mshtml: Added get_tagName implementation.
Alexandre Julliard
julliard at winehq.org
Wed Oct 3 06:08:14 CDT 2007
Module: wine
Branch: master
Commit: 42349000c4a87d3a1c71f107a1119769fbba1bb2
URL: http://source.winehq.org/git/wine.git/?a=commit;h=42349000c4a87d3a1c71f107a1119769fbba1bb2
Author: Jacek Caban <jacek at codeweavers.com>
Date: Tue Oct 2 14:20:34 2007 +0200
mshtml: Added get_tagName implementation.
---
dlls/mshtml/htmlelem.c | 20 ++++++++++++++++++--
dlls/mshtml/tests/dom.c | 21 ++++++++++++++++++++-
2 files changed, 38 insertions(+), 3 deletions(-)
diff --git a/dlls/mshtml/htmlelem.c b/dlls/mshtml/htmlelem.c
index 77d50b0..609a64d 100644
--- a/dlls/mshtml/htmlelem.c
+++ b/dlls/mshtml/htmlelem.c
@@ -279,8 +279,24 @@ static HRESULT WINAPI HTMLElement_get_id(IHTMLElement *iface, BSTR *p)
static HRESULT WINAPI HTMLElement_get_tagName(IHTMLElement *iface, BSTR *p)
{
HTMLElement *This = HTMLELEM_THIS(iface);
- FIXME("(%p)->(%p)\n", This, p);
- return E_NOTIMPL;
+ const PRUnichar *tag;
+ nsAString tag_str;
+ nsresult nsres;
+
+ TRACE("(%p)->(%p)\n", This, p);
+
+ nsAString_Init(&tag_str, NULL);
+ nsres = nsIDOMHTMLElement_GetTagName(This->nselem, &tag_str);
+ if(NS_SUCCEEDED(nsres)) {
+ nsAString_GetData(&tag_str, &tag, NULL);
+ *p = SysAllocString(tag);
+ }else {
+ ERR("GetTagName failed: %08x\n", nsres);
+ *p = NULL;
+ }
+ nsAString_Finish(&tag_str);
+
+ return S_OK;
}
static HRESULT WINAPI HTMLElement_get_parentElement(IHTMLElement *iface, IHTMLElement **p)
diff --git a/dlls/mshtml/tests/dom.c b/dlls/mshtml/tests/dom.c
index 3c7a18a..fefe054 100644
--- a/dlls/mshtml/tests/dom.c
+++ b/dlls/mshtml/tests/dom.c
@@ -80,11 +80,29 @@ static void _test_node_name(unsigned line, IUnknown *unk, const char *exname)
hres = IHTMLDOMNode_get_nodeName(node, &name);
IHTMLDOMNode_Release(node);
ok_(__FILE__, line) (hres == S_OK, "get_nodeName failed: %08x\n", hres);
- ok_(__FILE__, line) (!strcmp_wa(name, exname), "got name: %s, expected HTML\n", dbgstr_w(name));
+ ok_(__FILE__, line) (!strcmp_wa(name, exname), "got name: %s, expected %s\n", dbgstr_w(name), exname);
SysFreeString(name);
}
+#define test_elem_tag(u,n) _test_elem_tag(__LINE__,u,n)
+static void _test_elem_tag(unsigned line, IUnknown *unk, const char *extag)
+{
+ IHTMLElement *elem;
+ BSTR tag;
+ HRESULT hres;
+
+ hres = IUnknown_QueryInterface(unk, &IID_IHTMLElement, (void**)&elem);
+ ok_(__FILE__, line) (hres == S_OK, "QueryInterface(IID_IHTMLElement) failed: %08x\n", hres);
+
+ hres = IHTMLElement_get_tagName(elem, &tag);
+ IHTMLElement_Release(elem);
+ ok_(__FILE__, line) (hres == S_OK, "get_tagName failed: %08x\n", hres);
+ ok_(__FILE__, line) (!strcmp_wa(tag, extag), "got tag: %s, expected %s\n", dbgstr_w(tag), extag);
+
+ SysFreeString(tag);
+}
+
static void test_doc_elem(IHTMLDocument2 *doc)
{
IHTMLElement *elem;
@@ -99,6 +117,7 @@ static void test_doc_elem(IHTMLDocument2 *doc)
ok(hres == S_OK, "get_documentElement failed: %08x\n", hres);
test_node_name((IUnknown*)elem, "HTML");
+ test_elem_tag((IUnknown*)elem, "HTML");
IHTMLElement_Release(elem);
}
More information about the wine-cvs
mailing list