CKM: Add test for empty certificate in getCertificateChain 21/42821/2
authorKrzysztof Jackiewicz <k.jackiewicz@samsung.com>
Thu, 2 Jul 2015 14:09:13 +0000 (16:09 +0200)
committerKrzysztof Jackiewicz <k.jackiewicz@samsung.com>
Mon, 27 Jul 2015 14:01:29 +0000 (07:01 -0700)
[Problem] No test checking getCertificateChain behavior with empty certificate.
[Solution] Tests added.

[Verification] Run ckm-tests --regexp=T13122_get_chain_empty_cert &&
ckm-tests --regexp=T13121_get_chain_no_cert

Change-Id: I1b64facec253d4ec57d0955ef5e441c3ba958012

src/ckm/main.cpp

index bb8ecfd..eed138f 100644 (file)
@@ -1318,7 +1318,40 @@ RUNNER_TEST(T1311_init)
         "is not woking on the device. OCSP tests requires network access!");
 }
 
-RUNNER_TEST(T1312_get_chain)
+RUNNER_TEST(T13121_get_chain_no_cert)
+{
+    CKM::CertificateShPtrVector certChain;
+    CKM::CertificateShPtr cert;
+
+    auto manager = CKM::Manager::create();
+
+    int ret = manager->getCertificateChain(cert,
+                                       EMPTY_CERT_VECTOR,
+                                       EMPTY_CERT_VECTOR,
+                                       true,
+                                       certChain);
+    RUNNER_ASSERT_MSG(CKM_API_ERROR_INPUT_PARAM == ret,
+                         "Function should fail for empty certificate");
+}
+
+RUNNER_TEST(T13122_get_chain_empty_cert)
+{
+    CKM::CertificateShPtrVector certChain;
+    CKM::CertificateShPtr cert = CKM::Certificate::create(CKM::RawBuffer(),
+                                                          CKM::DataFormat::FORM_PEM);
+
+    auto manager = CKM::Manager::create();
+
+    int ret = manager->getCertificateChain(cert,
+                                       EMPTY_CERT_VECTOR,
+                                       EMPTY_CERT_VECTOR,
+                                       true,
+                                       certChain);
+    RUNNER_ASSERT_MSG(CKM_API_ERROR_INPUT_PARAM == ret,
+                         "Function should fail for empty certificate");
+}
+
+RUNNER_TEST(T13129_get_chain)
 {
     auto cert = TestData::getTestCertificate(TestData::MBANK);
     auto cert1 = TestData::getTestCertificate(TestData::SYMANTEC);