Rob Shearman : wininet: Add tests for Find{First, Next}UrlCacheEntryA functions.

Alexandre Julliard julliard at winehq.org
Wed Mar 12 17:23:57 CDT 2008


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

Author: Rob Shearman <rob at codeweavers.com>
Date:   Wed Mar 12 13:29:47 2008 +0000

wininet: Add tests for Find{First,Next}UrlCacheEntryA functions.

---

 dlls/wininet/tests/urlcache.c |   41 +++++++++++++++++++++++++++++++++++++++++
 1 files changed, 41 insertions(+), 0 deletions(-)

diff --git a/dlls/wininet/tests/urlcache.c b/dlls/wininet/tests/urlcache.c
index cf1cb22..572420a 100644
--- a/dlls/wininet/tests/urlcache.c
+++ b/dlls/wininet/tests/urlcache.c
@@ -39,7 +39,10 @@ static void test_urlcacheA(void)
     BYTE zero_byte = 0;
     LPINTERNET_CACHE_ENTRY_INFO lpCacheEntryInfo;
     DWORD cbCacheEntryInfo;
+    DWORD cbCacheEntryInfoSaved;
     static const FILETIME filetime_zero;
+    HANDLE hEnumHandle;
+    BOOL found = FALSE;
 
     ret = CreateUrlCacheEntry(TEST_URL, 0, "html", filename, 0);
     ok(ret, "CreateUrlCacheEntry failed with error %d\n", GetLastError());
@@ -73,6 +76,44 @@ static void test_urlcacheA(void)
     ret = UnlockUrlCacheEntryFile(TEST_URL, 0);
     ok(ret, "UnlockUrlCacheEntryFile failed with error %d\n", GetLastError());
 
+
+    /* test Find*UrlCacheEntry functions */
+    cbCacheEntryInfo = 0;
+    hEnumHandle = FindFirstUrlCacheEntry(NULL, NULL, &cbCacheEntryInfo);
+    ok(!hEnumHandle, "FindFirstUrlCacheEntry should have failed\n");
+    ok(GetLastError() == ERROR_INSUFFICIENT_BUFFER, "FindFirstUrlCacheEntry should have set last error to ERROR_INSUFFICIENT_BUFFER instead of %d\n", GetLastError());
+    lpCacheEntryInfo = HeapAlloc(GetProcessHeap(), 0, cbCacheEntryInfo * sizeof(char));
+    cbCacheEntryInfoSaved = cbCacheEntryInfo;
+    hEnumHandle = FindFirstUrlCacheEntry(NULL, lpCacheEntryInfo, &cbCacheEntryInfo);
+    ok(hEnumHandle != NULL, "FindFirstUrlCacheEntry failed with error %d\n", GetLastError());
+    while (TRUE)
+    {
+        if (!strcmp(lpCacheEntryInfo->lpszSourceUrlName, TEST_URL))
+        {
+            found = TRUE;
+            break;
+        }
+        cbCacheEntryInfo = cbCacheEntryInfoSaved;
+        ret = FindNextUrlCacheEntry(hEnumHandle, lpCacheEntryInfo, &cbCacheEntryInfo);
+        if (!ret)
+        {
+            if (GetLastError() == ERROR_INSUFFICIENT_BUFFER)
+            {
+                lpCacheEntryInfo = HeapReAlloc(GetProcessHeap(), 0, lpCacheEntryInfo, cbCacheEntryInfo);
+                cbCacheEntryInfoSaved = cbCacheEntryInfo;
+                ret = FindNextUrlCacheEntry(hEnumHandle, lpCacheEntryInfo, &cbCacheEntryInfo);
+            }
+        }
+        ok(ret, "FindNextUrlCacheEntry failed with error %d\n", GetLastError());
+        if (!ret)
+            break;
+    }
+    ok(found, "committed url cache entry not found during enumeration\n");
+
+    ret = FindCloseUrlCache(hEnumHandle);
+    ok(ret, "FindCloseUrlCache failed with error %d\n", GetLastError());
+
+
     ret = DeleteUrlCacheEntry(TEST_URL);
     ok(ret, "DeleteUrlCacheEntry failed with error %d\n", GetLastError());
 




More information about the wine-cvs mailing list