[v2 3/6] webservices/tests: Add a test for WsCopyNode.

Hans Leidekker hans at codeweavers.com
Wed Jun 14 04:07:28 CDT 2017


Signed-off-by: Hans Leidekker <hans at codeweavers.com>
---
 dlls/webservices/tests/writer.c | 30 ++++++++++++++++++------------
 1 file changed, 18 insertions(+), 12 deletions(-)

diff --git a/dlls/webservices/tests/writer.c b/dlls/webservices/tests/writer.c
index 3bf0886079..03a978860b 100644
--- a/dlls/webservices/tests/writer.c
+++ b/dlls/webservices/tests/writer.c
@@ -136,7 +136,7 @@ static void test_WsCreateWriter(void)
 
     bytes.length = 0xdeadbeef;
     bytes.bytes = (BYTE *)0xdeadbeef;
-    size = sizeof(buffers);
+    size = sizeof(bytes);
     hr = WsGetWriterProperty( writer, WS_XML_WRITER_PROPERTY_BYTES, &bytes, size, NULL );
     ok( hr == S_OK, "got %08x\n", hr );
     ok( !bytes.length, "got %u\n", bytes.length );
@@ -1971,17 +1971,9 @@ static void test_WsWriteNode(void)
 
 static HRESULT set_input( WS_XML_READER *reader, const char *data, ULONG size )
 {
-    WS_XML_READER_TEXT_ENCODING enc;
-    WS_XML_READER_BUFFER_INPUT input;
-
-    enc.encoding.encodingType = WS_XML_READER_ENCODING_TYPE_TEXT;
-    enc.charSet               = WS_CHARSET_AUTO;
-
-    input.input.inputType = WS_XML_READER_INPUT_TYPE_BUFFER;
-    input.encodedData     = (void *)data;
-    input.encodedDataSize = size;
-
-    return WsSetInput( reader, &enc.encoding, &input.input, NULL, 0, NULL );
+    WS_XML_READER_TEXT_ENCODING text = {{WS_XML_READER_ENCODING_TYPE_TEXT}, WS_CHARSET_AUTO};
+    WS_XML_READER_BUFFER_INPUT buf = {{WS_XML_READER_INPUT_TYPE_BUFFER}, (void *)data, size};
+    return WsSetInput( reader, &text.encoding, &buf.input, NULL, 0, NULL );
 }
 
 static void test_WsCopyNode(void)
@@ -2090,6 +2082,20 @@ static void test_WsCopyNode(void)
     ok( bufs.bufferCount == 1, "got %u\n", bufs.bufferCount );
     ok( bufs.buffers != NULL, "buffers not set\n" );
 
+    /* reader positioned at BOF, single text node */
+    hr = set_input( reader, "text", sizeof("text") - 1 );
+    ok( hr == S_OK, "got %08x\n", hr );
+
+    hr = WsGetReaderNode( reader, &node, NULL );
+    ok( hr == S_OK, "got %08x\n", hr );
+    ok( node->nodeType == WS_XML_NODE_TYPE_BOF, "got %u\n", node->nodeType );
+
+    hr = set_output( writer );
+    ok( hr == S_OK, "got %08x\n", hr );
+
+    hr = WsCopyNode( writer, reader, NULL );
+    ok( hr == WS_E_INVALID_FORMAT, "got %08x\n", hr );
+
     WsFreeReader( reader );
     WsFreeWriter( writer );
     WsFreeHeap( heap );
-- 
2.11.0




More information about the wine-patches mailing list