Nikolay Sivov : msxml3: Some put_dataType() tests for nodes without typed data.
Alexandre Julliard
julliard at winehq.org
Mon Jan 9 14:24:30 CST 2012
Module: wine
Branch: master
Commit: ebf91350cdac3e9f3fdb8b1ae26473221f0fe5e0
URL: http://source.winehq.org/git/wine.git/?a=commit;h=ebf91350cdac3e9f3fdb8b1ae26473221f0fe5e0
Author: Nikolay Sivov <nsivov at codeweavers.com>
Date: Mon Jan 9 00:21:53 2012 +0300
msxml3: Some put_dataType() tests for nodes without typed data.
---
dlls/msxml3/cdata.c | 4 +-
dlls/msxml3/comment.c | 2 +-
dlls/msxml3/docfrag.c | 2 +-
dlls/msxml3/entityref.c | 2 +-
dlls/msxml3/pi.c | 2 +-
dlls/msxml3/tests/domdoc.c | 77 ++++++++++++++++++++++++++++----------------
6 files changed, 55 insertions(+), 34 deletions(-)
diff --git a/dlls/msxml3/cdata.c b/dlls/msxml3/cdata.c
index 0058314..c6d1f8c 100644
--- a/dlls/msxml3/cdata.c
+++ b/dlls/msxml3/cdata.c
@@ -42,7 +42,7 @@ WINE_DEFAULT_DEBUG_CHANNEL(msxml);
#ifdef HAVE_LIBXML2
-typedef struct _domcdata
+typedef struct
{
xmlnode node;
IXMLDOMCDATASection IXMLDOMCDATASection_iface;
@@ -436,7 +436,7 @@ static HRESULT WINAPI domcdata_put_dataType(
{
domcdata *This = impl_from_IXMLDOMCDATASection( iface );
- FIXME("(%p)->(%s)\n", This, debugstr_w(p));
+ TRACE("(%p)->(%s)\n", This, debugstr_w(p));
if(!p)
return E_INVALIDARG;
diff --git a/dlls/msxml3/comment.c b/dlls/msxml3/comment.c
index 5663632..f1f94c6 100644
--- a/dlls/msxml3/comment.c
+++ b/dlls/msxml3/comment.c
@@ -435,7 +435,7 @@ static HRESULT WINAPI domcomment_put_dataType(
{
domcomment *This = impl_from_IXMLDOMComment( iface );
- FIXME("(%p)->(%s)\n", This, debugstr_w(p));
+ TRACE("(%p)->(%s)\n", This, debugstr_w(p));
if(!p)
return E_INVALIDARG;
diff --git a/dlls/msxml3/docfrag.c b/dlls/msxml3/docfrag.c
index 435712c..cedd258 100644
--- a/dlls/msxml3/docfrag.c
+++ b/dlls/msxml3/docfrag.c
@@ -433,7 +433,7 @@ static HRESULT WINAPI domfrag_put_dataType(
{
domfrag *This = impl_from_IXMLDOMDocumentFragment( iface );
- FIXME("(%p)->(%s)\n", This, debugstr_w(p));
+ TRACE("(%p)->(%s)\n", This, debugstr_w(p));
if(!p)
return E_INVALIDARG;
diff --git a/dlls/msxml3/entityref.c b/dlls/msxml3/entityref.c
index b6b0ae4..313fc2e 100644
--- a/dlls/msxml3/entityref.c
+++ b/dlls/msxml3/entityref.c
@@ -428,7 +428,7 @@ static HRESULT WINAPI entityref_put_dataType(
{
entityref *This = impl_from_IXMLDOMEntityReference( iface );
- FIXME("(%p)->(%s)\n", This, debugstr_w(p));
+ TRACE("(%p)->(%s)\n", This, debugstr_w(p));
if(!p)
return E_INVALIDARG;
diff --git a/dlls/msxml3/pi.c b/dlls/msxml3/pi.c
index 23027a1..332d97c 100644
--- a/dlls/msxml3/pi.c
+++ b/dlls/msxml3/pi.c
@@ -506,7 +506,7 @@ static HRESULT WINAPI dom_pi_put_dataType(
{
dom_pi *This = impl_from_IXMLDOMProcessingInstruction( iface );
- FIXME("(%p)->(%s)\n", This, debugstr_w(p));
+ TRACE("(%p)->(%s)\n", This, debugstr_w(p));
if(!p)
return E_INVALIDARG;
diff --git a/dlls/msxml3/tests/domdoc.c b/dlls/msxml3/tests/domdoc.c
index d737d7f..5ed8715 100644
--- a/dlls/msxml3/tests/domdoc.c
+++ b/dlls/msxml3/tests/domdoc.c
@@ -6777,10 +6777,26 @@ static put_datatype_t put_datatype_data[] = {
{ NULL }
};
-static void test_nodeTypeTests( void )
+typedef struct {
+ DOMNodeType type;
+ HRESULT hr;
+} put_datatype_notype_t;
+
+static put_datatype_notype_t put_dt_notype[] = {
+ { NODE_PROCESSING_INSTRUCTION, E_FAIL },
+ { NODE_DOCUMENT_FRAGMENT, E_FAIL },
+ { NODE_ENTITY_REFERENCE, E_FAIL },
+ { NODE_CDATA_SECTION, E_FAIL },
+ { NODE_COMMENT, E_FAIL },
+ { NODE_INVALID }
+};
+
+static void test_put_dataType( void )
{
+ const put_datatype_notype_t *ptr2 = put_dt_notype;
const put_datatype_t *ptr = put_datatype_data;
IXMLDOMElement *root, *element;
+ BSTR nameW, type1W, type2W;
IXMLDOMDocument *doc;
HRESULT hr;
@@ -6831,6 +6847,38 @@ static void test_nodeTypeTests( void )
IXMLDOMElement_Release(element);
+ /* try to set type for node without a type */
+ nameW = _bstr_("testname");
+ type1W = _bstr_("string");
+ type2W = _bstr_("number");
+ while (ptr2->type != NODE_INVALID)
+ {
+ IXMLDOMNode *node;
+ VARIANT type;
+
+ V_VT(&type) = VT_I2;
+ V_I2(&type) = ptr2->type;
+
+ hr = IXMLDOMDocument_createNode(doc, type, nameW, NULL, &node);
+ EXPECT_HR(hr, S_OK);
+ if(hr == S_OK)
+ {
+ hr = IXMLDOMElement_appendChild(root, node, NULL);
+ EXPECT_HR(hr, S_OK);
+
+ hr = IXMLDOMNode_put_dataType(node, NULL);
+ EXPECT_HR(hr, E_INVALIDARG);
+
+ hr = IXMLDOMNode_put_dataType(node, type1W);
+ ok(hr == ptr2->hr, "failed for type %d, 0x%08x\n", ptr2->type, ptr->hr);
+ hr = IXMLDOMNode_put_dataType(node, type2W);
+ ok(hr == ptr2->hr, "failed for type %d, 0x%08x\n", ptr2->type, ptr->hr);
+
+ IXMLDOMNode_Release(node);
+ }
+ ptr2++;
+ }
+
IXMLDOMElement_Release(root);
IXMLDOMDocument_Release(doc);
free_bstrs();
@@ -8490,32 +8538,6 @@ static void test_setAttributeNode(void)
free_bstrs();
}
-static void test_put_dataType(void)
-{
- IXMLDOMCDATASection *cdata;
- IXMLDOMDocument *doc;
- VARIANT_BOOL b;
- HRESULT hr;
-
- doc = create_document(&IID_IXMLDOMDocument);
- if (!doc) return;
-
- hr = IXMLDOMDocument_loadXML( doc, _bstr_(complete4A), &b );
- ok( hr == S_OK, "loadXML failed\n");
- ok( b == VARIANT_TRUE, "failed to load XML string\n");
-
- hr = IXMLDOMDocument_createCDATASection(doc, _bstr_("test"), &cdata);
- ok( hr == S_OK, "got 0x%08x\n", hr);
- hr = IXMLDOMCDATASection_put_dataType(cdata, _bstr_("number"));
- ok( hr == E_FAIL, "got 0x%08x\n", hr);
- hr = IXMLDOMCDATASection_put_dataType(cdata, _bstr_("string"));
- ok( hr == E_FAIL, "got 0x%08x\n", hr);
- IXMLDOMCDATASection_Release(cdata);
-
- IXMLDOMDocument_Release(doc);
- free_bstrs();
-}
-
static void test_createNode(void)
{
IXMLDOMDocument *doc;
@@ -11062,7 +11084,6 @@ START_TEST(domdoc)
test_XSLPattern();
test_cloneNode();
test_xmlTypes();
- test_nodeTypeTests();
test_save();
test_testTransforms();
test_namespaces();
More information about the wine-cvs
mailing list