Module: wine Branch: master Commit: 9c5b9399fc04ad93fdf31e8cda5431fa6170a0f3 URL: http://source.winehq.org/git/wine.git/?a=commit;h=9c5b9399fc04ad93fdf31e8cda...
Author: Hans Leidekker hans@codeweavers.com Date: Wed Aug 10 13:13:53 2016 +0200
webservices/tests: Add some tests for WsSetWriterPosition.
Signed-off-by: Hans Leidekker hans@codeweavers.com Signed-off-by: Alexandre Julliard julliard@winehq.org
---
dlls/webservices/tests/writer.c | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+)
diff --git a/dlls/webservices/tests/writer.c b/dlls/webservices/tests/writer.c index 3343ae5..65828a4 100644 --- a/dlls/webservices/tests/writer.c +++ b/dlls/webservices/tests/writer.c @@ -1576,6 +1576,7 @@ static void test_WsGetWriterPosition(void)
static void test_WsSetWriterPosition(void) { + WS_XML_STRING localname = {1, (BYTE *)"t"}, ns = {0, NULL}; WS_HEAP *heap; WS_XML_WRITER *writer; WS_XML_BUFFER *buf1, *buf2; @@ -1617,6 +1618,29 @@ static void test_WsSetWriterPosition(void) hr = WsSetWriterPosition( writer, &pos, NULL ); ok( hr == E_INVALIDARG, "got %08x\n", hr );
+ hr = WsSetOutputToBuffer( writer, buf1, NULL, 0, NULL ); + ok( hr == S_OK, "got %08x\n", hr ); + + /* try to write at non-final position */ + hr = WsWriteStartElement( writer, NULL, &localname, &ns, NULL ); + ok( hr == S_OK, "got %08x\n", hr ); + + pos.buffer = pos.node = NULL; + hr = WsGetWriterPosition( writer, &pos, NULL ); + ok( hr == S_OK, "got %08x\n", hr ); + ok( pos.buffer == buf1, "wrong buffer\n" ); + ok( pos.node != NULL, "node not set\n" ); + + hr = WsWriteEndElement( writer, NULL ); + ok( hr == S_OK, "got %08x\n", hr ); + check_output_buffer( buf1, "<t/>", __LINE__ ); + + hr = WsSetWriterPosition( writer, &pos, NULL ); + ok( hr == S_OK, "got %08x\n", hr ); + + hr = WsWriteStartElement( writer, NULL, &localname, &ns, NULL ); + todo_wine ok( hr == WS_E_INVALID_FORMAT, "got %08x\n", hr ); + WsFreeWriter( writer ); WsFreeHeap( heap ); }