Nikolay Sivov : msxml3/tests: Basic test for ::setAttributeNode().
Alexandre Julliard
julliard at winehq.org
Tue Sep 7 11:22:55 CDT 2010
Module: wine
Branch: master
Commit: 398e64941472273e9a0b3d39410c6843f19efd51
URL: http://source.winehq.org/git/wine.git/?a=commit;h=398e64941472273e9a0b3d39410c6843f19efd51
Author: Nikolay Sivov <nsivov at codeweavers.com>
Date: Mon Sep 6 23:26:39 2010 +0400
msxml3/tests: Basic test for ::setAttributeNode().
---
dlls/msxml3/element.c | 4 +++
dlls/msxml3/tests/domdoc.c | 53 +++++++++++++++++++++++++++++++++++++++++++-
2 files changed, 56 insertions(+), 1 deletions(-)
diff --git a/dlls/msxml3/element.c b/dlls/msxml3/element.c
index 0e8559a..e65da62 100644
--- a/dlls/msxml3/element.c
+++ b/dlls/msxml3/element.c
@@ -661,7 +661,11 @@ static HRESULT WINAPI domelem_setAttributeNode(
IXMLDOMAttribute** attributeNode)
{
domelem *This = impl_from_IXMLDOMElement( iface );
+
FIXME("(%p)->(%p %p)\n", This, domAttribute, attributeNode);
+
+ if(!domAttribute) return E_INVALIDARG;
+
return E_NOTIMPL;
}
diff --git a/dlls/msxml3/tests/domdoc.c b/dlls/msxml3/tests/domdoc.c
index 06532d6..4317c52 100644
--- a/dlls/msxml3/tests/domdoc.c
+++ b/dlls/msxml3/tests/domdoc.c
@@ -5932,6 +5932,57 @@ static void test_get_ownerDocument(void)
free_bstrs();
}
+static void test_setAttributeNode(void)
+{
+ IXMLDOMDocument *doc;
+ IXMLDOMElement *elem;
+ IXMLDOMAttribute *attr, *attr2, *ret_attr;
+ VARIANT_BOOL b;
+ HRESULT hr;
+ BSTR str;
+
+ doc = create_document(&IID_IXMLDOMDocument);
+ if (!doc) return;
+
+ str = SysAllocString( szComplete4 );
+ hr = IXMLDOMDocument2_loadXML( doc, str, &b );
+ ok( hr == S_OK, "loadXML failed\n");
+ ok( b == VARIANT_TRUE, "failed to load XML string\n");
+ SysFreeString( str );
+
+ hr = IXMLDOMDocument_get_documentElement(doc, &elem);
+ ok( hr == S_OK, "got 0x%08x\n", hr);
+
+ ret_attr = (void*)0xdeadbeef;
+ hr = IXMLDOMElement_setAttributeNode(elem, NULL, &ret_attr);
+ ok( hr == E_INVALIDARG, "got 0x%08x\n", hr);
+ ok( ret_attr == (void*)0xdeadbeef, "got %p\n", ret_attr);
+
+ hr = IXMLDOMDocument_createAttribute(doc, _bstr_("attr"), &attr);
+ ok( hr == S_OK, "got 0x%08x\n", hr);
+
+ ret_attr = (void*)0xdeadbeef;
+ hr = IXMLDOMElement_setAttributeNode(elem, attr, &ret_attr);
+ todo_wine ok( hr == S_OK, "got 0x%08x\n", hr);
+ todo_wine ok( ret_attr == NULL, "got %p\n", ret_attr);
+
+ attr2 = NULL;
+ hr = IXMLDOMElement_getAttributeNode(elem, _bstr_("attr"), &attr2);
+ todo_wine ok( hr == S_OK, "got 0x%08x\n", hr);
+ if (attr2) IXMLDOMAttribute_Release(attr2);
+
+ /* try to add it another time */
+ ret_attr = (void*)0xdeadbeef;
+ hr = IXMLDOMElement_setAttributeNode(elem, attr, &ret_attr);
+ todo_wine ok( hr == E_FAIL, "got 0x%08x\n", hr);
+ ok( ret_attr == (void*)0xdeadbeef, "got %p\n", ret_attr);
+
+ IXMLDOMAttribute_Release(attr);
+ IXMLDOMElement_Release(elem);
+ IXMLDOMDocument_Release(doc);
+ free_bstrs();
+}
+
START_TEST(domdoc)
{
IXMLDOMDocument *doc;
@@ -5951,7 +6002,6 @@ START_TEST(domdoc)
return;
}
-
IXMLDOMDocument_Release(doc);
test_domdoc();
@@ -5985,6 +6035,7 @@ START_TEST(domdoc)
test_getQualifiedItem();
test_removeQualifiedItem();
test_get_ownerDocument();
+ test_setAttributeNode();
CoUninitialize();
}
More information about the wine-cvs
mailing list