Add additional tests for password service.
authorBartlomiej Grzelewski <b.grzelewski@samsung.com>
Mon, 27 Jan 2014 15:26:38 +0000 (16:26 +0100)
committerMarcin Niesluchowski <m.niesluchow@samsung.com>
Wed, 12 Mar 2014 11:02:35 +0000 (12:02 +0100)
[Issue#]      N/A
[Bug/Problem] Security-server set up wrong value as validSec when
              password validity time was set as "never expired".
[Cause]       N/A
[Solution]    N/A

[Verification] Build, run tests.

Change-Id: I2fa830899786ee72f4d24ac3f1a9cd771527552e

tests/security-server-tests/security_server_tests_password.cpp

index 4f63cdae43a4c8011c1de02ec05e8b4e862d4d28..25fdcc4c8cdc2b92e8d60b71de8a92d8703667b9 100644 (file)
@@ -47,6 +47,27 @@ const char* FOURTH_TEST_PASSWORD =  "FOURTHPASS";
 
 RUNNER_TEST_GROUP_INIT(SECURITY_SERVER_TESTS_PASSWORD);
 
+struct SystemClock {
+    SystemClock(time_t shift)
+      : m_original(time(0))
+    {
+        time_t shifted = m_original + shift;
+        RUNNER_ASSERT_BT(0 == stime(&shifted));
+    }
+
+    ~SystemClock() {
+        if (std::uncaught_exception()) {
+            stime(&m_original);
+            return;
+        }
+
+        RUNNER_ASSERT_BT(0 == stime(&m_original));
+    }
+private:
+    time_t m_original;
+};
+
+
 /**
  * Confirm there is no password before tests are run.
  */
@@ -1450,6 +1471,44 @@ RUNNER_TEST(tc50_security_server_set_pwd_current_pwd_with_infinite_expiration_ti
     clean_password_dir();
 }
 
+RUNNER_TEST(tc51_security_server_is_pwd_valid)
+{
+    reset_security_server();
+
+    int ret = security_server_set_pwd(NULL, TEST_PASSWORD, 0, 1);
+    RUNNER_ASSERT_MSG_BT(ret == SECURITY_SERVER_API_SUCCESS, "ret = " << ret);
+
+    unsigned int attempt, maxAttempt, validSec;
+    attempt = maxAttempt = validSec = 0;
+
+    ret = security_server_is_pwd_valid(&attempt, &maxAttempt, &validSec);
+    RUNNER_ASSERT_MSG_BT(ret == SECURITY_SERVER_API_ERROR_PASSWORD_EXIST, "ret = " << ret <<
+        " atempt=" << attempt << " maxAttempt=" << maxAttempt << " validSec=" << validSec);
+
+
+    SystemClock clock(60*60*24*2);
+
+    ret = security_server_is_pwd_valid(&attempt, &maxAttempt, &validSec);
+    RUNNER_ASSERT_MSG_BT((ret == SECURITY_SERVER_API_ERROR_PASSWORD_EXIST) && (validSec == 0),
+        "ret = " << ret << " atempt=" << attempt << " maxAttempt=" << maxAttempt
+        << " validSec=" << validSec);
+}
+
+RUNNER_TEST(tc52_security_server_is_pwd_valid)
+{
+    reset_security_server();
+
+    int ret = security_server_set_pwd(NULL, TEST_PASSWORD, 0, 0);
+    RUNNER_ASSERT_MSG_BT(ret == SECURITY_SERVER_API_SUCCESS, "ret = " << ret);
+
+    unsigned int attempt, maxAttempt, validSec;
+    attempt = maxAttempt = validSec = 0;
+
+    ret = security_server_is_pwd_valid(&attempt, &maxAttempt, &validSec);
+    RUNNER_ASSERT_MSG_BT((ret == SECURITY_SERVER_API_ERROR_PASSWORD_EXIST) && (validSec == 0xffffffff), "ret = " << ret <<
+        " atempt=" << attempt << " maxAttempt=" << maxAttempt << " validSec=" << validSec);
+}
+
 int main(int argc, char *argv[])
 {
     SummaryCollector::Register();