Add unit test to increase coverage
[platform/core/api/system-settings.git] / tests / sst_gtest_vconf.cpp
index 67c80ae..56a8fb7 100644 (file)
 #include <string.h>
 #include <glib.h>
 #include <gtest/gtest.h>
+#include <vconf.h>
 
 #include "system_settings.h"
+#include "mocks/sstt_mock.h"
 
 extern "C" {
 #include "sst.h"
@@ -41,10 +43,10 @@ protected:
 
        static gboolean checkCallbackIdle(gpointer data)
        {
-               bool *oldVal = (bool*)data;
-               int ret = system_settings_get_value_bool(SYSTEM_SETTINGS_KEY_MOTION_ACTIVATION, oldVal);
+               bool *val = (bool*)data;
+               int ret = system_settings_get_value_bool(SYSTEM_SETTINGS_KEY_MOTION_ACTIVATION, val);
                EXPECT_EQ(SYSTEM_SETTINGS_ERROR_NONE, ret);
-               ret = system_settings_set_value_bool(SYSTEM_SETTINGS_KEY_MOTION_ACTIVATION, !(*oldVal));
+               ret = system_settings_set_value_bool(SYSTEM_SETTINGS_KEY_MOTION_ACTIVATION, !(*val));
                EXPECT_EQ(SYSTEM_SETTINGS_ERROR_NONE, ret);
 
                return G_SOURCE_REMOVE;
@@ -87,28 +89,50 @@ TEST(SstVconfTest, getValueInt)
        sst_interface *iface;
        int ret = sst_get_interface(SYSTEM_SETTINGS_KEY_SCREEN_BACKLIGHT_TIME, &iface);
        EXPECT_EQ(SYSTEM_SETTINGS_ERROR_NONE, ret);
+
+       sstm_vconf_get_int_setup(VCONFKEY_SETAPPL_LCD_TIMEOUT_NORMAL, 60, 0);
        ret = sst_vconf_get_int(iface, &val);
        EXPECT_EQ(SYSTEM_SETTINGS_ERROR_NONE, ret);
 }
 
+TEST(SstVconfTest, getValueIntERR)
+{
+       int val;
+       sst_interface *iface;
+       int ret = sst_get_interface(SYSTEM_SETTINGS_KEY_SCREEN_BACKLIGHT_TIME, &iface);
+       EXPECT_EQ(SYSTEM_SETTINGS_ERROR_NONE, ret);
+
+       sstm_vconf_get_int_setup(VCONFKEY_SETAPPL_LCD_TIMEOUT_NORMAL, 60, -1);
+       ret = sst_vconf_get_int(iface, &val);
+       EXPECT_EQ(SYSTEM_SETTINGS_ERROR_IO_ERROR, ret);
+}
+
 TEST(SstVconfTest, setValueInt)
 {
-       int oldVal;
        int getVal;
        int setVal = 60;
        sst_interface *iface;
        int ret = sst_get_interface(SYSTEM_SETTINGS_KEY_SCREEN_BACKLIGHT_TIME, &iface);
        EXPECT_EQ(SYSTEM_SETTINGS_ERROR_NONE, ret);
-       ret = sst_vconf_get_int(iface, &oldVal);
-       EXPECT_EQ(SYSTEM_SETTINGS_ERROR_NONE, ret);
+
+       sstm_vconf_set_int_setup(VCONFKEY_SETAPPL_LCD_TIMEOUT_NORMAL, 0);
 
        ret = sst_vconf_set_int(iface, setVal);
        EXPECT_EQ(SYSTEM_SETTINGS_ERROR_NONE, ret);
        ret = sst_vconf_get_int(iface, &getVal);;
        EXPECT_EQ(SYSTEM_SETTINGS_ERROR_NONE, ret);
        EXPECT_EQ(setVal, getVal);
-       ret = sst_vconf_set_int(iface, oldVal);
+}
+
+TEST(SstVconfTest, setValueIntERR)
+{
+       sst_interface *iface;
+       int ret = sst_get_interface(SYSTEM_SETTINGS_KEY_SCREEN_BACKLIGHT_TIME, &iface);
        EXPECT_EQ(SYSTEM_SETTINGS_ERROR_NONE, ret);
+
+       sstm_vconf_set_int_setup(VCONFKEY_SETAPPL_LCD_TIMEOUT_NORMAL, -1);
+       ret = sst_vconf_set_int(iface, 60);
+       EXPECT_EQ(SYSTEM_SETTINGS_ERROR_IO_ERROR, ret);
 }
 
 TEST(SstVconfTest, getValueBool)
@@ -117,10 +141,24 @@ TEST(SstVconfTest, getValueBool)
        sst_interface *iface;
        int ret = sst_get_interface(SYSTEM_SETTINGS_KEY_MOTION_ACTIVATION, &iface);
        EXPECT_EQ(SYSTEM_SETTINGS_ERROR_NONE, ret);
+
+       sstm_vconf_get_bool_setup(VCONFKEY_SETAPPL_MOTION_ACTIVATION, false, 0);
        ret = sst_vconf_get_bool(iface, &val);
        EXPECT_EQ(SYSTEM_SETTINGS_ERROR_NONE, ret);
 }
 
+TEST(SstVconfTest, getValueBoolERR)
+{
+       bool val;
+       sst_interface *iface;
+       int ret = sst_get_interface(SYSTEM_SETTINGS_KEY_MOTION_ACTIVATION, &iface);
+       EXPECT_EQ(SYSTEM_SETTINGS_ERROR_NONE, ret);
+
+       sstm_vconf_get_bool_setup(VCONFKEY_SETAPPL_MOTION_ACTIVATION, false, -1);
+       ret = sst_vconf_get_bool(iface, &val);
+       EXPECT_EQ(SYSTEM_SETTINGS_ERROR_IO_ERROR, ret);
+}
+
 TEST(SstVconfTest, setValueBool)
 {
        bool getVal;
@@ -128,6 +166,8 @@ TEST(SstVconfTest, setValueBool)
        sst_interface *iface;
        int ret = sst_get_interface(SYSTEM_SETTINGS_KEY_MOTION_ACTIVATION, &iface);
        EXPECT_EQ(SYSTEM_SETTINGS_ERROR_NONE, ret);
+
+       sstm_vconf_set_bool_setup(VCONFKEY_SETAPPL_MOTION_ACTIVATION, 0);
        ret = sst_vconf_get_bool(iface, &getVal);
        EXPECT_EQ(SYSTEM_SETTINGS_ERROR_NONE, ret);
        setVal = !getVal;
@@ -140,61 +180,111 @@ TEST(SstVconfTest, setValueBool)
        EXPECT_EQ(SYSTEM_SETTINGS_ERROR_NONE, ret);
 }
 
+TEST(SstVconfTest, setValueBoolERR)
+{
+       sst_interface *iface;
+       int ret = sst_get_interface(SYSTEM_SETTINGS_KEY_MOTION_ACTIVATION, &iface);
+       EXPECT_EQ(SYSTEM_SETTINGS_ERROR_NONE, ret);
+
+       sstm_vconf_set_bool_setup(VCONFKEY_SETAPPL_MOTION_ACTIVATION, -1);
+       ret = sst_vconf_set_bool(iface, false);
+       EXPECT_EQ(SYSTEM_SETTINGS_ERROR_IO_ERROR, ret);
+}
+
 TEST(SstVconfTest, getValueString)
 {
        char *val;
        sst_interface *iface;
        int ret = sst_get_interface(SYSTEM_SETTINGS_KEY_LOCALE_COUNTRY, &iface);
        EXPECT_EQ(SYSTEM_SETTINGS_ERROR_NONE, ret);
+
+       sstm_vconf_get_str_setup(VCONFKEY_REGIONFORMAT, "ko", 0);
        ret = sst_vconf_get_str(iface, &val);
        EXPECT_EQ(SYSTEM_SETTINGS_ERROR_NONE, ret);
        free(val);
+
+       sstm_vconf_clear_str(VCONFKEY_REGIONFORMAT);
+}
+
+TEST(SstVconfTest, getValueStringERR)
+{
+       char *val;
+       sst_interface *iface;
+       int ret = sst_get_interface(SYSTEM_SETTINGS_KEY_LOCALE_COUNTRY, &iface);
+       EXPECT_EQ(SYSTEM_SETTINGS_ERROR_NONE, ret);
+
+       sstm_vconf_get_str_setup(VCONFKEY_REGIONFORMAT, "ko", -1);
+       ret = sst_vconf_get_str(iface, &val);
+       EXPECT_EQ(SYSTEM_SETTINGS_ERROR_IO_ERROR, ret);
+
+       sstm_vconf_clear_str(VCONFKEY_REGIONFORMAT);
 }
 
 TEST(SstVconfTest, setValueString)
 {
-       char *oldVal;
        char *getVal;
        const char *setVal = "ko_KR";
        sst_interface *iface;
        int ret = sst_get_interface(SYSTEM_SETTINGS_KEY_LOCALE_COUNTRY, &iface);
        EXPECT_EQ(SYSTEM_SETTINGS_ERROR_NONE, ret);
 
-       ret = sst_vconf_get_str(iface, &oldVal);
-       EXPECT_EQ(SYSTEM_SETTINGS_ERROR_NONE, ret);
+       sstm_vconf_set_str_setup(VCONFKEY_REGIONFORMAT, 0);
        ret = sst_vconf_set_str(iface, setVal);
        EXPECT_EQ(SYSTEM_SETTINGS_ERROR_NONE, ret);
        ret = sst_vconf_get_str(iface, &getVal);
        EXPECT_EQ(SYSTEM_SETTINGS_ERROR_NONE, ret);
        EXPECT_STREQ(setVal, getVal);
        free(getVal);
-       ret = sst_vconf_set_str(iface, oldVal);
-       EXPECT_EQ(SYSTEM_SETTINGS_ERROR_NONE, ret);
-       free(oldVal);
+
+       sstm_vconf_clear_str(VCONFKEY_REGIONFORMAT);
 }
 
 TEST_F(SstVconfCBTest, setUnsetChangedCallback)
 {
-       bool oldVal;
+       bool val;
        sst_interface *iface;
        int ret = sst_get_interface(SYSTEM_SETTINGS_KEY_MOTION_ACTIVATION, &iface);
        EXPECT_EQ(SYSTEM_SETTINGS_ERROR_NONE, ret);
+
+       sstm_vconf_notify_key_changed_setup(true);
+       sstm_vconf_ignore_key_changed_setup(true);
+       sstm_vconf_get_bool_setup(VCONFKEY_SETAPPL_MOTION_ACTIVATION, false, 0);
+
        ret = sst_vconf_set_cb(iface, changedCallback, NULL);
        EXPECT_EQ(SYSTEM_SETTINGS_ERROR_NONE, ret);
        resultCB = -1;
-       g_idle_add(checkCallbackIdle, &oldVal);
+       g_idle_add(checkCallbackIdle, &val);
        g_main_loop_run(loop);
        EXPECT_EQ(SYSTEM_SETTINGS_ERROR_NONE, resultCB);
        ret = sst_vconf_unset_cb(iface);
        EXPECT_EQ(SYSTEM_SETTINGS_ERROR_NONE, ret);
-       ret = system_settings_set_value_bool(SYSTEM_SETTINGS_KEY_MOTION_ACTIVATION, oldVal);
+}
+
+TEST_F(SstVconfCBTest, setUnsetChangedCallbackERR)
+{
+       sst_interface *iface;
+       int ret = sst_get_interface(SYSTEM_SETTINGS_KEY_MOTION_ACTIVATION, &iface);
        EXPECT_EQ(SYSTEM_SETTINGS_ERROR_NONE, ret);
+       ret = sst_vconf_set_cb(iface, NULL, NULL);
+       EXPECT_EQ(SYSTEM_SETTINGS_ERROR_INVALID_PARAMETER, ret);
+
+       sstm_vconf_notify_key_changed_setup(false);
+       ret = sst_vconf_set_cb(iface, changedCallback, NULL);
+       EXPECT_EQ(SYSTEM_SETTINGS_ERROR_IO_ERROR, ret);
+       sstm_vconf_ignore_key_changed_setup(false);
+       ret = sst_vconf_unset_cb(iface);
+       EXPECT_EQ(SYSTEM_SETTINGS_ERROR_INVALID_PARAMETER, ret);
 }
 
 TEST_F(SstVconfCBTest, addDeleteChangedCallback)
 {
-       bool oldVal;
+       bool val;
        sst_interface *iface;
+
+       sstm_vconf_notify_key_changed_setup(true);
+       sstm_vconf_ignore_key_changed_setup(true);
+       sstm_vconf_get_bool_setup(VCONFKEY_SETAPPL_MOTION_ACTIVATION, false, 0);
+
        int ret = sst_get_interface(SYSTEM_SETTINGS_KEY_MOTION_ACTIVATION, &iface);
        EXPECT_EQ(SYSTEM_SETTINGS_ERROR_NONE, ret);
        ret = sst_vconf_add_multi_cb(iface, changedMultiCallback1, NULL);
@@ -202,22 +292,41 @@ TEST_F(SstVconfCBTest, addDeleteChangedCallback)
        ret = sst_vconf_add_multi_cb(iface, changedMultiCallback2, NULL);
        EXPECT_EQ(SYSTEM_SETTINGS_ERROR_NONE, ret);
        resultCB = 0;
-       g_idle_add(checkCallbackIdle, &oldVal);
+       g_idle_add(checkCallbackIdle, &val);
        g_main_loop_run(loop);
        EXPECT_EQ(0x11, resultCB);
        ret = sst_vconf_del_multi_cb(iface, changedMultiCallback1);
        EXPECT_EQ(SYSTEM_SETTINGS_ERROR_NONE, ret);
        ret = sst_vconf_del_multi_cb(iface, changedMultiCallback2);
        EXPECT_EQ(SYSTEM_SETTINGS_ERROR_NONE, ret);
-       ret = system_settings_set_value_bool(SYSTEM_SETTINGS_KEY_MOTION_ACTIVATION, oldVal);
+}
+
+TEST_F(SstVconfCBTest, addDeleteChangedCallbackERR)
+{
+       sst_interface *iface;
+       int ret = sst_get_interface(SYSTEM_SETTINGS_KEY_MOTION_ACTIVATION, &iface);
        EXPECT_EQ(SYSTEM_SETTINGS_ERROR_NONE, ret);
+       ret = sst_vconf_add_multi_cb(iface, NULL, NULL);
+       EXPECT_EQ(SYSTEM_SETTINGS_ERROR_INVALID_PARAMETER, ret);
+
+       sstm_vconf_notify_key_changed_setup(false);
+       ret = sst_vconf_add_multi_cb(iface, changedCallback, NULL);
+       EXPECT_EQ(SYSTEM_SETTINGS_ERROR_IO_ERROR, ret);
+       sstm_vconf_ignore_key_changed_setup(false);
+       ret = sst_vconf_del_multi_cb(iface, changedCallback);
+       EXPECT_EQ(SYSTEM_SETTINGS_ERROR_INVALID_PARAMETER, ret);
 }
 
 TEST_F(SstVconfCBTest, subscribeUnsubscribe)
 {
-       bool oldVal;
+       bool val;
        sst_interface *iface;
        system_settings_cb_id cb[2];
+
+       sstm_vconf_notify_key_changed_setup(true);
+       sstm_vconf_ignore_key_changed_setup(true);
+       sstm_vconf_get_bool_setup(VCONFKEY_SETAPPL_MOTION_ACTIVATION, false, 0);
+
        int ret = sst_get_interface(SYSTEM_SETTINGS_KEY_MOTION_ACTIVATION, &iface);
        EXPECT_EQ(SYSTEM_SETTINGS_ERROR_NONE, ret);
        ret = sst_vconf_subscribe(iface, changedMultiCallback1, NULL, &cb[0]);
@@ -225,13 +334,28 @@ TEST_F(SstVconfCBTest, subscribeUnsubscribe)
        ret = sst_vconf_subscribe(iface, changedMultiCallback2, NULL, &cb[1]);
        EXPECT_EQ(SYSTEM_SETTINGS_ERROR_NONE, ret);
        resultCB = 0;
-       g_idle_add(checkCallbackIdle, &oldVal);
+       g_idle_add(checkCallbackIdle, &val);
        g_main_loop_run(loop);
        EXPECT_EQ(0x11, resultCB);
        ret = sst_vconf_unsubscribe(iface, cb[0]);
        EXPECT_EQ(SYSTEM_SETTINGS_ERROR_NONE, ret);
        ret = sst_vconf_unsubscribe(iface, cb[1]);
        EXPECT_EQ(SYSTEM_SETTINGS_ERROR_NONE, ret);
-       ret = system_settings_set_value_bool(SYSTEM_SETTINGS_KEY_MOTION_ACTIVATION, oldVal);
+}
+
+TEST_F(SstVconfCBTest, subscribeUnsubscribeERR)
+{
+       sst_interface *iface;
+       system_settings_cb_id cb;
+       int ret = sst_get_interface(SYSTEM_SETTINGS_KEY_MOTION_ACTIVATION, &iface);
        EXPECT_EQ(SYSTEM_SETTINGS_ERROR_NONE, ret);
+       ret = sst_vconf_subscribe(iface, NULL, NULL, &cb);
+       EXPECT_EQ(SYSTEM_SETTINGS_ERROR_INVALID_PARAMETER, ret);
+
+       sstm_vconf_notify_key_changed_setup(false);
+       ret = sst_vconf_subscribe(iface, changedCallback, NULL, &cb);
+       EXPECT_EQ(SYSTEM_SETTINGS_ERROR_IO_ERROR, ret);
+       sstm_vconf_ignore_key_changed_setup(false);
+       ret = sst_vconf_unsubscribe(iface, cb);
+       changedCallback(SYSTEM_SETTINGS_KEY_MOTION_ACTIVATION, NULL);
 }