Jacek Caban : urlmon: Fixed protocol tests on IE10.

Alexandre Julliard julliard at winehq.org
Fri Nov 15 13:14:29 CST 2013


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

Author: Jacek Caban <jacek at codeweavers.com>
Date:   Fri Nov 15 14:25:12 2013 +0100

urlmon: Fixed protocol tests on IE10.

---

 dlls/urlmon/protocol.c       |    1 +
 dlls/urlmon/tests/protocol.c |   25 ++++++++++++++++++++++---
 2 files changed, 23 insertions(+), 3 deletions(-)

diff --git a/dlls/urlmon/protocol.c b/dlls/urlmon/protocol.c
index 2682465..42ee8ed 100644
--- a/dlls/urlmon/protocol.c
+++ b/dlls/urlmon/protocol.c
@@ -516,6 +516,7 @@ HRESULT protocol_abort(Protocol *protocol, HRESULT reason)
     if(!protocol->protocol_sink)
         return S_OK;
 
+    /* NOTE: IE10 returns S_OK here */
     if(protocol->flags & FLAG_RESULT_REPORTED)
         return INET_E_RESULT_DISPATCHED;
 
diff --git a/dlls/urlmon/tests/protocol.c b/dlls/urlmon/tests/protocol.c
index 4728f3c..d4e9663 100644
--- a/dlls/urlmon/tests/protocol.c
+++ b/dlls/urlmon/tests/protocol.c
@@ -415,6 +415,18 @@ static HRESULT WINAPI ServiceProvider_QueryService(IServiceProvider *iface, REFG
         return IHttpSecurity_QueryInterface(&http_security, riid, ppv);
     }
 
+    if(IsEqualGUID(&IID_IGetBindHandle, guidService)) {
+        trace("QueryService(IID_IGetBindHandle)\n");
+        *ppv = NULL;
+        return E_NOINTERFACE;
+    }
+
+    if(IsEqualGUID(&IID_IWindowForBindingUI, guidService)) {
+        trace("QueryService(IID_IWindowForBindingUI)\n");
+        *ppv = NULL;
+        return E_NOINTERFACE;
+    }
+
     ok(0, "unexpected service %s\n", debugstr_guid(guidService));
     return E_FAIL;
 }
@@ -872,8 +884,11 @@ static HRESULT WINAPI ProtocolSink_ReportProgress(IInternetProtocolSink *iface,
         CHECK_EXPECT(ReportProgress_DECODING);
         ok(!lstrcmpW(szStatusText, pjpegW), "szStatusText = %s\n", wine_dbgstr_w(szStatusText));
         break;
+    case BINDSTATUS_RESERVED_7:
+        trace("BINDSTATUS_RESERVED_7\n");
+        break;
     default:
-        ok(0, "Unexpected status %d\n", ulStatusCode);
+        ok(0, "Unexpected status %d (%d)\n", ulStatusCode, ulStatusCode-BINDSTATUS_LAST);
     };
 
     return S_OK;
@@ -1232,6 +1247,7 @@ static IInternetProtocolSink mime_protocol_sink = { &mime_protocol_sink_vtbl };
 static HRESULT QueryInterface(REFIID riid, void **ppv)
 {
     static const IID IID_undocumented = {0x58DFC7D0,0x5381,0x43E5,{0x9D,0x72,0x4C,0xDD,0xE4,0xCB,0x0F,0x1A}};
+    static const IID IID_undocumentedIE10 = {0xc28722e5,0xbc1a,0x4c55,{0xa6,0x8d,0x33,0x21,0x9f,0x69,0x89,0x10}};
 
     *ppv = NULL;
 
@@ -1245,6 +1261,9 @@ static HRESULT QueryInterface(REFIID riid, void **ppv)
     /* NOTE: IE8 queries for undocumented {58DFC7D0-5381-43E5-9D72-4CDDE4CB0F1A} interface. */
     if(IsEqualGUID(&IID_undocumented, riid))
         return E_NOINTERFACE;
+    /* NOTE: IE10 queries for undocumented {c28722e5-bc1a-4c55-a68d-33219f698910} interface. */
+    if(IsEqualGUID(&IID_undocumentedIE10, riid))
+        return E_NOINTERFACE;
 
     if(*ppv)
         return S_OK;
@@ -3070,7 +3089,7 @@ static void test_http_protocol_url(LPCWSTR url, int prot, DWORD flags, DWORD tym
                         CHECK_CALLED(ReportResult);
 
                         hres = IInternetProtocol_Abort(async_protocol, E_ABORT, 0);
-                        ok(hres == INET_E_RESULT_DISPATCHED, "Abort failed: %08x\n", hres);
+                        ok(hres == INET_E_RESULT_DISPATCHED || hres == S_OK /* IE10 */, "Abort failed: %08x\n", hres);
                         break;
                     }
                 }else {
@@ -3093,7 +3112,7 @@ static void test_http_protocol_url(LPCWSTR url, int prot, DWORD flags, DWORD tym
             CLEAR_CALLED(ReportProgress_COOKIE_SENT);
 
         hres = IInternetProtocol_Abort(async_protocol, E_ABORT, 0);
-        ok(hres == INET_E_RESULT_DISPATCHED, "Abort failed: %08x\n", hres);
+        ok(hres == INET_E_RESULT_DISPATCHED || hres == S_OK /* IE10 */, "Abort failed: %08x\n", hres);
 
         test_protocol_terminate(async_protocol);
 




More information about the wine-cvs mailing list