Nikolay Sivov : msxml3/tests: A bit more tests for IPersist* interfaces.

Alexandre Julliard julliard at winehq.org
Thu Mar 16 17:25:15 CDT 2017


Module: wine
Branch: master
Commit: 2656f73817d8eb72f57d8b4f2db170f49fa299f8
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=2656f73817d8eb72f57d8b4f2db170f49fa299f8

Author: Nikolay Sivov <nsivov at codeweavers.com>
Date:   Thu Mar 16 14:12:29 2017 +0300

msxml3/tests: A bit more tests for IPersist* interfaces.

Signed-off-by: Nikolay Sivov <nsivov at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 dlls/msxml3/tests/domdoc.c | 29 ++++++++++++++++++++++++++---
 1 file changed, 26 insertions(+), 3 deletions(-)

diff --git a/dlls/msxml3/tests/domdoc.c b/dlls/msxml3/tests/domdoc.c
index f6e33d3..611d48e 100644
--- a/dlls/msxml3/tests/domdoc.c
+++ b/dlls/msxml3/tests/domdoc.c
@@ -1839,12 +1839,15 @@ if (0)
     free_bstrs();
 }
 
-static void test_persiststreaminit(void)
+static void test_persiststream(void)
 {
-    IXMLDOMDocument *doc;
     IPersistStreamInit *streaminit;
+    IPersistStream *stream;
+    IXMLDOMDocument *doc;
     ULARGE_INTEGER size;
+    IPersist *persist;
     HRESULT hr;
+    CLSID clsid;
 
     doc = create_document(&IID_IXMLDOMDocument);
 
@@ -1857,6 +1860,26 @@ static void test_persiststreaminit(void)
     hr = IPersistStreamInit_GetSizeMax(streaminit, &size);
     ok(hr == E_NOTIMPL, "got 0x%08x\n", hr);
 
+    hr = IXMLDOMDocument_QueryInterface(doc, &IID_IPersistStream, (void **)&stream);
+    ok(hr == S_OK, "got 0x%08x\n", hr);
+    ok((IUnknown *)stream == (IUnknown *)streaminit, "got %p, %p\n", stream, streaminit);
+
+    hr = IPersistStream_QueryInterface(stream, &IID_IPersist, (void **)&persist);
+    ok(hr == E_NOINTERFACE, "got 0x%08x\n", hr);
+
+    hr = IXMLDOMDocument_QueryInterface(doc, &IID_IPersist, (void **)&persist);
+    ok(hr == E_NOINTERFACE, "got 0x%08x\n", hr);
+
+    hr = IPersistStreamInit_GetClassID(streaminit, NULL);
+    ok(hr == E_POINTER, "got 0x%08x\n", hr);
+
+    memset(&clsid, 0, sizeof(clsid));
+    hr = IPersistStreamInit_GetClassID(streaminit, &clsid);
+    ok(hr == S_OK, "got 0x%08x\n", hr);
+    ok(IsEqualGUID(&clsid, &CLSID_DOMDocument2), "wrong clsid %s\n", wine_dbgstr_guid(&clsid));
+
+    IPersistStream_Release(stream);
+    IPersistStreamInit_Release(streaminit);
     IXMLDOMDocument_Release(doc);
 }
 
@@ -12189,7 +12212,7 @@ START_TEST(domdoc)
     }
 
     test_domdoc();
-    test_persiststreaminit();
+    test_persiststream();
     test_domnode();
     test_refs();
     test_create();




More information about the wine-cvs mailing list