21#define NONAMELESSUNION
22#define NONAMELESSSTRUCT
37static const char test_url[] =
"http://urlcachetest.winehq.org/index.html";
38static 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};
40static 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");
char * strcat(char *DstString, const char *SrcString)
int strcmp(const char *String1, const char *String2)
int memcmp(void *Buffer1, void *Buffer2, ACPI_SIZE Count)
ACPI_SIZE strlen(const char *String)
char * strcpy(char *DstString, const char *SrcString)
char * strchr(const char *String, int ch)
#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 LPCVOID lpBuffer, IN DWORD nNumberOfBytesToWrite OPTIONAL, OUT LPDWORD lpNumberOfBytesWritten, IN LPOVERLAPPED lpOverlapped OPTIONAL)
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)
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::@4136 u
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