From: Gabriel Ivăncescu gabrielopcode@gmail.com
Signed-off-by: Gabriel Ivăncescu gabrielopcode@gmail.com --- dlls/mshtml/htmlattr.c | 8 ++++++-- dlls/mshtml/tests/dom.c | 16 ++++++++++++++++ 2 files changed, 22 insertions(+), 2 deletions(-)
diff --git a/dlls/mshtml/htmlattr.c b/dlls/mshtml/htmlattr.c index ac8f558af9d..b41d84083c5 100644 --- a/dlls/mshtml/htmlattr.c +++ b/dlls/mshtml/htmlattr.c @@ -309,8 +309,12 @@ static HRESULT WINAPI HTMLDOMAttribute2_appendChild(IHTMLDOMAttribute2 *iface, I IHTMLDOMNode **node) { HTMLDOMAttribute *This = impl_from_IHTMLDOMAttribute2(iface); - FIXME("(%p)->(%p %p)\n", This, newChild, node); - return E_NOTIMPL; + + TRACE("(%p)->(%p %p)\n", This, newChild, node); + + /* mostly a stub, doesn't really append anything on native either */ + *node = NULL; + return S_OK; }
static HRESULT WINAPI HTMLDOMAttribute2_hasChildNodes(IHTMLDOMAttribute2 *iface, VARIANT_BOOL *fChildren) diff --git a/dlls/mshtml/tests/dom.c b/dlls/mshtml/tests/dom.c index ba82a32c05c..b562ca85143 100644 --- a/dlls/mshtml/tests/dom.c +++ b/dlls/mshtml/tests/dom.c @@ -9946,13 +9946,16 @@ static void test_elems(IHTMLDocument2 *doc)
static void test_attr_node(IHTMLDOMAttribute *test_attr, IHTMLDocument2 *doc) { + IHTMLDOMNode *node, *elem_node; IHTMLDOMAttribute2 *attr; IHTMLDOMAttribute *clone; IHTMLDocument2 *doc_node; IHTMLWindow2 *window; + IHTMLElement *elem; VARIANT v, v_clone; IDispatch *disp; HRESULT hres; + BSTR bstr; LONG type;
hres = IHTMLDOMAttribute_QueryInterface(test_attr, &IID_IHTMLDOMAttribute2, (void**)&attr); @@ -10000,6 +10003,19 @@ static void test_attr_node(IHTMLDOMAttribute *test_attr, IHTMLDocument2 *doc) VariantClear(&v_clone); VariantClear(&v);
+ bstr = SysAllocString(L"div"); + hres = IHTMLDocument2_createElement(doc, bstr, &elem); + ok(hres == S_OK, "createElement failed: %08lx\n", hres); + hres = IHTMLElement_QueryInterface(elem, &IID_IHTMLDOMNode, (void**)&elem_node); + ok(hres == S_OK, "Could not get IHTMLDOMNode iface: %08lx\n", hres); + IHTMLElement_Release(elem); + SysFreeString(bstr); + + hres = IHTMLDOMAttribute2_appendChild(attr, elem_node, &node); + ok(hres == S_OK, "appendChild failed: %08lx\n", hres); + ok(!node, "appended child != NULL\n"); + + IHTMLDOMNode_Release(elem_node); IHTMLDOMAttribute2_Release(attr); }