Piotr Caban : urlmon/tests: Test uninitialized IUri object.

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


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

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

urlmon/tests: Test uninitialized IUri object.

---

 dlls/urlmon/tests/uri.c |  101 +++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 101 insertions(+), 0 deletions(-)

diff --git a/dlls/urlmon/tests/uri.c b/dlls/urlmon/tests/uri.c
index 7b4634f..350bcc7 100644
--- a/dlls/urlmon/tests/uri.c
+++ b/dlls/urlmon/tests/uri.c
@@ -32,6 +32,9 @@
 #include "shlwapi.h"
 #include "wininet.h"
 #include "strsafe.h"
+#include "initguid.h"
+
+DEFINE_GUID(CLSID_CUri, 0xDF2FCE13, 0x25EC, 0x45BB, 0x9D,0x4C, 0xCE,0xCD,0x47,0xC2,0x43,0x0C);
 
 #define URI_STR_PROPERTY_COUNT Uri_PROPERTY_STRING_LAST+1
 #define URI_DWORD_PROPERTY_COUNT (Uri_PROPERTY_DWORD_LAST - Uri_PROPERTY_DWORD_START)+1
@@ -10799,6 +10802,98 @@ static void test_IPersistStream(void)
     }
 }
 
+static void test_UninitializedUri(void)
+{
+    IUri *uri;
+    IUriBuilderFactory *ubf;
+    IPersistStream *ps;
+    IUriBuilder *ub;
+    BSTR bstr;
+    DWORD dword;
+    BOOL eq;
+    ULARGE_INTEGER ui;
+    HRESULT hr;
+
+    hr = CoCreateInstance(&CLSID_CUri, NULL, CLSCTX_INPROC_SERVER|CLSCTX_INPROC_HANDLER,
+            &IID_IUri, (void**)&uri);
+    if(FAILED(hr)) {
+        win_skip("Skipping uninitialized Uri tests.\n");
+        return;
+    }
+
+    hr = IUri_QueryInterface(uri, &IID_IUriBuilderFactory, (void**)&ubf);
+    ok(hr == S_OK, "QueryInterface(IID_IUriBuillderFactory) failed: %x.\n", hr);
+    hr = IUri_QueryInterface(uri, &IID_IPersistStream, (void**)&ps);
+    ok(hr == S_OK, "QueryInterface(IID_IPersistStream) failed: %x.\n", hr);
+
+    hr = IUri_GetAbsoluteUri(uri, NULL);
+    ok(hr == E_UNEXPECTED, "GetAbsoluteUri returned %x, expected E_UNEXPECTED.\n", hr);
+    hr = IUri_GetAbsoluteUri(uri, &bstr);
+    ok(hr == E_UNEXPECTED, "GetAbsoluteUri returned %x, expected E_UNEXPECTED.\n", hr);
+    hr = IUri_GetAuthority(uri, &bstr);
+    ok(hr == E_UNEXPECTED, "GetAuthority returned %x, expected E_UNEXPECTED.\n", hr);
+    hr = IUri_GetDisplayUri(uri, &bstr);
+    ok(hr == E_UNEXPECTED, "GetDisplayUri returned %x, expected E_UNEXPECTED.\n", hr);
+    hr = IUri_GetDomain(uri, &bstr);
+    ok(hr == E_UNEXPECTED, "GetDomain returned %x, expected E_UNEXPECTED.\n", hr);
+    hr = IUri_GetExtension(uri, &bstr);
+    ok(hr == E_UNEXPECTED, "GetExtension returned %x, expected E_UNEXPECTED.\n", hr);
+    hr = IUri_GetFragment(uri, &bstr);
+    ok(hr == E_UNEXPECTED, "GetFragment returned %x, expected E_UNEXPECTED.\n", hr);
+    hr = IUri_GetHost(uri, &bstr);
+    ok(hr == E_UNEXPECTED, "GetHost returned %x, expected E_UNEXPECTED.\n", hr);
+    hr = IUri_GetHostType(uri, &dword);
+    ok(hr == E_UNEXPECTED, "GetHostType returned %x, expected E_UNEXPECTED.\n", hr);
+    hr = IUri_GetPassword(uri, &bstr);
+    ok(hr == E_UNEXPECTED, "GetPassword returned %x, expected E_UNEXPECTED.\n", hr);
+    hr = IUri_GetPassword(uri, &bstr);
+    ok(hr == E_UNEXPECTED, "GetPassword returned %x, expected E_UNEXPECTED.\n", hr);
+    hr = IUri_GetPathAndQuery(uri, &bstr);
+    ok(hr == E_UNEXPECTED, "GetPathAndQuery returned %x, expected E_UNEXPECTED.\n", hr);
+    hr = IUri_GetPort(uri, &dword);
+    ok(hr == E_UNEXPECTED, "GetPort returned %x, expected E_UNEXPECTED.\n", hr);
+    hr = IUri_GetProperties(uri, &dword);
+    ok(hr == E_UNEXPECTED, "GetProperties returned %x, expected E_UNEXPECTED.\n", hr);
+    hr = IUri_GetPropertyBSTR(uri, Uri_PROPERTY_RAW_URI, &bstr, 0);
+    ok(hr == E_UNEXPECTED, "GetPropertyBSTR returned %x, expected E_UNEXPECTED.\n", hr);
+    hr = IUri_GetPropertyDWORD(uri, Uri_PROPERTY_PORT, &dword, 0);
+    ok(hr == E_UNEXPECTED, "GetPropertyDWORD returned %x, expected E_UNEXPECTED.\n", hr);
+    hr = IUri_GetPropertyLength(uri, Uri_PROPERTY_RAW_URI, &dword, 0);
+    ok(hr == E_UNEXPECTED, "GetPropertyLength returned %x, expected E_UNEXPECTED.\n", hr);
+    hr = IUri_GetQuery(uri, &bstr);
+    ok(hr == E_UNEXPECTED, "GetQuery returned %x, expected E_UNEXPECTED.\n", hr);
+    hr = IUri_GetRawUri(uri, &bstr);
+    ok(hr == E_UNEXPECTED, "GetRawUri returned %x, expected E_UNEXPECTED.\n", hr);
+    hr = IUri_GetScheme(uri, &dword);
+    ok(hr == E_UNEXPECTED, "GetScheme returned %x, expected E_UNEXPECTED.\n", hr);
+    hr = IUri_GetSchemeName(uri, &bstr);
+    ok(hr == E_UNEXPECTED, "GetSchemeName returned %x, expected E_UNEXPECTED.\n", hr);
+    hr = IUri_GetUserInfo(uri, &bstr);
+    ok(hr == E_UNEXPECTED, "GetUserInfo returned %x, expected E_UNEXPECTED.\n", hr);
+    hr = IUri_GetUserName(uri, &bstr);
+    ok(hr == E_UNEXPECTED, "GetUserName returned %x, expected E_UNEXPECTED.\n", hr);
+    hr = IUri_GetZone(uri, &dword);
+    ok(hr == E_UNEXPECTED, "GetZone returned %x, expected E_UNEXPECTED.\n", hr);
+    hr = IUri_IsEqual(uri, uri, &eq);
+    ok(hr == E_UNEXPECTED, "IsEqual returned %x, expected E_UNEXPECTED.\n", hr);
+
+    hr = IUriBuilderFactory_CreateInitializedIUriBuilder(ubf, 0, 0, &ub);
+    ok(hr == E_UNEXPECTED, "CreateInitializedIUriBuilder returned %x, expected E_UNEXPECTED.\n", hr);
+    hr = IUriBuilderFactory_CreateIUriBuilder(ubf, 0, 0, &ub);
+    ok(hr == S_OK, "CreateIUriBuilder returned %x, expected S_OK.\n", hr);
+    IUriBuilder_Release(ub);
+
+    hr = IPersistStream_GetSizeMax(ps, &ui);
+    ok(hr == S_OK, "GetSizeMax returned %x, expected S_OK.\n", hr);
+    ok(ui.u.LowPart == 34, "ui.LowPart = %d, expected 34.\n", ui.u.LowPart);
+    hr = IPersistStream_IsDirty(ps);
+    ok(hr == S_FALSE, "IsDirty returned %x, expected S_FALSE.\n", hr);
+
+    IPersistStream_Release(ps);
+    IUriBuilderFactory_Release(ubf);
+    IUri_Release(uri);
+}
+
 START_TEST(uri) {
     HMODULE hurlmon;
 
@@ -10916,5 +11011,11 @@ START_TEST(uri) {
     trace("test IPersistStream...\n");
     test_IPersistStream();
 
+    CoInitialize(NULL);
+
+    trace("test uninitialized Uri...\n");
+    test_UninitializedUri();
+
+    CoUninitialize();
     unregister_protocols();
 }




More information about the wine-cvs mailing list