From: Nikolay Sivov <nsivov@codeweavers.com> Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com> --- dlls/msxml3/tests/domdoc.c | 58 ++++++++++++------------------------ dlls/msxml6/tests/domdoc.c | 60 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 79 insertions(+), 39 deletions(-) diff --git a/dlls/msxml3/tests/domdoc.c b/dlls/msxml3/tests/domdoc.c index 3744d7bd92b..149be7fa1bc 100644 --- a/dlls/msxml3/tests/domdoc.c +++ b/dlls/msxml3/tests/domdoc.c @@ -13879,44 +13879,6 @@ static void test_transformNodeToObject(void) free_bstrs(); } -static void test_normalize_attribute_values(void) -{ - IXMLDOMDocument2 *doc; - VARIANT var; - HRESULT hr; - - if (!is_clsid_supported(&CLSID_DOMDocument60, &IID_IXMLDOMDocument2)) - { - win_skip("NormalizeAttributeValues is not supported.\n"); - return; - } - - doc = create_document_version(60, &IID_IXMLDOMDocument2); - - V_VT(&var) = VT_I2; - V_I2(&var) = 10; - hr = IXMLDOMDocument2_getProperty(doc, _bstr_("NormalizeAttributeValues"), &var); -todo_wine { - ok(hr == S_OK, "Failed to get property value, hr %#lx.\n", hr); - ok(V_VT(&var) == VT_BOOL, "Unexpected property value type, vt %d.\n", V_VT(&var)); - ok(V_BOOL(&var) == VARIANT_FALSE, "Unexpected property value.\n"); -} - V_VT(&var) = VT_BOOL; - V_BOOL(&var) = VARIANT_TRUE; - hr = IXMLDOMDocument2_setProperty(doc, _bstr_("NormalizeAttributeValues"), var); - ok(hr == S_OK, "Failed to set property, hr %#lx.\n", hr); - - V_VT(&var) = VT_I2; - V_I2(&var) = 10; - hr = IXMLDOMDocument2_getProperty(doc, _bstr_("NormalizeAttributeValues"), &var); -todo_wine { - ok(hr == S_OK, "Failed to get property value, hr %#lx.\n", hr); - ok(V_VT(&var) == VT_BOOL, "Unexpected property value type, vt %d.\n", V_VT(&var)); - ok(V_BOOL(&var) == VARIANT_TRUE, "Unexpected property value.\n"); -} - IXMLDOMDocument2_Release(doc); -} - static void test_max_element_depth_values(void) { IXMLDOMDocument2 *doc; @@ -15958,6 +15920,7 @@ static void test_text(void) static void test_attribute_value(void) { + IXMLDOMElement *element; IXMLDOMAttribute *attr; IXMLDOMDocument *doc; IXMLDOMNode *child; @@ -16079,6 +16042,24 @@ static void test_attribute_value(void) IXMLDOMAttribute_Release(attr); + /* Newlines in attribute value */ + hr = IXMLDOMDocument_put_preserveWhiteSpace(doc, VARIANT_TRUE); + ok(hr == S_OK, "Unexpected hr %#lx.\n", hr); + + hr = IXMLDOMDocument_loadXML(doc, _bstr_("<a attr=\"v\r\na\rl\nu\te\" />"), NULL); + ok(hr == S_OK, "Unexpected hr %#lx.\n", hr); + + hr = IXMLDOMDocument_get_documentElement(doc, &element); + ok(hr == S_OK, "Unexpected hr %#lx.\n", hr); + + hr = IXMLDOMElement_getAttribute(element, _bstr_("attr"), &value); + ok(hr == S_OK, "Unexpected hr %#lx.\n", hr); + todo_wine + ok(!wcscmp(V_BSTR(&value), L"v\na\nl\nu\te"), "Unexpected value %s.\n", debugstr_w(V_BSTR(&value))); + VariantClear(&value); + + IXMLDOMElement_Release(element); + IXMLDOMDocument_Release(doc); free_bstrs(); } @@ -16802,7 +16783,6 @@ START_TEST(domdoc) test_url(); test_merging_text(); test_transformNodeToObject(); - test_normalize_attribute_values(); test_namespaces_as_attributes(); test_validate_on_parse_values(); test_xsltemplate(); diff --git a/dlls/msxml6/tests/domdoc.c b/dlls/msxml6/tests/domdoc.c index 2bf7acb276d..26aea60c3d2 100644 --- a/dlls/msxml6/tests/domdoc.c +++ b/dlls/msxml6/tests/domdoc.c @@ -453,6 +453,65 @@ static void test_get_parentNode(void) IXMLDOMDocument_Release(doc); } +static void test_normalize_attribute_values(void) +{ + IXMLDOMElement *element; + IXMLDOMDocument2 *doc; + VARIANT var; + HRESULT hr; + + hr = CoCreateInstance(&CLSID_DOMDocument60, NULL, CLSCTX_INPROC_SERVER, &IID_IXMLDOMDocument2, (void **)&doc); + ok(hr == S_OK, "Unexpected hr %#lx.\n", hr); + + hr = IXMLDOMDocument2_loadXML(doc, _bstr_(L"<a attr=\"v\r\na\tl\r\" />"), NULL); + ok(hr == S_OK, "Unexpected hr %#lx.\n", hr); + + hr = IXMLDOMDocument2_get_documentElement(doc, &element); + ok(hr == S_OK, "Unexpected hr %#lx.\n", hr); + + hr = IXMLDOMElement_getAttribute(element, _bstr_(L"attr"), &var); + ok(hr == S_OK, "Unexpected hr %#lx.\n", hr); + todo_wine + ok(!wcscmp(V_BSTR(&var), L"v\na\tl\n"), "Unexpected value %s.\n", debugstr_w(V_BSTR(&var))); + VariantClear(&var); + + V_VT(&var) = VT_I2; + V_I2(&var) = 10; + hr = IXMLDOMDocument2_getProperty(doc, _bstr_(L"NormalizeAttributeValues"), &var); +todo_wine { + ok(hr == S_OK, "Failed to get property value, hr %#lx.\n", hr); + ok(V_VT(&var) == VT_BOOL, "Unexpected property value type, vt %d.\n", V_VT(&var)); + ok(V_BOOL(&var) == VARIANT_FALSE, "Unexpected property value.\n"); +} + hr = IXMLDOMElement_getAttribute(element, _bstr_(L"attr"), &var); + ok(hr == S_OK, "Unexpected hr %#lx.\n", hr); + todo_wine + ok(!wcscmp(V_BSTR(&var), L"v\na\tl\n"), "Unexpected value %s.\n", debugstr_w(V_BSTR(&var))); + VariantClear(&var); + + V_VT(&var) = VT_BOOL; + V_BOOL(&var) = VARIANT_TRUE; + hr = IXMLDOMDocument2_setProperty(doc, _bstr_(L"NormalizeAttributeValues"), var); + ok(hr == S_OK, "Failed to set property, hr %#lx.\n", hr); + + V_VT(&var) = VT_I2; + V_I2(&var) = 10; + hr = IXMLDOMDocument2_getProperty(doc, _bstr_(L"NormalizeAttributeValues"), &var); +todo_wine { + ok(hr == S_OK, "Failed to get property value, hr %#lx.\n", hr); + ok(V_VT(&var) == VT_BOOL, "Unexpected property value type, vt %d.\n", V_VT(&var)); + ok(V_BOOL(&var) == VARIANT_TRUE, "Unexpected property value.\n"); +} + hr = IXMLDOMElement_getAttribute(element, _bstr_(L"attr"), &var); + ok(hr == S_OK, "Unexpected hr %#lx.\n", hr); + ok(!wcscmp(V_BSTR(&var), L"v a l "), "Unexpected value %s.\n", debugstr_w(V_BSTR(&var))); + VariantClear(&var); + + IXMLDOMElement_Release(element); + IXMLDOMDocument2_Release(doc); + free_bstrs(); +} + START_TEST(domdoc) { HRESULT hr; @@ -474,6 +533,7 @@ START_TEST(domdoc) test_leading_spaces(); test_get_ownerDocument(); test_get_parentNode(); + test_normalize_attribute_values(); CoUninitialize(); } -- GitLab https://gitlab.winehq.org/wine/wine/-/merge_requests/10608