Owen Rudge : wsdapi/tests: Add tests for IWSDXMLContext_AddNameToNamespace.
Alexandre Julliard
julliard at winehq.org
Fri May 19 15:59:53 CDT 2017
Module: wine
Branch: master
Commit: 8951c03e8e575c1a240309ecf45f49348030c076
URL: http://source.winehq.org/git/wine.git/?a=commit;h=8951c03e8e575c1a240309ecf45f49348030c076
Author: Owen Rudge <orudge at codeweavers.com>
Date: Thu May 18 22:39:27 2017 +0100
wsdapi/tests: Add tests for IWSDXMLContext_AddNameToNamespace.
Signed-off-by: Owen Rudge <orudge at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>
---
dlls/wsdapi/tests/xml.c | 106 ++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 106 insertions(+)
diff --git a/dlls/wsdapi/tests/xml.c b/dlls/wsdapi/tests/xml.c
index 22f5faf..482fe85 100644
--- a/dlls/wsdapi/tests/xml.c
+++ b/dlls/wsdapi/tests/xml.c
@@ -407,6 +407,111 @@ static void XMLContext_AddNamespace_tests(void)
IWSDXMLContext_Release(context);
}
+static void XMLContext_AddNameToNamespace_tests(void)
+{
+ WCHAR ns1Uri[] = {'h','t','t','p',':','/','/','t','e','s','t','.','t','e','s','t',0};
+ WCHAR ns2Uri[] = {'h','t','t','p',':','/','/','w','i','n','e','.','r','o','c','k','s',0};
+ WCHAR prefix2[] = {'w','i','n','e',0};
+ WCHAR unPrefix0[] = {'u','n','0',0};
+ WCHAR name1Text[] = {'B','o','b',0};
+ WCHAR name2Text[] = {'T','i','m',0};
+ IWSDXMLContext *context;
+ WSDXML_NAMESPACE *ns2 = NULL;
+ WSDXML_NAME *name1 = NULL, *name2 = NULL;
+ HRESULT hr;
+
+ hr = WSDXMLCreateContext(&context);
+ ok(hr == S_OK, "WSDXMLCreateContext failed with %08x\n", hr);
+
+ /* Test calling AddNameToNamespace with invalid arguments */
+ hr = IWSDXMLContext_AddNameToNamespace(context, NULL, NULL, NULL);
+ todo_wine ok(hr == E_INVALIDARG, "AddNameToNamespace failed with %08x\n", hr);
+
+ hr = IWSDXMLContext_AddNameToNamespace(context, ns1Uri, NULL, NULL);
+ todo_wine ok(hr == E_INVALIDARG, "AddNameToNamespace failed with %08x\n", hr);
+
+ hr = IWSDXMLContext_AddNameToNamespace(context, NULL, name1Text, NULL);
+ todo_wine ok(hr == E_INVALIDARG, "AddNameToNamespace failed with %08x\n", hr);
+
+ /* Test calling AddNameToNamespace without the ppName parameter */
+ hr = IWSDXMLContext_AddNameToNamespace(context, ns1Uri, name1Text, NULL);
+ todo_wine ok(hr == S_OK, "AddNameToNamespace failed with %08x\n", hr);
+
+ /* Now retrieve the created name */
+ hr = IWSDXMLContext_AddNameToNamespace(context, ns1Uri, name1Text, &name1);
+ todo_wine ok(hr == S_OK, "AddNameToNamespace failed with %08x\n", hr);
+
+ /* Check the returned structure */
+ todo_wine ok(name1 != NULL, "name1 == NULL\n");
+
+ if (name1 != NULL)
+ {
+ ok(lstrcmpW(name1->LocalName, name1Text) == 0, "LocalName returned by AddNameToNamespace is not as expected (%s)\n", wine_dbgstr_w(name1->LocalName));
+ ok(name1->LocalName != name1Text, "LocalName has not been cloned\n");
+
+ ok(name1->Space != NULL, "Space returned by AddNameToNamespace is null\n");
+ ok(lstrcmpW(name1->Space->Uri, ns1Uri) == 0, "URI returned by AddNameToNamespace is not as expected (%s)\n", wine_dbgstr_w(name1->Space->Uri));
+ ok(lstrcmpW(name1->Space->PreferredPrefix, unPrefix0) == 0, "PreferredPrefix returned by AddName is not as expected (%s)\n", wine_dbgstr_w(name1->Space->PreferredPrefix));
+ ok(name1->Space->Names == NULL, "Names array is not empty\n");
+ ok(name1->Space->NamesCount == 0, "NamesCount is not 0 (value = %d)\n", name1->Space->NamesCount);
+ ok(name1->Space->Uri != ns1Uri, "URI has not been cloned\n");
+ }
+
+ /* Test calling AddNamespace with parameters that are too large */
+ hr = IWSDXMLContext_AddNameToNamespace(context, largeText, name1Text, &name2);
+ todo_wine ok(hr == E_INVALIDARG, "AddNameToNamespace failed with %08x\n", hr);
+
+ hr = IWSDXMLContext_AddNameToNamespace(context, ns1Uri, largeText, &name2);
+ todo_wine ok(hr == E_INVALIDARG, "AddNameToNamespace failed with %08x\n", hr);
+
+ /* Try creating a namespace explicitly */
+ hr = IWSDXMLContext_AddNamespace(context, ns2Uri, prefix2, &ns2);
+ todo_wine ok(hr == S_OK, "AddNamespace failed with %08x\n", hr);
+
+ /* Now add a name to it */
+ hr = IWSDXMLContext_AddNameToNamespace(context, ns2Uri, name2Text, &name2);
+ todo_wine ok(hr == S_OK, "AddNameToNamespace failed with %08x\n", hr);
+
+ /* Check the returned structure */
+ todo_wine ok(name2 != NULL, "name2 == NULL\n");
+
+ if (name2 != NULL)
+ {
+ ok(lstrcmpW(name2->LocalName, name2Text) == 0, "LocalName returned by AddNameToNamespace is not as expected (%s)\n", wine_dbgstr_w(name2->LocalName));
+ ok(name2->LocalName != name2Text, "LocalName has not been cloned\n");
+
+ ok(name2->Space != NULL, "Space returned by AddNameToNamespace is null\n");
+ ok(name2->Space != ns2, "Space returned by AddNameToNamespace is equal to the namespace returned by AddNamespace\n");
+ ok(lstrcmpW(name2->Space->Uri, ns2Uri) == 0, "URI returned by AddNameToNamespace is not as expected (%s)\n", wine_dbgstr_w(name2->Space->Uri));
+ ok(lstrcmpW(name2->Space->PreferredPrefix, prefix2) == 0, "PreferredPrefix returned by AddNameToNamespace is not as expected (%s)\n", wine_dbgstr_w(name2->Space->PreferredPrefix));
+ ok(name2->Space->Names == NULL, "Names array is not empty\n");
+ ok(name2->Space->NamesCount == 0, "NamesCount is not 0 (value = %d)\n", name2->Space->NamesCount);
+ ok(name2->Space->Uri != ns2Uri, "URI has not been cloned\n");
+ }
+
+ WSDFreeLinkedMemory(name1);
+ WSDFreeLinkedMemory(name2);
+ WSDFreeLinkedMemory(ns2);
+
+ /* Now re-retrieve ns2 */
+ hr = IWSDXMLContext_AddNamespace(context, ns2Uri, prefix2, &ns2);
+ todo_wine ok(hr == S_OK, "AddNamespace failed with %08x\n", hr);
+
+ /* Check the returned structure */
+ todo_wine ok(ns2 != NULL, "ns2 == NULL\n");
+
+ if (ns2 != NULL)
+ {
+ ok(lstrcmpW(ns2->Uri, ns2Uri) == 0, "URI returned by AddNamespace is not as expected (%s)\n", wine_dbgstr_w(ns2->Uri));
+
+ /* Apparently wsdapi always leaves the namespace names array as empty */
+ ok(ns2->Names == NULL, "Names array is not empty\n");
+ ok(ns2->NamesCount == 0, "NamesCount is not 0 (value = %d)\n", ns2->NamesCount);
+ }
+
+ IWSDXMLContext_Release(context);
+}
+
START_TEST(xml)
{
/* Allocate a large text buffer for use in tests */
@@ -418,6 +523,7 @@ START_TEST(xml)
AddSibling_tests();
XMLContext_AddNamespace_tests();
+ XMLContext_AddNameToNamespace_tests();
HeapFree(GetProcessHeap(), 0, largeText);
}
More information about the wine-cvs
mailing list