Module: wine Branch: master Commit: 03c7cae0c664d1b723ce1ea156a8dc3a1635cc32 URL: https://source.winehq.org/git/wine.git/?a=commit;h=03c7cae0c664d1b723ce1ea15...
Author: Owen Rudge orudge@codeweavers.com Date: Mon Apr 23 21:12:15 2018 +0100
wsdapi/tests: Add tests for Types list.
Signed-off-by: Owen Rudge orudge@codeweavers.com Signed-off-by: Huw Davies huw@codeweavers.com Signed-off-by: Alexandre Julliard julliard@winehq.org
---
dlls/wsdapi/tests/discovery.c | 32 +++++++++++++++++++++++++++----- 1 file changed, 27 insertions(+), 5 deletions(-)
diff --git a/dlls/wsdapi/tests/discovery.c b/dlls/wsdapi/tests/discovery.c index 3d88207..242c908 100644 --- a/dlls/wsdapi/tests/discovery.c +++ b/dlls/wsdapi/tests/discovery.c @@ -508,20 +508,24 @@ static void Publish_tests(void) WSADATA wsaData; BOOL messageOK, hello_message_seen = FALSE, endpoint_reference_seen = FALSE, app_sequence_seen = FALSE; BOOL metadata_version_seen = FALSE, any_header_seen = FALSE, wine_ns_seen = FALSE, body_hello_seen = FALSE; - BOOL any_body_seen = FALSE; + BOOL any_body_seen = FALSE, types_seen = FALSE, xml_namespaces_seen = FALSE; int ret, i; HRESULT rc; ULONG ref; char *msg; WSDXML_ELEMENT *header_any_element, *body_any_element, *endpoint_any_element; - WSDXML_NAME header_any_name; - WSDXML_NAMESPACE ns; + WSDXML_NAME header_any_name, another_name; + WSDXML_NAMESPACE ns, ns2; WCHAR header_any_name_text[] = {'B','e','e','r',0}; + WCHAR another_name_text[] = {'C','i','d','e','r',0}; static const WCHAR header_any_text[] = {'P','u','b','l','i','s','h','T','e','s','t',0}; static const WCHAR body_any_text[] = {'B','o','d','y','T','e','s','t',0}; static const WCHAR endpoint_any_text[] = {'E','n','d','P','T','e','s','t',0}; static const WCHAR uri[] = {'h','t','t','p',':','/','/','w','i','n','e','.','t','e','s','t','/',0}; static const WCHAR prefix[] = {'w','i','n','e',0}; + static const WCHAR uri2[] = {'h','t','t','p',':','/','/','m','o','r','e','.','t','e','s','t','s','/',0}; + static const WCHAR prefix2[] = {'g','r','o','g',0}; + WSD_NAME_LIST types_list;
rc = WSDCreateDiscoveryPublisher(NULL, &publisher); ok(rc == S_OK, "WSDCreateDiscoveryPublisher(NULL, &publisher) failed: %08x\n", rc); @@ -599,13 +603,27 @@ static void Publish_tests(void) rc = WSDXMLBuildAnyForSingleElement(&header_any_name, endpoint_any_text, &endpoint_any_element); ok(rc == S_OK, "WSDXMLBuildAnyForSingleElement failed with %08x\n", rc);
+ /* Create types list */ + ns2.Uri = uri2; + ns2.PreferredPrefix = prefix2; + + another_name.LocalName = another_name_text; + another_name.Space = &ns2; + + types_list.Next = malloc(sizeof(WSD_NAME_LIST)); + types_list.Element = &another_name; + + types_list.Next->Next = NULL; + types_list.Next->Element = &header_any_name; + /* Publish the service */ - rc = IWSDiscoveryPublisher_PublishEx(publisher, publisherIdW, 1, 1, 1, sequenceIdW, NULL, NULL, NULL, + rc = IWSDiscoveryPublisher_PublishEx(publisher, publisherIdW, 1, 1, 1, sequenceIdW, &types_list, NULL, NULL, header_any_element, NULL, NULL, endpoint_any_element, body_any_element);
WSDFreeLinkedMemory(header_any_element); WSDFreeLinkedMemory(body_any_element); WSDFreeLinkedMemory(endpoint_any_element); + free(types_list.Next);
ok(rc == S_OK, "Publish failed: %08x\n", rc);
@@ -642,8 +660,10 @@ static void Publish_tests(void) wine_ns_seen = (strstr(msg, "xmlns:wine="http://wine.test/%5C"") != NULL); body_hello_seen = (strstr(msg, "soap:Body<wsd:Hello") != NULL); any_body_seen = (strstr(msg, "wine:BeerBodyTest</wine:Beer>") != NULL); + types_seen = (strstr(msg, "wsd:Typesgrog:Cider wine:Beer</wsd:Types>") != NULL); + xml_namespaces_seen = (strstr(msg, "xmlns:wine="http://wine.test/%5C" xmlns:grog="http://more.tests/%5C"") != NULL); messageOK = hello_message_seen && endpoint_reference_seen && app_sequence_seen && metadata_version_seen && - any_header_seen && wine_ns_seen && body_hello_seen && any_body_seen; + any_header_seen && wine_ns_seen && body_hello_seen && any_body_seen && types_seen && xml_namespaces_seen;
if (messageOK) break; } @@ -664,6 +684,8 @@ static void Publish_tests(void) ok(wine_ns_seen == TRUE, "Wine namespace not received\n"); ok(body_hello_seen == TRUE, "Body and Hello elements not received\n"); ok(any_body_seen == TRUE, "Custom body element not received\n"); + ok(types_seen == TRUE, "Types not received\n"); + ok(xml_namespaces_seen == TRUE, "XML namespaces not received\n");
after_publish_test: