Dmitry Timoshkov : msxml3/tests: Add more tests for processing instruction attributes.

Alexandre Julliard julliard at winehq.org
Fri May 7 15:42:04 CDT 2021


Module: wine
Branch: master
Commit: a0dd105c655898de087c1e58fcc5a5cae6e191df
URL:    https://source.winehq.org/git/wine.git/?a=commit;h=a0dd105c655898de087c1e58fcc5a5cae6e191df

Author: Dmitry Timoshkov <dmitry at baikal.ru>
Date:   Tue Apr 27 12:29:42 2021 +0300

msxml3/tests: Add more tests for processing instruction attributes.

Signed-off-by: Dmitry Timoshkov <dmitry at baikal.ru>
Signed-off-by: Nikolay Sivov <nsivov at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 dlls/msxml3/tests/domdoc.c | 43 +++++++++++++++++++++++++++++++++++++++++--
 1 file changed, 41 insertions(+), 2 deletions(-)

diff --git a/dlls/msxml3/tests/domdoc.c b/dlls/msxml3/tests/domdoc.c
index ba8453430c6..59a8a243c87 100644
--- a/dlls/msxml3/tests/domdoc.c
+++ b/dlls/msxml3/tests/domdoc.c
@@ -46,6 +46,8 @@
 #include "wine/heap.h"
 #include "wine/test.h"
 
+#define XML_E_UNEXPECTED_ATTRIBUTE 0xC00CE56C
+
 /* undef the #define in msxml2 so that we can access all versions */
 #undef CLSID_DOMDocument
 
@@ -8529,10 +8531,11 @@ static void test_createProcessingInstruction(void)
     static const char xml3_wine[] = "<?xml version=\"1.0\" standalone=\"yes\"?>\n<test/>\n";
     IXMLDOMProcessingInstruction *pi;
     IXMLDOMDocument *doc;
-    IXMLDOMNode *node;
+    IXMLDOMNode *node, *item;
+    IXMLDOMNamedNodeMap *node_map;
     IXMLDOMElement *element;
     WCHAR buff[10];
-    BSTR xml;
+    BSTR xml, bstr;
     VARIANT var;
     HRESULT hr;
     IStream *stream;
@@ -8543,6 +8546,10 @@ static void test_createProcessingInstruction(void)
 
     doc = create_document(&IID_IXMLDOMDocument);
 
+    hr = IXMLDOMDocument_createProcessingInstruction(doc, _bstr_("xml"), _bstr_("version=\"1.0\" encoding=\"windows-1252\" dummy=\"value\""), &pi);
+todo_wine
+    ok(hr == XML_E_UNEXPECTED_ATTRIBUTE, "got 0x%08x\n", hr);
+
     /* test for BSTR handling, pass broken BSTR */
     memcpy(&buff[2], L"test", 5 * sizeof(WCHAR));
     /* just a big length */
@@ -8561,6 +8568,38 @@ static void test_createProcessingInstruction(void)
     ok(hr == S_OK, "got 0x%08x\n", hr);
     hr = IXMLDOMDocument_appendChild(doc, node, NULL);
     ok(hr == S_OK, "got 0x%08x\n", hr);
+
+    hr = IXMLDOMNode_get_attributes(node, &node_map);
+    ok(hr == S_OK, "got 0x%08x\n", hr);
+
+    item = (void *)0xdeadbeef;
+    hr = IXMLDOMNamedNodeMap_getNamedItem(node_map, _bstr_("xml"), &item);
+    ok(hr == S_FALSE, "got 0x%08x\n", hr);
+    ok(!item, "got %p\n", item);
+
+    item = NULL;
+    hr = IXMLDOMNamedNodeMap_getNamedItem(node_map, _bstr_("encoding"), &item);
+todo_wine
+    ok(hr == S_OK, "got 0x%08x\n", hr);
+todo_wine
+    ok(item != NULL, "got NULL\n");
+
+if (hr == S_OK)
+{
+    hr = IXMLDOMNode_get_nodeName(item, &bstr);
+    ok(hr == S_OK, "got 0x%08x\n", hr);
+    ok(!lstrcmpW(bstr, L"encoding"), "got %s\n", wine_dbgstr_w(bstr));
+    SysFreeString(bstr);
+
+    VariantInit(&var);
+    hr = IXMLDOMNode_get_nodeValue(item, &var);
+    ok(hr == S_OK, "got 0x%08x\n", hr);
+    ok(V_VT(&var) == VT_BSTR, "got %u\n", V_VT(&var));
+    ok(!lstrcmpW(V_BSTR(&var), L"windows-1252"), "got %s\n", wine_dbgstr_w(V_BSTR(&var)));
+    VariantClear(&var);
+}
+
+    IXMLDOMNamedNodeMap_Release(node_map);
     IXMLDOMNode_Release(node);
     IXMLDOMProcessingInstruction_Release(pi);
 




More information about the wine-cvs mailing list