21 #define NONAMELESSUNION 22 #define NONAMELESSSTRUCT 37 static const char test_url[] =
"http://urlcachetest.winehq.org/index.html";
38 static const WCHAR test_urlW[] = {
'h',
't',
't',
'p',
':',
'/',
'/',
'u',
'r',
'l',
'c',
'a',
'c',
'h',
'e',
't',
'e',
's',
't',
'.',
39 'w',
'i',
'n',
'e',
'h',
'q',
'.',
'o',
'r',
'g',
'/',
'i',
'n',
'd',
'e',
'x',
'.',
'h',
't',
'm',
'l',0};
40 static const char test_url1[] =
"Visited: user@http://urlcachetest.winehq.org/index.html";
54 ok(lpCacheEntryInfo->
dwStructSize ==
sizeof(*lpCacheEntryInfo),
"%s: dwStructSize was %d\n", returnedfrom, lpCacheEntryInfo->
dwStructSize);
65 DWORD cbCacheEntryInfo;
66 DWORD cbCacheEntryInfoSaved;
72 ok(!hEnumHandle,
"FindFirstUrlCacheEntry should have failed\n");
75 cbCacheEntryInfoSaved = cbCacheEntryInfo;
77 ok(hEnumHandle !=
NULL,
"FindFirstUrlCacheEntry failed with error %d\n",
GetLastError());
87 cbCacheEntryInfo = cbCacheEntryInfoSaved;
94 cbCacheEntryInfoSaved = cbCacheEntryInfo;
102 ok(found,
"Committed url cache entry not found during enumeration\n");
112 DWORD cbCacheEntryInfo, cbRedirectUrl;
117 ok(!
ret,
"GetUrlCacheEntryInfoEx with NULL URL and NULL args should have failed\n");
119 "GetUrlCacheEntryInfoEx with NULL URL and NULL args should have set last error to ERROR_INVALID_PARAMETER instead of %d\n",
GetLastError());
124 ok(!
ret,
"GetUrlCacheEntryInfoEx with zero-length buffer should fail\n");
126 "GetUrlCacheEntryInfoEx should have set last error to ERROR_FILE_NOT_FOUND instead of %d\n",
GetLastError());
129 ok(
ret,
"GetUrlCacheEntryInfoEx with NULL args failed with error %d\n",
GetLastError());
131 cbCacheEntryInfo = 0;
134 ok(!
ret,
"GetUrlCacheEntryInfoEx with zero-length buffer should fail\n");
136 "GetUrlCacheEntryInfoEx should have set last error to ERROR_INSUFFICIENT_BUFFER instead of %d\n",
GetLastError());
144 "GetUrlCacheEntryInfoEx should have set last error to ERROR_FILE_NOT_FOUND instead of %d\n",
GetLastError());
163 cbCacheEntryInfo = 100000;
166 ok(!
ret,
"GetUrlCacheEntryInfoEx with zero-length buffer should fail\n");
174 ok(!
ret,
"GetUrlCacheEntryInfoEx should have failed\n");
176 "expected ERROR_INVALID_PARAMETER, got %d\n",
GetLastError());
179 ok(!
ret,
"GetUrlCacheEntryInfoEx should have failed\n");
181 "expected ERROR_INVALID_PARAMETER, got %d\n",
GetLastError());
187 DWORD cbCacheEntryInfo;
189 cbCacheEntryInfo = 0;
192 ok(!
ret,
"RetrieveUrlCacheEntryFile should have failed\n");
200 ok(!
ret,
"RetrieveUrlCacheEntryFile should have failed\n");
205 cbCacheEntryInfo = 100000;
207 ok(!
ret,
"RetrieveUrlCacheEntryFile should have failed\n");
213 static const char uncached_url[] =
214 "What's the airspeed velocity of an unladen swallow?";
231 "expected time to be unchanged, got (%u,%u)\n",
243 ok(!
ret,
"expected FALSE\n");
245 "expected time (0,0), got (%u,%u)\n",
252 ok(!
ret,
"expected FALSE\n");
254 "expected time (0,0), got (%u,%u)\n",
259 ok(!
ret,
"GetUrlCacheEntryInfo should have failed\n");
261 "expected ERROR_INSUFFICIENT_BUFFER, got %d\n",
GetLastError());
266 exp_time.
u.LowPart =
info->ExpireTime.dwLowDateTime;
267 exp_time.
u.HighPart =
info->ExpireTime.dwHighDateTime;
269 info->ExpireTime.dwLowDateTime = exp_time.
u.LowPart;
270 info->ExpireTime.dwHighDateTime = exp_time.
u.HighPart;
277 ok(
ret,
"expected TRUE\n");
280 "expected time (0,0), got (%u,%u)\n",
284 info->ExpireTime.dwLowDateTime = exp_time.
u.LowPart;
285 info->ExpireTime.dwHighDateTime = exp_time.
u.HighPart;
292 ok(!
ret,
"expected FALSE\n");
295 "expected time (0,0), got (%u,%u)\n",
303 ok(!
ret,
"expected FALSE\n");
307 "expected time (%u,%u), got (%u,%u)\n",
308 info->LastModifiedTime.dwLowDateTime,
309 info->LastModifiedTime.dwHighDateTime,
319 "expected time (0,0), got (%u,%u)\n",
330 "expected file to exist, CreateFile failed with error %d\n",
335 #define check_file_exists(f) _check_file_exists(__LINE__, f) 344 "expected file not to exist\n");
349 #define check_file_not_exists(f) _check_file_not_exists(__LINE__, f) 370 static char long_url[300] =
"http://www.winehq.org/";
371 static char ok_header[] =
"HTTP/1.0 200 OK\r\n\r\n";
377 DWORD cbCacheEntryInfo;
378 static const FILETIME filetime_zero;
396 cbCacheEntryInfo = 0;
398 ok(!
ret,
"GetUrlCacheEntryInfo should have failed\n");
400 "GetUrlCacheEntryInfo should have set last error to ERROR_INSUFFICIENT_BUFFER instead of %d\n",
GetLastError());
405 "expected zero ExpireTime\n");
407 "expected zero LastModifiedTime\n");
410 "expected type NORMAL_CACHE_ENTRY|URLHISTORY_CACHE_ENTRY, got %08x\n",
412 ok(!
U(*lpCacheEntryInfo).dwExemptDelta,
"expected dwExemptDelta 0, got %d\n",
413 U(*lpCacheEntryInfo).dwExemptDelta);
423 cbCacheEntryInfo = 0;
425 ok(!
ret,
"GetUrlCacheEntryInfo should have failed\n");
427 "expected ERROR_INSUFFICIENT_BUFFER, got %d\n",
GetLastError());
433 "expected positive ExpireTime\n");
435 "expected positive LastModifiedTime\n");
438 "expected type NORMAL_CACHE_ENTRY|URLHISTORY_CACHE_ENTRY, got %08x\n",
442 "expected headers size 19, got %d\n",
446 "HitRate not incremented by one on commit\n");
450 "Last accessed time was not updated by commit\n");
453 "Fileextension isn't unset: %s\n",
461 cbCacheEntryInfo = 0;
464 ok(!
ret,
"RetrieveUrlCacheEntryFile should have failed\n");
466 "RetrieveUrlCacheEntryFile should have set last error to ERROR_INSUFFICIENT_BUFFER instead of %d\n",
GetLastError());
476 cbCacheEntryInfo = 0;
479 ok(!
ret,
"RetrieveUrlCacheEntryFile should have failed\n");
481 "RetrieveUrlCacheEntryFile should have set last error to ERROR_INVALID_DATA instead of %d\n",
GetLastError());
483 if (pUnlockUrlCacheEntryFileA)
496 if (pDeleteUrlCacheEntryA)
534 cbCacheEntryInfo = 0;
537 ok(!
ret,
"GetUrlCacheEntryInfo should have failed\n");
539 "expected ERROR_INSUFFICIENT_BUFFER, got %d\n",
GetLastError());
545 "expected cache entry type NORMAL_CACHE_ENTRY, got %d (0x%08x)\n",
555 if (pDeleteUrlCacheEntryA)
575 cbCacheEntryInfo = 0;
578 ok(!
ret,
"RetrieveUrlCacheEntryFile should have failed\n");
580 "expected ERROR_INSUFFICIENT_BUFFER, got %d\n",
GetLastError());
584 &cbCacheEntryInfo, 0);
589 if (pDeleteUrlCacheEntryA)
592 ok(!
ret,
"Expected failure\n");
594 "Expected ERROR_SHARING_VIOLATION, got %d\n",
GetLastError());
599 memset(lpCacheEntryInfo, 0, cbCacheEntryInfo);
603 "CacheEntryType hasn't PENDING_DELETE_CACHE_ENTRY set, (flags %08x)\n",
607 if (pUnlockUrlCacheEntryFileA)
619 if (pDeleteUrlCacheEntryA)
623 ok(!
ret,
"Expected failure\n");
625 "expected ERROR_FILE_NOT_FOUND, got %d\n",
GetLastError());
646 if (pDeleteUrlCacheEntryA)
653 if (pDeleteUrlCacheEntryA)
657 ok(!
ret,
"Expected failure\n");
659 "expected ERROR_FILE_NOT_FOUND, got %d\n",
GetLastError());
674 "expected ERROR_INVALID_PARAMETER, got %d\n",
GetLastError());
681 "expected ERROR_INVALID_PARAMETER, got %d\n",
GetLastError());
690 cbCacheEntryInfo = 0;
693 ok(!
ret,
"GetUrlCacheEntryInfo should have failed\n");
695 "expected ERROR_INSUFFICIENT_BUFFER, got %d\n",
GetLastError());
700 "expected cache entry type NORMAL_CACHE_ENTRY | STICKY_CACHE_ENTRY, got %d (0x%08x)\n",
702 ok(
U(*lpCacheEntryInfo).dwExemptDelta == 86400,
703 "expected dwExemptDelta 86400, got %d\n",
704 U(*lpCacheEntryInfo).dwExemptDelta);
706 if (pDeleteUrlCacheEntryA)
721 cbCacheEntryInfo = 0;
724 ok(!
ret,
"GetUrlCacheEntryInfo should have failed\n");
726 "expected ERROR_INSUFFICIENT_BUFFER, got %d\n",
GetLastError());
731 "expected cache entry type NORMAL_CACHE_ENTRY | STICKY_CACHE_ENTRY, got %d (0x%08x)\n",
733 ok(
U(*lpCacheEntryInfo).dwExemptDelta == 86400,
734 "expected dwExemptDelta 86400, got %d\n",
735 U(*lpCacheEntryInfo).dwExemptDelta);
736 U(*lpCacheEntryInfo).dwExemptDelta = 0;
742 ok(!
U(*lpCacheEntryInfo).dwExemptDelta,
"expected dwExemptDelta 0, got %d\n",
743 U(*lpCacheEntryInfo).dwExemptDelta);
748 "expected cache entry type NORMAL_CACHE_ENTRY | STICKY_CACHE_ENTRY, got %d (0x%08x)\n",
752 U(*lpCacheEntryInfo).dwExemptDelta = 8600;
768 ok(
U(*lpCacheEntryInfo).dwExemptDelta == 8600 || (
ie10_cache &&
U(*lpCacheEntryInfo).dwExemptDelta == 86400),
769 "expected dwExemptDelta 8600, got %d\n",
U(*lpCacheEntryInfo).dwExemptDelta);
773 if (pDeleteUrlCacheEntryA)
786 cbCacheEntryInfo = 0;
788 ok(!
ret,
"GetUrlCacheEntryInfo should have failed\n");
790 "expected ERROR_INSUFFICIENT_BUFFER, got %d\n",
GetLastError());
798 cbCacheEntryInfo = 0;
800 ok(!
ret,
"GetUrlCacheEntryInfo should have failed\n");
802 "expected ERROR_INSUFFICIENT_BUFFER, got %d\n",
GetLastError());
810 if (pDeleteUrlCacheEntryA) {
819 long_url[
sizeof(long_url)-1] = 0;
848 char encoded_url[128];
850 WCHAR header_info[128];
853 0, {
'h',
't',
't',
'p',
':',
'/',
'/',
'T',
'.',
'p',
'l',
'/',
't',0},
854 "http://T.pl/t", {0}, {0}
857 0, {
'w',
'w',
'w',
'.',
'T',
'.',
'p',
'l',
'/',
't',0},
858 "www.T.pl/t", {0}, {0}
861 0, {
'h',
't',
't',
'p',
':',
'/',
'/',
'w',
'w',
'w',
'.',
't',
'e',
's',
't',0x15b,0x107,
862 '.',
'o',
'r',
'g',
'/',
't',
'e',
's',
't',
'.',
'h',
't',
'm',
'l',0},
863 "http://www.xn--test-ota71c.org/test.html", {
't',
'x',
't',0}, {0}
866 0, {
'w',
'w',
'w',
'.',
'T',
'e',
's',
't',0x15b,0x107,
'.',
'o',
'r',
'g',
867 '/',
't',
'e',
's',
't',
'.',
'h',
't',
'm',
'l',0},
868 "www.Test\xc5\x9b\xc4\x87.org/test.html", {
'a',0x106,
'a',0}, {
'b',0x106,
'b',0}
871 0, {
'H',
't',
't',
'p',
's',
':',
'/',
'/',0x15b,0x15b,0x107,
'/',
't',0x107,
'/',
872 't',
'e',
's',
't',
'?',
'a',
'=',
'%',
'2',
'0',0x106,0},
873 "Https://xn--4da1oa/t\xc4\x87/test?a=%20\xc4\x86", {
'a',0x15b,
'a',0}, {
'b',0x15b,
'b',0}
876 12005, {
'h',
't',
't',
'p',
's',
':',
'/',
'/',
'/',
'/',0x107,
'.',
'o',
'r',
'g',
'/',
't',
'e',
's',
't',0},
880 0, {
'C',
'o',
'o',
'k',
'i',
'e',
':',
' ',
'u',
's',
'e',
'r',
'@',
't',
'e',
's',
't',
'.',
'o',
'r',
'g',
'/',0},
881 "Cookie: user@test.org/", {0}, {0}
884 static const FILETIME filetime_zero;
891 win_skip(
"urlcache unicode functions\n");
902 if(urls[
i].
err != 0) {
903 ok(!
ret,
"%d) CreateUrlCacheEntryW succeeded\n",
i);
931 "%d) entry_infoW->dwStructSize = %d, expected %d\n",
934 "%d) entry_infoW->lpszSourceUrlName = %s\n",
937 "%d) entry_infoA->lpszSourceUrlName = %s\n",
940 "%d) entry_infoW->CacheEntryType = %x, expected %x\n",
943 "%d) entry_infoW->dwUseCount = %d, expected %d\n",
946 "%d) entry_infoW->dwHitRate = %d, expected %d\n",
949 "%d) entry_infoW->dwSizeLow = %d, expected %d\n",
952 "%d) entry_infoW->dwSizeHigh = %d, expected %d\n",
955 "%d) entry_infoW->LastModifiedTime is incorrect\n",
i);
957 "%d) entry_infoW->ExpireTime is incorrect\n",
i);
959 "%d) entry_infoW->LastAccessTime is incorrect\n",
i);
961 "%d) entry_infoW->LastSyncTime is incorrect\n",
i);
965 "%d) entry_infoW->lpszLocalFileName = %s, expected %s\n",
968 if(!urls[
i].header_info[0]) {
969 ok(!entry_infoW->
lpHeaderInfo,
"entry_infoW->lpHeaderInfo != NULL\n");
972 "%d) entry_infoW->lpHeaderInfo = %s\n",
976 if(!urls[
i].extension[0]) {
978 "%d) entry_infoW->lpszFileExtension = %s\n",
984 "%d) entry_infoW->lpszFileExtension = %s, expected %s\n",
991 if(pDeleteUrlCacheEntryA) {
992 ret = pDeleteUrlCacheEntryA(urls[
i].encoded_url);
1006 ok(0 ==
r,
"expected 0, got %d\n",
r);
1033 strcpy(
p,
"\\non\\existing\\path");
1038 "GetDiskInfoA succeeded\n");
1041 "got %u expected ERROR_PATH_NOT_FOUND\n",
error);
1046 ok(!
ret,
"GetDiskInfoA succeeded\n");
1052 static char buf[10000];
1068 static const FILETIME filetime_zero;
1069 static char url_with_slash[] =
"http://testing.cache.com/";
1085 ok(
ret,
"DeleteCacheEntryA failed\n");
1093 const char *suffix =
"";
1094 const char *suffix_win8 =
"";
1101 suffix =
"\\Content.IE5\\";
1102 suffix_win8 =
"\\IE\\";
1113 suffix =
"\\History.IE5\\";
1114 suffix_win8 =
"\\History.IE5\\";
1118 ok(0,
"unexpected flags %#x\n",
flags);
1126 strcat(path_win8, suffix_win8);
1164 info.dwStructSize = td[
i].dwStructSize;
1178 ok(
info.dwStructSize == td[
i].dwStructSize,
"got %u\n",
info.dwStructSize);
1180 "%d: expected %s or %s, got %s\n",
i,
path, path_win8,
info.CachePath);
1191 win_skip(
"Too old IE (older than 6.0)\n");
1198 trace(
"Running tests on IE10 or newer\n");
BOOL WINAPI CreateUrlCacheEntryW(LPCWSTR lpszUrlName, DWORD dwExpectedFileSize, LPCWSTR lpszFileExtension, LPWSTR lpszFileName, DWORD dwReserved)
#define ERROR_INVALID_PARAMETER
#define CACHE_ENTRY_EXPTIME_FC
static const WCHAR test_urlW[]
BOOL WINAPI WriteFile(IN HANDLE hFile, IN LPCVOID lpBuffer, IN DWORD nNumberOfBytesToWrite OPTIONAL, OUT LPDWORD lpNumberOfBytesWritten, IN LPOVERLAPPED lpOverlapped OPTIONAL)
VOID WINAPI GetSystemTimeAsFileTime(OUT PFILETIME lpFileTime)
#define CACHE_ENTRY_MODTIME_FC
VOID WINAPI DECLSPEC_HOTPATCH Sleep(IN DWORD dwMilliseconds)
static void test_RetrieveUrlCacheEntryA(void)
int memcmp(void *Buffer1, void *Buffer2, ACPI_SIZE Count)
int WINAPI lstrcmpiA(LPCSTR lpString1, LPCSTR lpString2)
static char filenameA1[MAX_PATH+1]
static void check_cache_entry_infoA(const char *returnedfrom, INTERNET_CACHE_ENTRY_INFOA *lpCacheEntryInfo)
static void _check_file_not_exists(LONG l, LPCSTR filename)
char * strcat(char *DstString, const char *SrcString)
BOOL WINAPI DeleteUrlCacheEntryA(LPCSTR lpszUrlName)
BOOL WINAPI FindNextUrlCacheEntryA(HANDLE hEnumHandle, LPINTERNET_CACHE_ENTRY_INFOA lpNextCacheEntryInfo, LPDWORD lpdwNextCacheEntryInfoBufferSize)
ACPI_SIZE strlen(const char *String)
static void test_find_url_cache_entriesA(void)
#define CACHE_CONFIG_HISTORY_PATHS_FC
GLdouble GLdouble GLdouble r
char * wine_dbgstr_w(const wchar_t *wstr)
int WINAPI lstrcmpW(LPCWSTR lpString1, LPCWSTR lpString2)
static BOOL(WINAPI *pDeleteUrlCacheEntryA)(LPCSTR)
#define ERROR_INVALID_HANDLE
struct _INTERNET_CACHE_ENTRY_INFOA INTERNET_CACHE_ENTRY_INFOA
UINT WINAPI GetSystemDirectoryA(OUT LPSTR lpBuffer, IN UINT uSize)
#define INVALID_HANDLE_VALUE
int WINAPI lstrcmpA(LPCSTR lpString1, LPCSTR lpString2)
DWORD WINAPI GetLastError(VOID)
static void get_cache_path(DWORD flags, char path[MAX_PATH], char path_win8[MAX_PATH])
static void test_trailing_slash(void)
BOOL WINAPI GetUrlCacheEntryInfoExA(LPCSTR lpszUrl, LPINTERNET_CACHE_ENTRY_INFOA lpCacheEntryInfo, LPDWORD lpdwCacheEntryInfoBufSize, LPSTR lpszReserved, LPDWORD lpdwReserved, LPVOID lpReserved, DWORD dwFlags)
static void test_urlcacheW(void)
#define CSIDL_INTERNET_CACHE
GLenum GLuint GLenum GLsizei const GLchar * buf
static void create_and_write_file(LPCSTR filename, void *data, DWORD len)
BOOL WINAPI SHGetSpecialFolderPathA(HWND hwndOwner, LPSTR szPath, int nFolder, BOOL bCreate)
static void _check_file_exists(LONG l, LPCSTR filename)
#define STICKY_CACHE_ENTRY
#define URLHISTORY_CACHE_ENTRY
static const char test_url1[]
BOOL WINAPI DeleteFileA(IN LPCSTR lpFileName)
static int zero_byte(mpg123_handle *fr)
#define CACHE_ENTRY_ATTRIBUTE_FC
BOOL WINAPI CreateUrlCacheEntryA(LPCSTR lpszUrlName, DWORD dwExpectedFileSize, LPCSTR lpszFileExtension, LPSTR lpszFileName, DWORD dwReserved)
#define ERROR_FILE_NOT_FOUND
#define NORMAL_CACHE_ENTRY
static void test_GetUrlCacheConfigInfo(void)
static void test_GetDiskInfoA(void)
BOOL WINAPI GetUrlCacheConfigInfoA(LPINTERNET_CACHE_CONFIG_INFOA info, LPDWORD size, DWORD flags)
PVOID WINAPI HeapAlloc(HANDLE, DWORD, SIZE_T)
BOOL WINAPI CommitUrlCacheEntryW(LPCWSTR lpszUrlName, LPCWSTR lpszLocalFileName, FILETIME ExpireTime, FILETIME LastModifiedTime, DWORD CacheEntryType, LPWSTR lpHeaderInfo, DWORD dwHeaderSize, LPCWSTR lpszFileExtension, LPCWSTR lpszOriginalUrl)
BOOL WINAPI GetUrlCacheEntryInfoExW(LPCWSTR lpszUrl, LPINTERNET_CACHE_ENTRY_INFOW lpCacheEntryInfo, LPDWORD lpdwCacheEntryInfoBufSize, LPWSTR lpszReserved, LPDWORD lpdwReserved, LPVOID lpReserved, DWORD dwFlags)
BOOL WINAPI FindCloseUrlCache(HANDLE hEnumHandle)
static void test_urlcacheA(void)
BOOL WINAPI GetUrlCacheEntryInfoW(LPCWSTR lpszUrl, LPINTERNET_CACHE_ENTRY_INFOW lpCacheEntryInfo, LPDWORD lpdwCacheEntryInfoBufferSize)
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
BOOL WINAPI GetUrlCacheEntryInfoA(LPCSTR lpszUrlName, LPINTERNET_CACHE_ENTRY_INFOA lpCacheEntryInfo, LPDWORD lpdwCacheEntryInfoBufferSize)
FILETIME LastModifiedTime
#define FILE_ATTRIBUTE_NORMAL
BOOL WINAPI IsUrlCacheEntryExpiredA(LPCSTR url, DWORD dwFlags, FILETIME *pftLastModified)
static void test_IsUrlCacheEntryExpiredA(void)
HMODULE WINAPI DECLSPEC_HOTPATCH GetModuleHandleA(LPCSTR lpModuleName)
INTERNETAPI HANDLE WINAPI FindFirstUrlCacheEntryA(LPCSTR lpszUrlSearchPattern, LPINTERNET_CACHE_ENTRY_INFOA lpFirstCacheEntryInfo, LPDWORD lpdwFirstCacheEntryInfoBufferSize)
#define ERROR_SHARING_VIOLATION
FILETIME LastModifiedTime
#define ERROR_INVALID_DATA
#define COOKIE_CACHE_ENTRY
#define CACHE_ENTRY_EXEMPT_DELTA_FC
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
#define CACHE_CONFIG_COOKIES_PATHS_FC
BOOL WINAPI CommitUrlCacheEntryA(LPCSTR lpszUrlName, LPCSTR lpszLocalFileName, FILETIME ExpireTime, FILETIME LastModifiedTime, DWORD CacheEntryType, LPBYTE lpHeaderInfo, DWORD dwHeaderSize, LPCSTR lpszFileExtension, LPCSTR lpszOriginalUrl)
BOOL WINAPI SetUrlCacheEntryInfoA(LPCSTR lpszUrlName, LPINTERNET_CACHE_ENTRY_INFOA lpCacheEntryInfo, DWORD dwFieldControl)
#define MultiByteToWideChar
char * strchr(const char *String, int ch)
static const char test_hash_collisions2[]
static void test_FindCloseUrlCache(void)
unsigned long long DWORDLONG
char * strcpy(char *DstString, const char *SrcString)
int strcmp(const char *String1, const char *String2)
#define GetProcAddress(x, y)
static const char test_hash_collisions1[]
#define ERROR_PATH_NOT_FOUND
struct _ULARGE_INTEGER::@3933 u
BOOL WINAPI GetDiskInfoA(PCSTR path, PDWORD cluster_size, PDWORDLONG free, PDWORDLONG total)
#define CreateFileA(a, b, c, d, e, f, g)
#define check_file_exists(f)
static BOOL cache_entry_exists(const char *url)
#define HeapFree(x, y, z)
BOOL WINAPI RetrieveUrlCacheEntryFileA(LPCSTR lpszUrlName, LPINTERNET_CACHE_ENTRY_INFOA lpCacheEntryInfo, LPDWORD lpdwCacheEntryInfoBufferSize, DWORD dwReserved)
#define CACHE_CONFIG_CONTENT_PATHS_FC
#define check_file_not_exists(f)
static void test_GetUrlCacheEntryInfoExA(void)
static const char test_url[]
#define ERROR_INSUFFICIENT_BUFFER
static char filenameA[MAX_PATH+1]