Commit 714941f8 authored by Thomas Mullaly's avatar Thomas Mullaly Committed by Alexandre Julliard

urlmon/tests: Added tests for GetSecurityIdEx2.

parent 2784e1ac
...@@ -102,6 +102,7 @@ static const WCHAR url11[] = {'f','i','l','e',':','/','/','c',':','/','I','n','d ...@@ -102,6 +102,7 @@ static const WCHAR url11[] = {'f','i','l','e',':','/','/','c',':','/','I','n','d
static const WCHAR url12[] = {'f','i','l','e',':','/','/','/','c',':','/','I','n','d','e','x','.','h','t','m',0}; static const WCHAR url12[] = {'f','i','l','e',':','/','/','/','c',':','/','I','n','d','e','x','.','h','t','m',0};
static const WCHAR url13[] = {'h','t','t','p',':','g','o','o','g','l','e','.','c','o','m',0}; static const WCHAR url13[] = {'h','t','t','p',':','g','o','o','g','l','e','.','c','o','m',0};
static const WCHAR url14[] = {'z','i','p',':','t','e','s','t','i','n','g','.','c','o','m','/','t','e','s','t','i','n','g',0}; static const WCHAR url14[] = {'z','i','p',':','t','e','s','t','i','n','g','.','c','o','m','/','t','e','s','t','i','n','g',0};
static const WCHAR url15[] = {'h','t','t','p',':','/','/','g','o','o','g','l','e','.','c','o','m','.','u','k',0};
static const WCHAR url4e[] = {'f','i','l','e',':','s','o','m','e',' ','f','i','l','e', static const WCHAR url4e[] = {'f','i','l','e',':','s','o','m','e',' ','f','i','l','e',
'.','j','p','g',0}; '.','j','p','g',0};
...@@ -116,6 +117,7 @@ static const char *szZoneMapDomainsKey = "Software\\Microsoft\\Windows\\CurrentV ...@@ -116,6 +117,7 @@ static const char *szZoneMapDomainsKey = "Software\\Microsoft\\Windows\\CurrentV
static const char *szInternetSettingsKey = "Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings"; static const char *szInternetSettingsKey = "Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings";
static const BYTE secid1[] = {'f','i','l','e',':',0,0,0,0}; static const BYTE secid1[] = {'f','i','l','e',':',0,0,0,0};
static const BYTE secid2[] = {'*',':','i','n','d','e','x','.','h','t','m',3,0,0,0};
static const BYTE secid5[] = {'h','t','t','p',':','w','w','w','.','z','o','n','e','3', static const BYTE secid5[] = {'h','t','t','p',':','w','w','w','.','z','o','n','e','3',
'.','w','i','n','e','t','e','s','t',3,0,0,0}; '.','w','i','n','e','t','e','s','t',3,0,0,0};
static const BYTE secid6[] = {'a','b','o','u','t',':','b','l','a','n','k',3,0,0,0}; static const BYTE secid6[] = {'a','b','o','u','t',':','b','l','a','n','k',3,0,0,0};
...@@ -127,6 +129,8 @@ static const BYTE secid14[] = ...@@ -127,6 +129,8 @@ static const BYTE secid14[] =
{'z','i','p',':','t','e','s','t','i','n','g','.','c','o','m','/','t','e','s','t','i','n','g',3,0,0,0}; {'z','i','p',':','t','e','s','t','i','n','g','.','c','o','m','/','t','e','s','t','i','n','g',3,0,0,0};
static const BYTE secid10_2[] = static const BYTE secid10_2[] =
{'f','i','l','e',':','s','o','m','e',' ','f','i','l','e','.','j','p','g',3,0,0,0}; {'f','i','l','e',':','s','o','m','e',' ','f','i','l','e','.','j','p','g',3,0,0,0};
static const BYTE secid13[] = {'h','t','t','p',':','c','o','m','.','u','k',3,0,0,0};
static const BYTE secid13_2[] = {'h','t','t','p',':','g','o','o','g','l','e','.','c','o','m','.','u','k',3,0,0,0};
static const GUID CLSID_TestActiveX = static const GUID CLSID_TestActiveX =
{0x178fc163,0xf585,0x4e24,{0x9c,0x13,0x4b,0xb7,0xfa,0xf8,0x06,0x46}}; {0x178fc163,0xf585,0x4e24,{0x9c,0x13,0x4b,0xb7,0xfa,0xf8,0x06,0x46}};
...@@ -1745,34 +1749,45 @@ static void test_InternetGetSecurityUrlEx_Pluggable(void) ...@@ -1745,34 +1749,45 @@ static void test_InternetGetSecurityUrlEx_Pluggable(void)
if(uri) IUri_Release(uri); if(uri) IUri_Release(uri);
} }
static const BYTE secidex2_1[] = {'z','i','p',':','/','/','t','e','s','t','i','n','g','.','c','o','m','/',3,0,0,0};
static const BYTE secidex2_2[] = {'z','i','p',':','t','e','s','t','i','n','g','.','c','o','m',3,0,0,0};
static const struct { static const struct {
const char *uri; const char *uri;
DWORD create_flags; DWORD create_flags;
HRESULT map_hres; HRESULT map_hres;
DWORD zone; DWORD zone;
BOOL map_todo; BOOL map_todo;
const BYTE *secid;
DWORD secid_size;
HRESULT secid_hres;
BOOL secid_todo;
} sec_mgr_ex2_tests[] = { } sec_mgr_ex2_tests[] = {
{"res://mshtml.dll/blank.htm",0,S_OK,URLZONE_LOCAL_MACHINE}, {"res://mshtml.dll/blank.htm",0,S_OK,URLZONE_LOCAL_MACHINE,FALSE,secid1,sizeof(secid1),S_OK,TRUE},
{"index.htm",Uri_CREATE_ALLOW_RELATIVE,0,URLZONE_INTERNET}, {"index.htm",Uri_CREATE_ALLOW_RELATIVE,0,URLZONE_INTERNET,FALSE,secid2,sizeof(secid2),S_OK,TRUE},
{"file://c:\\Index.html",0,0,URLZONE_LOCAL_MACHINE}, {"file://c:\\Index.html",0,0,URLZONE_LOCAL_MACHINE,FALSE,secid1,sizeof(secid1),S_OK,TRUE},
{"http://www.zone3.winetest/",0,0,URLZONE_INTERNET}, {"http://www.zone3.winetest/",0,0,URLZONE_INTERNET,FALSE,secid5,sizeof(secid5),S_OK,TRUE},
{"about:blank",0,0,URLZONE_INTERNET}, {"about:blank",0,0,URLZONE_INTERNET,FALSE,secid6,sizeof(secid6),S_OK,TRUE},
{"ftp://zone3.winetest/file.test",0,0,URLZONE_INTERNET}, {"ftp://zone3.winetest/file.test",0,0,URLZONE_INTERNET,FALSE,secid7,sizeof(secid7),S_OK,TRUE},
{"/file/testing/test.test",Uri_CREATE_ALLOW_RELATIVE,0,URLZONE_INTERNET}, {"/file/testing/test.test",Uri_CREATE_ALLOW_RELATIVE,0,URLZONE_INTERNET,FALSE,NULL,0,E_INVALIDARG,TRUE},
{"zip://testing.com/",0,0,URLZONE_INTERNET}, {"zip://testing.com/",0,0,URLZONE_INTERNET,FALSE,secidex2_1,sizeof(secidex2_1),S_OK,TRUE},
{"zip:testing.com",0,0,URLZONE_INTERNET}, {"zip:testing.com",0,0,URLZONE_INTERNET,FALSE,secidex2_2,sizeof(secidex2_2),S_OK,TRUE},
{"http:google.com",0,S_OK,URLZONE_INVALID}, {"http:google.com",0,S_OK,URLZONE_INVALID,FALSE,NULL,0,E_INVALIDARG,TRUE},
{"http:/google.com",0,S_OK,URLZONE_INVALID} {"http:/google.com",0,S_OK,URLZONE_INVALID,FALSE,NULL,0,E_INVALIDARG,TRUE}
}; };
static void test_SecurityManagerEx2(void) static void test_SecurityManagerEx2(void)
{ {
HRESULT hres; HRESULT hres;
DWORD i, zone; DWORD i, zone;
BYTE buf[512];
DWORD buf_size = sizeof(buf);
IInternetSecurityManager *sec_mgr; IInternetSecurityManager *sec_mgr;
IInternetSecurityManagerEx2 *sec_mgr2; IInternetSecurityManagerEx2 *sec_mgr2;
IUri *uri = NULL; IUri *uri = NULL;
static const WCHAR domainW[] = {'c','o','m','.','u','k',0};
if(!pCreateUri) { if(!pCreateUri) {
win_skip("Skipping SecurityManagerEx2, IE is too old\n"); win_skip("Skipping SecurityManagerEx2, IE is too old\n");
return; return;
...@@ -1792,12 +1807,24 @@ static void test_SecurityManagerEx2(void) ...@@ -1792,12 +1807,24 @@ static void test_SecurityManagerEx2(void)
ok(hres == E_INVALIDARG, "MapUrlToZoneEx2 returned %08x, expected E_INVALIDARG\n", hres); ok(hres == E_INVALIDARG, "MapUrlToZoneEx2 returned %08x, expected E_INVALIDARG\n", hres);
ok(zone == URLZONE_INVALID, "zone was %d\n", zone); ok(zone == URLZONE_INVALID, "zone was %d\n", zone);
hres = IInternetSecurityManagerEx2_GetSecurityIdEx2(sec_mgr2, NULL, buf, &buf_size, 0);
todo_wine ok(hres == E_INVALIDARG, "GetSecurityIdEx2 returned %08x, expected E_INVALIDARG\n", hres);
ok(buf_size == sizeof(buf), "buf_size was %d\n", buf_size);
hres = pCreateUri(url5, 0, 0, &uri); hres = pCreateUri(url5, 0, 0, &uri);
ok(hres == S_OK, "CreateUri failed: %08x\n", hres); ok(hres == S_OK, "CreateUri failed: %08x\n", hres);
hres = IInternetSecurityManagerEx2_MapUrlToZoneEx2(sec_mgr2, uri, NULL, 0, NULL, NULL); hres = IInternetSecurityManagerEx2_MapUrlToZoneEx2(sec_mgr2, uri, NULL, 0, NULL, NULL);
ok(hres == E_INVALIDARG, "MapToUrlZoneEx2 returned %08x, expected E_INVALIDARG\n", hres); ok(hres == E_INVALIDARG, "MapToUrlZoneEx2 returned %08x, expected E_INVALIDARG\n", hres);
buf_size = sizeof(buf);
hres = IInternetSecurityManagerEx2_GetSecurityIdEx2(sec_mgr2, uri, NULL, &buf_size, 0);
todo_wine ok(hres == E_INVALIDARG || broken(hres == S_OK), "GetSecurityIdEx2 failed: %08x\n", hres);
ok(buf_size == sizeof(buf), "bug_size was %d\n", buf_size);
hres = IInternetSecurityManagerEx2_GetSecurityIdEx2(sec_mgr2, uri, buf, NULL, 0);
todo_wine ok(hres == E_INVALIDARG, "GetSecurityIdEx2 returned %08x, expected E_INVALIDARG\n", hres);
IUri_Release(uri); IUri_Release(uri);
for(i = 0; i < sizeof(sec_mgr_ex2_tests)/sizeof(sec_mgr_ex2_tests[0]); ++i) { for(i = 0; i < sizeof(sec_mgr_ex2_tests)/sizeof(sec_mgr_ex2_tests[0]); ++i) {
...@@ -1824,10 +1851,58 @@ static void test_SecurityManagerEx2(void) ...@@ -1824,10 +1851,58 @@ static void test_SecurityManagerEx2(void)
zone, sec_mgr_ex2_tests[i].uri); zone, sec_mgr_ex2_tests[i].uri);
} }
buf_size = sizeof(buf);
memset(buf, 0xf0, buf_size);
hres = IInternetSecurityManagerEx2_GetSecurityIdEx2(sec_mgr2, uri, buf, &buf_size, 0);
if(sec_mgr_ex2_tests[i].secid_todo) {
todo_wine
ok(hres == sec_mgr_ex2_tests[i].secid_hres, "GetSecurityIdEx2 returned %08x, expected %08x on test '%s'\n",
hres, sec_mgr_ex2_tests[i].secid_hres, sec_mgr_ex2_tests[i].uri);
if(sec_mgr_ex2_tests[i].secid) {
todo_wine {
ok(buf_size == sec_mgr_ex2_tests[i].secid_size, "Got wrong security id size=%d, expected %d on test '%s'\n",
buf_size, sec_mgr_ex2_tests[i].secid_size, sec_mgr_ex2_tests[i].uri);
ok(!memcmp(buf, sec_mgr_ex2_tests[i].secid, sec_mgr_ex2_tests[i].secid_size), "Got wrong security id on test '%s'\n",
sec_mgr_ex2_tests[i].uri);
}
}
} else {
ok(hres == sec_mgr_ex2_tests[i].secid_hres, "GetSecurityIdEx2 returned %08x, expected %08x on test '%s'\n",
hres, sec_mgr_ex2_tests[i].secid_hres, sec_mgr_ex2_tests[i].uri);
if(sec_mgr_ex2_tests[i].secid) {
ok(buf_size == sec_mgr_ex2_tests[i].secid_size, "Got wrong security id size=%d, expected %d on test '%s'\n",
buf_size, sec_mgr_ex2_tests[i].secid_size, sec_mgr_ex2_tests[i].uri);
ok(!memcmp(buf, sec_mgr_ex2_tests[i].secid, sec_mgr_ex2_tests[i].secid_size), "Got wrong security id on test '%s'\n",
sec_mgr_ex2_tests[i].uri);
}
}
heap_free(uriW); heap_free(uriW);
IUri_Release(uri); IUri_Release(uri);
} }
hres = pCreateUri(url15, 0, 0, &uri);
ok(hres == S_OK, "CreateUri failed: %08x\n", hres);
buf_size = sizeof(buf);
memset(buf, 0xf0, buf_size);
hres = IInternetSecurityManagerEx2_GetSecurityIdEx2(sec_mgr2, uri, buf, &buf_size, (DWORD_PTR)domainW);
todo_wine ok(hres == S_OK, "GetSecurityIdEx2 failed: %08x\n", hres);
todo_wine ok(buf_size == sizeof(secid13), "buf_size was %d\n", buf_size);
todo_wine ok(!memcmp(buf, secid13, sizeof(secid13)), "Got wrong secid\n");
buf_size = sizeof(buf);
memset(buf, 0xf0, buf_size);
hres = IInternetSecurityManagerEx2_GetSecurityIdEx2(sec_mgr2, uri, buf, &buf_size, 0);
todo_wine ok(hres == S_OK, "GetSecurityIdEx2 failed: %08x\n", hres);
todo_wine ok(buf_size == sizeof(secid13_2), "buf_size was %d\n", buf_size);
todo_wine ok(!memcmp(buf, secid13_2, sizeof(secid13_2)), "Got wrong secid\n");
IUri_Release(uri);
IInternetSecurityManagerEx2_Release(sec_mgr2); IInternetSecurityManagerEx2_Release(sec_mgr2);
IInternetSecurityManager_Release(sec_mgr); IInternetSecurityManager_Release(sec_mgr);
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment