[UTC][system-settings-native-utc][Non-ACR][Added feature check routine]
authorjinwang.an <jinwang.an@samsung.com>
Tue, 27 Mar 2018 09:45:10 +0000 (18:45 +0900)
committerjinwang.an <jinwang.an@samsung.com>
Tue, 27 Mar 2018 09:50:58 +0000 (18:50 +0900)
Change-Id: Ic33ddee214f0be1f7eb7eaaf8eb91312d7ba8b74
Signed-off-by: jinwang.an <jinwang.an@samsung.com>
src/utc/system-settings/utc-system-settings.c

index bc63683..06206ce 100755 (executable)
 #include <storage.h>
 #include <dlog.h>
 
+#define API_NAMESPACE   "SYSTEM_SETTINGS_UTC"
+
+#define SYSTEM_SETTINGS_NETWORK_WIFI_FEATURE  "http://tizen.org/feature/network.wifi"
+#define SYSTEM_SETTINGS_WALLPAPER_HOME_SCREEN_FEATURE "http://tizen.org/feature/systemsetting.home_screen"
+#define SYSTEM_SETTINGS_LOCK_SCREEN_FEATURE "http://tizen.org/feature/systemsetting.lock_screen"
+#define SYSTEM_SETTINGS_NOTIFICATION_EMAIL_FEATURE "http://tizen.org/feature/systemsetting.notification_email"
+#define SYSTEM_SETTINGS_TELEPHONY_FEATURE "http://tizen.org/feature/network.telephony"
+#define SYSTEM_SETTINGS_INCOMING_CALL_FEATURE "http://tizen.org/feature/systemsetting.incoming_call"
+
+
+#define IF_FEATURE_CHECK_SKIP(VAR,SYSTEM_SETTING_KEY, FEATURE)  \
+        if((VAR == SYSTEM_SETTING_KEY) && (!TCTCheckSystemInfoFeatureSupported(FEATURE,API_NAMESPACE))){ \
+                       continue; \
+               }
+
+#define IF_FEATURE_CHECK_RETURN(VAR, FEATURE)  \
+       if (VAR == SYSTEM_SETTINGS_ERROR_NOT_SUPPORTED) { \
+               if(TCTCheckSystemInfoFeatureSupported(FEATURE, API_NAMESPACE)) { \
+                       FPRINTF("[Line : %d][%s] Feature is supported but it returned SYSTEM_SETTINGS_ERROR_NOT_SUPPORTED!! check it!!\\n", __LINE__, #FEATURE ); \
+                       return 1; \
+               } \
+       }
+
 static int my_assert_ret(int retcode)
 {
        if (retcode == SYSTEM_SETTINGS_ERROR_NOT_SUPPORTED) {
@@ -86,13 +109,11 @@ int utc_system_settings_get_value_string_p1(void)
        char *value = NULL;
 
        int retcode = system_settings_get_value_string(SYSTEM_SETTINGS_KEY_DEFAULT_FONT_TYPE, &value);
-       if (retcode == SYSTEM_SETTINGS_ERROR_NOT_SUPPORTED)
-               return 0;
-       else {
-               assert_eq(retcode, SYSTEM_SETTINGS_ERROR_NONE);
-               assert(value != NULL);
-               free(value);
-       }
+
+       assert_eq(retcode, SYSTEM_SETTINGS_ERROR_NONE);
+       assert(value != NULL);
+       free(value);
+
        return 0;
 }
 
@@ -147,6 +168,7 @@ int utc_system_settings_get_value_string_p4(void)
        char *value = NULL;
 
        int retcode = system_settings_get_value_string(SYSTEM_SETTINGS_KEY_INCOMING_CALL_RINGTONE, &value);
+       IF_FEATURE_CHECK_RETURN(retcode, SYSTEM_SETTINGS_INCOMING_CALL_FEATURE);
        my_assert_ret(retcode);
        free(value);
        return 0;
@@ -165,6 +187,7 @@ int utc_system_settings_get_value_string_p5(void)
        char *value = NULL;
 
        int retcode = system_settings_get_value_string(SYSTEM_SETTINGS_KEY_WALLPAPER_HOME_SCREEN, &value);
+       IF_FEATURE_CHECK_RETURN(retcode, SYSTEM_SETTINGS_WALLPAPER_HOME_SCREEN_FEATURE);
        my_assert_ret(retcode);
        free(value);
        return 0;
@@ -197,6 +220,7 @@ int utc_system_settings_get_value_string_p7(void)
        char *value = NULL;
 
        int retcode = system_settings_get_value_string(SYSTEM_SETTINGS_KEY_SOUND_NOTIFICATION, &value);
+       IF_FEATURE_CHECK_RETURN(retcode, SYSTEM_SETTINGS_INCOMING_CALL_FEATURE);
        my_assert_ret(retcode);
        free(value);
        return 0;
@@ -227,6 +251,7 @@ int utc_system_settings_get_value_string_p10(void)
        char *value = NULL;
 
        int retcode = system_settings_get_value_string(SYSTEM_SETTINGS_KEY_WALLPAPER_LOCK_SCREEN, &value);
+       IF_FEATURE_CHECK_RETURN(retcode, SYSTEM_SETTINGS_LOCK_SCREEN_FEATURE);
        my_assert_ret(retcode);
        free(value);
        return 0;
@@ -243,13 +268,11 @@ int utc_system_settings_get_value_string_p8(void)
        char *value = NULL;
 
        int retcode = system_settings_get_value_string(SYSTEM_SETTINGS_KEY_FONT_TYPE, &value);
-       if (retcode == SYSTEM_SETTINGS_ERROR_NOT_SUPPORTED)
-               return 0;
-       else {
-               assert_eq(retcode, SYSTEM_SETTINGS_ERROR_NONE);
-               assert(value != NULL);
-               free(value);
-       }
+
+       assert_eq(retcode, SYSTEM_SETTINGS_ERROR_NONE);
+       assert(value != NULL);
+       free(value);
+
        return 0;
 }
 
@@ -264,6 +287,7 @@ int utc_system_settings_get_value_string_p9(void)
        char *value = NULL;
 
        int retcode = system_settings_get_value_string(SYSTEM_SETTINGS_KEY_EMAIL_ALERT_RINGTONE, &value);
+       IF_FEATURE_CHECK_RETURN(retcode, SYSTEM_SETTINGS_NOTIFICATION_EMAIL_FEATURE);
        my_assert_ret(retcode);
        free(value);
        return 0;
@@ -293,6 +317,7 @@ int utc_system_settings_get_value_bool_p1(void)
        bool value = false;
 
        int retcode = system_settings_get_value_bool(SYSTEM_SETTINGS_KEY_NETWORK_WIFI_NOTIFICATION, &value);
+       IF_FEATURE_CHECK_RETURN(retcode, SYSTEM_SETTINGS_NETWORK_WIFI_FEATURE);
        my_assert_ret(retcode);
 
        return 0;
@@ -482,7 +507,8 @@ int utc_system_settings_get_value_int_p2(void)
        int font_size = 0;
 
        int retcode = system_settings_get_value_int(SYSTEM_SETTINGS_KEY_FONT_SIZE, &font_size);
-       my_assert_ret(retcode);
+
+       assert_eq(retcode, SYSTEM_SETTINGS_ERROR_NONE);
 
        return 0;
 }
@@ -570,6 +596,7 @@ int utc_system_settings_set_changed_cb_p1(void)
 {
        int retcode = system_settings_set_changed_cb(SYSTEM_SETTINGS_KEY_MOTION_ACTIVATION,
                                                                                                 utc_system_settings_changed_callback, NULL);
+       IF_FEATURE_CHECK_RETURN(retcode, SYSTEM_SETTINGS_INCOMING_CALL_FEATURE);
        my_assert_ret(retcode);
 
        return 0;
@@ -603,6 +630,7 @@ int utc_system_settings_set_changed_cb_p2(void)
 {
        int retcode = system_settings_set_changed_cb(SYSTEM_SETTINGS_KEY_INCOMING_CALL_RINGTONE,
                                                                                                 utc_system_settings_changed_callback, NULL);
+       IF_FEATURE_CHECK_RETURN(retcode, SYSTEM_SETTINGS_INCOMING_CALL_FEATURE);
        my_assert_ret(retcode); 
 
        return 0;
@@ -620,7 +648,10 @@ int utc_system_settings_unset_changed_cb_p2(void)
        int retcode = system_settings_set_changed_cb(SYSTEM_SETTINGS_KEY_INCOMING_CALL_RINGTONE,
                                                                                                 utc_system_settings_changed_callback, NULL);
 
+       IF_FEATURE_CHECK_RETURN(retcode, SYSTEM_SETTINGS_INCOMING_CALL_FEATURE);
        retcode = system_settings_unset_changed_cb(SYSTEM_SETTINGS_KEY_INCOMING_CALL_RINGTONE);
+
+       IF_FEATURE_CHECK_RETURN(retcode, SYSTEM_SETTINGS_INCOMING_CALL_FEATURE);
        my_assert_ret(retcode);
 
        return 0;
@@ -636,6 +667,7 @@ int utc_system_settings_set_changed_cb_p3(void)
 {
        int retcode = system_settings_set_changed_cb(SYSTEM_SETTINGS_KEY_WALLPAPER_HOME_SCREEN,
                                                                                                 utc_system_settings_changed_callback, NULL);
+       IF_FEATURE_CHECK_RETURN(retcode, SYSTEM_SETTINGS_WALLPAPER_HOME_SCREEN_FEATURE);
        my_assert_ret(retcode);
 
        return 0;
@@ -653,7 +685,9 @@ int utc_system_settings_unset_changed_cb_p3(void)
        int retcode = system_settings_set_changed_cb(SYSTEM_SETTINGS_KEY_WALLPAPER_HOME_SCREEN,
                                                                                                 utc_system_settings_changed_callback, NULL);
 
+       IF_FEATURE_CHECK_RETURN(retcode, SYSTEM_SETTINGS_WALLPAPER_HOME_SCREEN_FEATURE);
        retcode = system_settings_unset_changed_cb(SYSTEM_SETTINGS_KEY_WALLPAPER_HOME_SCREEN);
+       IF_FEATURE_CHECK_RETURN(retcode, SYSTEM_SETTINGS_WALLPAPER_HOME_SCREEN_FEATURE);
        my_assert_ret(retcode);
 
        return 0;
@@ -669,6 +703,7 @@ int utc_system_settings_set_changed_cb_p4(void)
 {
        int retcode = system_settings_set_changed_cb(SYSTEM_SETTINGS_KEY_WALLPAPER_LOCK_SCREEN,
                                                                                                 utc_system_settings_changed_callback, NULL);
+       IF_FEATURE_CHECK_RETURN(retcode, SYSTEM_SETTINGS_LOCK_SCREEN_FEATURE);
        my_assert_ret(retcode);
 
        return 0;
@@ -686,7 +721,9 @@ int utc_system_settings_LOCK_SCREEN_unset_changed_cb_p(void)
        int retcode = system_settings_set_changed_cb(SYSTEM_SETTINGS_KEY_WALLPAPER_LOCK_SCREEN,
                                                                                                 utc_system_settings_changed_callback, NULL);
 
+       IF_FEATURE_CHECK_RETURN(retcode, SYSTEM_SETTINGS_LOCK_SCREEN_FEATURE);
        retcode = system_settings_unset_changed_cb(SYSTEM_SETTINGS_KEY_WALLPAPER_LOCK_SCREEN);
+       IF_FEATURE_CHECK_RETURN(retcode, SYSTEM_SETTINGS_LOCK_SCREEN_FEATURE);
        my_assert_ret(retcode);
 
        return 0;
@@ -719,7 +756,10 @@ int utc_system_settings_unset_changed_cb_p4(void)
        int retcode = system_settings_set_changed_cb(SYSTEM_SETTINGS_KEY_FONT_SIZE,
                                                                                                 utc_system_settings_changed_callback, NULL);
 
+       my_assert_ret(retcode);
+
        retcode = system_settings_unset_changed_cb(SYSTEM_SETTINGS_KEY_FONT_SIZE);
+
        my_assert_ret(retcode);
 
        return 0;
@@ -735,6 +775,7 @@ int utc_system_settings_set_changed_cb_p6(void)
 {
        int retcode = system_settings_set_changed_cb(SYSTEM_SETTINGS_KEY_FONT_TYPE,
                                                                                                 utc_system_settings_changed_callback, NULL);
+
        my_assert_ret(retcode);
 
        return 0;
@@ -750,8 +791,13 @@ int utc_system_settings_set_changed_cb_p6(void)
 int utc_system_settings_unset_changed_cb_p5(void)
 {
        int retcode = system_settings_set_changed_cb(SYSTEM_SETTINGS_KEY_FONT_TYPE,
-                                                                                                utc_system_settings_changed_callback, NULL); 
+                                                                                                utc_system_settings_changed_callback, NULL);
+
+       my_assert_ret(retcode);
+
        retcode = system_settings_unset_changed_cb(SYSTEM_SETTINGS_KEY_FONT_TYPE);
+
+
        my_assert_ret(retcode);
 
        return 0;
@@ -767,6 +813,7 @@ int utc_system_settings_set_changed_cb_p7(void)
 {
        int retcode = system_settings_set_changed_cb(SYSTEM_SETTINGS_KEY_EMAIL_ALERT_RINGTONE,
                                                                                                 utc_system_settings_changed_callback, NULL);
+       IF_FEATURE_CHECK_RETURN(retcode, SYSTEM_SETTINGS_NOTIFICATION_EMAIL_FEATURE);
        my_assert_ret(retcode);
 
        return 0;
@@ -784,7 +831,9 @@ int utc_system_settings_unset_changed_cb_p6(void)
        int retcode = system_settings_set_changed_cb(SYSTEM_SETTINGS_KEY_EMAIL_ALERT_RINGTONE,
                                                                                                 utc_system_settings_changed_callback, NULL);
 
+       IF_FEATURE_CHECK_RETURN(retcode, SYSTEM_SETTINGS_NOTIFICATION_EMAIL_FEATURE);
        retcode = system_settings_unset_changed_cb(SYSTEM_SETTINGS_KEY_EMAIL_ALERT_RINGTONE);
+       IF_FEATURE_CHECK_RETURN(retcode, SYSTEM_SETTINGS_NOTIFICATION_EMAIL_FEATURE);
        my_assert_ret(retcode);
 
        return 0;
@@ -866,6 +915,7 @@ int utc_system_settings_set_changed_cb_p10(void)
 {
        int retcode = system_settings_set_changed_cb(SYSTEM_SETTINGS_KEY_LOCKSCREEN_APP,
                                                                                                 utc_system_settings_changed_callback, NULL);
+       IF_FEATURE_CHECK_RETURN(retcode, SYSTEM_SETTINGS_LOCK_SCREEN_FEATURE);
        my_assert_ret(retcode);
 
        return 0;
@@ -882,8 +932,9 @@ int utc_system_settings_unset_changed_cb_p9(void)
 {
        int retcode = system_settings_set_changed_cb(SYSTEM_SETTINGS_KEY_LOCKSCREEN_APP,
                                                                                                 utc_system_settings_changed_callback, NULL);
-
+       IF_FEATURE_CHECK_RETURN(retcode, SYSTEM_SETTINGS_LOCK_SCREEN_FEATURE);
        retcode = system_settings_unset_changed_cb(SYSTEM_SETTINGS_KEY_LOCKSCREEN_APP);
+       IF_FEATURE_CHECK_RETURN(retcode, SYSTEM_SETTINGS_LOCK_SCREEN_FEATURE);
        my_assert_ret(retcode);
 
        return 0;
@@ -1198,6 +1249,7 @@ int utc_system_settings_set_changed_cb_p20(void)
 {
        int retcode = system_settings_set_changed_cb(SYSTEM_SETTINGS_KEY_SOUND_NOTIFICATION,
                                                                                                 utc_system_settings_changed_callback, NULL);
+       IF_FEATURE_CHECK_RETURN(retcode, SYSTEM_SETTINGS_INCOMING_CALL_FEATURE);
        my_assert_ret(retcode);
 
        return 0;
@@ -1214,8 +1266,9 @@ int utc_system_settings_unset_changed_cb_p19(void)
 {
        int retcode = system_settings_set_changed_cb(SYSTEM_SETTINGS_KEY_SOUND_NOTIFICATION,
                                                                                                 utc_system_settings_changed_callback, NULL);
-
+       IF_FEATURE_CHECK_RETURN(retcode, SYSTEM_SETTINGS_INCOMING_CALL_FEATURE);
        retcode = system_settings_unset_changed_cb(SYSTEM_SETTINGS_KEY_SOUND_NOTIFICATION);
+       IF_FEATURE_CHECK_RETURN(retcode, SYSTEM_SETTINGS_INCOMING_CALL_FEATURE);
        my_assert_ret(retcode);
 
        return 0;
@@ -1363,6 +1416,7 @@ int utc_system_settings_set_changed_cb_p25(void)
 {
        int retcode = system_settings_set_changed_cb(SYSTEM_SETTINGS_KEY_NETWORK_WIFI_NOTIFICATION,
                                                                                                 utc_system_settings_changed_callback, NULL);
+       IF_FEATURE_CHECK_RETURN(retcode, SYSTEM_SETTINGS_NETWORK_WIFI_FEATURE);
        my_assert_ret(retcode);
 
        return 0;
@@ -1380,7 +1434,9 @@ int utc_system_settings_unset_changed_cb_p24(void)
        int retcode = system_settings_set_changed_cb(SYSTEM_SETTINGS_KEY_NETWORK_WIFI_NOTIFICATION,
                                                                                                 utc_system_settings_changed_callback, NULL);
 
+       IF_FEATURE_CHECK_RETURN(retcode, SYSTEM_SETTINGS_NETWORK_WIFI_FEATURE);
        retcode = system_settings_unset_changed_cb(SYSTEM_SETTINGS_KEY_NETWORK_WIFI_NOTIFICATION);
+       IF_FEATURE_CHECK_RETURN(retcode, SYSTEM_SETTINGS_NETWORK_WIFI_FEATURE);
        my_assert_ret(retcode);
 
        return 0;
@@ -1415,25 +1471,28 @@ int utc_system_settings_add_remove_changed_cb_p1(void)
                if ( key_idx == SYSTEM_SETTINGS_KEY_DEFAULT_FONT_TYPE)
                        continue; /* skip removed system-setting key */
 
+               /* skip when feature is false about each system_settings_key */
+               IF_FEATURE_CHECK_SKIP(key_idx, SYSTEM_SETTINGS_KEY_NETWORK_WIFI_NOTIFICATION, SYSTEM_SETTINGS_NETWORK_WIFI_FEATURE);
+               IF_FEATURE_CHECK_SKIP(key_idx, SYSTEM_SETTINGS_KEY_LOCKSCREEN_APP, SYSTEM_SETTINGS_LOCK_SCREEN_FEATURE);
+               IF_FEATURE_CHECK_SKIP(key_idx, SYSTEM_SETTINGS_KEY_WALLPAPER_LOCK_SCREEN, SYSTEM_SETTINGS_LOCK_SCREEN_FEATURE);
+               IF_FEATURE_CHECK_SKIP(key_idx, SYSTEM_SETTINGS_KEY_INCOMING_CALL_RINGTONE, SYSTEM_SETTINGS_INCOMING_CALL_FEATURE);
+               IF_FEATURE_CHECK_SKIP(key_idx, SYSTEM_SETTINGS_KEY_SOUND_NOTIFICATION, SYSTEM_SETTINGS_INCOMING_CALL_FEATURE);
+               IF_FEATURE_CHECK_SKIP(key_idx, SYSTEM_SETTINGS_KEY_ULTRA_DATA_SAVE_PKG_LIST, SYSTEM_SETTINGS_TELEPHONY_FEATURE);
+               IF_FEATURE_CHECK_SKIP(key_idx, SYSTEM_SETTINGS_KEY_ULTRA_DATA_SAVE, SYSTEM_SETTINGS_TELEPHONY_FEATURE);
+               IF_FEATURE_CHECK_SKIP(key_idx, SYSTEM_SETTINGS_KEY_WALLPAPER_HOME_SCREEN, SYSTEM_SETTINGS_WALLPAPER_HOME_SCREEN_FEATURE);
+               IF_FEATURE_CHECK_SKIP(key_idx, SYSTEM_SETTINGS_KEY_EMAIL_ALERT_RINGTONE, SYSTEM_SETTINGS_NOTIFICATION_EMAIL_FEATURE);
+
                retcode = system_settings_add_changed_cb(key_idx,
                                                                                                        utc_system_settings_changed_callback_1, NULL);
 
-               if (retcode == SYSTEM_SETTINGS_ERROR_NOT_SUPPORTED) {
-                       g_assert_cmpint(retcode, ==, SYSTEM_SETTINGS_ERROR_NOT_SUPPORTED);
-               } else {
-                       if (retcode != SYSTEM_SETTINGS_ERROR_NONE)
-                               printf("ERROR !! key =%d , ret = %d\n", key_idx, retcode);
-               }
+               if (retcode != SYSTEM_SETTINGS_ERROR_NONE)
+                       printf("ERROR !! key =%d , ret = %d\n", key_idx, retcode);
 
                retcode = system_settings_remove_changed_cb(key_idx,
                                                                                                        utc_system_settings_changed_callback_1);
 
-               if (retcode == SYSTEM_SETTINGS_ERROR_NOT_SUPPORTED) {
-                       g_assert_cmpint(retcode, ==, SYSTEM_SETTINGS_ERROR_NOT_SUPPORTED);
-               } else {
-                       if (retcode != SYSTEM_SETTINGS_ERROR_NONE)
-                               printf("ERROR !! key =%d , ret = %d\n", key_idx, retcode);
-               }
+               if (retcode != SYSTEM_SETTINGS_ERROR_NONE)
+                       printf("ERROR !! key =%d , ret = %d\n", key_idx, retcode);
 
                retcode = system_settings_add_changed_cb(key_idx,
                                                                                                         utc_system_settings_changed_callback_1, NULL);