[PATCH 0/1] MR10632: msxml3/tests: Test encoding of special characters.
recent rewrite fixes my issue submitting just the tests. `IXMLDOMText_get_text` result had a `todo_wine` https://testbot.winehq.org/JobDetails.pl?Key=162504 -- https://gitlab.winehq.org/wine/wine/-/merge_requests/10632
From: Daniel Lehman <dlehman25@gmail.com> --- dlls/msxml3/tests/domdoc.c | 60 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 60 insertions(+) diff --git a/dlls/msxml3/tests/domdoc.c b/dlls/msxml3/tests/domdoc.c index f9dfef94b81..6969689e3ee 100644 --- a/dlls/msxml3/tests/domdoc.c +++ b/dlls/msxml3/tests/domdoc.c @@ -14388,10 +14388,12 @@ static void test_put_text(void) IXMLDOMNamedNodeMap *map; IXMLDOMDocument2 *doc; IXMLDOMNode *node, *node2; + IXMLDOMText *text; VARIANT_BOOL b; BSTR str; const WCHAR *expected; HRESULT hr; + DOMNodeType type; doc = create_document(&IID_IXMLDOMDocument2); @@ -14544,6 +14546,64 @@ static void test_put_text(void) ok(!lstrcmpW(str, expected), "Incorrect element string, got '%s'\n", wine_dbgstr_w(str)); SysFreeString(str); + IXMLDOMElement_Release(element); + IXMLDOMDocument2_Release(doc); + + /* test encoding */ + doc = create_document(&IID_IXMLDOMDocument2); + + b = VARIANT_FALSE; + str = SysAllocString(L"<?xml version='1.0' encoding='UTF-16'?>\n<esc><>& "'</esc>\n"); + hr = IXMLDOMDocument2_loadXML(doc, str, &b); + ok(hr == S_OK, "Unable to create instance hr %#lx.\n", hr); + SysFreeString(str); + + str = NULL; + hr = IXMLDOMDocument2_get_text(doc, &str); + + expected = L"<>&\n\"'"; + ok(hr == S_OK, "Unexpected hr %#lx.\n", hr); + ok(!lstrcmpW(str, expected), "Incorrect element string, got '%s'\n", wine_dbgstr_w(str)); + SysFreeString(str); + + element = NULL; + hr = IXMLDOMDocument2_get_documentElement(doc, &element); + ok(hr == S_OK, "Unexpected hr %#lx.\n", hr); + + str = SysAllocString(expected); + hr = IXMLDOMElement_put_text(element, str); + ok(hr == S_OK, "Unexpected hr %#lx.\n", hr); + SysFreeString(str); + + str = NULL; + hr = IXMLDOMDocument2_get_text(doc, &str); + ok(hr == S_OK, "Unexpected hr %#lx.\n", hr); + ok(!lstrcmpW(str, expected), "Incorrect element string, got '%s'\n", wine_dbgstr_w(str)); + + node = NULL; + hr = IXMLDOMElement_get_firstChild(element, &node); + ok(hr == S_OK, "Unexpected hr %#lx.\n", hr); + + type = -1; + hr = IXMLDOMNode_get_nodeType(node, &type); + ok(hr == S_OK, "Unexpected hr %#lx.\n", hr); + ok(type == NODE_TEXT, "got %d\n", type); + + hr = IXMLDOMNode_QueryInterface(node, &IID_IXMLDOMText, (void**)&text); + ok(hr == S_OK, "Unexpected hr %#lx.\n", hr); + + str = SysAllocString(expected); + hr = IXMLDOMText_put_text(text, str); + ok(hr == S_OK, "Unexpected hr %#lx.\n", hr); + SysFreeString(str); + + str = NULL; + hr = IXMLDOMText_get_text(text, &str); + ok(!lstrcmpW(str, expected), "Incorrect element string, got '%s'\n", wine_dbgstr_w(str)); + SysFreeString(str); + + IXMLDOMText_Release(text); + IXMLDOMNode_Release(node); IXMLDOMElement_Release(element); IXMLDOMDocument2_Release(doc); free_bstrs(); -- GitLab https://gitlab.winehq.org/wine/wine/-/merge_requests/10632
I've included this in !10688. -- https://gitlab.winehq.org/wine/wine/-/merge_requests/10632#note_136661
This merge request was closed by Nikolay Sivov. -- https://gitlab.winehq.org/wine/wine/-/merge_requests/10632
participants (3)
-
Daniel Lehman -
Daniel Lehman (@dlehman25) -
Nikolay Sivov (@nsivov)