[MSXML3_WINETEST] Sync with Wine Staging 1.7.47. CORE-9924
[reactos.git] / rostests / winetests / msxml3 / domdoc.c
index eb8c62a..8683b28 100644 (file)
@@ -352,9 +352,7 @@ static const IStreamVtbl StreamVtbl = {
     istream_Clone
 };
 
-#if CORE_6738_IS_FIXED
 static IStream savestream = { &StreamVtbl };
-#endif
 
 #define EXPECT_CHILDREN(node) _expect_children((IXMLDOMNode*)node, __LINE__)
 static void _expect_children(IXMLDOMNode *node, int line)
@@ -418,11 +416,6 @@ static const WCHAR szComplete1[] = {
     '<','o','p','e','n','>','<','/','o','p','e','n','>','\n',0
 };
 static const WCHAR szComplete2[] = {
-    '<','?','x','m','l',' ',
-    'v','e','r','s','i','o','n','=','\'','1','.','0','\'','?','>','\n',
-    '<','o','>','<','/','o','>','\n',0
-};
-static const WCHAR szComplete3[] = {
     '<','?','x','m','l',' ',
     'v','e','r','s','i','o','n','=','\'','1','.','0','\'','?','>','\n',
     '<','a','>','<','/','a','>','\n',0
@@ -1378,7 +1371,7 @@ if (0)
 
     /* try to load something else simple and valid */
     b = VARIANT_FALSE;
-    str = SysAllocString( szComplete3 );
+    str = SysAllocString( szComplete2 );
     r = IXMLDOMDocument_loadXML( doc, str, &b );
     ok( r == S_OK, "loadXML failed\n");
     ok( b == VARIANT_TRUE, "failed to load XML string\n");
@@ -2250,10 +2243,9 @@ static void test_domnode( void )
         ok( tag != NULL, "tag was null\n");
         ok( !lstrcmpW( tag, szSSearch ), "incorrect tag name\n");
         SysFreeString( tag );
-    }
 
-    if (element)
         IXMLDOMElement_Release( element );
+    }
     ok(IXMLDOMDocument_Release( doc ) == 0, "document is not destroyed\n");
 
     free_bstrs();
@@ -4948,7 +4940,6 @@ static void test_xmlTypes(void)
 
     doc = create_document(&IID_IXMLDOMDocument);
 
-    pNextChild = (void*)0xdeadbeef;
     hr = IXMLDOMDocument_get_nextSibling(doc, NULL);
     ok(hr == E_INVALIDARG, "ret %08x\n", hr );
 
@@ -6000,7 +5991,6 @@ static void test_put_dataType( void )
     free_bstrs();
 }
 
-#if CORE_6738_IS_FIXED
 static void test_save(void)
 {
     IXMLDOMDocument *doc, *doc2;
@@ -6131,7 +6121,6 @@ static void test_save(void)
     IXMLDOMDocument_Release(doc);
     free_bstrs();
 }
-#endif /* CORE_6738_IS_FIXED */
 
 static void test_testTransforms(void)
 {
@@ -8954,9 +8943,12 @@ static void test_appendChild(void)
 
 static void test_get_doctype(void)
 {
+    static const WCHAR emailW[] = {'e','m','a','i','l',0};
     IXMLDOMDocumentType *doctype;
     IXMLDOMDocument *doc;
+    VARIANT_BOOL b;
     HRESULT hr;
+    BSTR s;
 
     doc = create_document(&IID_IXMLDOMDocument);
 
@@ -8968,6 +8960,28 @@ static void test_get_doctype(void)
     ok(hr == S_FALSE, "got 0x%08x\n", hr);
     ok(doctype == NULL, "got %p\n", doctype);
 
+    hr = IXMLDOMDocument_loadXML(doc, _bstr_(szEmailXML), &b);
+    ok(b == VARIANT_TRUE, "failed to load XML string\n");
+
+    doctype = NULL;
+    hr = IXMLDOMDocument_get_doctype(doc, &doctype);
+    ok(hr == S_OK, "got 0x%08x\n", hr);
+    ok(doctype != NULL, "got %p\n", doctype);
+
+    hr = IXMLDOMDocumentType_get_name(doctype, NULL);
+    ok(hr == E_INVALIDARG, "got 0x%08x\n", hr);
+
+    hr = IXMLDOMDocumentType_get_name(doctype, &s);
+    ok(hr == S_OK, "got 0x%08x\n", hr);
+    ok(!lstrcmpW(emailW, s), "got name %s\n", wine_dbgstr_w(s));
+    SysFreeString(s);
+
+    hr = IXMLDOMDocumentType_get_nodeName(doctype, &s);
+    ok(hr == S_OK, "got 0x%08x\n", hr);
+    ok(!lstrcmpW(emailW, s), "got name %s\n", wine_dbgstr_w(s));
+    SysFreeString(s);
+
+    IXMLDOMDocumentType_Release(doctype);
     IXMLDOMDocument_Release(doc);
 }
 
@@ -9169,6 +9183,11 @@ static void test_get_attributes(void)
     hr = IXMLDOMNode_get_attributes(node, &map);
     ok(hr == S_OK, "got %08x\n", hr);
 
+    node2 = (void*)0xdeadbeef;
+    hr = IXMLDOMNamedNodeMap_getNamedItem(map, _bstr_("attr"), &node2);
+    ok(hr == S_FALSE, "got %08x\n", hr);
+    ok(node2 == NULL, "got %p\n", node2);
+
     length = -1;
     hr = IXMLDOMNamedNodeMap_get_length(map, &length);
     EXPECT_HR(hr, S_OK);
@@ -11103,6 +11122,7 @@ static void test_xmlns_attribute(void)
     V_VT(&v) = VT_BSTR;
     V_BSTR(&v) = _bstr_("urn:schemas-microsoft-com:datatypes");
     hr = IXMLDOMAttribute_put_nodeValue(pAttribute, v);
+    ok(hr == S_OK, "ret %08x\n", hr );
 
     hr = IXMLDOMElement_setAttributeNode(root, pAttribute, NULL);
     ok(hr == S_OK, "ret %08x\n", hr );
@@ -11934,9 +11954,7 @@ START_TEST(domdoc)
     test_XSLPattern();
     test_cloneNode();
     test_xmlTypes();
-#if CORE_6738_IS_FIXED
     test_save();
-#endif
     test_testTransforms();
     test_namespaces_basic();
     test_namespaces_change();