urlmon/tests: Added IWinInetHttpInfo tests.
This commit is contained in:
parent
1041f61e68
commit
319a748f7b
|
@ -1352,6 +1352,51 @@ static IServiceProvider ServiceProvider = { &ServiceProviderVtbl };
|
||||||
|
|
||||||
static IBindStatusCallbackEx objbsc;
|
static IBindStatusCallbackEx objbsc;
|
||||||
|
|
||||||
|
static void test_WinInetHttpInfo(IWinInetHttpInfo *http_info, DWORD progress)
|
||||||
|
{
|
||||||
|
DWORD status, size;
|
||||||
|
HRESULT hres, expect;
|
||||||
|
|
||||||
|
/* QueryInfo changes it's behavior during this request */
|
||||||
|
if(progress == BINDSTATUS_SENDINGREQUEST)
|
||||||
|
return;
|
||||||
|
|
||||||
|
if(test_protocol==FTP_TEST && download_state==BEFORE_DOWNLOAD
|
||||||
|
&& progress!=BINDSTATUS_MIMETYPEAVAILABLE)
|
||||||
|
expect = E_FAIL;
|
||||||
|
else if(test_protocol == FTP_TEST)
|
||||||
|
expect = S_FALSE;
|
||||||
|
else
|
||||||
|
expect = S_OK;
|
||||||
|
|
||||||
|
size = sizeof(DWORD);
|
||||||
|
hres = IWinInetHttpInfo_QueryInfo(http_info, HTTP_QUERY_STATUS_CODE|HTTP_QUERY_FLAG_NUMBER,
|
||||||
|
&status, &size, NULL, NULL);
|
||||||
|
ok(hres == expect, "hres = %x, expected %x\n", hres, expect);
|
||||||
|
if(hres == S_OK) {
|
||||||
|
if(download_state==BEFORE_DOWNLOAD && progress!=BINDSTATUS_MIMETYPEAVAILABLE)
|
||||||
|
ok(status == 0, "status = %d\n", status);
|
||||||
|
else
|
||||||
|
ok(status == HTTP_STATUS_OK, "status = %d\n", status);
|
||||||
|
ok(size == sizeof(DWORD), "size = %d\n", size);
|
||||||
|
}
|
||||||
|
|
||||||
|
size = sizeof(DWORD);
|
||||||
|
hres = IWinInetHttpInfo_QueryOption(http_info, INTERNET_OPTION_HANDLE_TYPE, &status, &size);
|
||||||
|
if(test_protocol == FTP_TEST) {
|
||||||
|
if(download_state==BEFORE_DOWNLOAD && progress!=BINDSTATUS_MIMETYPEAVAILABLE)
|
||||||
|
ok(hres == E_FAIL, "hres = %x\n", hres);
|
||||||
|
else
|
||||||
|
ok(hres == S_OK, "hres = %x\n", hres);
|
||||||
|
|
||||||
|
if(hres == S_OK)
|
||||||
|
ok(status == INTERNET_HANDLE_TYPE_FTP_FILE, "status = %d\n", status);
|
||||||
|
} else {
|
||||||
|
ok(hres == S_OK, "hres = %x\n", hres);
|
||||||
|
ok(status == INTERNET_HANDLE_TYPE_HTTP_REQUEST, "status = %d\n", status);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
static HRESULT WINAPI statusclb_QueryInterface(IBindStatusCallbackEx *iface, REFIID riid, void **ppv)
|
static HRESULT WINAPI statusclb_QueryInterface(IBindStatusCallbackEx *iface, REFIID riid, void **ppv)
|
||||||
{
|
{
|
||||||
ok(GetCurrentThreadId() == thread_id, "wrong thread %d\n", GetCurrentThreadId());
|
ok(GetCurrentThreadId() == thread_id, "wrong thread %d\n", GetCurrentThreadId());
|
||||||
|
@ -1658,9 +1703,10 @@ static HRESULT WINAPI statusclb_OnProgress(IBindStatusCallbackEx *iface, ULONG u
|
||||||
HRESULT hres;
|
HRESULT hres;
|
||||||
|
|
||||||
hres = IBinding_QueryInterface(current_binding, &IID_IWinInetHttpInfo, (void**)&http_info);
|
hres = IBinding_QueryInterface(current_binding, &IID_IWinInetHttpInfo, (void**)&http_info);
|
||||||
if(!emulate_protocol && test_protocol != FILE_TEST && is_urlmon_protocol(test_protocol))
|
if(!emulate_protocol && test_protocol != FILE_TEST && is_urlmon_protocol(test_protocol)) {
|
||||||
ok(hres == S_OK, "Could not get IWinInetHttpInfo iface: %08x\n", hres);
|
ok(hres == S_OK, "Could not get IWinInetHttpInfo iface: %08x\n", hres);
|
||||||
else
|
test_WinInetHttpInfo(http_info, ulStatusCode);
|
||||||
|
} else
|
||||||
ok(hres == E_NOINTERFACE,
|
ok(hres == E_NOINTERFACE,
|
||||||
"QueryInterface(IID_IWinInetHttpInfo) returned: %08x, expected E_NOINTERFACE\n", hres);
|
"QueryInterface(IID_IWinInetHttpInfo) returned: %08x, expected E_NOINTERFACE\n", hres);
|
||||||
if(SUCCEEDED(hres))
|
if(SUCCEEDED(hres))
|
||||||
|
|
Loading…
Reference in New Issue