From: Nikolay Sivov <nsivov@codeweavers.com> Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com> --- dlls/msxml3/tests/saxreader.c | 35 ++++++++++++++++++++++++++++++----- dlls/msxml4/tests/saxreader.c | 25 +++++++++++++++++++++++++ dlls/msxml6/tests/saxreader.c | 25 +++++++++++++++++++++++++ 3 files changed, 80 insertions(+), 5 deletions(-) diff --git a/dlls/msxml3/tests/saxreader.c b/dlls/msxml3/tests/saxreader.c index e4b9e88d5e1..16f4448a75c 100644 --- a/dlls/msxml3/tests/saxreader.c +++ b/dlls/msxml3/tests/saxreader.c @@ -3190,6 +3190,35 @@ static void test_saxreader_normalize_line_breaks(void) free_bstrs(); } +static void test_saxreader_exhaustive_errors(void) +{ + static const GUID *classes[] = { &CLSID_SAXXMLReader, &CLSID_SAXXMLReader30 }; + ISAXXMLReader *reader; + VARIANT_BOOL v; + HRESULT hr; + + for (int i = 0; i < ARRAYSIZE(classes); ++i) + { + hr = CoCreateInstance(classes[i], NULL, CLSCTX_INPROC_SERVER, &IID_ISAXXMLReader, (void **)&reader); + ok(hr == S_OK, "Unexpected hr %#lx.\n", hr); + + v = 123; + hr = ISAXXMLReader_getFeature(reader, L"exhaustive-errors", &v); + ok(hr == E_INVALIDARG, "Unexpected hr %#lx.\n", hr); + ok(v == 123, "Unexpected value %d.\n", v); + + hr = ISAXXMLReader_putFeature(reader, L"exhaustive-errors", VARIANT_TRUE); + todo_wine + ok(hr == E_INVALIDARG, "Unexpected hr %#lx.\n", hr); + + hr = ISAXXMLReader_putFeature(reader, L"exhaustive-errors", VARIANT_FALSE); + todo_wine + ok(hr == E_INVALIDARG, "Unexpected hr %#lx.\n", hr); + + ISAXXMLReader_Release(reader); + } +} + struct feature_ns_entry_t { const GUID *guid; const char *clsid; @@ -3229,11 +3258,6 @@ static void test_saxreader_features(void) continue; } - value = 123; - hr = ISAXXMLReader_getFeature(reader, L"exhaustive-errors", &value); - ok(hr == E_INVALIDARG, "Failed to get feature value, hr %#lx.\n", hr); - ok(value == 123, "Unexpected value %d.\n", value); - value = 123; hr = ISAXXMLReader_getFeature(reader, L"schema-validation", &value); ok(hr == E_INVALIDARG, "Failed to get feature value, hr %#lx.\n", hr); @@ -6404,6 +6428,7 @@ START_TEST(saxreader) test_saxreader_properties(); test_saxreader_max_xml_size(); test_saxreader_normalize_line_breaks(); + test_saxreader_exhaustive_errors(); test_saxreader_features(); test_saxreader_encoding(); test_saxreader_dispex(); diff --git a/dlls/msxml4/tests/saxreader.c b/dlls/msxml4/tests/saxreader.c index 5169f54f53a..0749146a5c6 100644 --- a/dlls/msxml4/tests/saxreader.c +++ b/dlls/msxml4/tests/saxreader.c @@ -2883,6 +2883,30 @@ static void test_saxreader_normalize_line_breaks(void) ISAXXMLReader_Release(reader); } +static void test_saxreader_exhaustive_errors(void) +{ + ISAXXMLReader *reader; + VARIANT_BOOL v; + HRESULT hr; + + hr = CoCreateInstance(&CLSID_SAXXMLReader40, NULL, CLSCTX_INPROC_SERVER, &IID_ISAXXMLReader, (void **)&reader); + ok(hr == S_OK, "Unexpected hr %#lx.\n", hr); + + v = VARIANT_TRUE; + hr = ISAXXMLReader_getFeature(reader, L"exhaustive-errors", &v); + ok(hr == S_OK, "Unexpected hr %#lx.\n", hr); + ok(v == VARIANT_FALSE, "Unexpected value %d.\n", v); + + hr = ISAXXMLReader_putFeature(reader, L"exhaustive-errors", VARIANT_TRUE); + todo_wine + ok(hr == S_OK, "Unexpected hr %#lx.\n", hr); + + hr = ISAXXMLReader_putFeature(reader, L"exhaustive-errors", VARIANT_FALSE); + ok(hr == S_OK, "Unexpected hr %#lx.\n", hr); + + ISAXXMLReader_Release(reader); +} + static void test_saxreader_features(void) { static const WCHAR *feature_names[] = @@ -5754,6 +5778,7 @@ START_TEST(saxreader) test_saxreader_properties(); test_saxreader_max_xml_size(); test_saxreader_normalize_line_breaks(); + test_saxreader_exhaustive_errors(); test_saxreader_features(); test_saxreader_encoding(); test_saxreader_dispex(); diff --git a/dlls/msxml6/tests/saxreader.c b/dlls/msxml6/tests/saxreader.c index 91bbbf7ab17..847d71ac149 100644 --- a/dlls/msxml6/tests/saxreader.c +++ b/dlls/msxml6/tests/saxreader.c @@ -4829,6 +4829,30 @@ static void test_saxreader_normalize_line_breaks(void) ISAXXMLReader_Release(reader); } +static void test_saxreader_exhaustive_errors(void) +{ + ISAXXMLReader *reader; + VARIANT_BOOL v; + HRESULT hr; + + hr = CoCreateInstance(&CLSID_SAXXMLReader60, NULL, CLSCTX_INPROC_SERVER, &IID_ISAXXMLReader, (void **)&reader); + ok(hr == S_OK, "Unexpected hr %#lx.\n", hr); + + v = VARIANT_TRUE; + hr = ISAXXMLReader_getFeature(reader, L"exhaustive-errors", &v); + ok(hr == S_OK, "Unexpected hr %#lx.\n", hr); + ok(v == VARIANT_FALSE, "Unexpected value %d.\n", v); + + hr = ISAXXMLReader_putFeature(reader, L"exhaustive-errors", VARIANT_TRUE); + todo_wine + ok(hr == S_OK, "Unexpected hr %#lx.\n", hr); + + hr = ISAXXMLReader_putFeature(reader, L"exhaustive-errors", VARIANT_FALSE); + ok(hr == S_OK, "Unexpected hr %#lx.\n", hr); + + ISAXXMLReader_Release(reader); +} + static const WCHAR *feature_names[] = { L"http://xml.org/sax/features/namespaces", @@ -5313,6 +5337,7 @@ START_TEST(saxreader) test_saxreader_properties(); test_saxreader_max_xml_size(); test_saxreader_normalize_line_breaks(); + test_saxreader_exhaustive_errors(); test_saxreader_features(); test_saxreader_encoding(); test_saxreader_dispex(); -- GitLab https://gitlab.winehq.org/wine/wine/-/merge_requests/10183