Piotr Caban : urlmon/tests: Added Uri IPersistStream_Load tests.

Alexandre Julliard julliard at winehq.org
Fri Jan 13 11:44:31 CST 2012


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

Author: Piotr Caban <piotr at codeweavers.com>
Date:   Fri Jan 13 14:31:14 2012 +0100

urlmon/tests: Added Uri IPersistStream_Load tests.

---

 dlls/urlmon/tests/uri.c |   30 ++++++++++++++++++++++++++++--
 1 files changed, 28 insertions(+), 2 deletions(-)

diff --git a/dlls/urlmon/tests/uri.c b/dlls/urlmon/tests/uri.c
index 350bcc7..e570965 100644
--- a/dlls/urlmon/tests/uri.c
+++ b/dlls/urlmon/tests/uri.c
@@ -10695,6 +10695,8 @@ static void test_IPersistStream(void)
         WCHAR str_data[1024];
         ULARGE_INTEGER size, max_size;
         LARGE_INTEGER no_off;
+        CLSID curi;
+        BSTR raw_uri;
         HRESULT hr;
 
         if(test->create_todo || test->create_expected!=S_OK)
@@ -10795,6 +10797,30 @@ static void test_IPersistStream(void)
         ok(props == 0, "%d) No all properties were processed %d. Next property type: %d\n",
                 i, props, dw_data[0]);
 
+        IPersistStream_Release(persist_stream);
+        IUri_Release(uri);
+
+        hr = IStream_Seek(stream, no_off, STREAM_SEEK_SET, NULL);
+        ok(hr == S_OK, "%d) Seek failed 0x%08x, expected S_OK.\n", i, hr);
+        hr = IPersistStream_GetClassID(persist_stream, &curi);
+        ok(hr == S_OK, "%d) GetClassID failed 0x%08x, expected S_OK.\n", i, hr);
+        ok(IsEqualCLSID(&curi, &CLSID_CUri), "%d) GetClassID returned incorrect CLSID.\n", i);
+        hr = CoCreateInstance(&curi, NULL, CLSCTX_INPROC_SERVER|CLSCTX_INPROC_HANDLER,
+                &IID_IUri, (void**)&uri);
+        ok(hr == S_OK, "%d) Error creating uninitialized Uri: 0x%08x.\n", i, hr);
+        hr = IUri_QueryInterface(uri, &IID_IPersistStream, (void**)&persist_stream);
+        ok(hr == S_OK, "%d) QueryInterface failed 0x%08x, expected S_OK.\n", i, hr);
+        hr = IPersistStream_Load(persist_stream, stream);
+        ok(hr == S_OK, "%d) Load failed 0x%08x, expected S_OK.\n", i, hr);
+        hr = IUri_GetRawUri(uri, &raw_uri);
+        ok(hr == S_OK, "%d) GetRawUri failed 0x%08x, expected S_OK.\n", i, hr);
+        ok(!strcmp_aw(test->str_props[Uri_PROPERTY_RAW_URI].value, raw_uri)
+                || broken(test->str_props[Uri_PROPERTY_RAW_URI].broken_value
+                    && !strcmp_aw(test->str_props[Uri_PROPERTY_RAW_URI].broken_value, raw_uri)),
+                "%d) Expected %s but got %s.\n", i, test->str_props[Uri_PROPERTY_RAW_URI].value,
+                wine_dbgstr_w(raw_uri));
+        SysFreeString(raw_uri);
+
         IStream_Release(stream);
         IPersistStream_Release(persist_stream);
         IUri_Release(uri);
@@ -11008,11 +11034,11 @@ START_TEST(uri) {
     trace("test CreateURLMoniker...\n");
     test_CreateURLMoniker();
 
+    CoInitialize(NULL);
+
     trace("test IPersistStream...\n");
     test_IPersistStream();
 
-    CoInitialize(NULL);
-
     trace("test uninitialized Uri...\n");
     test_UninitializedUri();
 




More information about the wine-cvs mailing list