urlmon/tests: Skip some tests on IE 4.0.

CoInternetCompareUrl, CoInternetGetSecurityUrl, CoInternetGetSession,
CoInternetParseUrl missing on IE 4.0 (winetestbot W95B).
This commit is contained in:
Detlef Riekenberg 2010-04-22 00:28:51 +02:00 committed by Alexandre Julliard
parent 29ea207588
commit cb620908ee
1 changed files with 59 additions and 31 deletions

View File

@ -64,6 +64,9 @@ DEFINE_EXPECT(CreateInstance);
DEFINE_EXPECT(unk_Release);
static HRESULT (WINAPI *pCoInternetCompareUrl)(LPCWSTR, LPCWSTR, DWORD);
static HRESULT (WINAPI *pCoInternetGetSecurityUrl)(LPCWSTR, LPWSTR*, PSUACTION, DWORD);
static HRESULT (WINAPI *pCoInternetGetSession)(DWORD, IInternetSession **, DWORD);
static HRESULT (WINAPI *pCoInternetParseUrl)(LPCWSTR, PARSEACTION, DWORD, LPWSTR, DWORD, DWORD *, DWORD);
static void test_CreateFormatEnum(void)
{
@ -306,27 +309,31 @@ static void test_CoInternetParseUrl(void)
static WCHAR buf[4096];
if (!pCoInternetParseUrl) {
return;
}
memset(buf, 0xf0, sizeof(buf));
hres = CoInternetParseUrl(parse_tests[0].url, PARSE_SCHEMA, 0, buf,
hres = pCoInternetParseUrl(parse_tests[0].url, PARSE_SCHEMA, 0, buf,
3, &size, 0);
ok(hres == E_POINTER, "schema failed: %08x, expected E_POINTER\n", hres);
for(i=0; i < sizeof(parse_tests)/sizeof(parse_tests[0]); i++) {
memset(buf, 0xf0, sizeof(buf));
hres = CoInternetParseUrl(parse_tests[i].url, PARSE_SECURITY_URL, 0, buf,
hres = pCoInternetParseUrl(parse_tests[i].url, PARSE_SECURITY_URL, 0, buf,
sizeof(buf)/sizeof(WCHAR), &size, 0);
ok(hres == parse_tests[i].secur_hres, "[%d] security url failed: %08x, expected %08x\n",
i, hres, parse_tests[i].secur_hres);
memset(buf, 0xf0, sizeof(buf));
hres = CoInternetParseUrl(parse_tests[i].url, PARSE_ENCODE, 0, buf,
hres = pCoInternetParseUrl(parse_tests[i].url, PARSE_ENCODE, 0, buf,
sizeof(buf)/sizeof(WCHAR), &size, 0);
ok(hres == S_OK, "[%d] encoding failed: %08x\n", i, hres);
ok(size == lstrlenW(parse_tests[i].encoded_url), "[%d] wrong size\n", i);
ok(!lstrcmpW(parse_tests[i].encoded_url, buf), "[%d] wrong encoded url\n", i);
memset(buf, 0xf0, sizeof(buf));
hres = CoInternetParseUrl(parse_tests[i].url, PARSE_PATH_FROM_URL, 0, buf,
hres = pCoInternetParseUrl(parse_tests[i].url, PARSE_PATH_FROM_URL, 0, buf,
sizeof(buf)/sizeof(WCHAR), &size, 0);
ok(hres == parse_tests[i].path_hres, "[%d] path failed: %08x, expected %08x\n",
i, hres, parse_tests[i].path_hres);
@ -336,7 +343,7 @@ static void test_CoInternetParseUrl(void)
}
memset(buf, 0xf0, sizeof(buf));
hres = CoInternetParseUrl(parse_tests[i].url, PARSE_SCHEMA, 0, buf,
hres = pCoInternetParseUrl(parse_tests[i].url, PARSE_SCHEMA, 0, buf,
sizeof(buf)/sizeof(WCHAR), &size, 0);
ok(hres == S_OK, "[%d] schema failed: %08x\n", i, hres);
ok(size == lstrlenW(parse_tests[i].schema), "[%d] wrong size\n", i);
@ -345,7 +352,7 @@ static void test_CoInternetParseUrl(void)
if(memcmp(parse_tests[i].url, wszRes, 3*sizeof(WCHAR))
&& memcmp(parse_tests[i].url, wszAbout, 5*sizeof(WCHAR))) {
memset(buf, 0xf0, sizeof(buf));
hres = CoInternetParseUrl(parse_tests[i].url, PARSE_DOMAIN, 0, buf,
hres = pCoInternetParseUrl(parse_tests[i].url, PARSE_DOMAIN, 0, buf,
sizeof(buf)/sizeof(WCHAR), &size, 0);
ok(hres == parse_tests[i].domain_hres, "[%d] domain failed: %08x\n", i, hres);
if(parse_tests[i].domain)
@ -353,7 +360,7 @@ static void test_CoInternetParseUrl(void)
}
memset(buf, 0xf0, sizeof(buf));
hres = CoInternetParseUrl(parse_tests[i].url, PARSE_ROOTDOCUMENT, 0, buf,
hres = pCoInternetParseUrl(parse_tests[i].url, PARSE_ROOTDOCUMENT, 0, buf,
sizeof(buf)/sizeof(WCHAR), &size, 0);
ok(hres == parse_tests[i].rootdocument_hres, "[%d] rootdocument failed: %08x\n", i, hres);
if(parse_tests[i].rootdocument)
@ -366,7 +373,6 @@ static void test_CoInternetCompareUrl(void)
HRESULT hres;
if (!pCoInternetCompareUrl) {
win_skip("CoInternetCompareUrl not found\n");
return;
}
@ -748,7 +754,11 @@ static void register_protocols(void)
static const WCHAR wszAbout[] = {'a','b','o','u','t',0};
hres = CoInternetGetSession(0, &session, 0);
if (!pCoInternetGetSession) {
return;
}
hres = pCoInternetGetSession(0, &session, 0);
ok(hres == S_OK, "CoInternetGetSession failed: %08x\n", hres);
if(FAILED(hres))
return;
@ -921,7 +931,11 @@ static void test_NameSpace(void)
static const WCHAR wszTest[] = {'t','e','s','t',0};
hres = CoInternetGetSession(0, &session, 0);
if (!pCoInternetGetSession || !pCoInternetParseUrl) {
return;
}
hres = pCoInternetGetSession(0, &session, 0);
ok(hres == S_OK, "CoInternetGetSession failed: %08x\n", hres);
if(FAILED(hres))
return;
@ -944,7 +958,7 @@ static void test_NameSpace(void)
SET_EXPECT(CreateInstance);
SET_EXPECT(ParseUrl);
hres = CoInternetParseUrl(url8, PARSE_ENCODE, 0, buf, sizeof(buf)/sizeof(WCHAR),
hres = pCoInternetParseUrl(url8, PARSE_ENCODE, 0, buf, sizeof(buf)/sizeof(WCHAR),
&size, 0);
ok(hres == S_OK, "CoInternetParseUrl failed: %08x\n", hres);
@ -956,7 +970,7 @@ static void test_NameSpace(void)
SET_EXPECT(QI_IInternetProtocolInfo);
SET_EXPECT(ParseUrl);
hres = CoInternetParseUrl(url8, PARSE_ENCODE, 0, buf, sizeof(buf)/sizeof(WCHAR),
hres = pCoInternetParseUrl(url8, PARSE_ENCODE, 0, buf, sizeof(buf)/sizeof(WCHAR),
&size, 0);
ok(hres == S_OK, "CoInternetParseUrl failed: %08x\n", hres);
@ -966,7 +980,7 @@ static void test_NameSpace(void)
SET_EXPECT(QI_IInternetProtocolInfo);
SET_EXPECT(ParseUrl);
hres = CoInternetParseUrl(url8, PARSE_SECURITY_URL, 0, buf,
hres = pCoInternetParseUrl(url8, PARSE_SECURITY_URL, 0, buf,
sizeof(buf)/sizeof(WCHAR), &size, 0);
ok(hres == S_OK, "CoInternetParseUrl failed: %08x\n", hres);
ok(size == sizeof(url1)/sizeof(WCHAR), "Size = %d\n", size);
@ -979,22 +993,24 @@ static void test_NameSpace(void)
SET_EXPECT(QI_IInternetProtocolInfo);
SET_EXPECT(ParseUrl);
hres = CoInternetGetSecurityUrl(url8, &sec_url, PSU_SECURITY_URL_ONLY, 0);
ok(hres == S_OK, "CoInternetGetSecurityUrl failed: %08x\n", hres);
if(hres == S_OK) {
ok(lstrlenW(sec_url)>sizeof(wszFile)/sizeof(WCHAR) &&
!memcmp(sec_url, wszFile, sizeof(wszFile)-sizeof(WCHAR)),
"Encoded url = %s\n", wine_dbgstr_w(sec_url));
CoTaskMemFree(sec_url);
}
if (pCoInternetGetSecurityUrl) {
hres = pCoInternetGetSecurityUrl(url8, &sec_url, PSU_SECURITY_URL_ONLY, 0);
ok(hres == S_OK, "CoInternetGetSecurityUrl failed: %08x\n", hres);
if(hres == S_OK) {
ok(lstrlenW(sec_url)>sizeof(wszFile)/sizeof(WCHAR) &&
!memcmp(sec_url, wszFile, sizeof(wszFile)-sizeof(WCHAR)),
"Encoded url = %s\n", wine_dbgstr_w(sec_url));
CoTaskMemFree(sec_url);
}
CHECK_CALLED(QI_IInternetProtocolInfo);
CHECK_CALLED(ParseUrl);
CHECK_CALLED(QI_IInternetProtocolInfo);
CHECK_CALLED(ParseUrl);
}
hres = IInternetSession_UnregisterNameSpace(session, &test_protocol_cf, wszTest);
ok(hres == S_OK, "UnregisterNameSpace failed: %08x\n", hres);
hres = CoInternetParseUrl(url8, PARSE_ENCODE, 0, buf, sizeof(buf)/sizeof(WCHAR),
hres = pCoInternetParseUrl(url8, PARSE_ENCODE, 0, buf, sizeof(buf)/sizeof(WCHAR),
&size, 0);
ok(hres == S_OK, "CoInternetParseUrl failed: %08x\n", hres);
@ -1013,7 +1029,7 @@ static void test_NameSpace(void)
SET_EXPECT(QI_IInternetProtocolInfo);
SET_EXPECT(ParseUrl);
hres = CoInternetParseUrl(url8, PARSE_ENCODE, 0, buf, sizeof(buf)/sizeof(WCHAR),
hres = pCoInternetParseUrl(url8, PARSE_ENCODE, 0, buf, sizeof(buf)/sizeof(WCHAR),
&size, 0);
ok(hres == S_OK, "CoInternetParseUrl failed: %08x\n", hres);
@ -1026,7 +1042,7 @@ static void test_NameSpace(void)
SET_EXPECT(QI_IInternetProtocolInfo);
SET_EXPECT(ParseUrl);
hres = CoInternetParseUrl(url8, PARSE_ENCODE, 0, buf, sizeof(buf)/sizeof(WCHAR),
hres = pCoInternetParseUrl(url8, PARSE_ENCODE, 0, buf, sizeof(buf)/sizeof(WCHAR),
&size, 0);
ok(hres == S_OK, "CoInternetParseUrl failed: %08x\n", hres);
@ -1040,7 +1056,7 @@ static void test_NameSpace(void)
SET_EXPECT(QI_IInternetProtocolInfo);
SET_EXPECT(ParseUrl);
hres = CoInternetParseUrl(url8, PARSE_ENCODE, 0, buf, sizeof(buf)/sizeof(WCHAR),
hres = pCoInternetParseUrl(url8, PARSE_ENCODE, 0, buf, sizeof(buf)/sizeof(WCHAR),
&size, 0);
ok(hres == S_OK, "CoInternetParseUrl failed: %08x\n", hres);
@ -1059,7 +1075,7 @@ static void test_NameSpace(void)
hres = IInternetSession_UnregisterNameSpace(session, &test_protocol_cf2, wszTest);
ok(hres == S_OK, "UnregisterNameSpace failed: %08x\n", hres);
hres = CoInternetParseUrl(url8, PARSE_ENCODE, 0, buf, sizeof(buf)/sizeof(WCHAR),
hres = pCoInternetParseUrl(url8, PARSE_ENCODE, 0, buf, sizeof(buf)/sizeof(WCHAR),
&size, 0);
ok(hres == S_OK, "CoInternetParseUrl failed: %08x\n", hres);
@ -1073,7 +1089,11 @@ static void test_MimeFilter(void)
static const WCHAR mimeW[] = {'t','e','s','t','/','m','i','m','e',0};
hres = CoInternetGetSession(0, &session, 0);
if (!pCoInternetGetSession) {
return;
}
hres = pCoInternetGetSession(0, &session, 0);
ok(hres == S_OK, "CoInternetGetSession failed: %08x\n", hres);
if(FAILED(hres))
return;
@ -1413,10 +1433,18 @@ START_TEST(misc)
OleInitialize(NULL);
register_protocols();
hurlmon = GetModuleHandle("urlmon.dll");
pCoInternetCompareUrl = (void *) GetProcAddress(hurlmon, "CoInternetCompareUrl");
pCoInternetGetSecurityUrl = (void*) GetProcAddress(hurlmon, "CoInternetGetSecurityUrl");
pCoInternetGetSession = (void*) GetProcAddress(hurlmon, "CoInternetGetSession");
pCoInternetParseUrl = (void*) GetProcAddress(hurlmon, "CoInternetParseUrl");
if (!pCoInternetCompareUrl || !pCoInternetGetSecurityUrl ||
!pCoInternetGetSession || !pCoInternetParseUrl) {
win_skip("Various needed functions not present in IE 4.0\n");
}
register_protocols();
test_CreateFormatEnum();
test_RegisterFormatEnumerator();