Detlef Riekenberg : advapi32/tests: Add tests for CredIsMarshaledCredential .
Alexandre Julliard
julliard at winehq.org
Thu Jul 12 18:00:34 CDT 2012
Module: wine
Branch: master
Commit: d685894a45d98d2f507b02e8a42124aa48d86eb9
URL: http://source.winehq.org/git/wine.git/?a=commit;h=d685894a45d98d2f507b02e8a42124aa48d86eb9
Author: Detlef Riekenberg <wine.dev at web.de>
Date: Sat Jul 7 00:36:28 2012 +0200
advapi32/tests: Add tests for CredIsMarshaledCredential.
---
dlls/advapi32/tests/cred.c | 64 ++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 64 insertions(+), 0 deletions(-)
diff --git a/dlls/advapi32/tests/cred.c b/dlls/advapi32/tests/cred.c
index 3aaae4c..5762f1b 100644
--- a/dlls/advapi32/tests/cred.c
+++ b/dlls/advapi32/tests/cred.c
@@ -37,6 +37,7 @@ static BOOL (WINAPI *pCredWriteA)(PCREDENTIALA,DWORD);
static BOOL (WINAPI *pCredReadDomainCredentialsA)(PCREDENTIAL_TARGET_INFORMATIONA,DWORD,DWORD*,PCREDENTIALA**);
static BOOL (WINAPI *pCredMarshalCredentialA)(CRED_MARSHAL_TYPE,PVOID,LPSTR *);
static BOOL (WINAPI *pCredUnmarshalCredentialA)(LPCSTR,PCRED_MARSHAL_TYPE,PVOID);
+static BOOL (WINAPI *pCredIsMarshaledCredentialA)(LPCSTR);
#define TEST_TARGET_NAME "credtest.winehq.org"
#define TEST_TARGET_NAME2 "credtest2.winehq.org"
@@ -630,6 +631,67 @@ static void test_CredUnmarshalCredentialA(void)
pCredFree( username );
}
+static void test_CredIsMarshaledCredentialA(void)
+{
+ int i;
+ BOOL res;
+ BOOL expected = TRUE;
+
+ const char * ptr[] = {
+ /* CertCredential */
+ "@@BXlmblBAAAAAAAAAAAAAAAAAAAAA", /* hash for 'W','i','n','e' */
+ "@@BAAAAAAAAAAAAAAAAAAAAAAAAAAA", /* hash for all 0 */
+
+ /* UsernameTargetCredential */
+ "@@CCAAAAA0BA", /* "t" */
+ "@@CIAAAAA0BQZAMHA0BA", /* "test" */
+
+ /* todo: BinaryBlobCredential */
+
+ /* not marshaled names return always FALSE */
+ "winetest",
+ "",
+ "@@",
+ "@@A",
+ "@@AA",
+ "@@AAA",
+ "@@B",
+ "@@BB",
+ "@@BBB",
+
+ /* CertCredential */
+ "@@BAAAAAAAAAAAAAAAAAAAAAAAAAAAA", /* to long */
+ "@@BAAAAAAAAAAAAAAAAAAAAAAAAAA", /* to short */
+ "@@BAAAAAAAAAAAAAAAAAAAAAAAAAA+", /* bad char */
+ "@@BAAAAAAAAAAAAAAAAAAAAAAAAAA:",
+ "@@BAAAAAAAAAAAAAAAAAAAAAAAAAA>",
+ "@@BAAAAAAAAAAAAAAAAAAAAAAAAAA<",
+
+ "@@C",
+ "@@CC",
+ "@@CCC",
+ "@@D",
+ "@@DD",
+ "@@DDD",
+ NULL};
+
+ for (i = 0; ptr[i]; i++)
+ {
+ if (*ptr[i] != '@')
+ expected = FALSE;
+
+ SetLastError(0xdeadbeef);
+ res = pCredIsMarshaledCredentialA(ptr[i]);
+ if (expected)
+ ok(res != FALSE, "%d: got %d and %u for %s (expected TRUE)\n", i, res, GetLastError(), ptr[i]);
+ else
+ {
+ /* Windows returns ERROR_INVALID_PARAMETER here, but that's not documented */
+ ok(!res, "%d: got %d and %u for %s (expected FALSE)\n", i, res, GetLastError(), ptr[i]);
+ }
+ }
+}
+
START_TEST(cred)
{
DWORD persists[CRED_TYPE_MAXIMUM];
@@ -644,6 +706,7 @@ START_TEST(cred)
pCredReadDomainCredentialsA = (void *)GetProcAddress(GetModuleHandle("advapi32.dll"), "CredReadDomainCredentialsA");
pCredMarshalCredentialA = (void *)GetProcAddress(GetModuleHandle("advapi32.dll"), "CredMarshalCredentialA");
pCredUnmarshalCredentialA = (void *)GetProcAddress(GetModuleHandle("advapi32.dll"), "CredUnmarshalCredentialA");
+ pCredIsMarshaledCredentialA = (void *)GetProcAddress(GetModuleHandle("advapi32.dll"), "CredIsMarshaledCredentialA");
if (!pCredEnumerateA || !pCredFree || !pCredWriteA || !pCredDeleteA || !pCredReadA)
{
@@ -690,4 +753,5 @@ START_TEST(cred)
test_CredMarshalCredentialA();
test_CredUnmarshalCredentialA();
+ test_CredIsMarshaledCredentialA();
}
More information about the wine-cvs
mailing list