[PATCH] urlmon/tests: Add tests for ZoneMgrImpl_GetZoneAttributes

Detlef Riekenberg wine.dev at web.de
Sun Jun 21 17:41:18 CDT 2009


---
 dlls/urlmon/tests/sec_mgr.c |   59 +++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 57 insertions(+), 2 deletions(-)

diff --git a/dlls/urlmon/tests/sec_mgr.c b/dlls/urlmon/tests/sec_mgr.c
index f90f5a5..fe27f62 100644
--- a/dlls/urlmon/tests/sec_mgr.c
+++ b/dlls/urlmon/tests/sec_mgr.c
@@ -281,7 +281,7 @@ static void test_polices(void)
     IInternetZoneManager_Release(zonemgr);
 }
 
-static void test_ZoneManager(void)
+static void test_GetZoneActionPolicy(void)
 {
     IInternetZoneManager *zonemgr = NULL;
     BYTE buf[32];
@@ -321,6 +321,60 @@ static void test_ZoneManager(void)
     IInternetZoneManager_Release(zonemgr);
 }
 
+static void test_GetZoneAttributes(void)
+{
+    IInternetZoneManager *zonemgr = NULL;
+    CHAR buffer [sizeof(ZONEATTRIBUTES) + 32];
+    ZONEATTRIBUTES* pZA = (ZONEATTRIBUTES*) buffer;
+    CHAR * ptr;
+    HRESULT hr;
+    DWORD i;
+
+    hr = CoInternetCreateZoneManager(NULL, &zonemgr, 0);
+    ok(hr == S_OK, "CoInternetCreateZoneManager result: 0x%x\n", hr);
+    if (FAILED(hr))
+        return;
+
+    /* native urlmon has Zone "0" upto Zone "4" since IE4 */
+    for (i = 0; i < 5; i++) {
+        memset(buffer, -1, sizeof(buffer));
+        hr = IInternetZoneManager_GetZoneAttributes(zonemgr, i, pZA);
+        ok(hr == S_OK, "#%d: got 0x%x (expected S_OK)\n", i, hr);
+    }
+
+    /* IE8 no longer set cbSize */
+    memset(buffer, -1, sizeof(buffer));
+    pZA->cbSize = 0;
+    hr = IInternetZoneManager_GetZoneAttributes(zonemgr, 0, pZA);
+    ok(hr == S_OK, "got 0x%x (expected S_OK)\n", hr);
+    ok((pZA->cbSize == 0) || (pZA->cbSize == sizeof(ZONEATTRIBUTES)),
+        "got cbSize = %d (expected 0)\n", pZA->cbSize);
+
+    memset(buffer, -1, sizeof(buffer));
+    pZA->cbSize = 64;
+    hr = IInternetZoneManager_GetZoneAttributes(zonemgr, 0, pZA);
+    ok(hr == S_OK, "got 0x%x (expected S_OK)\n", hr);
+    ok((pZA->cbSize == 64) || (pZA->cbSize == sizeof(ZONEATTRIBUTES)),
+        "got cbSize = %d (expected 64)\n", pZA->cbSize);
+
+    memset(buffer, -1, sizeof(buffer));
+    hr = IInternetZoneManager_GetZoneAttributes(zonemgr, 0, pZA);
+    ok(hr == S_OK, "got 0x%x (expected S_OK)\n", hr);
+    ok((pZA->cbSize == 0xffffffff) || (pZA->cbSize == sizeof(ZONEATTRIBUTES)),
+        "got cbSize = 0x%x (expected 0xffffffff)\n", pZA->cbSize);
+
+    /* IE8 no longer fail on invalid zones */
+    memset(buffer, -1, sizeof(buffer));
+    hr = IInternetZoneManager_GetZoneAttributes(zonemgr, 0xdeadbeef, pZA);
+    ok(hr == S_OK || (hr == E_FAIL),
+        "got 0x%x (expected S_OK or E_FAIL)\n", hr);
+
+    hr = IInternetZoneManager_GetZoneAttributes(zonemgr, 0, NULL);
+    ok(hr == E_INVALIDARG, "got 0x%x (expected E_INVALIDARG)\n", hr);
+
+    hr = IInternetZoneManager_Release(zonemgr);
+    ok(hr == S_OK, "got 0x%x (expected S_OK)\n", hr);
+}
 
 
 START_TEST(sec_mgr)
@@ -329,7 +383,8 @@ START_TEST(sec_mgr)
 
     test_SecurityManager();
     test_polices();
-    test_ZoneManager();
+    test_GetZoneActionPolicy();
+    test_GetZoneAttributes();
 
     OleUninitialize();
 }
-- 
1.5.4.3


--=-4t+1DIa5HM3XY/airYbP--




More information about the wine-patches mailing list