CKM: permanent test re-factored: no dependency on previous test execution. 27/40727/2
authorMaciej J. Karpiuk <m.karpiuk2@samsung.com>
Wed, 3 Jun 2015 11:43:56 +0000 (13:43 +0200)
committerMaciej J. Karpiuk <m.karpiuk2@samsung.com>
Mon, 8 Jun 2015 11:03:20 +0000 (13:03 +0200)
Change-Id: I7b86d628cb2e8dca41d6e647e55341e7788a0aed

src/ckm/main.cpp

index b79563e..9c41077 100644 (file)
@@ -2312,52 +2312,57 @@ RUNNER_TEST(T14189_deinit)
 
 RUNNER_TEST_GROUP_INIT(T151_CKM_STORAGE_PERNAMENT_TESTS);
 
+namespace {
+CKM::Alias certeeAlias("CertEE");
+CKM::Alias certimAlias("CertIM");
+}
 RUNNER_CHILD_TEST(T1510_init_unlock_key)
 {
-    int tmp;
+    reset_user_data(USER_TEST, "strong-password");
+
+    // initial DB feed
     AccessProvider ap("my-label");
-    ap.allowAPI("key-manager::api-control", "rw");
+    ap.allowAPI("key-manager::api-storage", "rw");
     ap.applyAndSwithToUser(USER_TEST, GROUP_APP);
 
-    auto control = CKM::Control::create();
-    RUNNER_ASSERT_MSG(
-        CKM_API_SUCCESS == (tmp = control->unlockUserKey(USER_TEST, "strong-password")),
-        "Error=" << CKM::ErrorToString(tmp));
+    auto manager = CKM::Manager::create();
+    auto certee = TestData::getTestCertificate(TestData::MBANK);
+    auto certim = TestData::getTestCertificate(TestData::SYMANTEC);
+    RUNNER_ASSERT(CKM_API_SUCCESS == manager->saveCertificate(certeeAlias, certee, CKM::Policy()));
+    RUNNER_ASSERT(CKM_API_SUCCESS == manager->saveCertificate(certimAlias, certim, CKM::Policy()));
+}
+
+RUNNER_TEST(T1511_restart_CKM)
+{
+    // restart CKM
+    stop_service(MANAGER);
+    start_service(MANAGER);
+    unlock_user_data(USER_TEST, "strong-password");
 }
 
-RUNNER_CHILD_TEST(T1511_insert_data)
+RUNNER_CHILD_TEST(T1512_check_data_exists)
 {
+    // actual test
     AccessProvider ap("my-label");
     ap.allowAPI("key-manager::api-storage", "rw");
     ap.applyAndSwithToUser(USER_TEST, GROUP_APP);
 
+    auto manager = CKM::Manager::create();
     auto certee = TestData::getTestCertificate(TestData::MBANK);
     auto certim = TestData::getTestCertificate(TestData::SYMANTEC);
-
-    auto manager = CKM::Manager::create();
-    int status1 = manager->saveCertificate(CKM::Alias("CertEE"), certee, CKM::Policy());
-    int status2 = manager->saveCertificate(CKM::Alias("CertIM"), certim, CKM::Policy());
-
+    int status1 = manager->saveCertificate(certeeAlias, certee, CKM::Policy());
+    int status2 = manager->saveCertificate(certimAlias, certim, CKM::Policy());
     RUNNER_ASSERT_MSG(
         CKM_API_ERROR_DB_ALIAS_EXISTS == status1,
         "Certificate should be in database already. Error=" << CKM::ErrorToString(status1));
-
     RUNNER_ASSERT_MSG(
         CKM_API_ERROR_DB_ALIAS_EXISTS == status2,
         "Certificate should be in database already. Error=" << CKM::ErrorToString(status2));
 }
 
-RUNNER_CHILD_TEST(T1519_deinit)
+RUNNER_TEST(T1519_deinit)
 {
-    int tmp;
-    AccessProvider ap("my-label");
-    ap.allowAPI("key-manager::api-control", "rw");
-    ap.applyAndSwithToUser(USER_APP, GROUP_APP);
-
-    auto control = CKM::Control::create();
-    RUNNER_ASSERT_MSG(
-        CKM_API_SUCCESS == (tmp = control->lockUserKey(USER_TEST)),
-        "Error=" << CKM::ErrorToString(tmp));
+    remove_user_data(USER_TEST);
 }