From: Jactry Zeng jzeng@codeweavers.com
--- dlls/msxml3/tests/domdoc.c | 67 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 67 insertions(+)
diff --git a/dlls/msxml3/tests/domdoc.c b/dlls/msxml3/tests/domdoc.c index cf9fb62a65e..9e82d5dce65 100644 --- a/dlls/msxml3/tests/domdoc.c +++ b/dlls/msxml3/tests/domdoc.c @@ -13947,6 +13947,72 @@ static void test_load_with_site(void) free_bstrs(); }
+static void test_validate_on_parse_values(void) +{ + IXMLDOMDocument2 *doc; + VARIANT_BOOL b; + VARIANT var; + HRESULT hr; + + if (!is_clsid_supported(&CLSID_DOMDocument60, &IID_IXMLDOMDocument2)) + { + win_skip("ValidateOnParse is not supported.\n"); + return; + } + + doc = create_document_version(60, &IID_IXMLDOMDocument2); + + V_VT(&var) = VT_I2; + V_I2(&var) = 0; + hr = IXMLDOMDocument2_getProperty(doc, _bstr_("ValidateOnParse"), &var); + ok(hr == S_OK, "Got hr %#lx.\n", hr); + ok(V_VT(&var) == VT_BOOL, "Got property value type %d.\n", V_VT(&var)); + ok(V_BOOL(&var) == VARIANT_TRUE, "Got property value %d.\n", V_BOOL(&var)); + b = VARIANT_FALSE; + hr = IXMLDOMDocument2_get_validateOnParse(doc, &b); + ok(hr == S_OK, "Got hr %#lx.\n", hr); + ok(b == VARIANT_TRUE, "Got property value %d.\n", b); + + V_VT(&var) = VT_I2; + V_I2(&var) = 0; + hr = IXMLDOMDocument2_setProperty(doc, _bstr_("ValidateOnParse"), var); + ok(hr == S_OK, "Got hr %#lx.\n", hr); + V_VT(&var) = VT_I2; + V_I2(&var) = 10; + hr = IXMLDOMDocument2_getProperty(doc, _bstr_("ValidateOnParse"), &var); + ok(hr == S_OK, "Got hr %#lx.\n", hr); + ok(V_VT(&var) == VT_BOOL, "Got property value type %d.\n", V_VT(&var)); + ok(V_BOOL(&var) == VARIANT_FALSE, "Got property value %d.\n", V_BOOL(&var)); + + V_VT(&var) = VT_BOOL; + V_BOOL(&var) = VARIANT_TRUE; + hr = IXMLDOMDocument2_setProperty(doc, _bstr_("ValidateOnParse"), var); + ok(hr == S_OK, "Got hr %#lx.\n", hr); + b = VARIANT_FALSE; + hr = IXMLDOMDocument2_get_validateOnParse(doc, &b); + ok(hr == S_OK, "Got hr %#lx.\n", hr); + ok(b == VARIANT_TRUE, "Got property value %d.\n", b); + + V_VT(&var) = VT_I2; + V_I2(&var) = 0; + hr = IXMLDOMDocument2_getProperty(doc, _bstr_("ValidateOnParse"), &var); + ok(hr == S_OK, "Got hr %#lx.\n", hr); + ok(V_VT(&var) == VT_BOOL, "Got property value type %d.\n", V_VT(&var)); + ok(V_BOOL(&var) == VARIANT_TRUE, "Got property value %d.\n", V_BOOL(&var)); + + b = VARIANT_FALSE; + hr = IXMLDOMDocument2_put_validateOnParse(doc, b); + ok(hr == S_OK, "Got hr %#lx.\n", hr); + V_VT(&var) = VT_I2; + V_I2(&var) = 10; + hr = IXMLDOMDocument2_getProperty(doc, _bstr_("ValidateOnParse"), &var); + ok(hr == S_OK, "Got hr %#lx.\n", hr); + ok(V_VT(&var) == VT_BOOL, "Got property value type %d.\n", V_VT(&var)); + ok(V_BOOL(&var) == VARIANT_FALSE, "Got property value %d.\n", V_BOOL(&var)); + + IXMLDOMDocument2_Release(doc); +} + START_TEST(domdoc) { HRESULT hr; @@ -14033,6 +14099,7 @@ START_TEST(domdoc) test_transformNodeToObject(); test_normalize_attribute_values(); test_namespaces_as_attributes(); + test_validate_on_parse_values();
test_xsltemplate(); test_xsltext();