Jacek Caban : urlmon: Fixed url tests on IE10.
Alexandre Julliard
julliard at winehq.org
Fri Nov 15 13:14:29 CST 2013
Module: wine
Branch: master
Commit: 3a9666f19acd5a46be8ccd7366eda9f43fccca48
URL: http://source.winehq.org/git/wine.git/?a=commit;h=3a9666f19acd5a46be8ccd7366eda9f43fccca48
Author: Jacek Caban <jacek at codeweavers.com>
Date: Fri Nov 15 15:45:51 2013 +0100
urlmon: Fixed url tests on IE10.
---
dlls/urlmon/tests/url.c | 77 +++++++++++++++++++++++++---------------------
1 files changed, 42 insertions(+), 35 deletions(-)
diff --git a/dlls/urlmon/tests/url.c b/dlls/urlmon/tests/url.c
index 7bfa75f..8fae051 100644
--- a/dlls/urlmon/tests/url.c
+++ b/dlls/urlmon/tests/url.c
@@ -188,6 +188,7 @@ static BOOL invalid_cn_accepted = FALSE;
static BOOL abort_start = FALSE;
static BOOL abort_progress = FALSE;
static BOOL async_switch = FALSE;
+static BOOL strict_bsc_qi;
static const char *test_file;
static WCHAR file_url[INTERNET_MAX_URL_LENGTH], current_url[INTERNET_MAX_URL_LENGTH];
@@ -375,6 +376,8 @@ static IInternetPriority InternetPriority = { &InternetPriorityVtbl };
static HRESULT WINAPI Protocol_QueryInterface(IInternetProtocol *iface, REFIID riid, void **ppv)
{
+ static const IID IID_undocumentedIE10 = {0x7daf9908,0x8415,0x4005,{0x95,0xae,0xbd,0x27,0xf6,0xe3,0xdc,0x00}};
+
*ppv = NULL;
if(IsEqualGUID(&IID_IUnknown, riid) || IsEqualGUID(&IID_IInternetProtocol, riid)) {
@@ -393,6 +396,11 @@ static HRESULT WINAPI Protocol_QueryInterface(IInternetProtocol *iface, REFIID r
if(IsEqualGUID(&IID_IInternetProtocolEx, riid))
return E_NOINTERFACE; /* TODO */
+ if(IsEqualGUID(&IID_undocumentedIE10, riid)) {
+ trace("QI(%s)\n", debugstr_guid(riid));
+ return E_NOINTERFACE; /* TODO */
+ }
+
ok(0, "unexpected call %s\n", debugstr_guid(riid));
return E_NOINTERFACE;
}
@@ -628,7 +636,7 @@ static HRESULT WINAPI Protocol_Start(IInternetProtocol *iface, LPCWSTR szUrl,
if(filedwl_api || !is_urlmon_protocol(test_protocol) || tymed != TYMED_ISTREAM ||
!(bindf&BINDF_ASYNCSTORAGE) || !(bindf&BINDF_PULLDATA))
ok(bind_info & BINDF_NEEDFILE, "BINDF_NEEDFILE is not set\n");
- else
+ else if(test_protocol != MK_TEST) /* IE10 sets BINDF_NEEDFILE for mk: protocol */
ok(!(bind_info & BINDF_NEEDFILE), "BINDF_NEEDFILE is set\n");
bind_info &= ~(BINDF_NEEDFILE|BINDF_FROMURLMON);
@@ -1434,6 +1442,12 @@ static HRESULT WINAPI ServiceProvider_QueryService(IServiceProvider *iface,
return S_OK;
}
+ if(IsEqualGUID(&IID_IGetBindHandle, guidService)) {
+ trace("QueryService(IID_IGetBindHandle)\n");
+ *ppv = NULL;
+ return E_NOINTERFACE;
+ }
+
ok(0, "unexpected service %s\n", debugstr_guid(guidService));
return E_NOINTERFACE;
}
@@ -1497,6 +1511,8 @@ static void test_WinInetHttpInfo(IWinInetHttpInfo *http_info, DWORD progress)
static HRESULT WINAPI statusclb_QueryInterface(IBindStatusCallbackEx *iface, REFIID riid, void **ppv)
{
+ static const IID IID_undocumentedIE10 = {0xf286fa56,0xc1fd,0x4270,{0x8e,0x67,0xb3,0xeb,0x79,0x0a,0x81,0xe8}};
+
ok(GetCurrentThreadId() == thread_id, "wrong thread %d\n", GetCurrentThreadId());
if(IsEqualGUID(&IID_IInternetProtocol, riid)) {
@@ -1507,66 +1523,53 @@ static HRESULT WINAPI statusclb_QueryInterface(IBindStatusCallbackEx *iface, REF
}else {
return E_NOINTERFACE;
}
- }
- else if (IsEqualGUID(&IID_IServiceProvider, riid))
- {
+ }else if (IsEqualGUID(&IID_IServiceProvider, riid)) {
CHECK_EXPECT2(QueryInterface_IServiceProvider);
*ppv = &ServiceProvider;
return S_OK;
- }
- else if (IsEqualGUID(&IID_IHttpNegotiate, riid))
- {
+ }else if (IsEqualGUID(&IID_IHttpNegotiate, riid)) {
CHECK_EXPECT2(QueryInterface_IHttpNegotiate);
*ppv = &HttpNegotiate;
return S_OK;
- }
- else if (IsEqualGUID(&IID_IHttpNegotiate2, riid))
- {
+ }else if (IsEqualGUID(&IID_IHttpNegotiate2, riid)) {
CHECK_EXPECT(QueryInterface_IHttpNegotiate2);
*ppv = &HttpNegotiate;
return S_OK;
- }
- else if (IsEqualGUID(&IID_IAuthenticate, riid))
- {
+ }else if (IsEqualGUID(&IID_IAuthenticate, riid)) {
CHECK_EXPECT(QueryInterface_IAuthenticate);
return E_NOINTERFACE;
- }
- else if(IsEqualGUID(&IID_IBindStatusCallback, riid))
- {
- CHECK_EXPECT2(QueryInterface_IBindStatusCallback);
+ }else if(IsEqualGUID(&IID_IBindStatusCallback, riid)) {
+ if(strict_bsc_qi)
+ CHECK_EXPECT2(QueryInterface_IBindStatusCallback);
*ppv = iface;
return S_OK;
- }
- else if(IsEqualGUID(&IID_IBindStatusCallbackHolder, riid))
- {
+ }else if(IsEqualGUID(&IID_IBindStatusCallbackHolder, riid)) {
CHECK_EXPECT2(QueryInterface_IBindStatusCallbackHolder);
return E_NOINTERFACE;
- }
- else if(IsEqualGUID(&IID_IBindStatusCallbackEx, riid))
- {
+ }else if(IsEqualGUID(&IID_IBindStatusCallbackEx, riid)) {
CHECK_EXPECT(QueryInterface_IBindStatusCallbackEx);
if(!use_bscex)
return E_NOINTERFACE;
*ppv = iface;
return S_OK;
- }
- else if(IsEqualGUID(&IID_IInternetBindInfo, riid))
- {
+ }else if(IsEqualGUID(&IID_IInternetBindInfo, riid)) {
/* TODO */
CHECK_EXPECT2(QueryInterface_IInternetBindInfo);
- }
- else if(IsEqualGUID(&IID_IWindowForBindingUI, riid))
- {
+ }else if(IsEqualGUID(&IID_IWindowForBindingUI, riid)) {
CHECK_EXPECT2(QueryInterface_IWindowForBindingUI);
return E_NOINTERFACE;
- }
- else if(IsEqualGUID(&IID_IHttpSecurity, riid))
- {
+ }else if(IsEqualGUID(&IID_IHttpSecurity, riid)) {
CHECK_EXPECT2(QueryInterface_IHttpSecurity);
return E_NOINTERFACE;
- }
- else
- {
+ }else if(IsEqualGUID(&IID_IGetBindHandle, riid)) {
+ trace("QI(IID_IGetBindHandle)\n");
+ *ppv = NULL;
+ return E_NOINTERFACE;
+ }else if(IsEqualGUID(&IID_undocumentedIE10, riid)) {
+ trace("QI(IID_undocumentedIE10)\n");
+ *ppv = NULL;
+ return E_NOINTERFACE;
+ }else {
ok(0, "unexpected interface %s\n", debugstr_guid(riid));
}
@@ -2703,6 +2706,8 @@ static BOOL test_RegisterBindStatusCallback(void)
IUnknown *unk;
HRESULT hres;
+ strict_bsc_qi = TRUE;
+
hres = CreateBindCtx(0, &bindctx);
ok(hres == S_OK, "BindCtx failed: %08x\n", hres);
@@ -2789,6 +2794,8 @@ static BOOL test_RegisterBindStatusCallback(void)
IBindStatusCallback_Release(prev_clb);
IBindCtx_Release(bindctx);
+
+ strict_bsc_qi = FALSE;
return ret;
}
More information about the wine-cvs
mailing list