From: Nikolay Sivov <nsivov@codeweavers.com> Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com> --- dlls/msxml3/tests/saxreader.c | 346 ++++++---------------------------- 1 file changed, 54 insertions(+), 292 deletions(-) diff --git a/dlls/msxml3/tests/saxreader.c b/dlls/msxml3/tests/saxreader.c index 879e1ae6b42..6879dcc6217 100644 --- a/dlls/msxml3/tests/saxreader.c +++ b/dlls/msxml3/tests/saxreader.c @@ -3712,7 +3712,6 @@ static void test_mxwriter_properties(void) VARIANT_BOOL b; HRESULT hr; BSTR str, str2; - VARIANT dest; test_mxwriter_default_properties(mxwriter_default_props); @@ -3805,13 +3804,8 @@ static void test_mxwriter_properties(void) hr = ISAXContentHandler_endDocument(content); ok(hr == S_OK, "Unexpected hr %#lx.\n", hr); - V_VT(&dest) = VT_EMPTY; - hr = IMXWriter_get_output(writer, &dest); - ok(hr == S_OK, "Unexpected hr %#lx.\n", hr); - ok(V_VT(&dest) == VT_BSTR, "got %d\n", V_VT(&dest)); - ok(!lstrcmpW(L"<?xml version=\"1.0\" encoding=\"UTF-16\" standalone=\"yes\"?>\r\n", - V_BSTR(&dest)), "got wrong content %s\n", wine_dbgstr_w(V_BSTR(&dest))); - VariantClear(&dest); + check_writer_output(writer, L"<?xml version=\"1.0\" encoding=\"UTF-16\" standalone=\"yes\"?>\r\n"); + ISAXContentHandler_Release(content); hr = IMXWriter_get_version(writer, NULL); @@ -4058,7 +4052,6 @@ static void test_mxwriter_startenddocument(void) { ISAXContentHandler *content; IMXWriter *writer; - VARIANT dest; HRESULT hr; hr = CoCreateInstance(&CLSID_MXXMLWriter, NULL, CLSCTX_INPROC_SERVER, @@ -4074,26 +4067,14 @@ static void test_mxwriter_startenddocument(void) hr = ISAXContentHandler_endDocument(content); ok(hr == S_OK, "Unexpected hr %#lx.\n", hr); - V_VT(&dest) = VT_EMPTY; - hr = IMXWriter_get_output(writer, &dest); - ok(hr == S_OK, "Unexpected hr %#lx.\n", hr); - ok(V_VT(&dest) == VT_BSTR, "got %d\n", V_VT(&dest)); - ok(!lstrcmpW(L"<?xml version=\"1.0\" encoding=\"UTF-16\" standalone=\"no\"?>\r\n", V_BSTR(&dest)), - "got wrong content %s\n", wine_dbgstr_w(V_BSTR(&dest))); - VariantClear(&dest); + check_writer_output(writer, L"<?xml version=\"1.0\" encoding=\"UTF-16\" standalone=\"no\"?>\r\n"); /* now try another startDocument */ hr = ISAXContentHandler_startDocument(content); ok(hr == S_OK, "Unexpected hr %#lx.\n", hr); /* and get duplicated prolog */ - V_VT(&dest) = VT_EMPTY; - hr = IMXWriter_get_output(writer, &dest); - ok(hr == S_OK, "Unexpected hr %#lx.\n", hr); - ok(V_VT(&dest) == VT_BSTR, "got %d\n", V_VT(&dest)); - ok(!lstrcmpW(L"<?xml version=\"1.0\" encoding=\"UTF-16\" standalone=\"no\"?>\r\n" - "<?xml version=\"1.0\" encoding=\"UTF-16\" standalone=\"no\"?>\r\n", V_BSTR(&dest)), - "got wrong content %s\n", wine_dbgstr_w(V_BSTR(&dest))); - VariantClear(&dest); + check_writer_output(writer, L"<?xml version=\"1.0\" encoding=\"UTF-16\" standalone=\"no\"?>\r\n" + "<?xml version=\"1.0\" encoding=\"UTF-16\" standalone=\"no\"?>\r\n"); ISAXContentHandler_Release(content); IMXWriter_Release(writer); @@ -4115,12 +4096,7 @@ static void test_mxwriter_startenddocument(void) hr = ISAXContentHandler_endDocument(content); ok(hr == S_OK, "Unexpected hr %#lx.\n", hr); - V_VT(&dest) = VT_EMPTY; - hr = IMXWriter_get_output(writer, &dest); - ok(hr == S_OK, "Unexpected hr %#lx.\n", hr); - ok(V_VT(&dest) == VT_BSTR, "got %d\n", V_VT(&dest)); - ok(!lstrcmpW(L"", V_BSTR(&dest)), "got wrong content %s\n", wine_dbgstr_w(V_BSTR(&dest))); - VariantClear(&dest); + check_writer_output(writer, L""); ISAXContentHandler_Release(content); IMXWriter_Release(writer); @@ -4145,13 +4121,7 @@ static void test_mxwriter_startenddocument(void) hr = ISAXContentHandler_endDocument(content); ok(hr == S_OK, "Unexpected hr %#lx.\n", hr); - V_VT(&dest) = VT_EMPTY; - hr = IMXWriter_get_output(writer, &dest); - ok(hr == S_OK, "Unexpected hr %#lx.\n", hr); - ok(V_VT(&dest) == VT_BSTR, "got %d\n", V_VT(&dest)); - ok(!lstrcmpW(L"<?xml version=\"1.0\" encoding=\"UTF-16\" standalone=\"no\"?>\r\n<a>", V_BSTR(&dest)), - "got wrong content %s\n", wine_dbgstr_w(V_BSTR(&dest))); - VariantClear(&dest); + check_writer_output(writer, L"<?xml version=\"1.0\" encoding=\"UTF-16\" standalone=\"no\"?>\r\n<a>"); free_bstrs(); } @@ -4277,6 +4247,8 @@ static void test_mxwriter_startendelement_batch(const struct writer_startendelem &IID_IMXWriter, (void**)&writer); ok(hr == S_OK, "Unexpected hr %#lx.\n", hr); + winetest_push_context("Test %d", i); + hr = IMXWriter_QueryInterface(writer, &IID_ISAXContentHandler, (void**)&content); ok(hr == S_OK, "Unexpected hr %#lx.\n", hr); @@ -4297,7 +4269,7 @@ static void test_mxwriter_startendelement_batch(const struct writer_startendelem hr = ISAXContentHandler_startElement(content, table->uri, table->uri ? lstrlenW(table->uri) : 0, table->local_name, table->local_name ? lstrlenW(table->local_name) : 0, table->qname, table->qname ? lstrlenW(table->qname) : 0, table->attr); - ok(hr == table->hr, "test %d: got %#lx, expected %#lx\n", i, hr, table->hr); + ok(hr == table->hr, "Unexpected hr %#lx.\n", hr); } if (table->type & EndElement) @@ -4305,26 +4277,18 @@ static void test_mxwriter_startendelement_batch(const struct writer_startendelem hr = ISAXContentHandler_endElement(content, table->uri, table->uri ? lstrlenW(table->uri) : 0, table->local_name, table->local_name ? lstrlenW(table->local_name) : 0, table->qname, table->qname ? lstrlenW(table->qname) : 0); - ok(hr == table->hr, "test %d: got %#lx, expected %#lx\n", i, hr, table->hr); + ok(hr == table->hr, "Unexpected hr %#lx.\n", hr); } /* test output */ if (hr == S_OK) - { - VARIANT dest; - - V_VT(&dest) = VT_EMPTY; - hr = IMXWriter_get_output(writer, &dest); - ok(hr == S_OK, "Unexpected hr %#lx.\n", hr); - ok(V_VT(&dest) == VT_BSTR, "got %d\n", V_VT(&dest)); - ok(!lstrcmpW(table->output, V_BSTR(&dest)), - "test %d: got wrong content %s, expected %s\n", i, wine_dbgstr_w(V_BSTR(&dest)), wine_dbgstr_w(table->output)); - VariantClear(&dest); - } + check_writer_output(writer, table->output); ISAXContentHandler_Release(content); IMXWriter_Release(writer); + winetest_pop_context(); + table++; i++; } @@ -4390,17 +4354,7 @@ static void test_mxwriter_startendelement_batch2(const struct writer_startendele /* test output */ if (hr == S_OK) - { - VARIANT dest; - - V_VT(&dest) = VT_EMPTY; - hr = IMXWriter_get_output(writer, &dest); - ok(hr == S_OK, "Unexpected hr %#lx.\n", hr); - ok(V_VT(&dest) == VT_BSTR, "got %d\n", V_VT(&dest)); - ok(!lstrcmpW(table->output, V_BSTR(&dest)), - "test %d: got wrong content %s, expected %s\n", i, wine_dbgstr_w(V_BSTR(&dest)), wine_dbgstr_w(table->output)); - VariantClear(&dest); - } + check_writer_output(writer, table->output); ISAXContentHandler_Release(content); IMXWriter_Release(writer); @@ -4449,22 +4403,12 @@ static void test_mxwriter_startendelement(void) hr = IVBSAXContentHandler_startElement(vb_content, &bstr_empty, &bstr_b, &bstr_empty, NULL); ok(hr == S_OK, "Unexpected hr %#lx.\n", hr); - V_VT(&dest) = VT_EMPTY; - hr = IMXWriter_get_output(writer, &dest); - ok(hr == S_OK, "Unexpected hr %#lx.\n", hr); - ok(V_VT(&dest) == VT_BSTR, "got %d\n", V_VT(&dest)); - ok(!lstrcmpW(L"<>", V_BSTR(&dest)), "got wrong content %s\n", wine_dbgstr_w(V_BSTR(&dest))); - VariantClear(&dest); + check_writer_output(writer, L"<>"); hr = IVBSAXContentHandler_startElement(vb_content, &bstr_empty, &bstr_empty, &bstr_b, NULL); ok(hr == S_OK, "Unexpected hr %#lx.\n", hr); - V_VT(&dest) = VT_EMPTY; - hr = IMXWriter_get_output(writer, &dest); - ok(hr == S_OK, "Unexpected hr %#lx.\n", hr); - ok(V_VT(&dest) == VT_BSTR, "got %d\n", V_VT(&dest)); - ok(!lstrcmpW(L"<><b>", V_BSTR(&dest)), "got wrong content %s\n", wine_dbgstr_w(V_BSTR(&dest))); - VariantClear(&dest); + check_writer_output(writer, L"<><b>"); hr = IVBSAXContentHandler_endElement(vb_content, &bstr_null, &bstr_null, &bstr_b); ok(hr == E_INVALIDARG, "Unexpected hr %#lx.\n", hr); @@ -4484,12 +4428,7 @@ static void test_mxwriter_startendelement(void) hr = IVBSAXContentHandler_endElement(vb_content, &bstr_empty, &bstr_empty, &bstr_b); ok(hr == S_OK, "Unexpected hr %#lx.\n", hr); - V_VT(&dest) = VT_EMPTY; - hr = IMXWriter_get_output(writer, &dest); - ok(hr == S_OK, "Unexpected hr %#lx.\n", hr); - ok(V_VT(&dest) == VT_BSTR, "got %d\n", V_VT(&dest)); - ok(!lstrcmpW(L"<><b></b>", V_BSTR(&dest)), "got wrong content %s\n", wine_dbgstr_w(V_BSTR(&dest))); - VariantClear(&dest); + check_writer_output(writer, L"<><b></b>"); SysFreeString(bstr_empty); SysFreeString(bstr_a); @@ -4519,22 +4458,12 @@ static void test_mxwriter_startendelement(void) hr = ISAXContentHandler_startElement(content, L"", 0, L"b", 1, L"", 0, NULL); ok(hr == S_OK, "Unexpected hr %#lx.\n", hr); - V_VT(&dest) = VT_EMPTY; - hr = IMXWriter_get_output(writer, &dest); - ok(hr == S_OK, "Unexpected hr %#lx.\n", hr); - ok(V_VT(&dest) == VT_BSTR, "got %d\n", V_VT(&dest)); - ok(!lstrcmpW(L"<>", V_BSTR(&dest)), "got wrong content %s\n", wine_dbgstr_w(V_BSTR(&dest))); - VariantClear(&dest); + check_writer_output(writer, L"<>"); hr = ISAXContentHandler_startElement(content, L"", 0, L"", 0, L"b", 1, NULL); ok(hr == S_OK, "Unexpected hr %#lx.\n", hr); - V_VT(&dest) = VT_EMPTY; - hr = IMXWriter_get_output(writer, &dest); - ok(hr == S_OK, "Unexpected hr %#lx.\n", hr); - ok(V_VT(&dest) == VT_BSTR, "got %d\n", V_VT(&dest)); - ok(!lstrcmpW(L"<><b>", V_BSTR(&dest)), "got wrong content %s\n", wine_dbgstr_w(V_BSTR(&dest))); - VariantClear(&dest); + check_writer_output(writer, L"<><b>"); hr = ISAXContentHandler_endElement(content, NULL, 0, NULL, 0, L"a:b", 3); ok(hr == E_INVALIDARG, "Unexpected hr %#lx.\n", hr); @@ -4548,13 +4477,7 @@ static void test_mxwriter_startendelement(void) hr = ISAXContentHandler_endElement(content, L"", 0, L"", 0, L"b", 1); ok(hr == S_OK, "Unexpected hr %#lx.\n", hr); - - V_VT(&dest) = VT_EMPTY; - hr = IMXWriter_get_output(writer, &dest); - ok(hr == S_OK, "Unexpected hr %#lx.\n", hr); - ok(V_VT(&dest) == VT_BSTR, "got %d\n", V_VT(&dest)); - ok(!lstrcmpW(L"<><b></b>", V_BSTR(&dest)), "got wrong content %s\n", wine_dbgstr_w(V_BSTR(&dest))); - VariantClear(&dest); + check_writer_output(writer, L"<><b></b>"); hr = ISAXContentHandler_endDocument(content); ok(hr == S_OK, "Unexpected hr %#lx.\n", hr); @@ -4563,25 +4486,14 @@ static void test_mxwriter_startendelement(void) hr = IMXWriter_put_output(writer, dest); ok(hr == S_OK, "Unexpected hr %#lx.\n", hr); - V_VT(&dest) = VT_EMPTY; - hr = IMXWriter_get_output(writer, &dest); - ok(hr == S_OK, "Unexpected hr %#lx.\n", hr); - ok(V_VT(&dest) == VT_BSTR, "got %d\n", V_VT(&dest)); - ok(!lstrcmpW(L"", V_BSTR(&dest)), "got wrong content %s\n", wine_dbgstr_w(V_BSTR(&dest))); - VariantClear(&dest); + check_writer_output(writer, L""); hr = ISAXContentHandler_startDocument(content); ok(hr == S_OK, "Unexpected hr %#lx.\n", hr); hr = ISAXContentHandler_startElement(content, L"", 0, L"", 0, L"abcdef", 3, NULL); ok(hr == S_OK, "Unexpected hr %#lx.\n", hr); - - V_VT(&dest) = VT_EMPTY; - hr = IMXWriter_get_output(writer, &dest); - ok(hr == S_OK, "Unexpected hr %#lx.\n", hr); - ok(V_VT(&dest) == VT_BSTR, "got %d\n", V_VT(&dest)); - ok(!lstrcmpW(L"<abc>", V_BSTR(&dest)), "got wrong content %s\n", wine_dbgstr_w(V_BSTR(&dest))); - VariantClear(&dest); + check_writer_output(writer, L"<abc>"); hr = ISAXContentHandler_endDocument(content); ok(hr == S_OK, "Unexpected hr %#lx.\n", hr); @@ -4589,12 +4501,7 @@ static void test_mxwriter_startendelement(void) hr = ISAXContentHandler_endElement(content, L"", 0, L"", 0, L"abdcdef", 3); ok(hr == S_OK, "Unexpected hr %#lx.\n", hr); - V_VT(&dest) = VT_EMPTY; - hr = IMXWriter_get_output(writer, &dest); - ok(hr == S_OK, "Unexpected hr %#lx.\n", hr); - ok(V_VT(&dest) == VT_BSTR, "got %d\n", V_VT(&dest)); - ok(!lstrcmpW(L"<abc></abd>", V_BSTR(&dest)), "got wrong content %s\n", wine_dbgstr_w(V_BSTR(&dest))); - VariantClear(&dest); + check_writer_output(writer, L"<abc></abd>"); V_VT(&dest) = VT_EMPTY; hr = IMXWriter_put_output(writer, dest); @@ -4603,12 +4510,7 @@ static void test_mxwriter_startendelement(void) /* length -1 */ hr = ISAXContentHandler_startElement(content, L"", 0, L"", 0, L"a", -1, NULL); ok(hr == S_OK, "Unexpected hr %#lx.\n", hr); - V_VT(&dest) = VT_EMPTY; - hr = IMXWriter_get_output(writer, &dest); - ok(hr == S_OK, "Unexpected hr %#lx.\n", hr); - ok(V_VT(&dest) == VT_BSTR, "got %d\n", V_VT(&dest)); - ok(!lstrcmpW(L"<a>", V_BSTR(&dest)), "got wrong content %s\n", wine_dbgstr_w(V_BSTR(&dest))); - VariantClear(&dest); + check_writer_output(writer, L"<a>"); ISAXContentHandler_Release(content); IMXWriter_Release(writer); @@ -4669,12 +4571,7 @@ static void test_mxwriter_characters(void) hr = ISAXContentHandler_characters(content, L"TESTCHARDATA .", 14); ok(hr == S_OK, "Unexpected hr %#lx.\n", hr); - V_VT(&dest) = VT_EMPTY; - hr = IMXWriter_get_output(writer, &dest); - ok(hr == S_OK, "Unexpected hr %#lx.\n", hr); - ok(V_VT(&dest) == VT_BSTR, "got %d\n", V_VT(&dest)); - ok(!lstrcmpW(L"VbCharsTESTCHARDATA .", V_BSTR(&dest)), "got wrong content %s\n", wine_dbgstr_w(V_BSTR(&dest))); - VariantClear(&dest); + check_writer_output(writer, L"VbCharsTESTCHARDATA ."); hr = ISAXContentHandler_endDocument(content); ok(hr == S_OK, "Unexpected hr %#lx.\n", hr); @@ -4706,12 +4603,7 @@ static void test_mxwriter_characters(void) hr = ISAXContentHandler_endElement(content, L"", 0, L"", 0, L"a", 1); ok(hr == S_OK, "Unexpected hr %#lx.\n", hr); - V_VT(&dest) = VT_EMPTY; - hr = IMXWriter_get_output(writer, &dest); - ok(hr == S_OK, "Unexpected hr %#lx.\n", hr); - ok(V_VT(&dest) == VT_BSTR, "got %d\n", V_VT(&dest)); - ok(!lstrcmpW(L"<a></a>", V_BSTR(&dest)), "got wrong content %s\n", wine_dbgstr_w(V_BSTR(&dest))); - VariantClear(&dest); + check_writer_output(writer, L"<a></a>"); ISAXContentHandler_Release(content); IMXWriter_Release(writer); @@ -4791,12 +4683,7 @@ static void test_mxwriter_characters(void) hr = ISAXContentHandler_characters(content, L"\ncd", 3); ok(hr == S_OK, "Unexpected hr %#lx.\n", hr); - V_VT(&dest) = VT_EMPTY; - hr = IMXWriter_get_output(writer, &dest); - ok(hr == S_OK, "Unexpected hr %#lx.\n", hr); - ok(V_VT(&dest) == VT_BSTR, "Unexpected type %d.\n", V_VT(&dest)); - ok(!lstrcmpW(L"ab\r\n\r\ncd", V_BSTR(&dest)), "Unexpected content %s\n", wine_dbgstr_w(V_BSTR(&dest))); - VariantClear(&dest); + check_writer_output(writer, L"ab\r\n\r\ncd"); V_VT(&dest) = VT_EMPTY; hr = IMXWriter_put_output(writer, dest); @@ -4805,12 +4692,7 @@ static void test_mxwriter_characters(void) hr = ISAXContentHandler_characters(content, L"\nab\rc\r\n", 7); ok(hr == S_OK, "Unexpected hr %#lx.\n", hr); - V_VT(&dest) = VT_EMPTY; - hr = IMXWriter_get_output(writer, &dest); - ok(hr == S_OK, "Unexpected hr %#lx.\n", hr); - ok(V_VT(&dest) == VT_BSTR, "Unexpected type %d.\n", V_VT(&dest)); - ok(!lstrcmpW(L"\r\nab\r\nc\r\n", V_BSTR(&dest)), "Unexpected content %s\n", wine_dbgstr_w(V_BSTR(&dest))); - VariantClear(&dest); + check_writer_output(writer, L"\r\nab\r\nc\r\n"); ISAXContentHandler_Release(content); IMXWriter_Release(writer); @@ -4842,15 +4724,7 @@ static void test_mxwriter_characters(void) /* test output */ if (hr == S_OK) - { - V_VT(&dest) = VT_EMPTY; - hr = IMXWriter_get_output(writer, &dest); - ok(hr == S_OK, "Unexpected hr %#lx.\n", hr); - ok(V_VT(&dest) == VT_BSTR, "got %d\n", V_VT(&dest)); - ok(!lstrcmpW(table->output, V_BSTR(&dest)), - "test %d: got wrong content %s, expected %s\n", i, wine_dbgstr_w(V_BSTR(&dest)), wine_dbgstr_w(table->output)); - VariantClear(&dest); - } + check_writer_output(writer, table->output); /* with disabled escaping */ V_VT(&dest) = VT_EMPTY; @@ -4865,15 +4739,7 @@ static void test_mxwriter_characters(void) /* test output */ if (hr == S_OK) - { - V_VT(&dest) = VT_EMPTY; - hr = IMXWriter_get_output(writer, &dest); - ok(hr == S_OK, "Unexpected hr %#lx.\n", hr); - ok(V_VT(&dest) == VT_BSTR, "got %d\n", V_VT(&dest)); - ok(!lstrcmpW(table->data, V_BSTR(&dest)), - "test %d: got wrong content %s, expected %s\n", i, wine_dbgstr_w(V_BSTR(&dest)), wine_dbgstr_w(table->data)); - VariantClear(&dest); - } + check_writer_output(writer, table->data); ISAXContentHandler_Release(content); IMXWriter_Release(writer); @@ -4908,12 +4774,7 @@ static void test_mxwriter_characters(void) hr = ISAXContentHandler_endElement(content, L"", 0, L"", 0, L"a", 1); ok(hr == S_OK, "Unexpected hr %#lx.\n", hr); - V_VT(&dest) = VT_EMPTY; - hr = IMXWriter_get_output(writer, &dest); - ok(hr == S_OK, "Unexpected hr %#lx.\n", hr); - ok(V_VT(&dest) == VT_BSTR, "got %d\n", V_VT(&dest)); - ok(!lstrcmpW(L"<a>test</a>", V_BSTR(&dest)), "got wrong content %s\n", wine_dbgstr_w(V_BSTR(&dest))); - VariantClear(&dest); + check_writer_output(writer, L"<a>test</a>"); ISAXContentHandler_Release(content); IMXWriter_Release(writer); @@ -5063,13 +4924,7 @@ static void test_mxwriter_stream(void) hr = ISAXContentHandler_endDocument(content); ok(hr == S_OK, "Unexpected hr %#lx.\n", hr); - V_VT(&dest) = VT_EMPTY; - hr = IMXWriter_get_output(writer, &dest); - ok(hr == S_OK, "Unexpected hr %#lx.\n", hr); - ok(V_VT(&dest) == VT_BSTR, "Expected VT_BSTR, got %d\n", V_VT(&dest)); - ok(!lstrcmpW(L"<?xml version=\"1.0\" encoding=\"UTF-16\" standalone=\"no\"?>\r\n", V_BSTR(&dest)), - "Got wrong content: %s\n", wine_dbgstr_w(V_BSTR(&dest))); - VariantClear(&dest); + check_writer_output(writer, L"<?xml version=\"1.0\" encoding=\"UTF-16\" standalone=\"no\"?>\r\n"); /* test when BOM is written to output stream */ V_VT(&dest) = VT_EMPTY; @@ -5152,13 +5007,7 @@ static void test_mxwriter_encoding(void) /* The content is always re-encoded to UTF-16 when the output is * retrieved as a BSTR. */ - V_VT(&dest) = VT_EMPTY; - hr = IMXWriter_get_output(writer, &dest); - ok(hr == S_OK, "Unexpected hr %#lx.\n", hr); - ok(V_VT(&dest) == VT_BSTR, "Expected VT_BSTR, got %d\n", V_VT(&dest)); - ok(!lstrcmpW(L"<?xml version=\"1.0\" encoding=\"UTF-16\" standalone=\"no\"?>\r\n", V_BSTR(&dest)), - "got wrong content: %s\n", wine_dbgstr_w(V_BSTR(&dest))); - VariantClear(&dest); + check_writer_output(writer, L"<?xml version=\"1.0\" encoding=\"UTF-16\" standalone=\"no\"?>\r\n"); /* switch encoding when something is written already */ hr = CreateStreamOnHGlobal(NULL, TRUE, &stream); @@ -5514,7 +5363,6 @@ static void test_mxwriter_cdata(void) ISAXContentHandler *content; ISAXLexicalHandler *lexical; IMXWriter *writer; - VARIANT dest; HRESULT hr; hr = CoCreateInstance(&CLSID_MXXMLWriter, NULL, CLSCTX_INPROC_SERVER, @@ -5539,12 +5387,7 @@ static void test_mxwriter_cdata(void) hr = ISAXLexicalHandler_startCDATA(lexical); ok(hr == S_OK, "Unexpected hr %#lx.\n", hr); - V_VT(&dest) = VT_EMPTY; - hr = IMXWriter_get_output(writer, &dest); - ok(hr == S_OK, "Unexpected hr %#lx.\n", hr); - ok(V_VT(&dest) == VT_BSTR, "got %d\n", V_VT(&dest)); - ok(!lstrcmpW(L"<![CDATA[", V_BSTR(&dest)), "got wrong content %s\n", wine_dbgstr_w(V_BSTR(&dest))); - VariantClear(&dest); + check_writer_output(writer, L"<![CDATA["); hr = IVBSAXLexicalHandler_startCDATA(vblexical); ok(hr == S_OK, "Unexpected hr %#lx.\n", hr); @@ -5559,13 +5402,7 @@ static void test_mxwriter_cdata(void) hr = ISAXLexicalHandler_endCDATA(lexical); ok(hr == S_OK, "Unexpected hr %#lx.\n", hr); - V_VT(&dest) = VT_EMPTY; - hr = IMXWriter_get_output(writer, &dest); - ok(hr == S_OK, "Unexpected hr %#lx.\n", hr); - ok(V_VT(&dest) == VT_BSTR, "got %d\n", V_VT(&dest)); - todo_wine - ok(!lstrcmpW(L"<![CDATA[<![CDATA[< > & \"\r\na\r\nb\r\n]]>", V_BSTR(&dest)), "got wrong content %s\n", wine_dbgstr_w(V_BSTR(&dest))); - VariantClear(&dest); + check_writer_output_todo(writer, L"<![CDATA[<![CDATA[< > & \"\r\na\r\nb\r\n]]>"); ISAXContentHandler_Release(content); ISAXLexicalHandler_Release(lexical); @@ -5672,7 +5509,6 @@ static void test_mxwriter_ignorablespaces(void) { ISAXContentHandler *content; IMXWriter *writer; - VARIANT dest; HRESULT hr; hr = CoCreateInstance(&CLSID_MXXMLWriter, NULL, CLSCTX_INPROC_SERVER, @@ -5694,12 +5530,7 @@ static void test_mxwriter_ignorablespaces(void) hr = ISAXContentHandler_ignorableWhitespace(content, L"data", 1); ok(hr == S_OK, "Unexpected hr %#lx.\n", hr); - V_VT(&dest) = VT_EMPTY; - hr = IMXWriter_get_output(writer, &dest); - ok(hr == S_OK, "Unexpected hr %#lx.\n", hr); - ok(V_VT(&dest) == VT_BSTR, "got %d\n", V_VT(&dest)); - ok(!lstrcmpW(L"datad", V_BSTR(&dest)), "got wrong content %s\n", wine_dbgstr_w(V_BSTR(&dest))); - VariantClear(&dest); + check_writer_output(writer, L"datad"); ISAXContentHandler_Release(content); IMXWriter_Release(writer); @@ -5760,12 +5591,7 @@ static void test_mxwriter_dtd(void) hr = ISAXLexicalHandler_startDTD(lexical, L"name", 4, NULL, 0, NULL, 0); ok(hr == S_OK, "Unexpected hr %#lx.\n", hr); - V_VT(&dest) = VT_EMPTY; - hr = IMXWriter_get_output(writer, &dest); - ok(hr == S_OK, "Unexpected hr %#lx.\n", hr); - ok(V_VT(&dest) == VT_BSTR, "got %d\n", V_VT(&dest)); - ok(!lstrcmpW(L"<!DOCTYPE name [\r\n", V_BSTR(&dest)), "got wrong content %s\n", wine_dbgstr_w(V_BSTR(&dest))); - VariantClear(&dest); + check_writer_output(writer, L"<!DOCTYPE name [\r\n"); /* system id is required if public is present */ hr = ISAXLexicalHandler_startDTD(lexical, L"name", 4, L"pub", 3, NULL, 0); @@ -5774,13 +5600,8 @@ static void test_mxwriter_dtd(void) hr = ISAXLexicalHandler_startDTD(lexical, L"name", 4, L"pub", 3, L"sys", 3); ok(hr == S_OK, "Unexpected hr %#lx.\n", hr); - V_VT(&dest) = VT_EMPTY; - hr = IMXWriter_get_output(writer, &dest); - ok(hr == S_OK, "Unexpected hr %#lx.\n", hr); - ok(V_VT(&dest) == VT_BSTR, "got %d\n", V_VT(&dest)); - ok(!lstrcmpW(L"<!DOCTYPE name [\r\n<!DOCTYPE name PUBLIC \"pub\"" - "<!DOCTYPE name PUBLIC \"pub\" \"sys\" [\r\n", V_BSTR(&dest)), "got wrong content %s\n", wine_dbgstr_w(V_BSTR(&dest))); - VariantClear(&dest); + check_writer_output(writer, L"<!DOCTYPE name [\r\n<!DOCTYPE name PUBLIC \"pub\"" + "<!DOCTYPE name PUBLIC \"pub\" \"sys\" [\r\n"); hr = ISAXLexicalHandler_endDTD(lexical); ok(hr == S_OK, "Unexpected hr %#lx.\n", hr); @@ -5788,14 +5609,8 @@ static void test_mxwriter_dtd(void) hr = IVBSAXLexicalHandler_endDTD(vblexical); ok(hr == S_OK, "Unexpected hr %#lx.\n", hr); - V_VT(&dest) = VT_EMPTY; - hr = IMXWriter_get_output(writer, &dest); - ok(hr == S_OK, "Unexpected hr %#lx.\n", hr); - ok(V_VT(&dest) == VT_BSTR, "got %d\n", V_VT(&dest)); - ok(!lstrcmpW(L"<!DOCTYPE name [\r\n<!DOCTYPE name PUBLIC \"pub\"" - "<!DOCTYPE name PUBLIC \"pub\" \"sys\" [\r\n]>\r\n]>\r\n", - V_BSTR(&dest)), "got wrong content %s\n", wine_dbgstr_w(V_BSTR(&dest))); - VariantClear(&dest); + check_writer_output(writer, L"<!DOCTYPE name [\r\n<!DOCTYPE name PUBLIC \"pub\"" + "<!DOCTYPE name PUBLIC \"pub\" \"sys\" [\r\n]>\r\n]>\r\n"); /* element declaration */ V_VT(&dest) = VT_EMPTY; @@ -5814,13 +5629,7 @@ static void test_mxwriter_dtd(void) hr = ISAXDeclHandler_elementDecl(decl, L"name", 4, L"content", 7); ok(hr == S_OK, "Unexpected hr %#lx.\n", hr); - V_VT(&dest) = VT_EMPTY; - hr = IMXWriter_get_output(writer, &dest); - ok(hr == S_OK, "Unexpected hr %#lx.\n", hr); - ok(V_VT(&dest) == VT_BSTR, "got %d\n", V_VT(&dest)); - ok(!lstrcmpW(L"<!ELEMENT name content>\r\n", - V_BSTR(&dest)), "got wrong content %s\n", wine_dbgstr_w(V_BSTR(&dest))); - VariantClear(&dest); + check_writer_output(writer, L"<!ELEMENT name content>\r\n"); V_VT(&dest) = VT_EMPTY; hr = IMXWriter_put_output(writer, dest); @@ -5829,13 +5638,7 @@ static void test_mxwriter_dtd(void) hr = ISAXDeclHandler_elementDecl(decl, L"name", 4, L"content", 0); ok(hr == S_OK, "Unexpected hr %#lx.\n", hr); - V_VT(&dest) = VT_EMPTY; - hr = IMXWriter_get_output(writer, &dest); - ok(hr == S_OK, "Unexpected hr %#lx.\n", hr); - ok(V_VT(&dest) == VT_BSTR, "got %d\n", V_VT(&dest)); - ok(!lstrcmpW(L"<!ELEMENT name >\r\n", - V_BSTR(&dest)), "got wrong content %s\n", wine_dbgstr_w(V_BSTR(&dest))); - VariantClear(&dest); + check_writer_output(writer, L"<!ELEMENT name >\r\n"); /* attribute declaration */ V_VT(&dest) = VT_EMPTY; @@ -5846,13 +5649,7 @@ static void test_mxwriter_dtd(void) L"#REQUIRED", 9, L"value", 5); ok(hr == S_OK, "Unexpected hr %#lx.\n", hr); - V_VT(&dest) = VT_EMPTY; - hr = IMXWriter_get_output(writer, &dest); - ok(hr == S_OK, "Unexpected hr %#lx.\n", hr); - ok(V_VT(&dest) == VT_BSTR, "got %d\n", V_VT(&dest)); - ok(!lstrcmpW(L"<!ATTLIST element attribute CDATA #REQUIRED \"value\">\r\n", - V_BSTR(&dest)), "got wrong content %s\n", wine_dbgstr_w(V_BSTR(&dest))); - VariantClear(&dest); + check_writer_output(writer, L"<!ATTLIST element attribute CDATA #REQUIRED \"value\">\r\n"); hr = ISAXDeclHandler_attributeDecl(decl, L"element", 7, L"attribute2", 10, L"CDATA", 5, L"#REQUIRED", 9, L"value2", 6); @@ -5862,15 +5659,9 @@ static void test_mxwriter_dtd(void) L"#REQUIRED", 9, L"value3", 6); ok(hr == S_OK, "Unexpected hr %#lx.\n", hr); - V_VT(&dest) = VT_EMPTY; - hr = IMXWriter_get_output(writer, &dest); - ok(hr == S_OK, "Unexpected hr %#lx.\n", hr); - ok(V_VT(&dest) == VT_BSTR, "got %d\n", V_VT(&dest)); - ok(!lstrcmpW(L"<!ATTLIST element attribute CDATA #REQUIRED \"value\">\r\n" + check_writer_output(writer, L"<!ATTLIST element attribute CDATA #REQUIRED \"value\">\r\n" "<!ATTLIST element attribute2 CDATA #REQUIRED \"value2\">\r\n" - "<!ATTLIST element2 attribute3 CDATA #REQUIRED \"value3\">\r\n", - V_BSTR(&dest)), "got wrong content %s\n", wine_dbgstr_w(V_BSTR(&dest))); - VariantClear(&dest); + "<!ATTLIST element2 attribute3 CDATA #REQUIRED \"value3\">\r\n"); /* internal entities */ V_VT(&dest) = VT_EMPTY; @@ -5889,12 +5680,7 @@ static void test_mxwriter_dtd(void) hr = ISAXDeclHandler_internalEntityDecl(decl, L"name", 4, L"value", 5); ok(hr == S_OK, "Unexpected hr %#lx.\n", hr); - V_VT(&dest) = VT_EMPTY; - hr = IMXWriter_get_output(writer, &dest); - ok(hr == S_OK, "Unexpected hr %#lx.\n", hr); - ok(V_VT(&dest) == VT_BSTR, "got %d\n", V_VT(&dest)); - ok(!lstrcmpW(L"<!ENTITY name \"value\">\r\n", V_BSTR(&dest)), "got wrong content %s\n", wine_dbgstr_w(V_BSTR(&dest))); - VariantClear(&dest); + check_writer_output(writer, L"<!ENTITY name \"value\">\r\n"); /* external entities */ V_VT(&dest) = VT_EMPTY; @@ -5922,14 +5708,7 @@ static void test_mxwriter_dtd(void) hr = ISAXDeclHandler_externalEntityDecl(decl, L"name", 4, L"pubid", 5, NULL, 0); ok(hr == E_INVALIDARG, "Unexpected hr %#lx.\n", hr); - V_VT(&dest) = VT_EMPTY; - hr = IMXWriter_get_output(writer, &dest); - ok(hr == S_OK, "Unexpected hr %#lx.\n", hr); - ok(V_VT(&dest) == VT_BSTR, "got %d\n", V_VT(&dest)); - ok(!lstrcmpW(L"<!ENTITY name PUBLIC \"pubid\" \"sysid\">\r\n<!ENTITY name SYSTEM \"sysid\">\r\n", - V_BSTR(&dest)), "got wrong content %s\n", wine_dbgstr_w(V_BSTR(&dest))); - - VariantClear(&dest); + check_writer_output(writer, L"<!ENTITY name PUBLIC \"pubid\" \"sysid\">\r\n<!ENTITY name SYSTEM \"sysid\">\r\n"); /* notation declaration */ hr = IMXWriter_QueryInterface(writer, &IID_ISAXDTDHandler, (void**)&dtd); @@ -5954,17 +5733,11 @@ static void test_mxwriter_dtd(void) hr = ISAXDTDHandler_notationDecl(dtd, L"name", 4, NULL, 0, L"sysid", 5); ok(hr == S_OK, "Unexpected hr %#lx.\n", hr); - hr = IMXWriter_get_output(writer, &dest); - ok(hr == S_OK, "Unexpected hr %#lx.\n", hr); - ok(V_VT(&dest) == VT_BSTR, "got %d\n", V_VT(&dest)); - ok(!lstrcmpW( + check_writer_output(writer, L"<!NOTATION name" "<!NOTATION name PUBLIC \"pubid\">\r\n" "<!NOTATION name PUBLIC \"pubid\" \"sysid\">\r\n" - "<!NOTATION name SYSTEM \"sysid\">\r\n", - V_BSTR(&dest)), "got wrong content %s\n", wine_dbgstr_w(V_BSTR(&dest))); - - VariantClear(&dest); + "<!NOTATION name SYSTEM \"sysid\">\r\n"); ISAXDTDHandler_Release(dtd); @@ -6415,7 +6188,6 @@ static void test_mxwriter_indent(void) { ISAXContentHandler *content; IMXWriter *writer; - VARIANT dest; HRESULT hr; hr = CoCreateInstance(&CLSID_MXXMLWriter, NULL, CLSCTX_INPROC_SERVER, &IID_IMXWriter, (void**)&writer); @@ -6454,13 +6226,8 @@ static void test_mxwriter_indent(void) hr = ISAXContentHandler_endDocument(content); ok(hr == S_OK, "Unexpected hr %#lx.\n", hr); - V_VT(&dest) = VT_EMPTY; - hr = IMXWriter_get_output(writer, &dest); - ok(hr == S_OK, "Unexpected hr %#lx.\n", hr); - ok(V_VT(&dest) == VT_BSTR, "got %d\n", V_VT(&dest)); - ok(!lstrcmpW(L"<?xml version=\"1.0\" encoding=\"UTF-16\" standalone=\"no\"?>\r\n<a><b>\r\n\t\t<c/>\r\n\t</b>\r\n</a>", V_BSTR(&dest)), - "got wrong content %s\n", wine_dbgstr_w(V_BSTR(&dest))); - VariantClear(&dest); + check_writer_output(writer, L"<?xml version=\"1.0\" encoding=\"UTF-16\" standalone=\"no\"?>\r\n" + "<a><b>\r\n\t\t<c/>\r\n\t</b>\r\n</a>"); ISAXContentHandler_Release(content); IMXWriter_Release(writer); @@ -6522,12 +6289,7 @@ static void test_mxwriter_from_reader(void) ok(hr == S_OK, "Unexpected hr %#lx.\n", hr); VariantClear(&var); - V_VT(&var) = VT_EMPTY; - hr = IMXWriter_get_output(writer, &var); - ok(hr == S_OK, "Unexpected hr %#lx.\n", hr); - ok(V_VT(&var) == VT_BSTR, "Unexpected output type %d.\n", V_VT(&var)); - ok(!lstrcmpW(L"<a>text</a>", V_BSTR(&var)), "Unexpected content %s.\n", wine_dbgstr_w(V_BSTR(&var))); - VariantClear(&var); + check_writer_output(writer, L"<a>text</a>"); IMXWriter_Release(writer); IVBSAXXMLReader_Release(reader); -- GitLab https://gitlab.winehq.org/wine/wine/-/merge_requests/11066