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 51c427ec53d..62eea511504 100644 --- a/dlls/msxml3/tests/saxreader.c +++ b/dlls/msxml3/tests/saxreader.c @@ -3711,7 +3711,6 @@ static void test_mxwriter_properties(void) VARIANT_BOOL b; HRESULT hr; BSTR str, str2; - VARIANT dest; test_mxwriter_default_properties(mxwriter_default_props); @@ -3804,13 +3803,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); @@ -4057,7 +4051,6 @@ static void test_mxwriter_startenddocument(void) { ISAXContentHandler *content; IMXWriter *writer; - VARIANT dest; HRESULT hr; hr = CoCreateInstance(&CLSID_MXXMLWriter, NULL, CLSCTX_INPROC_SERVER, @@ -4073,26 +4066,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); @@ -4114,12 +4095,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); @@ -4144,13 +4120,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(); } @@ -4276,6 +4246,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); @@ -4296,7 +4268,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) @@ -4304,26 +4276,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++; } @@ -4389,17 +4353,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); @@ -4448,22 +4402,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); @@ -4483,12 +4427,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); @@ -4518,22 +4457,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); @@ -4547,13 +4476,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); @@ -4562,25 +4485,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); @@ -4588,12 +4500,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); @@ -4602,12 +4509,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); @@ -4668,12 +4570,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); @@ -4705,12 +4602,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); @@ -4790,12 +4682,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); @@ -4804,12 +4691,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); @@ -4841,15 +4723,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; @@ -4864,15 +4738,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); @@ -4907,12 +4773,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); @@ -5062,13 +4923,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; @@ -5151,13 +5006,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); @@ -5513,7 +5362,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, @@ -5538,12 +5386,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); @@ -5558,13 +5401,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); @@ -5671,7 +5508,6 @@ static void test_mxwriter_ignorablespaces(void) { ISAXContentHandler *content; IMXWriter *writer; - VARIANT dest; HRESULT hr; hr = CoCreateInstance(&CLSID_MXXMLWriter, NULL, CLSCTX_INPROC_SERVER, @@ -5693,12 +5529,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); @@ -5759,12 +5590,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); @@ -5773,13 +5599,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); @@ -5787,14 +5608,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; @@ -5813,13 +5628,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); @@ -5828,13 +5637,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; @@ -5845,13 +5648,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); @@ -5861,15 +5658,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; @@ -5888,12 +5679,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; @@ -5921,14 +5707,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); @@ -5953,17 +5732,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); @@ -6414,7 +6187,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); @@ -6453,13 +6225,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); @@ -6521,12 +6288,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