Nikolay Sivov : xmllite/reader: Return empty string for namespace uri for some nodes.
Module: wine Branch: master Commit: 3697bd9acfa4a3067105af7a1b6622a5781d5320 URL: http://source.winehq.org/git/wine.git/?a=commit;h=3697bd9acfa4a3067105af7a1b... Author: Nikolay Sivov <nsivov(a)codeweavers.com> Date: Wed Mar 8 07:07:09 2017 +0300 xmllite/reader: Return empty string for namespace uri for some nodes. Signed-off-by: Nikolay Sivov <nsivov(a)codeweavers.com> Signed-off-by: Alexandre Julliard <julliard(a)winehq.org> --- dlls/xmllite/reader.c | 9 +++++++++ dlls/xmllite/tests/reader.c | 23 ++++++++++++++++++++++- 2 files changed, 31 insertions(+), 1 deletion(-) diff --git a/dlls/xmllite/reader.c b/dlls/xmllite/reader.c index 4ea0a2a..36eba37 100644 --- a/dlls/xmllite/reader.c +++ b/dlls/xmllite/reader.c @@ -3011,6 +3011,15 @@ static HRESULT WINAPI xmlreader_GetNamespaceUri(IXmlReader* iface, const WCHAR * } } break; + case XmlNodeType_Text: + case XmlNodeType_CDATA: + case XmlNodeType_ProcessingInstruction: + case XmlNodeType_Comment: + case XmlNodeType_Whitespace: + case XmlNodeType_XmlDeclaration: + *uri = emptyW; + *len = 0; + break; default: FIXME("Unhandled node type %d\n", nodetype); return E_NOTIMPL; diff --git a/dlls/xmllite/tests/reader.c b/dlls/xmllite/tests/reader.c index 8c68610..7632d63 100644 --- a/dlls/xmllite/tests/reader.c +++ b/dlls/xmllite/tests/reader.c @@ -2116,6 +2116,18 @@ static void test_namespaceuri(void) { "defns a", "ns r", "defns a" }}, { "<a><b><c/></b></a>", { "", "", "", "", "" }}, + { "<a>text</a>", + { "", "", "" }}, + { "<a>\r\n</a>", + { "", "", "" }}, + { "<a><![CDATA[data]]></a>", + { "", "", "" }}, + { "<?xml version=\"1.0\" ?><a/>", + { "", "" }}, + { "<a><?pi ?></a>", + { "", "", "" }}, + { "<a><!-- comment --></a>", + { "", "", "" }}, }; IXmlReader *reader; XmlNodeType type; @@ -2137,13 +2149,22 @@ static void test_namespaceuri(void) const WCHAR *uri, *local; WCHAR *uriW; - ok(type == XmlNodeType_Element || type == XmlNodeType_EndElement, "Unexpected node type %d.\n", type); + ok(type == XmlNodeType_Element || + type == XmlNodeType_Text || + type == XmlNodeType_CDATA || + type == XmlNodeType_ProcessingInstruction || + type == XmlNodeType_Comment || + type == XmlNodeType_Whitespace || + type == XmlNodeType_EndElement || + type == XmlNodeType_XmlDeclaration, "Unexpected node type %d.\n", type); hr = IXmlReader_GetLocalName(reader, &local, NULL); ok(hr == S_OK, "S_OK, got %08x\n", hr); + uri = NULL; hr = IXmlReader_GetNamespaceUri(reader, &uri, NULL); ok(hr == S_OK, "S_OK, got %08x\n", hr); + ok(uri != NULL, "Unexpected NULL uri pointer\n"); uriW = a2w(uri_tests[i].uri[j]); ok(!lstrcmpW(uriW, uri), "%s: uri %s\n", wine_dbgstr_w(local), wine_dbgstr_w(uri));
participants (1)
-
Alexandre Julliard