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

Alexandre Julliard julliard at winehq.org
Wed Aug 24 14:05:23 CDT 2011


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

Author: Thomas Mullaly <thomas.mullaly at gmail.com>
Date:   Sun Aug 21 20:44:40 2011 -0400

urlmon/tests: Added tests for MapUrlToZoneEx2.

---

 dlls/urlmon/tests/sec_mgr.c |   83 +++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 83 insertions(+), 0 deletions(-)

diff --git a/dlls/urlmon/tests/sec_mgr.c b/dlls/urlmon/tests/sec_mgr.c
index 2ba9f0c..3d630b8 100644
--- a/dlls/urlmon/tests/sec_mgr.c
+++ b/dlls/urlmon/tests/sec_mgr.c
@@ -1609,6 +1609,88 @@ static void test_InternetGetSecurityUrlEx_Pluggable(void)
     if(uri) IUri_Release(uri);
 }
 
+static const struct {
+    const char  *uri;
+    DWORD       create_flags;
+    HRESULT     map_hres;
+    DWORD       zone;
+    BOOL        map_todo;
+} sec_mgr_ex2_tests[] = {
+    {"res://mshtml.dll/blank.htm",0,S_OK,URLZONE_LOCAL_MACHINE,TRUE},
+    {"index.htm",Uri_CREATE_ALLOW_RELATIVE,0,URLZONE_INTERNET,TRUE},
+    {"file://c:\\Index.html",0,0,URLZONE_LOCAL_MACHINE,TRUE},
+    {"http://www.zone3.winetest/",0,0,URLZONE_INTERNET,TRUE},
+    {"about:blank",0,0,URLZONE_INTERNET,TRUE},
+    {"ftp://zone3.winetest/file.test",0,0,URLZONE_INTERNET,TRUE}
+};
+
+static void test_SecurityManagerEx2(void)
+{
+    HRESULT hres;
+    DWORD i, zone;
+    IInternetSecurityManager *sec_mgr;
+    IInternetSecurityManagerEx2 *sec_mgr2;
+    IUri *uri = NULL;
+
+    if(!pCreateUri) {
+        win_skip("Skipping SecurityManagerEx2, IE is too old\n");
+        return;
+    }
+
+    trace("Testing SecurityManagerEx2...\n");
+
+    hres = pCoInternetCreateSecurityManager(NULL, &sec_mgr, 0);
+    ok(hres == S_OK, "CoInternetCreateSecurityManager failed: %08x\n", hres);
+
+    hres = IInternetSecurityManager_QueryInterface(sec_mgr, &IID_IInternetSecurityManagerEx2, (void**)&sec_mgr2);
+    ok(hres == S_OK, "QueryInterface(IID_IInternetSecurityManagerEx2) failed: %08x\n", hres);
+
+    zone = 0xdeadbeef;
+
+    hres = IInternetSecurityManagerEx2_MapUrlToZoneEx2(sec_mgr2, NULL, &zone, 0, NULL, NULL);
+    todo_wine ok(hres == E_INVALIDARG, "MapUrlToZoneEx2 returned %08x, expected E_INVALIDARG\n", hres);
+    todo_wine ok(zone == URLZONE_INVALID, "zone was %d\n", zone);
+
+    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);
+    todo_wine ok(hres == E_INVALIDARG, "MapToUrlZoneEx2 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) {
+        LPWSTR uriW = a2w(sec_mgr_ex2_tests[i].uri);
+
+        uri = NULL;
+        zone = URLZONE_INVALID;
+
+        hres = pCreateUri(uriW, sec_mgr_ex2_tests[i].create_flags, 0, &uri);
+        ok(hres == S_OK, "CreateUri returned %08x on test %d\n", hres, i);
+
+        hres = IInternetSecurityManagerEx2_MapUrlToZoneEx2(sec_mgr2, uri, &zone, 0, NULL, NULL);
+        if(sec_mgr_ex2_tests[i].map_todo) {
+            todo_wine
+                ok(hres == sec_mgr_ex2_tests[i].map_hres, "MapUrlZoneToEx2 returned %08x, expected %08x on test %d\n",
+                    hres, sec_mgr_ex2_tests[i].map_hres, i);
+            todo_wine
+                ok(zone == sec_mgr_ex2_tests[i].zone, "Expected zone %d, but got %d on test %d\n", sec_mgr_ex2_tests[i].zone,
+                    zone, i);
+        } else {
+            ok(hres == sec_mgr_ex2_tests[i].map_hres, "MapUrlToZoneEx2 returned %08x, expected %08x on test %d\n",
+                hres, sec_mgr_ex2_tests[i].map_hres, i);
+            ok(zone == sec_mgr_ex2_tests[i].zone, "Expected zone %d, but got %d on test %d\n", sec_mgr_ex2_tests[i].zone,
+                zone, i);
+        }
+
+        heap_free(uriW);
+        IUri_Release(uri);
+    }
+
+    IInternetSecurityManagerEx2_Release(sec_mgr2);
+    IInternetSecurityManager_Release(sec_mgr);
+}
+
 START_TEST(sec_mgr)
 {
     HMODULE hurlmon;
@@ -1648,6 +1730,7 @@ START_TEST(sec_mgr)
     }
 
     test_SecurityManager();
+    test_SecurityManagerEx2();
     test_polices();
     test_zone_domains();
     test_CoInternetCreateZoneManager();




More information about the wine-cvs mailing list