From: Nikolay Sivov <nsivov@codeweavers.com> Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com> --- dlls/msxml3/tests/domdoc.c | 20 ++++++++++++++++++++ dlls/msxml4/tests/domdoc.c | 35 +++++++++++++++++++++++++++++++++++ dlls/msxml6/tests/domdoc.c | 37 +++++++++++++++++++++++++++++++++++++ 3 files changed, 92 insertions(+) diff --git a/dlls/msxml3/tests/domdoc.c b/dlls/msxml3/tests/domdoc.c index 0ff88b04cc4..6af4094546c 100644 --- a/dlls/msxml3/tests/domdoc.c +++ b/dlls/msxml3/tests/domdoc.c @@ -8396,12 +8396,32 @@ static void test_get_ownerDocument(void) doc = create_document(&IID_IXMLDOMDocument2); cache = create_cache(&IID_IXMLDOMSchemaCollection); + hr = IXMLDOMDocument2_get_ownerDocument(doc, NULL); + ok(hr == E_INVALIDARG, "Unexpected hr %#lx.\n", hr); + + doc1 = (void *)0xdead; + hr = IXMLDOMDocument2_get_ownerDocument(doc, &doc1); + todo_wine + ok(hr == S_FALSE, "Unexpected hr %#lx.\n", hr); + todo_wine + ok(!doc1, "Unexpected pointer.\n"); + VariantInit(&var); hr = IXMLDOMDocument2_loadXML(doc, _bstr_(complete4A), &b); ok(hr == S_OK, "Unexpected hr %#lx.\n", hr); ok(b == VARIANT_TRUE, "failed to load XML string\n"); + hr = IXMLDOMDocument2_get_ownerDocument(doc, NULL); + ok(hr == E_INVALIDARG, "Unexpected hr %#lx.\n", hr); + + doc1 = (void *)0xdead; + hr = IXMLDOMDocument2_get_ownerDocument(doc, &doc1); + todo_wine + ok(hr == S_FALSE, "Unexpected hr %#lx.\n", hr); + todo_wine + ok(!doc1, "Unexpected pointer.\n"); + check_default_props(doc); /* set properties and check that new instances use them */ diff --git a/dlls/msxml4/tests/domdoc.c b/dlls/msxml4/tests/domdoc.c index 1a3a663d359..4b8e75bb440 100644 --- a/dlls/msxml4/tests/domdoc.c +++ b/dlls/msxml4/tests/domdoc.c @@ -321,6 +321,40 @@ static void test_namespaces_as_attributes(void) free_bstrs(); } +static void test_get_ownerDocument(void) +{ + IXMLDOMDocument *doc1; + IXMLDOMDocument2 *doc; + VARIANT_BOOL b; + HRESULT hr; + + hr = CoCreateInstance(&CLSID_DOMDocument40, NULL, CLSCTX_INPROC_SERVER, &IID_IXMLDOMDocument2, (void **)&doc); + + hr = IXMLDOMDocument2_get_ownerDocument(doc, NULL); + ok(hr == E_INVALIDARG, "Unexpected hr %#lx.\n", hr); + + doc1 = (void *)0xdead; + hr = IXMLDOMDocument2_get_ownerDocument(doc, &doc1); + ok(hr == S_OK, "Unexpected hr %#lx.\n", hr); + todo_wine + ok(!doc1, "Unexpected pointer.\n"); + + hr = IXMLDOMDocument2_loadXML(doc, _bstr_(L"<a>text</a>"), &b); + ok(hr == S_OK, "Unexpected hr %#lx.\n", hr); + ok(b == VARIANT_TRUE, "Unexpected result %d.\n", b); + + hr = IXMLDOMDocument2_get_ownerDocument(doc, NULL); + ok(hr == E_INVALIDARG, "Unexpected hr %#lx.\n", hr); + + doc1 = (void *)0xdead; + hr = IXMLDOMDocument2_get_ownerDocument(doc, &doc1); + ok(hr == S_OK, "Unexpected hr %#lx.\n", hr); + todo_wine + ok(!doc1, "Unexpected pointer.\n"); + + IXMLDOMDocument2_Release(doc); +} + START_TEST(domdoc) { HRESULT hr; @@ -339,6 +373,7 @@ START_TEST(domdoc) test_namespaces_as_attributes(); test_create_attribute(); + test_get_ownerDocument(); CoUninitialize(); } diff --git a/dlls/msxml6/tests/domdoc.c b/dlls/msxml6/tests/domdoc.c index 9dfe026fef5..9f3d36885c6 100644 --- a/dlls/msxml6/tests/domdoc.c +++ b/dlls/msxml6/tests/domdoc.c @@ -401,6 +401,42 @@ static void test_leading_spaces(void) free_bstrs(); } +static void test_get_ownerDocument(void) +{ + IXMLDOMDocument *doc1; + IXMLDOMDocument2 *doc; + VARIANT_BOOL b; + HRESULT hr; + + hr = CoCreateInstance(&CLSID_DOMDocument60, NULL, CLSCTX_INPROC_SERVER, &IID_IXMLDOMDocument2, (void **)&doc); + + hr = IXMLDOMDocument2_get_ownerDocument(doc, NULL); + ok(hr == E_INVALIDARG, "Unexpected hr %#lx.\n", hr); + + doc1 = (void *)0xdead; + hr = IXMLDOMDocument2_get_ownerDocument(doc, &doc1); + todo_wine + ok(hr == S_FALSE, "Unexpected hr %#lx.\n", hr); + todo_wine + ok(!doc1, "Unexpected pointer.\n"); + + hr = IXMLDOMDocument2_loadXML(doc, _bstr_(L"<a>text</a>"), &b); + ok(hr == S_OK, "Unexpected hr %#lx.\n", hr); + ok(b == VARIANT_TRUE, "Unexpected result %d.\n", b); + + hr = IXMLDOMDocument2_get_ownerDocument(doc, NULL); + ok(hr == E_INVALIDARG, "Unexpected hr %#lx.\n", hr); + + doc1 = (void *)0xdead; + hr = IXMLDOMDocument2_get_ownerDocument(doc, &doc1); + todo_wine + ok(hr == S_FALSE, "Unexpected hr %#lx.\n", hr); + todo_wine + ok(!doc1, "Unexpected pointer.\n"); + + IXMLDOMDocument2_Release(doc); +} + START_TEST(domdoc) { HRESULT hr; @@ -420,6 +456,7 @@ START_TEST(domdoc) test_namespaces_as_attributes(); test_create_attribute(); test_leading_spaces(); + test_get_ownerDocument(); CoUninitialize(); } -- GitLab https://gitlab.winehq.org/wine/wine/-/merge_requests/10188