Module: wine Branch: master Commit: ecbb3c3f18f261aa4a1e5532af9267dbed6cef3a URL: http://source.winehq.org/git/wine.git/?a=commit;h=ecbb3c3f18f261aa4a1e5532af...
Author: Juan Lang juan.lang@gmail.com Date: Tue Jun 15 11:23:35 2010 -0700
crypt32/tests: Test opening serialized stores.
---
dlls/crypt32/tests/store.c | 67 ++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 67 insertions(+), 0 deletions(-)
diff --git a/dlls/crypt32/tests/store.c b/dlls/crypt32/tests/store.c index de5a9d4..652eac9 100644 --- a/dlls/crypt32/tests/store.c +++ b/dlls/crypt32/tests/store.c @@ -1764,6 +1764,72 @@ static void testMessageStore(void) "Expected CRYPT_E_ASN1_BADTAG, got %08x\n", GetLastError()); }
+static void testSerializedStore(void) +{ + HCERTSTORE store; + CRYPT_DATA_BLOB blob; + + if (0) + { + /* Crash */ + store = CertOpenStore(CERT_STORE_PROV_SERIALIZED, 0, 0, 0, NULL); + store = CertOpenStore(CERT_STORE_PROV_SERIALIZED, 0, 0, + CERT_STORE_DELETE_FLAG, NULL); + } + blob.cbData = sizeof(serializedStoreWithCert); + blob.pbData = (BYTE *)serializedStoreWithCert; + store = CertOpenStore(CERT_STORE_PROV_SERIALIZED, 0, 0, + CERT_STORE_DELETE_FLAG, &blob); + todo_wine + ok(!store && GetLastError() == ERROR_CALL_NOT_IMPLEMENTED, + "Expected ERROR_CALL_NOT_IMPLEMENTED, got %08x\n", GetLastError()); + store = CertOpenStore(CERT_STORE_PROV_SERIALIZED, 0, 0, 0, &blob); + todo_wine + ok(store != NULL, "CertOpenStore failed: %08x\n", GetLastError()); + if (store) + { + PCCERT_CONTEXT cert; + PCCRL_CONTEXT crl; + + cert = CertEnumCertificatesInStore(store, NULL); + ok(cert != NULL, "CertEnumCertificatesInStore failed: %08x\n", + GetLastError()); + cert = CertEnumCertificatesInStore(store, cert); + ok(!cert, "Expected only one cert\n"); + if (pCertEnumCRLsInStore) + { + crl = pCertEnumCRLsInStore(store, NULL); + ok(!crl, "Expected no CRLs\n"); + } + CertCloseStore(store, 0); + } + blob.cbData = sizeof(serializedStoreWithCertAndCRL); + blob.pbData = (BYTE *)serializedStoreWithCertAndCRL; + store = CertOpenStore(CERT_STORE_PROV_SERIALIZED, 0, 0, 0, &blob); + todo_wine + ok(store != NULL, "CertOpenStore failed: %08x\n", GetLastError()); + if (store) + { + PCCERT_CONTEXT cert; + PCCRL_CONTEXT crl; + + cert = CertEnumCertificatesInStore(store, NULL); + ok(cert != NULL, "CertEnumCertificatesInStore failed: %08x\n", + GetLastError()); + cert = CertEnumCertificatesInStore(store, cert); + ok(!cert, "Expected only one cert\n"); + if (pCertEnumCRLsInStore) + { + crl = pCertEnumCRLsInStore(store, NULL); + ok(crl != NULL, "CertEnumCRLsInStore failed: %08x\n", + GetLastError()); + crl = pCertEnumCRLsInStore(store, crl); + ok(!crl, "Expected only one CRL\n"); + } + CertCloseStore(store, 0); + } +} + static void testCertOpenSystemStore(void) { HCERTSTORE store; @@ -2520,6 +2586,7 @@ START_TEST(store) testFileStore(); testFileNameStore(); testMessageStore(); + testSerializedStore();
testCertOpenSystemStore(); testCertEnumSystemStore();