Jacek Caban : urlmon: Added mime filters tests.

Alexandre Julliard julliard at winehq.org
Fri Dec 28 07:38:43 CST 2007


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

Author: Jacek Caban <jacek at codeweavers.com>
Date:   Fri Dec 28 02:00:24 2007 +0100

urlmon: Added mime filters tests.

---

 dlls/urlmon/tests/misc.c |   48 ++++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 46 insertions(+), 2 deletions(-)

diff --git a/dlls/urlmon/tests/misc.c b/dlls/urlmon/tests/misc.c
index 76b257b..ba36d8a 100644
--- a/dlls/urlmon/tests/misc.c
+++ b/dlls/urlmon/tests/misc.c
@@ -935,6 +935,13 @@ static ULONG WINAPI ClassFactory_Release(IClassFactory *iface)
 static HRESULT WINAPI ClassFactory_CreateInstance(IClassFactory *iface, IUnknown *pOuter,
                                         REFIID riid, void **ppv)
 {
+    ok(0, "unexpected call\n");
+    return E_NOTIMPL;
+}
+
+static HRESULT WINAPI ProtocolCF_CreateInstance(IClassFactory *iface, IUnknown *pOuter,
+                                        REFIID riid, void **ppv)
+{
     CHECK_EXPECT(CreateInstance);
 
     ok(iface == expect_cf, "unexpected iface\n");
@@ -960,8 +967,17 @@ static const IClassFactoryVtbl ClassFactoryVtbl = {
     ClassFactory_LockServer
 };
 
-static IClassFactory test_protocol_cf = { &ClassFactoryVtbl };
-static IClassFactory test_protocol_cf2 = { &ClassFactoryVtbl };
+static const IClassFactoryVtbl ProtocolCFVtbl = {
+    ClassFactory_QueryInterface,
+    ClassFactory_AddRef,
+    ClassFactory_Release,
+    ProtocolCF_CreateInstance,
+    ClassFactory_LockServer
+};
+
+static IClassFactory test_protocol_cf = { &ProtocolCFVtbl };
+static IClassFactory test_protocol_cf2 = { &ProtocolCFVtbl };
+static IClassFactory test_cf = { &ClassFactoryVtbl };
 
 static void test_NameSpace(void)
 {
@@ -1089,6 +1105,33 @@ static void test_NameSpace(void)
     IInternetSession_Release(session);
 }
 
+static void test_MimeFilter(void)
+{
+    IInternetSession *session;
+    HRESULT hres;
+
+    static const WCHAR mimeW[] = {'t','e','s','t','/','m','i','m','e',0};
+
+    hres = CoInternetGetSession(0, &session, 0);
+    ok(hres == S_OK, "CoInternetGetSession failed: %08x\n", hres);
+    if(FAILED(hres))
+        return;
+
+    hres = IInternetSession_RegisterMimeFilter(session, &test_cf, &IID_NULL, mimeW);
+    ok(hres == S_OK, "RegisterMimeFilter failed: %08x\n", hres);
+
+    hres = IInternetSession_UnregisterMimeFilter(session, &test_cf, mimeW);
+    ok(hres == S_OK, "UnregisterMimeFilter failed: %08x\n", hres);
+
+    hres = IInternetSession_UnregisterMimeFilter(session, &test_cf, mimeW);
+    ok(hres == S_OK, "UnregisterMimeFilter failed: %08x\n", hres);
+
+    hres = IInternetSession_UnregisterMimeFilter(session, (void*)0xdeadbeef, mimeW);
+    ok(hres == S_OK, "UnregisterMimeFilter failed: %08x\n", hres);
+
+    IInternetSession_Release(session);
+}
+
 static ULONG WINAPI unk_Release(IUnknown *iface)
 {
     CHECK_EXPECT(unk_Release);
@@ -1243,6 +1286,7 @@ START_TEST(misc)
     test_SecurityManager();
     test_ZoneManager();
     test_NameSpace();
+    test_MimeFilter();
     test_ReleaseBindInfo();
     test_UrlMkGetSessionOption();
     test_ObtainUserAgentString();




More information about the wine-cvs mailing list