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