From: Nikolay Sivov nsivov@codeweavers.com
This one already exists in msxml6 tests. Simply switching to older classes shows different behavior.
Signed-off-by: Nikolay Sivov nsivov@codeweavers.com --- dlls/msxml3/tests/saxreader.c | 194 ---------------------------------- 1 file changed, 194 deletions(-)
diff --git a/dlls/msxml3/tests/saxreader.c b/dlls/msxml3/tests/saxreader.c index f156b40079b..31424aa62b6 100644 --- a/dlls/msxml3/tests/saxreader.c +++ b/dlls/msxml3/tests/saxreader.c @@ -4438,199 +4438,6 @@ static void test_mxwriter_stream(void) free_bstrs(); }
-static void test_mxwriter_domdoc(void) -{ - ISAXContentHandler *content; - IXMLDOMDocument *domdoc; - IMXWriter *writer; - HRESULT hr; - VARIANT dest; - IXMLDOMElement *root = NULL; - IXMLDOMNodeList *node_list = NULL; - IXMLDOMNode *node = NULL; - LONG list_length = 0; - BSTR str; - - /* Create writer and attach DOMDocument output */ - hr = CoCreateInstance(&CLSID_MXXMLWriter60, NULL, CLSCTX_INPROC_SERVER, &IID_IMXWriter, (void**)&writer); - ok(hr == S_OK, "Failed to create a writer, hr %#lx.\n", hr); - - hr = IMXWriter_QueryInterface(writer, &IID_ISAXContentHandler, (void**)&content); - ok(hr == S_OK, "Unexpected hr %#lx.\n", hr); - - hr = CoCreateInstance(&CLSID_DOMDocument60, NULL, CLSCTX_INPROC_SERVER, &IID_IXMLDOMDocument, (void **)&domdoc); - ok(hr == S_OK, "Failed to create a document, hr %#lx.\n", hr); - - V_VT(&dest) = VT_DISPATCH; - V_DISPATCH(&dest) = (IDispatch *)domdoc; - - hr = IMXWriter_put_output(writer, dest); - todo_wine - ok(hr == S_OK, "Failed to set writer output, hr %#lx.\n", hr); - if (FAILED(hr)) - { - IXMLDOMDocument_Release(domdoc); - IMXWriter_Release(writer); - return; - } - - /* Add root element to document. */ - hr = IXMLDOMDocument_createElement(domdoc, _bstr_("TestElement"), &root); - ok(hr == S_OK, "Unexpected hr %#lx.\n", hr); - hr = IXMLDOMDocument_appendChild(domdoc, (IXMLDOMNode *)root, NULL); - ok(hr == S_OK, "Unexpected hr %#lx.\n", hr); - IXMLDOMElement_Release(root); - - hr = IXMLDOMDocument_get_documentElement(domdoc, &root); - ok(hr == S_OK, "Unexpected hr %#lx.\n", hr); - ok(root != NULL, "Unexpected document root.\n"); - IXMLDOMElement_Release(root); - - /* startDocument clears root element and disables methods. */ - hr = ISAXContentHandler_startDocument(content); - ok(hr == S_OK, "Unexpected hr %#lx.\n", hr); - - hr = IXMLDOMDocument_get_documentElement(domdoc, &root); - todo_wine - ok(hr == S_FALSE, "Unexpected hr %#lx.\n", hr); - - hr = IXMLDOMDocument_createElement(domdoc, _bstr_("TestElement"), &root); - todo_wine - ok(hr == E_FAIL, "Unexpected hr %#lx.\n", hr); - - /* startElement allows document root node to be accessed. */ - hr = ISAXContentHandler_startElement(content, L"", 0, L"", 0, L"BankAccount", 11, NULL); - ok(hr == S_OK, "Unexpected hr %#lx.\n", hr); - - hr = IXMLDOMDocument_get_documentElement(domdoc, &root); - ok(hr == S_OK, "Unexpected hr %#lx.\n", hr); - ok(root != NULL, "Unexpected document root.\n"); - - hr = IXMLDOMElement_get_nodeName(root, &str); - ok(hr == S_OK, "Unexpected hr %#lx.\n", hr); - todo_wine - ok(!lstrcmpW(L"BankAccount", str), "Unexpected name %s.\n", wine_dbgstr_w(str)); - SysFreeString(str); - - /* startElement immediately updates previous node. */ - hr = ISAXContentHandler_startElement(content, L"", 0, L"", 0, L"Number", 6, NULL); - ok(hr == S_OK, "Unexpected hr %#lx.\n", hr); - - hr = IXMLDOMElement_get_childNodes(root, &node_list); - ok(hr == S_OK, "Unexpected hr %#lx.\n", hr); - - hr = IXMLDOMNodeList_get_length(node_list, &list_length); - ok(hr == S_OK, "Unexpected hr %#lx.\n", hr); - todo_wine - ok(list_length == 1, "list length %ld, expected 1\n", list_length); - - hr = IXMLDOMNodeList_get_item(node_list, 0, &node); - todo_wine - ok(hr == S_OK, "Unexpected hr %#lx.\n", hr); - - hr = IXMLDOMNode_get_nodeName(node, &str); -todo_wine { - ok(hr == S_OK, "Unexpected hr %#lx.\n", hr); - ok(!lstrcmpW(L"Number", str), "got %s\n", wine_dbgstr_w(str)); -} - SysFreeString(str); - - /* characters not immediately visible. */ - hr = ISAXContentHandler_characters(content, L"12345", 5); - ok(hr == S_OK, "Unexpected hr %#lx.\n", hr); - - hr = IXMLDOMNode_get_text(node, &str); -todo_wine { - ok(hr == S_OK, "Unexpected hr %#lx.\n", hr); - ok(!lstrcmpW(L"", str), "got %s\n", wine_dbgstr_w(str)); -} - SysFreeString(str); - - /* characters visible after endElement. */ - hr = ISAXContentHandler_endElement(content, L"", 0, L"", 0, L"Number", 6); - ok(hr == S_OK, "Unexpected hr %#lx.\n", hr); - - hr = IXMLDOMNode_get_text(node, &str); -todo_wine { - ok(hr == S_OK, "Unexpected hr %#lx.\n", hr); - ok(!lstrcmpW(L"12345", str), "got %s\n", wine_dbgstr_w(str)); -} - SysFreeString(str); - - IXMLDOMNode_Release(node); - - /* second startElement updates the existing node list. */ - - hr = ISAXContentHandler_startElement(content, L"", 0, L"", 0, L"Name", 4, NULL); - ok(hr == S_OK, "Unexpected hr %#lx.\n", hr); - - hr = ISAXContentHandler_characters(content, L"Captain Ahab", 12); - ok(hr == S_OK, "Unexpected hr %#lx.\n", hr); - - hr = ISAXContentHandler_endElement(content, L"", 0, L"", 0, L"Name", 4); - ok(hr == S_OK, "Unexpected hr %#lx.\n", hr); - - hr = ISAXContentHandler_endElement(content, L"", 0, L"", 0, L"BankAccount", 11); - ok(hr == S_OK, "Unexpected hr %#lx.\n", hr); - - hr = IXMLDOMNodeList_get_length(node_list, &list_length); -todo_wine { - ok(hr == S_OK, "Unexpected hr %#lx.\n", hr); - ok(2 == list_length, "list length %ld, expected 2\n", list_length); -} - hr = IXMLDOMNodeList_get_item(node_list, 1, &node); - todo_wine - ok(hr == S_OK, "Unexpected hr %#lx.\n", hr); - - hr = IXMLDOMNode_get_nodeName(node, &str); -todo_wine { - ok(hr == S_OK, "Unexpected hr %#lx.\n", hr); - ok(!lstrcmpW(L"Name", str), "got %s\n", wine_dbgstr_w(str)); -} - SysFreeString(str); - - hr = IXMLDOMNode_get_text(node, &str); - ok(hr == S_OK, "Unexpected hr %#lx.\n", hr); -todo_wine { - ok(hr == S_OK, "Unexpected hr %#lx.\n", hr); - ok(!lstrcmpW(L"Captain Ahab", str), "got %s\n", wine_dbgstr_w(str)); -} - SysFreeString(str); - - IXMLDOMNode_Release(node); - IXMLDOMNodeList_Release(node_list); - IXMLDOMElement_Release(root); - - /* endDocument makes document modifiable again. */ - - hr = ISAXContentHandler_endDocument(content); - ok(hr == S_OK, "Unexpected hr %#lx.\n", hr); - - hr = IXMLDOMDocument_createElement(domdoc, _bstr_("TestElement"), &root); - ok(hr == S_OK, "Unexpected hr %#lx.\n", hr); - IXMLDOMElement_Release(root); - - /* finally check doc output */ - hr = IXMLDOMDocument_get_xml(domdoc, &str); -todo_wine { - ok(hr == S_OK, "Unexpected hr %#lx.\n", hr); - ok(!lstrcmpW( - L"<BankAccount>" - "<Number>12345</Number>" - "<Name>Captain Ahab</Name>" - "</BankAccount>\r\n", - str), - "got %s\n", wine_dbgstr_w(str)); -} - SysFreeString(str); - - IXMLDOMDocument_Release(domdoc); - ISAXContentHandler_Release(content); - IMXWriter_Release(writer); - - free_bstrs(); -} - static const char *encoding_names[] = { "iso-8859-1", "iso-8859-2", @@ -5995,7 +5802,6 @@ START_TEST(saxreader) test_mxwriter_properties(); test_mxwriter_flush(); test_mxwriter_stream(); - test_mxwriter_domdoc(); test_mxwriter_encoding(); test_mxwriter_dispex(); test_mxwriter_indent();