urlmon: Added HTTP redirecting test.
This commit is contained in:
parent
840c52acb9
commit
ce53f34458
|
@ -131,7 +131,7 @@ static const WCHAR gzipW[] = {'g','z','i','p',0};
|
||||||
static HRESULT expect_hrResult;
|
static HRESULT expect_hrResult;
|
||||||
static LPCWSTR file_name, http_url, expect_wsz;
|
static LPCWSTR file_name, http_url, expect_wsz;
|
||||||
static IInternetProtocol *async_protocol = NULL;
|
static IInternetProtocol *async_protocol = NULL;
|
||||||
static BOOL first_data_notif, http_is_first, http_post_test;
|
static BOOL first_data_notif, http_is_first, http_post_test, test_redirect;
|
||||||
static int state = 0, prot_state, read_report_data;
|
static int state = 0, prot_state, read_report_data;
|
||||||
static DWORD bindf, ex_priority , pi;
|
static DWORD bindf, ex_priority , pi;
|
||||||
static IInternetProtocol *binding_protocol, *filtered_protocol;
|
static IInternetProtocol *binding_protocol, *filtered_protocol;
|
||||||
|
@ -442,7 +442,9 @@ static void call_continue(PROTOCOLDATA *protocol_data)
|
||||||
CLEAR_CALLED(ReportProgress_FINDINGRESOURCE);
|
CLEAR_CALLED(ReportProgress_FINDINGRESOURCE);
|
||||||
CLEAR_CALLED(ReportProgress_CONNECTING);
|
CLEAR_CALLED(ReportProgress_CONNECTING);
|
||||||
CLEAR_CALLED(ReportProgress_PROXYDETECTING);
|
CLEAR_CALLED(ReportProgress_PROXYDETECTING);
|
||||||
} else todo_wine {
|
}else if(test_redirect) {
|
||||||
|
CHECK_CALLED(ReportProgress_FINDINGRESOURCE);
|
||||||
|
}else todo_wine {
|
||||||
CHECK_NOT_CALLED(ReportProgress_FINDINGRESOURCE);
|
CHECK_NOT_CALLED(ReportProgress_FINDINGRESOURCE);
|
||||||
/* IE7 does call this */
|
/* IE7 does call this */
|
||||||
CLEAR_CALLED(ReportProgress_CONNECTING);
|
CLEAR_CALLED(ReportProgress_CONNECTING);
|
||||||
|
@ -452,9 +454,11 @@ static void call_continue(PROTOCOLDATA *protocol_data)
|
||||||
todo_wine CHECK_CALLED(ReportProgress_SENDINGREQUEST);
|
todo_wine CHECK_CALLED(ReportProgress_SENDINGREQUEST);
|
||||||
else if (tested_protocol != HTTPS_TEST)
|
else if (tested_protocol != HTTPS_TEST)
|
||||||
CHECK_CALLED(ReportProgress_SENDINGREQUEST);
|
CHECK_CALLED(ReportProgress_SENDINGREQUEST);
|
||||||
|
if(test_redirect)
|
||||||
|
CHECK_CALLED(ReportProgress_REDIRECTING);
|
||||||
if(tested_protocol == HTTP_TEST || tested_protocol == HTTPS_TEST) {
|
if(tested_protocol == HTTP_TEST || tested_protocol == HTTPS_TEST) {
|
||||||
SET_EXPECT(OnResponse);
|
SET_EXPECT(OnResponse);
|
||||||
if(tested_protocol == HTTPS_TEST)
|
if(tested_protocol == HTTPS_TEST || test_redirect)
|
||||||
SET_EXPECT(ReportProgress_ACCEPTRANGES);
|
SET_EXPECT(ReportProgress_ACCEPTRANGES);
|
||||||
SET_EXPECT(ReportProgress_MIMETYPEAVAILABLE);
|
SET_EXPECT(ReportProgress_MIMETYPEAVAILABLE);
|
||||||
if(bindf & BINDF_NEEDFILE)
|
if(bindf & BINDF_NEEDFILE)
|
||||||
|
@ -478,6 +482,8 @@ static void call_continue(PROTOCOLDATA *protocol_data)
|
||||||
CHECK_CALLED(OnResponse);
|
CHECK_CALLED(OnResponse);
|
||||||
if(tested_protocol == HTTPS_TEST)
|
if(tested_protocol == HTTPS_TEST)
|
||||||
CHECK_CALLED(ReportProgress_ACCEPTRANGES);
|
CHECK_CALLED(ReportProgress_ACCEPTRANGES);
|
||||||
|
else if(test_redirect)
|
||||||
|
CLEAR_CALLED(ReportProgress_ACCEPTRANGES);
|
||||||
CHECK_CALLED(ReportProgress_MIMETYPEAVAILABLE);
|
CHECK_CALLED(ReportProgress_MIMETYPEAVAILABLE);
|
||||||
if(bindf & BINDF_NEEDFILE)
|
if(bindf & BINDF_NEEDFILE)
|
||||||
CHECK_CALLED(ReportProgress_CACHEFILENAMEAVAILABLE);
|
CHECK_CALLED(ReportProgress_CACHEFILENAMEAVAILABLE);
|
||||||
|
@ -616,6 +622,9 @@ static HRESULT WINAPI ProtocolSink_ReportProgress(IInternetProtocolSink *iface,
|
||||||
break;
|
break;
|
||||||
case BINDSTATUS_REDIRECTING:
|
case BINDSTATUS_REDIRECTING:
|
||||||
CHECK_EXPECT(ReportProgress_REDIRECTING);
|
CHECK_EXPECT(ReportProgress_REDIRECTING);
|
||||||
|
if(test_redirect)
|
||||||
|
ok(!strcmp_wa(szStatusText, "http://test.winehq.org/hello.html"), "szStatusText = %s\n", wine_dbgstr_w(szStatusText));
|
||||||
|
else
|
||||||
ok(szStatusText == NULL, "szStatusText = %s\n", wine_dbgstr_w(szStatusText));
|
ok(szStatusText == NULL, "szStatusText = %s\n", wine_dbgstr_w(szStatusText));
|
||||||
break;
|
break;
|
||||||
case BINDSTATUS_ENCODING:
|
case BINDSTATUS_ENCODING:
|
||||||
|
@ -1952,6 +1961,7 @@ static IClassFactory mimefilter_cf = { &MimeFilterCFVtbl };
|
||||||
#define TEST_POST 0x10
|
#define TEST_POST 0x10
|
||||||
#define TEST_EMULATEPROT 0x20
|
#define TEST_EMULATEPROT 0x20
|
||||||
#define TEST_SHORT_READ 0x40
|
#define TEST_SHORT_READ 0x40
|
||||||
|
#define TEST_REDIRECT 0x80
|
||||||
|
|
||||||
static void init_test(int prot, DWORD flags)
|
static void init_test(int prot, DWORD flags)
|
||||||
{
|
{
|
||||||
|
@ -1977,6 +1987,7 @@ static void init_test(int prot, DWORD flags)
|
||||||
emulate_prot = (flags & TEST_EMULATEPROT) != 0;
|
emulate_prot = (flags & TEST_EMULATEPROT) != 0;
|
||||||
wait_for_switch = TRUE;
|
wait_for_switch = TRUE;
|
||||||
short_read = (flags & TEST_SHORT_READ) != 0;
|
short_read = (flags & TEST_SHORT_READ) != 0;
|
||||||
|
test_redirect = (flags & TEST_REDIRECT) != 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void test_priority(IInternetProtocol *protocol)
|
static void test_priority(IInternetProtocol *protocol)
|
||||||
|
@ -2429,6 +2440,8 @@ static void test_http_protocol_url(LPCWSTR url, int prot, DWORD flags)
|
||||||
SET_EXPECT(ReportProgress_FINDINGRESOURCE);
|
SET_EXPECT(ReportProgress_FINDINGRESOURCE);
|
||||||
SET_EXPECT(ReportProgress_CONNECTING);
|
SET_EXPECT(ReportProgress_CONNECTING);
|
||||||
SET_EXPECT(ReportProgress_SENDINGREQUEST);
|
SET_EXPECT(ReportProgress_SENDINGREQUEST);
|
||||||
|
if(test_redirect)
|
||||||
|
SET_EXPECT(ReportProgress_REDIRECTING);
|
||||||
SET_EXPECT(ReportProgress_PROXYDETECTING);
|
SET_EXPECT(ReportProgress_PROXYDETECTING);
|
||||||
if(prot == HTTP_TEST)
|
if(prot == HTTP_TEST)
|
||||||
SET_EXPECT(ReportProgress_CACHEFILENAMEAVAILABLE);
|
SET_EXPECT(ReportProgress_CACHEFILENAMEAVAILABLE);
|
||||||
|
@ -2516,6 +2529,9 @@ static void test_http_protocol(void)
|
||||||
{'h','t','t','p',':','/','/','c','r','o','s','s','o','v','e','r','.',
|
{'h','t','t','p',':','/','/','c','r','o','s','s','o','v','e','r','.',
|
||||||
'c','o','d','e','w','e','a','v','e','r','s','.','c','o','m','/',
|
'c','o','d','e','w','e','a','v','e','r','s','.','c','o','m','/',
|
||||||
'p','o','s','t','t','e','s','t','.','p','h','p',0};
|
'p','o','s','t','t','e','s','t','.','p','h','p',0};
|
||||||
|
static const WCHAR redirect_url[] =
|
||||||
|
{'h','t','t','p',':','/','/','t','e','s','t','.','w','i','n','e','h','q','.','o','r','g','/',
|
||||||
|
't','e','s','t','r','e','d','i','r','e','c','t',0};
|
||||||
|
|
||||||
trace("Testing http protocol (not from urlmon)...\n");
|
trace("Testing http protocol (not from urlmon)...\n");
|
||||||
bindf = BINDF_ASYNCHRONOUS | BINDF_ASYNCSTORAGE | BINDF_PULLDATA;
|
bindf = BINDF_ASYNCHRONOUS | BINDF_ASYNCSTORAGE | BINDF_PULLDATA;
|
||||||
|
@ -2538,6 +2554,10 @@ static void test_http_protocol(void)
|
||||||
trace("Testing http protocol (direct read)...\n");
|
trace("Testing http protocol (direct read)...\n");
|
||||||
bindf = BINDF_ASYNCHRONOUS | BINDF_ASYNCSTORAGE | BINDF_PULLDATA | BINDF_FROMURLMON;
|
bindf = BINDF_ASYNCHRONOUS | BINDF_ASYNCSTORAGE | BINDF_PULLDATA | BINDF_FROMURLMON;
|
||||||
test_http_protocol_url(winehq_url, HTTP_TEST, TEST_DIRECT_READ);
|
test_http_protocol_url(winehq_url, HTTP_TEST, TEST_DIRECT_READ);
|
||||||
|
|
||||||
|
trace("Testing http protocol (redirected)...\n");
|
||||||
|
bindf = BINDF_ASYNCHRONOUS | BINDF_ASYNCSTORAGE | BINDF_PULLDATA | BINDF_FROMURLMON;
|
||||||
|
test_http_protocol_url(redirect_url, HTTP_TEST, TEST_REDIRECT);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void test_https_protocol(void)
|
static void test_https_protocol(void)
|
||||||
|
|
Loading…
Reference in New Issue