urlmon: Added https binding tests.

oldstable
Jacek Caban 2009-01-12 18:20:28 +01:00 committed by Alexandre Julliard
parent 1876f46bcf
commit 66a7da71ee
1 changed files with 69 additions and 48 deletions

View File

@ -138,6 +138,10 @@ static const WCHAR ITS_URL[] =
{'i','t','s',':','t','e','s','t','.','c','h','m',':',':','/','b','l','a','n','k','.','h','t','m','l',0}; {'i','t','s',':','t','e','s','t','.','c','h','m',':',':','/','b','l','a','n','k','.','h','t','m','l',0};
static const WCHAR MK_URL[] = {'m','k',':','@','M','S','I','T','S','t','o','r','e',':', static const WCHAR MK_URL[] = {'m','k',':','@','M','S','I','T','S','t','o','r','e',':',
't','e','s','t','.','c','h','m',':',':','/','b','l','a','n','k','.','h','t','m','l',0}; 't','e','s','t','.','c','h','m',':',':','/','b','l','a','n','k','.','h','t','m','l',0};
static const WCHAR https_urlW[] =
{'h','t','t','p','s',':','/','/','w','w','w','.','c','o','d','e','w','e','a','v','e','r','s','.','c','o','m',
'/','t','e','s','t','.','h','t','m','l',0};
static const WCHAR wszTextHtml[] = {'t','e','x','t','/','h','t','m','l',0}; static const WCHAR wszTextHtml[] = {'t','e','x','t','/','h','t','m','l',0};
@ -168,7 +172,8 @@ static LPCWSTR urls[] = {
ABOUT_BLANK, ABOUT_BLANK,
INDEX_HTML, INDEX_HTML,
ITS_URL, ITS_URL,
MK_URL MK_URL,
https_urlW
}; };
static WCHAR file_url[INTERNET_MAX_URL_LENGTH]; static WCHAR file_url[INTERNET_MAX_URL_LENGTH];
@ -178,7 +183,8 @@ static enum {
ABOUT_TEST, ABOUT_TEST,
FILE_TEST, FILE_TEST,
ITS_TEST, ITS_TEST,
MK_TEST MK_TEST,
HTTPS_TEST
} test_protocol; } test_protocol;
static enum { static enum {
@ -397,7 +403,8 @@ static HRESULT WINAPI Protocol_Start(IInternetProtocol *iface, LPCWSTR szUrl,
if(filedwl_api) { if(filedwl_api) {
ok(bindf == (BINDF_PULLDATA|BINDF_FROMURLMON|BINDF_NEEDFILE), "bindf=%08x\n", bindf); ok(bindf == (BINDF_PULLDATA|BINDF_FROMURLMON|BINDF_NEEDFILE), "bindf=%08x\n", bindf);
}else if(tymed == TYMED_ISTREAM }else if(tymed == TYMED_ISTREAM
&& (test_protocol == FILE_TEST || test_protocol == MK_TEST || test_protocol == HTTP_TEST)) { && (test_protocol == FILE_TEST || test_protocol == MK_TEST
|| test_protocol == HTTP_TEST || test_protocol == HTTPS_TEST)) {
ok(bindf == (BINDF_ASYNCHRONOUS|BINDF_ASYNCSTORAGE|BINDF_PULLDATA ok(bindf == (BINDF_ASYNCHRONOUS|BINDF_ASYNCSTORAGE|BINDF_PULLDATA
|BINDF_FROMURLMON), |BINDF_FROMURLMON),
"bindf=%08x\n", bindf); "bindf=%08x\n", bindf);
@ -447,7 +454,7 @@ static HRESULT WINAPI Protocol_Start(IInternetProtocol *iface, LPCWSTR szUrl,
break; break;
} }
if(test_protocol == HTTP_TEST) { if(test_protocol == HTTP_TEST || test_protocol == HTTPS_TEST) {
IServiceProvider *service_provider; IServiceProvider *service_provider;
IHttpNegotiate *http_negotiate; IHttpNegotiate *http_negotiate;
IHttpNegotiate2 *http_negotiate2; IHttpNegotiate2 *http_negotiate2;
@ -672,6 +679,11 @@ static HRESULT WINAPI Protocol_Continue(IInternetProtocol *iface,
IHttpNegotiate_Release(http_negotiate); IHttpNegotiate_Release(http_negotiate);
ok(hres == S_OK, "OnResponse failed: %08x\n", hres); ok(hres == S_OK, "OnResponse failed: %08x\n", hres);
if(test_protocol == HTTPS_TEST) {
hres = IInternetProtocolSink_ReportProgress(protocol_sink, BINDSTATUS_ACCEPTRANGES, NULL);
ok(hres == S_OK, "ReportProgress(BINDSTATUS_ACCEPTRANGES) failed: %08x\n", hres);
}
hres = IInternetProtocolSink_ReportProgress(protocol_sink, hres = IInternetProtocolSink_ReportProgress(protocol_sink,
BINDSTATUS_MIMETYPEAVAILABLE, wszTextHtml); BINDSTATUS_MIMETYPEAVAILABLE, wszTextHtml);
ok(hres == S_OK, ok(hres == S_OK,
@ -772,7 +784,7 @@ static HRESULT WINAPI Protocol_Read(IInternetProtocol *iface, void *pv,
CHECK_EXPECT2(Read); CHECK_EXPECT2(Read);
if(test_protocol == HTTP_TEST) { if(test_protocol == HTTP_TEST || test_protocol == HTTPS_TEST) {
HRESULT hres; HRESULT hres;
static BOOL pending = TRUE; static BOOL pending = TRUE;
@ -1206,7 +1218,7 @@ static HRESULT WINAPI statusclb_OnProgress(IBindStatusCallback *iface, ULONG ulP
download_state = END_DOWNLOAD; download_state = END_DOWNLOAD;
break; break;
case BINDSTATUS_CACHEFILENAMEAVAILABLE: case BINDSTATUS_CACHEFILENAMEAVAILABLE:
if(test_protocol != HTTP_TEST) { if(test_protocol != HTTP_TEST && test_protocol != HTTPS_TEST) {
if(iface == &objbsc) if(iface == &objbsc)
CHECK_EXPECT(Obj_OnProgress_CACHEFILENAMEAVAILABLE); CHECK_EXPECT(Obj_OnProgress_CACHEFILENAMEAVAILABLE);
else else
@ -1279,7 +1291,7 @@ static HRESULT WINAPI statusclb_OnStopBinding(IBindStatusCallback *iface, HRESUL
ok(hresult == binding_hres, "binding failed: %08x, expected %08x\n", hresult, binding_hres); ok(hresult == binding_hres, "binding failed: %08x, expected %08x\n", hresult, binding_hres);
ok(szError == NULL, "szError should be NULL\n"); ok(szError == NULL, "szError should be NULL\n");
if(test_protocol == HTTP_TEST && emulate_protocol) { if((test_protocol == HTTP_TEST || test_protocol == HTTPS_TEST) && emulate_protocol) {
SetEvent(complete_event); SetEvent(complete_event);
if(iface != &objbsc) if(iface != &objbsc)
WaitForSingleObject(complete_event2, INFINITE); WaitForSingleObject(complete_event2, INFINITE);
@ -1379,7 +1391,8 @@ static HRESULT WINAPI statusclb_OnDataAvailable(IBindStatusCallback *iface, DWOR
ok(pstgmed->u.lpszFileName != NULL, "lpszFileName == NULL\n"); ok(pstgmed->u.lpszFileName != NULL, "lpszFileName == NULL\n");
} }
if(test_protocol == HTTP_TEST && emulate_protocol && prot_state < 4 && (!bind_to_object || prot_state > 1)) if((test_protocol == HTTP_TEST || test_protocol == HTTPS_TEST)
&& emulate_protocol && prot_state < 4 && (!bind_to_object || prot_state > 1))
SetEvent(complete_event); SetEvent(complete_event);
return S_OK; return S_OK;
@ -1508,7 +1521,7 @@ static HRESULT WINAPI PersistMoniker_Load(IPersistMoniker *iface, BOOL fFullyAva
CHECK_EXPECT(Load); CHECK_EXPECT(Load);
ok(GetCurrentThreadId() == thread_id, "wrong thread %d\n", GetCurrentThreadId()); ok(GetCurrentThreadId() == thread_id, "wrong thread %d\n", GetCurrentThreadId());
if(test_protocol == HTTP_TEST) if(test_protocol == HTTP_TEST || test_protocol == HTTPS_TEST)
ok(!fFullyAvailable, "fFulyAvailable = %x\n", fFullyAvailable); ok(!fFullyAvailable, "fFulyAvailable = %x\n", fFullyAvailable);
else else
ok(fFullyAvailable, "fFulyAvailable = %x\n", fFullyAvailable); ok(fFullyAvailable, "fFulyAvailable = %x\n", fFullyAvailable);
@ -1538,11 +1551,11 @@ static HRESULT WINAPI PersistMoniker_Load(IPersistMoniker *iface, BOOL fFullyAva
SET_EXPECT(OnProgress_BEGINDOWNLOADDATA); SET_EXPECT(OnProgress_BEGINDOWNLOADDATA);
if(test_protocol == FILE_TEST) if(test_protocol == FILE_TEST)
SET_EXPECT(OnProgress_CACHEFILENAMEAVAILABLE); SET_EXPECT(OnProgress_CACHEFILENAMEAVAILABLE);
if(test_protocol != HTTP_TEST) if(test_protocol != HTTP_TEST && test_protocol != HTTPS_TEST)
SET_EXPECT(OnProgress_ENDDOWNLOADDATA); SET_EXPECT(OnProgress_ENDDOWNLOADDATA);
SET_EXPECT(LockRequest); SET_EXPECT(LockRequest);
SET_EXPECT(OnDataAvailable); SET_EXPECT(OnDataAvailable);
if(test_protocol != HTTP_TEST) if(test_protocol != HTTP_TEST && test_protocol != HTTPS_TEST)
SET_EXPECT(OnStopBinding); SET_EXPECT(OnStopBinding);
hres = IMoniker_BindToStorage(pimkName, pibc, NULL, &IID_IStream, (void**)&unk); hres = IMoniker_BindToStorage(pimkName, pibc, NULL, &IID_IStream, (void**)&unk);
@ -1553,11 +1566,11 @@ static HRESULT WINAPI PersistMoniker_Load(IPersistMoniker *iface, BOOL fFullyAva
CHECK_CALLED(OnProgress_BEGINDOWNLOADDATA); CHECK_CALLED(OnProgress_BEGINDOWNLOADDATA);
if(test_protocol == FILE_TEST) if(test_protocol == FILE_TEST)
CHECK_CALLED(OnProgress_CACHEFILENAMEAVAILABLE); CHECK_CALLED(OnProgress_CACHEFILENAMEAVAILABLE);
if(test_protocol != HTTP_TEST) if(test_protocol != HTTP_TEST && test_protocol != HTTPS_TEST)
CHECK_CALLED(OnProgress_ENDDOWNLOADDATA); CHECK_CALLED(OnProgress_ENDDOWNLOADDATA);
CHECK_CALLED(LockRequest); CHECK_CALLED(LockRequest);
CHECK_CALLED(OnDataAvailable); CHECK_CALLED(OnDataAvailable);
if(test_protocol != HTTP_TEST) if(test_protocol != HTTP_TEST && test_protocol != HTTPS_TEST)
CHECK_CALLED(OnStopBinding); CHECK_CALLED(OnStopBinding);
if(unk) if(unk)
@ -2044,12 +2057,12 @@ static void test_BindToStorage(int protocol, BOOL emul, DWORD t)
SET_EXPECT(OnStartBinding); SET_EXPECT(OnStartBinding);
if(emulate_protocol) { if(emulate_protocol) {
SET_EXPECT(Start); SET_EXPECT(Start);
if(test_protocol == HTTP_TEST) if(test_protocol == HTTP_TEST || test_protocol == HTTPS_TEST)
SET_EXPECT(Terminate); SET_EXPECT(Terminate);
if(tymed != TYMED_FILE || (test_protocol != ABOUT_TEST && test_protocol != ITS_TEST)) if(tymed != TYMED_FILE || (test_protocol != ABOUT_TEST && test_protocol != ITS_TEST))
SET_EXPECT(UnlockRequest); SET_EXPECT(UnlockRequest);
}else { }else {
if(test_protocol == HTTP_TEST) { if(test_protocol == HTTP_TEST || test_protocol == HTTPS_TEST) {
SET_EXPECT(QueryInterface_IInternetBindInfo); SET_EXPECT(QueryInterface_IInternetBindInfo);
SET_EXPECT(QueryService_IInternetBindInfo); SET_EXPECT(QueryService_IInternetBindInfo);
SET_EXPECT(QueryInterface_IHttpNegotiate); SET_EXPECT(QueryInterface_IHttpNegotiate);
@ -2059,15 +2072,15 @@ static void test_BindToStorage(int protocol, BOOL emul, DWORD t)
SET_EXPECT(OnProgress_FINDINGRESOURCE); SET_EXPECT(OnProgress_FINDINGRESOURCE);
SET_EXPECT(OnProgress_CONNECTING); SET_EXPECT(OnProgress_CONNECTING);
} }
if(test_protocol == HTTP_TEST || test_protocol == FILE_TEST) if(test_protocol == HTTP_TEST || test_protocol == HTTPS_TEST || test_protocol == FILE_TEST)
SET_EXPECT(OnProgress_SENDINGREQUEST); SET_EXPECT(OnProgress_SENDINGREQUEST);
if(test_protocol == HTTP_TEST) if(test_protocol == HTTP_TEST || test_protocol == HTTPS_TEST)
SET_EXPECT(OnResponse); SET_EXPECT(OnResponse);
SET_EXPECT(OnProgress_MIMETYPEAVAILABLE); SET_EXPECT(OnProgress_MIMETYPEAVAILABLE);
SET_EXPECT(OnProgress_BEGINDOWNLOADDATA); SET_EXPECT(OnProgress_BEGINDOWNLOADDATA);
if(test_protocol == FILE_TEST) if(test_protocol == FILE_TEST)
SET_EXPECT(OnProgress_CACHEFILENAMEAVAILABLE); SET_EXPECT(OnProgress_CACHEFILENAMEAVAILABLE);
if(test_protocol == HTTP_TEST) if(test_protocol == HTTP_TEST || test_protocol == HTTPS_TEST)
SET_EXPECT(OnProgress_DOWNLOADINGDATA); SET_EXPECT(OnProgress_DOWNLOADINGDATA);
SET_EXPECT(OnProgress_ENDDOWNLOADDATA); SET_EXPECT(OnProgress_ENDDOWNLOADDATA);
if(tymed != TYMED_FILE || test_protocol != ABOUT_TEST) if(tymed != TYMED_FILE || test_protocol != ABOUT_TEST)
@ -2076,7 +2089,8 @@ static void test_BindToStorage(int protocol, BOOL emul, DWORD t)
} }
hres = IMoniker_BindToStorage(mon, bctx, NULL, tymed == TYMED_ISTREAM ? &IID_IStream : &IID_IUnknown, (void**)&unk); hres = IMoniker_BindToStorage(mon, bctx, NULL, tymed == TYMED_ISTREAM ? &IID_IStream : &IID_IUnknown, (void**)&unk);
if (test_protocol == HTTP_TEST && hres == HRESULT_FROM_WIN32(ERROR_INTERNET_NAME_NOT_RESOLVED)) if ((test_protocol == HTTP_TEST || test_protocol == HTTPS_TEST)
&& hres == HRESULT_FROM_WIN32(ERROR_INTERNET_NAME_NOT_RESOLVED))
{ {
skip("Network unreachable, skipping tests\n"); skip("Network unreachable, skipping tests\n");
return; return;
@ -2113,7 +2127,7 @@ static void test_BindToStorage(int protocol, BOOL emul, DWORD t)
CHECK_CALLED(OnStartBinding); CHECK_CALLED(OnStartBinding);
if(emulate_protocol) { if(emulate_protocol) {
CHECK_CALLED(Start); CHECK_CALLED(Start);
if(test_protocol == HTTP_TEST) { if(test_protocol == HTTP_TEST || test_protocol == HTTPS_TEST) {
if(tymed == TYMED_FILE) if(tymed == TYMED_FILE)
CLEAR_CALLED(Read); CLEAR_CALLED(Read);
CHECK_CALLED(Terminate); CHECK_CALLED(Terminate);
@ -2121,7 +2135,7 @@ static void test_BindToStorage(int protocol, BOOL emul, DWORD t)
if(tymed != TYMED_FILE || (test_protocol != ABOUT_TEST && test_protocol != ITS_TEST)) if(tymed != TYMED_FILE || (test_protocol != ABOUT_TEST && test_protocol != ITS_TEST))
CHECK_CALLED(UnlockRequest); CHECK_CALLED(UnlockRequest);
}else { }else {
if(test_protocol == HTTP_TEST) { if(test_protocol == HTTP_TEST || test_protocol == HTTPS_TEST) {
CLEAR_CALLED(QueryInterface_IInternetBindInfo); CLEAR_CALLED(QueryInterface_IInternetBindInfo);
CLEAR_CALLED(QueryService_IInternetBindInfo); CLEAR_CALLED(QueryService_IInternetBindInfo);
CHECK_CALLED(QueryInterface_IHttpNegotiate); CHECK_CALLED(QueryInterface_IHttpNegotiate);
@ -2131,7 +2145,7 @@ static void test_BindToStorage(int protocol, BOOL emul, DWORD t)
CHECK_CALLED(QueryInterface_IHttpNegotiate2); CHECK_CALLED(QueryInterface_IHttpNegotiate2);
CHECK_CALLED(GetRootSecurityId); CHECK_CALLED(GetRootSecurityId);
} }
if(http_is_first) { if(http_is_first || test_protocol == HTTPS_TEST) {
CHECK_CALLED(OnProgress_FINDINGRESOURCE); CHECK_CALLED(OnProgress_FINDINGRESOURCE);
CHECK_CALLED(OnProgress_CONNECTING); CHECK_CALLED(OnProgress_CONNECTING);
}else todo_wine { }else todo_wine {
@ -2140,15 +2154,15 @@ static void test_BindToStorage(int protocol, BOOL emul, DWORD t)
CLEAR_CALLED(OnProgress_CONNECTING); CLEAR_CALLED(OnProgress_CONNECTING);
} }
} }
if(test_protocol == HTTP_TEST || test_protocol == FILE_TEST) if(test_protocol == HTTP_TEST || test_protocol == HTTPS_TEST || test_protocol == FILE_TEST)
CHECK_CALLED(OnProgress_SENDINGREQUEST); CHECK_CALLED(OnProgress_SENDINGREQUEST);
if(test_protocol == HTTP_TEST) if(test_protocol == HTTP_TEST || test_protocol == HTTPS_TEST)
CHECK_CALLED(OnResponse); CHECK_CALLED(OnResponse);
CHECK_CALLED(OnProgress_MIMETYPEAVAILABLE); CHECK_CALLED(OnProgress_MIMETYPEAVAILABLE);
CHECK_CALLED(OnProgress_BEGINDOWNLOADDATA); CHECK_CALLED(OnProgress_BEGINDOWNLOADDATA);
if(test_protocol == FILE_TEST) if(test_protocol == FILE_TEST)
CHECK_CALLED(OnProgress_CACHEFILENAMEAVAILABLE); CHECK_CALLED(OnProgress_CACHEFILENAMEAVAILABLE);
if(test_protocol == HTTP_TEST) if(test_protocol == HTTP_TEST || test_protocol == HTTPS_TEST)
CLEAR_CALLED(OnProgress_DOWNLOADINGDATA); CLEAR_CALLED(OnProgress_DOWNLOADINGDATA);
CHECK_CALLED(OnProgress_ENDDOWNLOADDATA); CHECK_CALLED(OnProgress_ENDDOWNLOADDATA);
if(tymed != TYMED_FILE || test_protocol != ABOUT_TEST) if(tymed != TYMED_FILE || test_protocol != ABOUT_TEST)
@ -2159,7 +2173,7 @@ static void test_BindToStorage(int protocol, BOOL emul, DWORD t)
ok(IMoniker_Release(mon) == 0, "mon should be destroyed here\n"); ok(IMoniker_Release(mon) == 0, "mon should be destroyed here\n");
ok(IBindCtx_Release(bctx) == 0, "bctx should be destroyed here\n"); ok(IBindCtx_Release(bctx) == 0, "bctx should be destroyed here\n");
if(test_protocol == HTTP_TEST) if(test_protocol == HTTP_TEST || test_protocol == HTTPS_TEST)
http_is_first = FALSE; http_is_first = FALSE;
} }
@ -2210,13 +2224,13 @@ static void test_BindToObject(int protocol, BOOL emul)
SET_EXPECT(Obj_OnStartBinding); SET_EXPECT(Obj_OnStartBinding);
if(emulate_protocol) { if(emulate_protocol) {
SET_EXPECT(Start); SET_EXPECT(Start);
if(test_protocol == HTTP_TEST) if(test_protocol == HTTP_TEST || test_protocol == HTTPS_TEST)
SET_EXPECT(Terminate); SET_EXPECT(Terminate);
if(test_protocol == FILE_TEST) if(test_protocol == FILE_TEST)
SET_EXPECT(OnProgress_MIMETYPEAVAILABLE); SET_EXPECT(OnProgress_MIMETYPEAVAILABLE);
SET_EXPECT(UnlockRequest); SET_EXPECT(UnlockRequest);
}else { }else {
if(test_protocol == HTTP_TEST) { if(test_protocol == HTTP_TEST || test_protocol == HTTPS_TEST) {
SET_EXPECT(QueryInterface_IHttpNegotiate); SET_EXPECT(QueryInterface_IHttpNegotiate);
SET_EXPECT(BeginningTransaction); SET_EXPECT(BeginningTransaction);
SET_EXPECT(QueryInterface_IHttpNegotiate2); SET_EXPECT(QueryInterface_IHttpNegotiate2);
@ -2224,15 +2238,15 @@ static void test_BindToObject(int protocol, BOOL emul)
SET_EXPECT(Obj_OnProgress_FINDINGRESOURCE); SET_EXPECT(Obj_OnProgress_FINDINGRESOURCE);
SET_EXPECT(Obj_OnProgress_CONNECTING); SET_EXPECT(Obj_OnProgress_CONNECTING);
} }
if(test_protocol == HTTP_TEST || test_protocol == FILE_TEST) if(test_protocol == HTTP_TEST || test_protocol == HTTPS_TEST || test_protocol == FILE_TEST)
SET_EXPECT(Obj_OnProgress_SENDINGREQUEST); SET_EXPECT(Obj_OnProgress_SENDINGREQUEST);
if(test_protocol == HTTP_TEST) if(test_protocol == HTTP_TEST || test_protocol == HTTPS_TEST)
SET_EXPECT(OnResponse); SET_EXPECT(OnResponse);
SET_EXPECT(Obj_OnProgress_MIMETYPEAVAILABLE); SET_EXPECT(Obj_OnProgress_MIMETYPEAVAILABLE);
SET_EXPECT(Obj_OnProgress_BEGINDOWNLOADDATA); SET_EXPECT(Obj_OnProgress_BEGINDOWNLOADDATA);
if(test_protocol == FILE_TEST) if(test_protocol == FILE_TEST)
SET_EXPECT(Obj_OnProgress_CACHEFILENAMEAVAILABLE); SET_EXPECT(Obj_OnProgress_CACHEFILENAMEAVAILABLE);
if(test_protocol == HTTP_TEST) if(test_protocol == HTTP_TEST || test_protocol == HTTPS_TEST)
SET_EXPECT(OnProgress_DOWNLOADINGDATA); SET_EXPECT(OnProgress_DOWNLOADINGDATA);
SET_EXPECT(Obj_OnProgress_ENDDOWNLOADDATA); SET_EXPECT(Obj_OnProgress_ENDDOWNLOADDATA);
SET_EXPECT(Obj_OnProgress_CLASSIDAVAILABLE); SET_EXPECT(Obj_OnProgress_CLASSIDAVAILABLE);
@ -2244,7 +2258,8 @@ static void test_BindToObject(int protocol, BOOL emul)
hres = IMoniker_BindToObject(mon, bctx, NULL, &IID_IUnknown, (void**)&unk); hres = IMoniker_BindToObject(mon, bctx, NULL, &IID_IUnknown, (void**)&unk);
if (test_protocol == HTTP_TEST && hres == HRESULT_FROM_WIN32(ERROR_INTERNET_NAME_NOT_RESOLVED)) if ((test_protocol == HTTP_TEST || test_protocol == HTTPS_TEST)
&& hres == HRESULT_FROM_WIN32(ERROR_INTERNET_NAME_NOT_RESOLVED))
{ {
skip( "Network unreachable, skipping tests\n" ); skip( "Network unreachable, skipping tests\n" );
return; return;
@ -2278,13 +2293,13 @@ static void test_BindToObject(int protocol, BOOL emul)
CHECK_CALLED(Obj_OnStartBinding); CHECK_CALLED(Obj_OnStartBinding);
if(emulate_protocol) { if(emulate_protocol) {
CHECK_CALLED(Start); CHECK_CALLED(Start);
if(test_protocol == HTTP_TEST) if(test_protocol == HTTP_TEST || test_protocol == HTTPS_TEST)
CHECK_CALLED(Terminate); CHECK_CALLED(Terminate);
if(test_protocol == FILE_TEST) if(test_protocol == FILE_TEST)
CLEAR_CALLED(OnProgress_MIMETYPEAVAILABLE); /* not called in IE7 */ CLEAR_CALLED(OnProgress_MIMETYPEAVAILABLE); /* not called in IE7 */
CHECK_CALLED(UnlockRequest); CHECK_CALLED(UnlockRequest);
}else { }else {
if(test_protocol == HTTP_TEST) { if(test_protocol == HTTP_TEST || test_protocol == HTTPS_TEST) {
CHECK_CALLED(QueryInterface_IHttpNegotiate); CHECK_CALLED(QueryInterface_IHttpNegotiate);
CHECK_CALLED(BeginningTransaction); CHECK_CALLED(BeginningTransaction);
if (have_IHttpNegotiate2) if (have_IHttpNegotiate2)
@ -2301,19 +2316,19 @@ static void test_BindToObject(int protocol, BOOL emul)
CLEAR_CALLED(Obj_OnProgress_CONNECTING); CLEAR_CALLED(Obj_OnProgress_CONNECTING);
} }
} }
if(test_protocol == HTTP_TEST || test_protocol == FILE_TEST) { if(test_protocol == HTTP_TEST || test_protocol == HTTPS_TEST || test_protocol == FILE_TEST) {
if(urls[test_protocol] == SHORT_RESPONSE_URL) if(urls[test_protocol] == SHORT_RESPONSE_URL)
CLEAR_CALLED(Obj_OnProgress_SENDINGREQUEST); CLEAR_CALLED(Obj_OnProgress_SENDINGREQUEST);
else else
CHECK_CALLED(Obj_OnProgress_SENDINGREQUEST); CHECK_CALLED(Obj_OnProgress_SENDINGREQUEST);
} }
if(test_protocol == HTTP_TEST) if(test_protocol == HTTP_TEST || test_protocol == HTTPS_TEST)
CHECK_CALLED(OnResponse); CHECK_CALLED(OnResponse);
CHECK_CALLED(Obj_OnProgress_MIMETYPEAVAILABLE); CHECK_CALLED(Obj_OnProgress_MIMETYPEAVAILABLE);
CHECK_CALLED(Obj_OnProgress_BEGINDOWNLOADDATA); CHECK_CALLED(Obj_OnProgress_BEGINDOWNLOADDATA);
if(test_protocol == FILE_TEST) if(test_protocol == FILE_TEST)
CHECK_CALLED(Obj_OnProgress_CACHEFILENAMEAVAILABLE); CHECK_CALLED(Obj_OnProgress_CACHEFILENAMEAVAILABLE);
if(test_protocol == HTTP_TEST) if(test_protocol == HTTP_TEST || test_protocol == HTTPS_TEST)
CLEAR_CALLED(OnProgress_DOWNLOADINGDATA); CLEAR_CALLED(OnProgress_DOWNLOADINGDATA);
CLEAR_CALLED(Obj_OnProgress_ENDDOWNLOADDATA); CLEAR_CALLED(Obj_OnProgress_ENDDOWNLOADDATA);
CHECK_CALLED(Obj_OnProgress_CLASSIDAVAILABLE); CHECK_CALLED(Obj_OnProgress_CLASSIDAVAILABLE);
@ -2323,7 +2338,7 @@ static void test_BindToObject(int protocol, BOOL emul)
CHECK_CALLED(Obj_OnStopBinding); CHECK_CALLED(Obj_OnStopBinding);
} }
if(test_protocol != HTTP_TEST || emul || urls[test_protocol] == SHORT_RESPONSE_URL) { if(test_protocol != HTTP_TEST || test_protocol == HTTPS_TEST || emul || urls[test_protocol] == SHORT_RESPONSE_URL) {
ok(IMoniker_Release(mon) == 0, "mon should be destroyed here\n"); ok(IMoniker_Release(mon) == 0, "mon should be destroyed here\n");
ok(IBindCtx_Release(bctx) == 0, "bctx should be destroyed here\n"); ok(IBindCtx_Release(bctx) == 0, "bctx should be destroyed here\n");
}else { }else {
@ -2338,7 +2353,7 @@ static void test_BindToObject(int protocol, BOOL emul)
if(emul) if(emul)
CoRevokeClassObject(regid); CoRevokeClassObject(regid);
if(test_protocol == HTTP_TEST) if(test_protocol == HTTP_TEST || test_protocol == HTTPS_TEST)
http_is_first = FALSE; http_is_first = FALSE;
} }
@ -2360,21 +2375,21 @@ static void test_URLDownloadToFile(DWORD prot, BOOL emul)
SET_EXPECT(Start); SET_EXPECT(Start);
SET_EXPECT(UnlockRequest); SET_EXPECT(UnlockRequest);
}else { }else {
if(test_protocol == HTTP_TEST) { if(test_protocol == HTTP_TEST || test_protocol == HTTPS_TEST) {
SET_EXPECT(QueryInterface_IHttpNegotiate); SET_EXPECT(QueryInterface_IHttpNegotiate);
SET_EXPECT(BeginningTransaction); SET_EXPECT(BeginningTransaction);
SET_EXPECT(QueryInterface_IHttpNegotiate2); SET_EXPECT(QueryInterface_IHttpNegotiate2);
SET_EXPECT(GetRootSecurityId); SET_EXPECT(GetRootSecurityId);
} }
if(test_protocol == HTTP_TEST || test_protocol == FILE_TEST) if(test_protocol == HTTP_TEST || test_protocol == HTTPS_TEST || test_protocol == FILE_TEST)
SET_EXPECT(OnProgress_SENDINGREQUEST); SET_EXPECT(OnProgress_SENDINGREQUEST);
if(test_protocol == HTTP_TEST) if(test_protocol == HTTP_TEST || test_protocol == HTTPS_TEST)
SET_EXPECT(OnResponse); SET_EXPECT(OnResponse);
SET_EXPECT(OnProgress_MIMETYPEAVAILABLE); SET_EXPECT(OnProgress_MIMETYPEAVAILABLE);
SET_EXPECT(OnProgress_BEGINDOWNLOADDATA); SET_EXPECT(OnProgress_BEGINDOWNLOADDATA);
if(test_protocol == FILE_TEST) if(test_protocol == FILE_TEST)
SET_EXPECT(OnProgress_CACHEFILENAMEAVAILABLE); SET_EXPECT(OnProgress_CACHEFILENAMEAVAILABLE);
if(test_protocol == HTTP_TEST) if(test_protocol == HTTP_TEST || test_protocol == HTTPS_TEST)
SET_EXPECT(OnProgress_DOWNLOADINGDATA); SET_EXPECT(OnProgress_DOWNLOADINGDATA);
SET_EXPECT(OnProgress_ENDDOWNLOADDATA); SET_EXPECT(OnProgress_ENDDOWNLOADDATA);
SET_EXPECT(OnStopBinding); SET_EXPECT(OnStopBinding);
@ -2394,7 +2409,7 @@ static void test_URLDownloadToFile(DWORD prot, BOOL emul)
CHECK_CALLED(Start); CHECK_CALLED(Start);
CHECK_CALLED(UnlockRequest); CHECK_CALLED(UnlockRequest);
}else { }else {
if(test_protocol == HTTP_TEST) { if(test_protocol == HTTP_TEST || test_protocol == HTTPS_TEST) {
CHECK_CALLED(QueryInterface_IHttpNegotiate); CHECK_CALLED(QueryInterface_IHttpNegotiate);
CHECK_CALLED(BeginningTransaction); CHECK_CALLED(BeginningTransaction);
if (have_IHttpNegotiate2) if (have_IHttpNegotiate2)
@ -2405,15 +2420,15 @@ static void test_URLDownloadToFile(DWORD prot, BOOL emul)
} }
if(test_protocol == FILE_TEST) if(test_protocol == FILE_TEST)
CHECK_CALLED(OnProgress_SENDINGREQUEST); CHECK_CALLED(OnProgress_SENDINGREQUEST);
else if(test_protocol == HTTP_TEST) else if(test_protocol == HTTP_TEST || test_protocol == HTTPS_TEST)
CLEAR_CALLED(OnProgress_SENDINGREQUEST); /* not called by IE7 */ CLEAR_CALLED(OnProgress_SENDINGREQUEST); /* not called by IE7 */
if(test_protocol == HTTP_TEST) if(test_protocol == HTTP_TEST || test_protocol == HTTPS_TEST)
CHECK_CALLED(OnResponse); CHECK_CALLED(OnResponse);
CHECK_CALLED(OnProgress_MIMETYPEAVAILABLE); CHECK_CALLED(OnProgress_MIMETYPEAVAILABLE);
CHECK_CALLED(OnProgress_BEGINDOWNLOADDATA); CHECK_CALLED(OnProgress_BEGINDOWNLOADDATA);
if(test_protocol == FILE_TEST) if(test_protocol == FILE_TEST)
CHECK_CALLED(OnProgress_CACHEFILENAMEAVAILABLE); CHECK_CALLED(OnProgress_CACHEFILENAMEAVAILABLE);
if(test_protocol == HTTP_TEST) if(test_protocol == HTTP_TEST || test_protocol == HTTPS_TEST)
CLEAR_CALLED(OnProgress_DOWNLOADINGDATA); CLEAR_CALLED(OnProgress_DOWNLOADINGDATA);
CHECK_CALLED(OnProgress_ENDDOWNLOADDATA); CHECK_CALLED(OnProgress_ENDDOWNLOADDATA);
CHECK_CALLED(OnStopBinding); CHECK_CALLED(OnStopBinding);
@ -2580,7 +2595,7 @@ START_TEST(url)
test_CreateAsyncBindCtx(); test_CreateAsyncBindCtx();
test_CreateAsyncBindCtxEx(); test_CreateAsyncBindCtxEx();
if(!test_RegisterBindStatusCallback()) { if(test_RegisterBindStatusCallback()) {
test_BindToStorage_fail(); test_BindToStorage_fail();
trace("synchronous http test (COM not initialised)...\n"); trace("synchronous http test (COM not initialised)...\n");
@ -2628,6 +2643,12 @@ START_TEST(url)
trace("emulated http test (to file)...\n"); trace("emulated http test (to file)...\n");
test_BindToStorage(HTTP_TEST, TRUE, TYMED_FILE); test_BindToStorage(HTTP_TEST, TRUE, TYMED_FILE);
trace("asynchronous https test...\n");
test_BindToStorage(HTTPS_TEST, FALSE, TYMED_ISTREAM);
trace("emulated https test...\n");
test_BindToStorage(HTTPS_TEST, TRUE, TYMED_ISTREAM);
trace("about test...\n"); trace("about test...\n");
test_BindToStorage(ABOUT_TEST, FALSE, TYMED_ISTREAM); test_BindToStorage(ABOUT_TEST, FALSE, TYMED_ISTREAM);