Paul Vriens : wintrust/tests: Add a few tests.
Alexandre Julliard
julliard at winehq.org
Thu Jan 8 08:31:16 CST 2009
Module: wine
Branch: master
Commit: 5bfed84410ef6c359fb107f3a87c75ddf46abd89
URL: http://source.winehq.org/git/wine.git/?a=commit;h=5bfed84410ef6c359fb107f3a87c75ddf46abd89
Author: Paul Vriens <Paul.Vriens.Wine at gmail.com>
Date: Wed Jan 7 22:25:28 2009 +0100
wintrust/tests: Add a few tests.
---
dlls/wintrust/tests/crypt.c | 62 +++++++++++++++++++++++++++++++++++++-----
1 files changed, 54 insertions(+), 8 deletions(-)
diff --git a/dlls/wintrust/tests/crypt.c b/dlls/wintrust/tests/crypt.c
index f9a57af..b1b7bc5 100644
--- a/dlls/wintrust/tests/crypt.c
+++ b/dlls/wintrust/tests/crypt.c
@@ -29,6 +29,8 @@
static char selfname[MAX_PATH];
static CHAR CURR_DIR[MAX_PATH];
+static CHAR catroot[MAX_PATH];
+static CHAR catroot2[MAX_PATH];
/*
* Minimalistic catalog file. To reconstruct, save text below as winetest.cdf,
@@ -123,7 +125,7 @@ static void test_context(void)
BOOL ret;
HCATADMIN hca;
static GUID unknown = { 0xC689AABA, 0x8E78, 0x11D0, { 0x8C,0x47,0x00,0xC0,0x4F,0xC2,0x95,0xEE }}; /* WINTRUST.DLL */
- CHAR windir[MAX_PATH], catroot[MAX_PATH], catroot2[MAX_PATH], dummydir[MAX_PATH];
+ CHAR dummydir[MAX_PATH];
DWORD attrs;
/* When CryptCATAdminAcquireContext is successful it will create
@@ -208,12 +210,6 @@ static void test_context(void)
ok(ret, "Expected success\n");
ok(hca != NULL, "Expected a context handle, got NULL\n");
- GetWindowsDirectoryA(windir, MAX_PATH);
- lstrcpyA(catroot, windir);
- lstrcatA(catroot, "\\system32\\CatRoot");
- lstrcpyA(catroot2, windir);
- lstrcatA(catroot2, "\\system32\\CatRoot2");
-
attrs = GetFileAttributes(catroot);
ok(attrs != INVALID_FILE_ATTRIBUTES, "Expected the CatRoot directory to exist\n");
@@ -354,14 +350,18 @@ static void test_calchash(void)
static void test_CryptCATAdminAddRemoveCatalog(void)
{
static WCHAR basenameW[] = {'w','i','n','e','t','e','s','t','.','c','a','t',0};
+ static CHAR basename[] = "winetest.cat";
HCATADMIN hcatadmin;
HCATINFO hcatinfo;
CATALOG_INFO info;
WCHAR tmpfileW[MAX_PATH];
char tmpfile[MAX_PATH];
+ char catfile[MAX_PATH], catfilepath[MAX_PATH], *p;
+ WCHAR catfileW[MAX_PATH];
HANDLE file;
DWORD error, written;
BOOL ret;
+ DWORD attrs;
if (!pCryptCATAdminRemoveCatalog)
{
@@ -419,22 +419,61 @@ static void test_CryptCATAdminAddRemoveCatalog(void)
WriteFile(file, test_catalog, sizeof(test_catalog), &written, NULL);
CloseHandle(file);
+ /* Unique name will be created */
hcatinfo = pCryptCATAdminAddCatalog(hcatadmin, tmpfileW, NULL, 0);
todo_wine ok(hcatinfo != NULL, "CryptCATAdminAddCatalog failed %u\n", GetLastError());
+ info.cbStruct = sizeof(info);
+ info.wszCatalogFile[0] = 0;
+ ret = pCryptCATCatalogInfoFromContext(hcatinfo, &info, 0);
+ todo_wine
+ {
+ ok(ret, "CryptCATCatalogInfoFromContext failed %u\n", GetLastError());
+ ok(info.wszCatalogFile[0] != 0, "Expected a filename\n");
+ }
+ WideCharToMultiByte(CP_ACP, 0, info.wszCatalogFile, -1, catfile, MAX_PATH, 0, 0);
+ if ((p = strrchr(catfile, '\\'))) p++;
+ MultiByteToWideChar(0, 0, p, -1, catfileW, MAX_PATH);
+
+ /* winetest.cat will be created */
hcatinfo = pCryptCATAdminAddCatalog(hcatadmin, tmpfileW, basenameW, 0);
ok(hcatinfo != NULL, "CryptCATAdminAddCatalog failed %u\n", GetLastError());
+ lstrcpyA(catfilepath, catroot);
+ lstrcatA(catfilepath, "\\{DEADBEEF-DEAD-BEEF-DEAD-BEEFDEADBEEF}\\winetest.cat");
+ attrs = GetFileAttributes(catfilepath);
+ ok(attrs != INVALID_FILE_ATTRIBUTES, "Expected %s to exist\n", catfilepath);
+
info.cbStruct = sizeof(info);
info.wszCatalogFile[0] = 0;
ret = pCryptCATCatalogInfoFromContext(hcatinfo, &info, 0);
ok(ret, "CryptCATCatalogInfoFromContext failed %u\n", GetLastError());
+ ok(info.wszCatalogFile[0] != 0, "Expected a filename\n");
+ WideCharToMultiByte(CP_ACP, 0, info.wszCatalogFile, -1, catfile, MAX_PATH, 0, 0);
+ if ((p = strrchr(catfile, '\\'))) p++;
+ ok(!lstrcmpA(basename, p), "Expected %s, got %s\n", basename, p);
ret = pCryptCATAdminReleaseCatalogContext(hcatadmin, hcatinfo, 0);
ok(ret, "CryptCATAdminReleaseCatalogContext failed %u\n", GetLastError());
- ret = pCryptCATAdminRemoveCatalog(hcatadmin, tmpfileW, 0);
+ /* Remove the catalog file with the unique name */
+ ret = pCryptCATAdminRemoveCatalog(hcatadmin, catfileW, 0);
+ todo_wine
+ ok(ret, "CryptCATAdminRemoveCatalog failed %u\n", GetLastError());
+
+ /* Remove the winetest.cat catalog file, first with the full path. This should not succeed
+ * according to MSDN */
+ ret = pCryptCATAdminRemoveCatalog(hcatadmin, info.wszCatalogFile, 0);
+ ok(ret, "CryptCATAdminRemoveCatalog failed %u\n", GetLastError());
+ /* The call succeeds but the file is not removed */
+ attrs = GetFileAttributes(catfilepath);
+ todo_wine
+ ok(attrs != INVALID_FILE_ATTRIBUTES, "Expected %s to exist\n", catfilepath);
+ ret = pCryptCATAdminRemoveCatalog(hcatadmin, basenameW, 0);
+ todo_wine
ok(ret, "CryptCATAdminRemoveCatalog failed %u\n", GetLastError());
+ attrs = GetFileAttributes(catfilepath);
+ ok(attrs == INVALID_FILE_ATTRIBUTES, "Expected %s to be removed\n", catfilepath);
ret = pCryptCATAdminReleaseContext(hcatadmin, 0);
ok(ret, "CryptCATAdminReleaseContext failed %u\n", GetLastError());
@@ -506,6 +545,7 @@ START_TEST(crypt)
{
int myARGC;
char** myARGV;
+ char windir[MAX_PATH];
InitFunctionPtrs();
@@ -515,6 +555,12 @@ START_TEST(crypt)
return;
}
+ GetWindowsDirectoryA(windir, MAX_PATH);
+ lstrcpyA(catroot, windir);
+ lstrcatA(catroot, "\\system32\\CatRoot");
+ lstrcpyA(catroot2, windir);
+ lstrcatA(catroot2, "\\system32\\CatRoot2");
+
myARGC = winetest_get_mainargs(&myARGV);
strcpy(selfname, myARGV[0]);
More information about the wine-cvs
mailing list