Thomas Mullaly : urlmon/tests: Added tests for GetSecurityIdEx2.

Alexandre Julliard julliard at winehq.org
Mon Oct 10 10:25:35 CDT 2011


Module: wine
Branch: master
Commit: 714941f8a8af3118a4ac2749d472c556965a20d9
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=714941f8a8af3118a4ac2749d472c556965a20d9

Author: Thomas Mullaly <thomas.mullaly at gmail.com>
Date:   Mon Sep 12 18:38:45 2011 -0400

urlmon/tests: Added tests for GetSecurityIdEx2.

---

 dlls/urlmon/tests/sec_mgr.c |   97 ++++++++++++++++++++++++++++++++++++++-----
 1 files changed, 86 insertions(+), 11 deletions(-)

diff --git a/dlls/urlmon/tests/sec_mgr.c b/dlls/urlmon/tests/sec_mgr.c
index 869cc35..54b01cd 100644
--- a/dlls/urlmon/tests/sec_mgr.c
+++ b/dlls/urlmon/tests/sec_mgr.c
@@ -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 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 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',
         '.','j','p','g',0};
@@ -116,6 +117,7 @@ static const char *szZoneMapDomainsKey = "Software\\Microsoft\\Windows\\CurrentV
 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 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',
         '.','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};
@@ -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};
 static const BYTE secid10_2[] =
     {'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 =
     {0x178fc163,0xf585,0x4e24,{0x9c,0x13,0x4b,0xb7,0xfa,0xf8,0x06,0x46}};
@@ -1745,34 +1749,45 @@ static void test_InternetGetSecurityUrlEx_Pluggable(void)
     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 {
     const char  *uri;
     DWORD       create_flags;
     HRESULT     map_hres;
     DWORD       zone;
     BOOL        map_todo;
+    const BYTE  *secid;
+    DWORD       secid_size;
+    HRESULT     secid_hres;
+    BOOL        secid_todo;
 } sec_mgr_ex2_tests[] = {
-    {"res://mshtml.dll/blank.htm",0,S_OK,URLZONE_LOCAL_MACHINE},
-    {"index.htm",Uri_CREATE_ALLOW_RELATIVE,0,URLZONE_INTERNET},
-    {"file://c:\\Index.html",0,0,URLZONE_LOCAL_MACHINE},
-    {"http://www.zone3.winetest/",0,0,URLZONE_INTERNET},
-    {"about:blank",0,0,URLZONE_INTERNET},
-    {"ftp://zone3.winetest/file.test",0,0,URLZONE_INTERNET},
-    {"/file/testing/test.test",Uri_CREATE_ALLOW_RELATIVE,0,URLZONE_INTERNET},
-    {"zip://testing.com/",0,0,URLZONE_INTERNET},
-    {"zip:testing.com",0,0,URLZONE_INTERNET},
-    {"http:google.com",0,S_OK,URLZONE_INVALID},
-    {"http:/google.com",0,S_OK,URLZONE_INVALID}
+    {"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,FALSE,secid2,sizeof(secid2),S_OK,TRUE},
+    {"file://c:\\Index.html",0,0,URLZONE_LOCAL_MACHINE,FALSE,secid1,sizeof(secid1),S_OK,TRUE},
+    {"http://www.zone3.winetest/",0,0,URLZONE_INTERNET,FALSE,secid5,sizeof(secid5),S_OK,TRUE},
+    {"about:blank",0,0,URLZONE_INTERNET,FALSE,secid6,sizeof(secid6),S_OK,TRUE},
+    {"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,FALSE,NULL,0,E_INVALIDARG,TRUE},
+    {"zip://testing.com/",0,0,URLZONE_INTERNET,FALSE,secidex2_1,sizeof(secidex2_1),S_OK,TRUE},
+    {"zip:testing.com",0,0,URLZONE_INTERNET,FALSE,secidex2_2,sizeof(secidex2_2),S_OK,TRUE},
+    {"http:google.com",0,S_OK,URLZONE_INVALID,FALSE,NULL,0,E_INVALIDARG,TRUE},
+    {"http:/google.com",0,S_OK,URLZONE_INVALID,FALSE,NULL,0,E_INVALIDARG,TRUE}
 };
 
 static void test_SecurityManagerEx2(void)
 {
     HRESULT hres;
     DWORD i, zone;
+    BYTE buf[512];
+    DWORD buf_size = sizeof(buf);
     IInternetSecurityManager *sec_mgr;
     IInternetSecurityManagerEx2 *sec_mgr2;
     IUri *uri = NULL;
 
+    static const WCHAR domainW[] = {'c','o','m','.','u','k',0};
+
     if(!pCreateUri) {
         win_skip("Skipping SecurityManagerEx2, IE is too old\n");
         return;
@@ -1792,12 +1807,24 @@ static void test_SecurityManagerEx2(void)
     ok(hres == E_INVALIDARG, "MapUrlToZoneEx2 returned %08x, expected E_INVALIDARG\n", hres);
     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);
     ok(hres == S_OK, "CreateUri failed: %08x\n", hres);
 
     hres = IInternetSecurityManagerEx2_MapUrlToZoneEx2(sec_mgr2, uri, NULL, 0, NULL, NULL);
     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);
 
     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)
                 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);
         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);
     IInternetSecurityManager_Release(sec_mgr);
 }




More information about the wine-cvs mailing list