34static const char test_url[] =
"http://urlcachetest.winehq.org/index.html";
35static const WCHAR test_urlW[] = {
'h',
't',
't',
'p',
':',
'/',
'/',
'u',
'r',
'l',
'c',
'a',
'c',
'h',
'e',
't',
'e',
's',
't',
'.',
36 'w',
'i',
'n',
'e',
'h',
'q',
'.',
'o',
'r',
'g',
'/',
'i',
'n',
'd',
'e',
'x',
'.',
'h',
't',
'm',
'l',0};
37static const char test_url1[] =
"Visited: user@http://urlcachetest.winehq.org/index.html";
51 ok(lpCacheEntryInfo->
dwStructSize ==
sizeof(*lpCacheEntryInfo),
"%s: dwStructSize was %ld\n", returnedfrom, lpCacheEntryInfo->
dwStructSize);
62 DWORD cbCacheEntryInfo;
63 DWORD cbCacheEntryInfoSaved;
69 ok(!hEnumHandle,
"FindFirstUrlCacheEntry should have failed\n");
72 cbCacheEntryInfoSaved = cbCacheEntryInfo;
74 ok(hEnumHandle !=
NULL,
"FindFirstUrlCacheEntry failed with error %ld\n",
GetLastError());
84 cbCacheEntryInfo = cbCacheEntryInfoSaved;
91 cbCacheEntryInfoSaved = cbCacheEntryInfo;
99 ok(found,
"Committed url cache entry not found during enumeration\n");
109 DWORD cbCacheEntryInfo, cbRedirectUrl;
114 ok(!
ret,
"GetUrlCacheEntryInfoEx with NULL URL and NULL args should have failed\n");
116 "GetUrlCacheEntryInfoEx with NULL URL and NULL args should have set last error to ERROR_INVALID_PARAMETER instead of %ld\n",
GetLastError());
121 ok(!
ret,
"GetUrlCacheEntryInfoEx with zero-length buffer should fail\n");
123 "GetUrlCacheEntryInfoEx should have set last error to ERROR_FILE_NOT_FOUND instead of %ld\n",
GetLastError());
126 ok(
ret,
"GetUrlCacheEntryInfoEx with NULL args failed with error %ld\n",
GetLastError());
128 cbCacheEntryInfo = 0;
131 ok(!
ret,
"GetUrlCacheEntryInfoEx with zero-length buffer should fail\n");
133 "GetUrlCacheEntryInfoEx should have set last error to ERROR_INSUFFICIENT_BUFFER instead of %ld\n",
GetLastError());
141 "GetUrlCacheEntryInfoEx should have set last error to ERROR_FILE_NOT_FOUND instead of %ld\n",
GetLastError());
160 cbCacheEntryInfo = 100000;
163 ok(!
ret,
"GetUrlCacheEntryInfoEx with zero-length buffer should fail\n");
171 ok(!
ret,
"GetUrlCacheEntryInfoEx should have failed\n");
173 "expected ERROR_INVALID_PARAMETER, got %ld\n",
GetLastError());
176 ok(!
ret,
"GetUrlCacheEntryInfoEx should have failed\n");
178 "expected ERROR_INVALID_PARAMETER, got %ld\n",
GetLastError());
184 DWORD cbCacheEntryInfo;
186 cbCacheEntryInfo = 0;
189 ok(!
ret,
"RetrieveUrlCacheEntryFile should have failed\n");
197 ok(!
ret,
"RetrieveUrlCacheEntryFile should have failed\n");
202 cbCacheEntryInfo = 100000;
204 ok(!
ret,
"RetrieveUrlCacheEntryFile should have failed\n");
210 static const char uncached_url[] =
211 "What's the airspeed velocity of an unladen swallow?";
228 "expected time to be unchanged, got (%lu,%lu)\n",
240 ok(!
ret,
"expected FALSE\n");
242 "expected time (0,0), got (%lu,%lu)\n",
249 ok(!
ret,
"expected FALSE\n");
251 "expected time (0,0), got (%lu,%lu)\n",
256 ok(!
ret,
"GetUrlCacheEntryInfo should have failed\n");
258 "expected ERROR_INSUFFICIENT_BUFFER, got %ld\n",
GetLastError());
263 exp_time.
u.LowPart =
info->ExpireTime.dwLowDateTime;
264 exp_time.
u.HighPart =
info->ExpireTime.dwHighDateTime;
266 info->ExpireTime.dwLowDateTime = exp_time.
u.LowPart;
267 info->ExpireTime.dwHighDateTime = exp_time.
u.HighPart;
274 ok(
ret,
"expected TRUE\n");
277 "expected time (0,0), got (%lu,%lu)\n",
281 info->ExpireTime.dwLowDateTime = exp_time.
u.LowPart;
282 info->ExpireTime.dwHighDateTime = exp_time.
u.HighPart;
289 ok(!
ret,
"expected FALSE\n");
292 "expected time (0,0), got (%lu,%lu)\n",
300 ok(!
ret,
"expected FALSE\n");
304 "expected time (%lu,%lu), got (%lu,%lu)\n",
305 info->LastModifiedTime.dwLowDateTime,
306 info->LastModifiedTime.dwHighDateTime,
316 "expected time (0,0), got (%lu,%lu)\n",
327 "expected file to exist, CreateFile failed with error %ld\n",
332#define check_file_exists(f) _check_file_exists(__LINE__, f)
341 "expected file not to exist\n");
346#define check_file_not_exists(f) _check_file_not_exists(__LINE__, f)
367 static char long_url[300] =
"http://www.winehq.org/";
368 static char ok_header[] =
"HTTP/1.0 200 OK\r\n\r\n";
374 DWORD cbCacheEntryInfo;
375 static const FILETIME filetime_zero;
393 cbCacheEntryInfo = 0;
395 ok(!
ret,
"GetUrlCacheEntryInfo should have failed\n");
397 "GetUrlCacheEntryInfo should have set last error to ERROR_INSUFFICIENT_BUFFER instead of %ld\n",
GetLastError());
402 "expected zero ExpireTime\n");
404 "expected zero LastModifiedTime\n");
407 "expected type NORMAL_CACHE_ENTRY|URLHISTORY_CACHE_ENTRY, got %08lx\n",
409 ok(!lpCacheEntryInfo->
dwExemptDelta,
"expected dwExemptDelta 0, got %ld\n",
420 cbCacheEntryInfo = 0;
422 ok(!
ret,
"GetUrlCacheEntryInfo should have failed\n");
424 "expected ERROR_INSUFFICIENT_BUFFER, got %ld\n",
GetLastError());
430 "expected positive ExpireTime\n");
432 "expected positive LastModifiedTime\n");
435 "expected type NORMAL_CACHE_ENTRY|URLHISTORY_CACHE_ENTRY, got %08lx\n",
439 "expected headers size 19, got %ld\n",
443 "HitRate not incremented by one on commit\n");
447 "Last accessed time was not updated by commit\n");
450 "Fileextension isn't unset: %s\n",
458 cbCacheEntryInfo = 0;
461 ok(!
ret,
"RetrieveUrlCacheEntryFile should have failed\n");
463 "RetrieveUrlCacheEntryFile should have set last error to ERROR_INSUFFICIENT_BUFFER instead of %ld\n",
GetLastError());
473 cbCacheEntryInfo = 0;
476 ok(!
ret,
"RetrieveUrlCacheEntryFile should have failed\n");
478 "RetrieveUrlCacheEntryFile should have set last error to ERROR_INVALID_DATA instead of %ld\n",
GetLastError());
480 if (pUnlockUrlCacheEntryFileA)
493 if (pDeleteUrlCacheEntryA)
531 cbCacheEntryInfo = 0;
534 ok(!
ret,
"GetUrlCacheEntryInfo should have failed\n");
536 "expected ERROR_INSUFFICIENT_BUFFER, got %ld\n",
GetLastError());
542 "expected cache entry type NORMAL_CACHE_ENTRY, got %ld (0x%08lx)\n",
552 if (pDeleteUrlCacheEntryA)
572 cbCacheEntryInfo = 0;
575 ok(!
ret,
"RetrieveUrlCacheEntryFile should have failed\n");
577 "expected ERROR_INSUFFICIENT_BUFFER, got %ld\n",
GetLastError());
581 &cbCacheEntryInfo, 0);
586 if (pDeleteUrlCacheEntryA)
589 ok(!
ret,
"Expected failure\n");
591 "Expected ERROR_SHARING_VIOLATION, got %ld\n",
GetLastError());
596 memset(lpCacheEntryInfo, 0, cbCacheEntryInfo);
600 "CacheEntryType hasn't PENDING_DELETE_CACHE_ENTRY set, (flags %08lx)\n",
604 if (pUnlockUrlCacheEntryFileA)
616 if (pDeleteUrlCacheEntryA)
620 ok(!
ret,
"Expected failure\n");
622 "expected ERROR_FILE_NOT_FOUND, got %ld\n",
GetLastError());
643 if (pDeleteUrlCacheEntryA)
650 if (pDeleteUrlCacheEntryA)
654 ok(!
ret,
"Expected failure\n");
656 "expected ERROR_FILE_NOT_FOUND, got %ld\n",
GetLastError());
671 "expected ERROR_INVALID_PARAMETER, got %ld\n",
GetLastError());
678 "expected ERROR_INVALID_PARAMETER, got %ld\n",
GetLastError());
687 cbCacheEntryInfo = 0;
690 ok(!
ret,
"GetUrlCacheEntryInfo should have failed\n");
692 "expected ERROR_INSUFFICIENT_BUFFER, got %ld\n",
GetLastError());
697 "expected cache entry type NORMAL_CACHE_ENTRY | STICKY_CACHE_ENTRY, got %ld (0x%08lx)\n",
700 "expected dwExemptDelta 86400, got %ld\n",
703 if (pDeleteUrlCacheEntryA)
718 cbCacheEntryInfo = 0;
721 ok(!
ret,
"GetUrlCacheEntryInfo should have failed\n");
723 "expected ERROR_INSUFFICIENT_BUFFER, got %ld\n",
GetLastError());
728 "expected cache entry type NORMAL_CACHE_ENTRY | STICKY_CACHE_ENTRY, got %ld (0x%08lx)\n",
731 "expected dwExemptDelta 86400, got %ld\n",
739 ok(!lpCacheEntryInfo->
dwExemptDelta,
"expected dwExemptDelta 0, got %ld\n",
745 "expected cache entry type NORMAL_CACHE_ENTRY | STICKY_CACHE_ENTRY, got %ld (0x%08lx)\n",
766 "expected dwExemptDelta 8600, got %ld\n", lpCacheEntryInfo->
dwExemptDelta);
770 if (pDeleteUrlCacheEntryA)
783 cbCacheEntryInfo = 0;
785 ok(!
ret,
"GetUrlCacheEntryInfo should have failed\n");
787 "expected ERROR_INSUFFICIENT_BUFFER, got %ld\n",
GetLastError());
795 cbCacheEntryInfo = 0;
797 ok(!
ret,
"GetUrlCacheEntryInfo should have failed\n");
799 "expected ERROR_INSUFFICIENT_BUFFER, got %ld\n",
GetLastError());
807 if (pDeleteUrlCacheEntryA) {
816 long_url[
sizeof(long_url)-1] = 0;
845 char encoded_url[128];
847 WCHAR header_info[128];
850 0, {
'h',
't',
't',
'p',
':',
'/',
'/',
'T',
'.',
'p',
'l',
'/',
't',0},
851 "http://T.pl/t", {0}, {0}
854 0, {
'w',
'w',
'w',
'.',
'T',
'.',
'p',
'l',
'/',
't',0},
855 "www.T.pl/t", {0}, {0}
858 0, {
'h',
't',
't',
'p',
':',
'/',
'/',
'w',
'w',
'w',
'.',
't',
'e',
's',
't',0x15b,0x107,
859 '.',
'o',
'r',
'g',
'/',
't',
'e',
's',
't',
'.',
'h',
't',
'm',
'l',0},
860 "http://www.xn--test-ota71c.org/test.html", {
't',
'x',
't',0}, {0}
863 0, {
'w',
'w',
'w',
'.',
'T',
'e',
's',
't',0x15b,0x107,
'.',
'o',
'r',
'g',
864 '/',
't',
'e',
's',
't',
'.',
'h',
't',
'm',
'l',0},
865 "www.Test\xc5\x9b\xc4\x87.org/test.html", {
'a',0x106,
'a',0}, {
'b',0x106,
'b',0}
868 0, {
'H',
't',
't',
'p',
's',
':',
'/',
'/',0x15b,0x15b,0x107,
'/',
't',0x107,
'/',
869 't',
'e',
's',
't',
'?',
'a',
'=',
'%',
'2',
'0',0x106,0},
870 "Https://xn--4da1oa/t\xc4\x87/test?a=%20\xc4\x86", {
'a',0x15b,
'a',0}, {
'b',0x15b,
'b',0}
873 12005, {
'h',
't',
't',
'p',
's',
':',
'/',
'/',
'/',
'/',0x107,
'.',
'o',
'r',
'g',
'/',
't',
'e',
's',
't',0},
877 0, {
'C',
'o',
'o',
'k',
'i',
'e',
':',
' ',
'u',
's',
'e',
'r',
'@',
't',
'e',
's',
't',
'.',
'o',
'r',
'g',
'/',0},
878 "Cookie: user@test.org/", {0}, {0}
881 static const FILETIME filetime_zero;
888 win_skip(
"urlcache unicode functions\n");
899 if(urls[
i].
err != 0) {
900 ok(!
ret,
"%ld) CreateUrlCacheEntryW succeeded\n",
i);
928 "%ld) entry_infoW->dwStructSize = %ld, expected %ld\n",
931 "%ld) entry_infoW->lpszSourceUrlName = %s\n",
934 "%ld) entry_infoA->lpszSourceUrlName = %s\n",
937 "%ld) entry_infoW->CacheEntryType = %lx, expected %lx\n",
940 "%ld) entry_infoW->dwUseCount = %ld, expected %ld\n",
943 "%ld) entry_infoW->dwHitRate = %ld, expected %ld\n",
946 "%ld) entry_infoW->dwSizeLow = %ld, expected %ld\n",
949 "%ld) entry_infoW->dwSizeHigh = %ld, expected %ld\n",
952 "%ld) entry_infoW->LastModifiedTime is incorrect\n",
i);
954 "%ld) entry_infoW->ExpireTime is incorrect\n",
i);
956 "%ld) entry_infoW->LastAccessTime is incorrect\n",
i);
958 "%ld) entry_infoW->LastSyncTime is incorrect\n",
i);
962 "%ld) entry_infoW->lpszLocalFileName = %s, expected %s\n",
965 if(!urls[
i].header_info[0]) {
966 ok(!entry_infoW->
lpHeaderInfo,
"entry_infoW->lpHeaderInfo != NULL\n");
969 "%ld) entry_infoW->lpHeaderInfo = %s\n",
973 if(!urls[
i].extension[0]) {
975 "%ld) entry_infoW->lpszFileExtension = %s\n",
981 "%ld) entry_infoW->lpszFileExtension = %s, expected %s\n",
988 if(pDeleteUrlCacheEntryA) {
989 ret = pDeleteUrlCacheEntryA(urls[
i].encoded_url);
1003 ok(0 ==
r,
"expected 0, got %d\n",
r);
1030 strcpy(
p,
"\\non\\existing\\path");
1035 "GetDiskInfoA succeeded\n");
1038 "got %lu expected ERROR_PATH_NOT_FOUND\n",
error);
1043 ok(!
ret,
"GetDiskInfoA succeeded\n");
1049 static char buf[10000];
1065 static const FILETIME filetime_zero;
1066 static char url_with_slash[] =
"http://testing.cache.com/";
1082 ok(
ret,
"DeleteCacheEntryA failed\n");
1090 const char *suffix =
"";
1091 const char *suffix_win8 =
"";
1098 suffix =
"\\Content.IE5\\";
1099 suffix_win8 =
"\\IE\\";
1110 suffix =
"\\History.IE5\\";
1111 suffix_win8 =
"\\History.IE5\\";
1115 ok(0,
"unexpected flags %#lx\n",
flags);
1123 strcat(path_win8, suffix_win8);
1161 info.dwStructSize =
td[
i].dwStructSize;
1175 ok(
info.dwStructSize ==
td[
i].dwStructSize,
"got %lu\n",
info.dwStructSize);
1177 "%d: expected %s or %s, got %s\n",
i,
path, path_win8,
info.CachePath);
1188 win_skip(
"Too old IE (older than 6.0)\n");
1195 trace(
"Running tests on IE10 or newer\n");
#define ERROR_INSUFFICIENT_BUFFER
#define ERROR_INVALID_PARAMETER
#define GetProcAddress(x, y)
#define INVALID_HANDLE_VALUE
#define CreateFileA(a, b, c, d, e, f, g)
#define HeapFree(x, y, z)
#define ERROR_INVALID_HANDLE
#define FILE_ATTRIBUTE_NORMAL
#define MultiByteToWideChar
BOOL WINAPI DeleteFileA(IN LPCSTR lpFileName)
BOOL WINAPI WriteFile(_In_ HANDLE hFile, _In_reads_bytes_opt_(nNumberOfBytesToWrite) LPCVOID lpBuffer, _In_ DWORD nNumberOfBytesToWrite, _Out_opt_ LPDWORD lpNumberOfBytesWritten, _Inout_opt_ LPOVERLAPPED lpOverlapped)
HMODULE WINAPI DECLSPEC_HOTPATCH GetModuleHandleA(LPCSTR lpModuleName)
UINT WINAPI GetSystemDirectoryA(OUT LPSTR lpBuffer, IN UINT uSize)
VOID WINAPI GetSystemTimeAsFileTime(OUT PFILETIME lpFileTime)
int WINAPI lstrcmpW(LPCWSTR str1, LPCWSTR str2)
int WINAPI lstrcmpA(LPCSTR str1, LPCSTR str2)
int WINAPI lstrcmpiA(LPCSTR str1, LPCSTR str2)
_ACRTIMP int __cdecl memcmp(const void *, const void *, size_t)
_ACRTIMP char *__cdecl strchr(const char *, int)
_ACRTIMP size_t __cdecl strlen(const char *)
_ACRTIMP int __cdecl strcmp(const char *, const char *)
BOOL WINAPI SHGetSpecialFolderPathA(HWND hwndOwner, LPSTR szPath, int nFolder, BOOL bCreate)
INTERNETAPI HANDLE WINAPI FindFirstUrlCacheEntryA(LPCSTR lpszUrlSearchPattern, LPINTERNET_CACHE_ENTRY_INFOA lpFirstCacheEntryInfo, LPDWORD lpdwFirstCacheEntryInfoBufferSize)
BOOL WINAPI GetUrlCacheEntryInfoA(LPCSTR lpszUrlName, LPINTERNET_CACHE_ENTRY_INFOA lpCacheEntryInfo, LPDWORD lpdwCacheEntryInfoBufferSize)
BOOL WINAPI FindCloseUrlCache(HANDLE hEnumHandle)
BOOL WINAPI DeleteUrlCacheEntryA(LPCSTR lpszUrlName)
BOOL WINAPI IsUrlCacheEntryExpiredA(LPCSTR url, DWORD dwFlags, FILETIME *pftLastModified)
BOOL WINAPI CreateUrlCacheEntryA(LPCSTR lpszUrlName, DWORD dwExpectedFileSize, LPCSTR lpszFileExtension, LPSTR lpszFileName, DWORD dwReserved)
BOOL WINAPI GetUrlCacheEntryInfoW(LPCWSTR lpszUrl, LPINTERNET_CACHE_ENTRY_INFOW lpCacheEntryInfo, LPDWORD lpdwCacheEntryInfoBufferSize)
BOOL WINAPI GetUrlCacheEntryInfoExA(LPCSTR lpszUrl, LPINTERNET_CACHE_ENTRY_INFOA lpCacheEntryInfo, LPDWORD lpdwCacheEntryInfoBufSize, LPSTR lpszReserved, LPDWORD lpdwReserved, LPVOID lpReserved, DWORD dwFlags)
BOOL WINAPI FindNextUrlCacheEntryA(HANDLE hEnumHandle, LPINTERNET_CACHE_ENTRY_INFOA lpNextCacheEntryInfo, LPDWORD lpdwNextCacheEntryInfoBufferSize)
BOOL WINAPI GetUrlCacheEntryInfoExW(LPCWSTR lpszUrl, LPINTERNET_CACHE_ENTRY_INFOW lpCacheEntryInfo, LPDWORD lpdwCacheEntryInfoBufSize, LPWSTR lpszReserved, LPDWORD lpdwReserved, LPVOID lpReserved, DWORD dwFlags)
BOOL WINAPI CreateUrlCacheEntryW(LPCWSTR lpszUrlName, DWORD dwExpectedFileSize, LPCWSTR lpszFileExtension, LPWSTR lpszFileName, DWORD dwReserved)
BOOL WINAPI CommitUrlCacheEntryA(LPCSTR lpszUrlName, LPCSTR lpszLocalFileName, FILETIME ExpireTime, FILETIME LastModifiedTime, DWORD CacheEntryType, LPBYTE lpHeaderInfo, DWORD dwHeaderSize, LPCSTR lpszFileExtension, LPCSTR lpszOriginalUrl)
BOOL WINAPI GetDiskInfoA(PCSTR path, PDWORD cluster_size, PDWORDLONG free, PDWORDLONG total)
BOOL WINAPI CommitUrlCacheEntryW(LPCWSTR lpszUrlName, LPCWSTR lpszLocalFileName, FILETIME ExpireTime, FILETIME LastModifiedTime, DWORD CacheEntryType, LPWSTR lpHeaderInfo, DWORD dwHeaderSize, LPCWSTR lpszFileExtension, LPCWSTR lpszOriginalUrl)
BOOL WINAPI SetUrlCacheEntryInfoA(LPCSTR lpszUrlName, LPINTERNET_CACHE_ENTRY_INFOA lpCacheEntryInfo, DWORD dwFieldControl)
BOOL WINAPI GetUrlCacheConfigInfoA(LPINTERNET_CACHE_CONFIG_INFOA info, LPDWORD size, DWORD flags)
BOOL WINAPI RetrieveUrlCacheEntryFileA(LPCSTR lpszUrlName, LPINTERNET_CACHE_ENTRY_INFOA lpCacheEntryInfo, LPDWORD lpdwCacheEntryInfoBufferSize, DWORD dwReserved)
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
GLdouble GLdouble GLdouble r
GLenum GLuint GLenum GLsizei const GLchar * buf
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
unsigned long long DWORDLONG
static int zero_byte(mpg123_handle *fr)
#define ERROR_FILE_NOT_FOUND
#define check_file_not_exists(f)
static void get_cache_path(DWORD flags, char path[MAX_PATH], char path_win8[MAX_PATH])
static void test_trailing_slash(void)
static void test_GetUrlCacheEntryInfoExA(void)
static void test_GetUrlCacheConfigInfo(void)
static const char test_hash_collisions2[]
static char filenameA[MAX_PATH+1]
static void _check_file_not_exists(LONG l, LPCSTR filename)
static void test_FindCloseUrlCache(void)
static void check_cache_entry_infoA(const char *returnedfrom, INTERNET_CACHE_ENTRY_INFOA *lpCacheEntryInfo)
static void test_IsUrlCacheEntryExpiredA(void)
static const char test_url1[]
static void test_urlcacheA(void)
static const WCHAR test_urlW[]
static void test_urlcacheW(void)
static char filenameA1[MAX_PATH+1]
static const char test_url[]
static void test_RetrieveUrlCacheEntryA(void)
static BOOL cache_entry_exists(const char *url)
static void _check_file_exists(LONG l, LPCSTR filename)
static void test_find_url_cache_entriesA(void)
static void create_and_write_file(LPCSTR filename, void *data, DWORD len)
static void test_GetDiskInfoA(void)
#define check_file_exists(f)
static const char test_hash_collisions1[]
#define CSIDL_INTERNET_CACHE
FILETIME LastModifiedTime
FILETIME LastModifiedTime
struct _ULARGE_INTEGER::@5176 u
SYMCRYPT_MAGIC_FIELD union @5329 td
VOID WINAPI DECLSPEC_HOTPATCH Sleep(IN DWORD dwMilliseconds)
DWORD WINAPI GetLastError(void)
#define ERROR_SHARING_VIOLATION
#define ERROR_PATH_NOT_FOUND
#define ERROR_INVALID_DATA
struct _INTERNET_CACHE_ENTRY_INFOA INTERNET_CACHE_ENTRY_INFOA
#define COOKIE_CACHE_ENTRY
#define URLHISTORY_CACHE_ENTRY
#define CACHE_ENTRY_EXPTIME_FC
#define CACHE_ENTRY_EXEMPT_DELTA_FC
#define CACHE_ENTRY_ATTRIBUTE_FC
#define NORMAL_CACHE_ENTRY
#define STICKY_CACHE_ENTRY
#define CACHE_ENTRY_MODTIME_FC
#define CACHE_CONFIG_CONTENT_PATHS_FC
#define CACHE_CONFIG_HISTORY_PATHS_FC
#define CACHE_CONFIG_COOKIES_PATHS_FC