[PATCH] urlmon/tests: Add tests for GetZoneAt

Detlef Riekenberg wine.dev at web.de
Wed Jun 17 17:10:06 CDT 2009


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

diff --git a/dlls/urlmon/tests/sec_mgr.c b/dlls/urlmon/tests/sec_mgr.c
index b820fae..705fc02 100644
--- a/dlls/urlmon/tests/sec_mgr.c
+++ b/dlls/urlmon/tests/sec_mgr.c
@@ -394,6 +394,55 @@ static void test_GetZoneActionPolicy(void)
     IInternetZoneManager_Release(zonemgr);
 }
 
+static void test_GetZoneAt(void)
+{
+    IInternetZoneManager *zonemgr = NULL;
+    HRESULT hr;
+    DWORD dwEnum;
+    DWORD dwCount;
+    DWORD dwZone;
+    DWORD i;
+
+    hr = CoInternetCreateZoneManager(NULL, &zonemgr, 0);
+    ok(hr == S_OK, "CoInternetCreateZoneManager result: 0x%x\n", hr);
+    if (FAILED(hr))
+        return;
+
+    hr = IInternetZoneManager_CreateZoneEnumerator(zonemgr, &dwEnum, &dwCount, 0);
+    if (FAILED(hr))
+        goto cleanup;
+
+    if (0) {
+        /* this crash with native urlmon */
+        hr = IInternetZoneManager_GetZoneAt(zonemgr, dwEnum, 0, NULL);
+    }
+
+    dwZone = 0xdeadbeef;
+    hr = IInternetZoneManager_GetZoneAt(zonemgr, 0xdeadbeef, 0, &dwZone);
+    ok(hr == E_INVALIDARG,
+        "got 0x%x with 0x%x (expected E_INVALIDARG)\n", hr, dwZone);
+
+    for (i = 0; i < dwCount; i++)
+    {
+        dwZone = 0xdeadbeef;
+        hr = IInternetZoneManager_GetZoneAt(zonemgr, dwEnum, i, &dwZone);
+        ok(hr == S_OK, "#%d: got x%x with %d (expected S_OK)\n", i, hr, dwZone);
+    }
+
+    dwZone = 0xdeadbeef;
+    /* MSDN (index .. must be .. less than or equal to) is wrong */
+    hr = IInternetZoneManager_GetZoneAt(zonemgr, dwEnum, dwCount, &dwZone);
+    ok(hr == E_INVALIDARG,
+        "got 0x%x with 0x%x (expected E_INVALIDARG)\n", hr, dwZone);
+
+    hr = IInternetZoneManager_DestroyZoneEnumerator(zonemgr, dwEnum);
+    ok(hr == S_OK, "got 0x%x (expected S_OK)\n", hr);
+
+cleanup:
+    hr = IInternetZoneManager_Release(zonemgr);
+    ok(hr == S_OK, "got 0x%x (expected S_OK)\n", hr);
+
+}
 
 
 START_TEST(sec_mgr)
@@ -404,6 +453,7 @@ START_TEST(sec_mgr)
     test_polices();
     test_CreateZoneEnumerator();
     test_GetZoneActionPolicy();
+    test_GetZoneAt();
 
     OleUninitialize();
 }
-- 
1.5.4.3


--=-dXZIV5BEE8OwKXsErbjw--




More information about the wine-patches mailing list