added checking for sync-adapter is released 29/67229/2 accepted/tizen/common/20160427.053953 accepted/tizen/mobile/20160427.080311 accepted/tizen/wearable/20160427.080303 submit/tizen/20160427.022644
authorIckhee Woo <ickhee.woo@samsung.com>
Tue, 26 Apr 2016 02:40:03 +0000 (11:40 +0900)
committerIckhee Woo <ickhee.woo@samsung.com>
Tue, 26 Apr 2016 08:44:35 +0000 (17:44 +0900)
Change-Id: I562c920e6d703748fe0b3d80477bab10b7717ea6
Signed-off-by: Ickhee Woo <ickhee.woo@samsung.com>
TC/utc-sync-manager.c
src/sync-client/sync_adapter.c
src/sync-service/SyncManager_SyncService.cpp

index 8faf50eca2c4939393857e41dabb380e3900a64f..9492115d25e7c8c0d29bac2fbd2e2c0926c8de30 100644 (file)
@@ -1,14 +1,14 @@
 /*
- * Copyright (c) 2013 Samsung Electronics Co., Ltd All Rights Reserved
+ * Copyright (c) 2014 Samsung Electronics Co., Ltd.
  *
  * Licensed under the Apache License, Version 2.0 (the License);
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
  *
- * http://www.apache.org/licenses/LICENSE-2.0
+ *     http://www.apache.org/licenses/LICENSE-2.0
  *
  * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an AS IS BASIS,
+ * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  * See the License for the specific language governing permissions and
  * limitations under the License.
 #include "sync-error.h"
 
 
+#ifdef MOBILE
 const char *capability_calendar = SYNC_SUPPORTS_CAPABILITY_CALENDAR;
 const char *capability_contact = SYNC_SUPPORTS_CAPABILITY_CONTACT;
+#endif
 const char *capability_image = SYNC_SUPPORTS_CAPABILITY_IMAGE;
 const char *capability_video = SYNC_SUPPORTS_CAPABILITY_VIDEO;
 const char *capability_sound = SYNC_SUPPORTS_CAPABILITY_SOUND;
@@ -52,15 +54,53 @@ static int account_id = -1;
 
 bundle *user_data = NULL;
 
+static GMainLoop *g_mainloop = NULL;
+static bool is_finished = false;
+
+
+static void timeout_func()
+{
+       g_main_loop_quit(g_mainloop);
+       g_mainloop = NULL;
+}
+
+
+static void wait_for_async()
+{
+       g_mainloop = g_main_loop_new(NULL, FALSE);
+       g_main_loop_run(g_mainloop);
+}
+
+
+static int is_callback_finished()
+{
+       if (is_finished == true)
+               return 0;
+
+       return 1;
+}
+
 
 static bool on_start_cb(account_h account, const char *sync_job_name, const char *sync_capability, bundle *sync_job_user_data)
 {
+       if (!is_finished)
+               is_finished = true;
+
+       if (g_mainloop)
+               timeout_func(g_mainloop);
+
        return true;
 }
 
 
 static void on_cancel_cb(account_h account, const char *sync_job_name, const char *sync_capability, bundle *sync_job_user_data)
 {
+       if (!is_finished)
+               is_finished = true;
+
+       if (g_mainloop)
+               timeout_func(g_mainloop);
+
        return;
 }
 
@@ -254,22 +294,34 @@ int utc_sync_manager_on_demand_sync_job_p(void)
        ret = sync_manager_remove_sync_job(sync_job_id);
        assert_eq(ret, SYNC_ERROR_NONE);
 
+       wait_for_async();
+
+       ret = is_callback_finished();
+       assert_eq(ret, SYNC_ERROR_NONE);
+       is_finished = false;
+
        ret = sync_manager_on_demand_sync_job(account, name_on_demand, (SYNC_OPTION_NO_RETRY | SYNC_OPTION_EXPEDITED), user_data, &sync_job_id);
        assert_eq(ret, SYNC_ERROR_NONE);
 
        ret = sync_manager_remove_sync_job(sync_job_id);
        assert_eq(ret, SYNC_ERROR_NONE);
 
+       wait_for_async();
+
+       ret = is_callback_finished();
+       assert_eq(ret, SYNC_ERROR_NONE);
+       is_finished = false;
+
        return 0;
 }
 
 
 /**
- * @testcase           utc_sync_manager_on_demand_sync_job_p2
+ * @testcase           utc_sync_manager_on_demand_sync_job_n
  * @since_tizen                2.4
- * @description                Positive test case of adding on-demand sync jobs with @c NULL parameters
+ * @description                Negative test case of adding on-demand sync jobs without sync job name as mandatory parameter
  */
-int utc_sync_manager_on_demand_sync_job_p2(void)
+int utc_sync_manager_on_demand_sync_job_n(void)
 {
        int ret = SYNC_ERROR_NONE;
 
@@ -286,34 +338,28 @@ int utc_sync_manager_on_demand_sync_job_p2(void)
 
        int sync_job_id = 0;
 
-       ret = sync_manager_on_demand_sync_job(NULL, name_on_demand, SYNC_OPTION_NO_RETRY, user_data, &sync_job_id);
-       assert_eq(ret, SYNC_ERROR_NONE);
-
-       ret = sync_manager_remove_sync_job(sync_job_id);
-       assert_eq(ret, SYNC_ERROR_NONE);
-
-       ret = sync_manager_on_demand_sync_job(account, name_on_demand, SYNC_OPTION_EXPEDITED, NULL, &sync_job_id);
-       assert_eq(ret, SYNC_ERROR_NONE);
+       ret = sync_manager_on_demand_sync_job(account, NULL, SYNC_OPTION_NONE, user_data, &sync_job_id);
+       assert_eq(ret, SYNC_ERROR_INVALID_PARAMETER);
 
-       ret = sync_manager_remove_sync_job(sync_job_id);
-       assert_eq(ret, SYNC_ERROR_NONE);
+       ret = sync_manager_on_demand_sync_job(NULL, NULL, SYNC_OPTION_NO_RETRY, user_data, &sync_job_id);
+       assert_eq(ret, SYNC_ERROR_INVALID_PARAMETER);
 
-       ret = sync_manager_on_demand_sync_job(NULL, name_on_demand, (SYNC_OPTION_NO_RETRY | SYNC_OPTION_EXPEDITED), NULL, &sync_job_id);
-       assert_eq(ret, SYNC_ERROR_NONE);
+       ret = sync_manager_on_demand_sync_job(account, NULL, SYNC_OPTION_EXPEDITED, NULL, &sync_job_id);
+       assert_eq(ret, SYNC_ERROR_INVALID_PARAMETER);
 
-       ret = sync_manager_remove_sync_job(sync_job_id);
-       assert_eq(ret, SYNC_ERROR_NONE);
+       ret = sync_manager_on_demand_sync_job(NULL, NULL, (SYNC_OPTION_NO_RETRY | SYNC_OPTION_EXPEDITED), NULL, &sync_job_id);
+       assert_eq(ret, SYNC_ERROR_INVALID_PARAMETER);
 
        return 0;
 }
 
 
 /**
- * @testcase           utc_sync_manager_on_demand_sync_job_n
+ * @testcase           utc_sync_manager_on_demand_sync_job_n2
  * @since_tizen                2.4
- * @description                Negative test case of adding on-demand sync jobs without sync job name as mandatory parameter
+ * @description                Negative test case of adding on-demand sync jobs with invalid sync option
  */
-int utc_sync_manager_on_demand_sync_job_n(void)
+int utc_sync_manager_on_demand_sync_job_n2(void)
 {
        int ret = SYNC_ERROR_NONE;
 
@@ -330,16 +376,16 @@ int utc_sync_manager_on_demand_sync_job_n(void)
 
        int sync_job_id = 0;
 
-       ret = sync_manager_on_demand_sync_job(account, NULL, SYNC_OPTION_NONE, user_data, &sync_job_id);
+       ret = sync_manager_on_demand_sync_job(account, name_on_demand, -1, user_data, &sync_job_id);
        assert_eq(ret, SYNC_ERROR_INVALID_PARAMETER);
 
-       ret = sync_manager_on_demand_sync_job(NULL, NULL, SYNC_OPTION_NO_RETRY, user_data, &sync_job_id);
+       ret = sync_manager_on_demand_sync_job(NULL, name_on_demand, -1, user_data, &sync_job_id);
        assert_eq(ret, SYNC_ERROR_INVALID_PARAMETER);
 
-       ret = sync_manager_on_demand_sync_job(account, NULL, SYNC_OPTION_EXPEDITED, NULL, &sync_job_id);
+       ret = sync_manager_on_demand_sync_job(account, name_on_demand, -1, NULL, &sync_job_id);
        assert_eq(ret, SYNC_ERROR_INVALID_PARAMETER);
 
-       ret = sync_manager_on_demand_sync_job(NULL, NULL, (SYNC_OPTION_NO_RETRY | SYNC_OPTION_EXPEDITED), NULL, &sync_job_id);
+       ret = sync_manager_on_demand_sync_job(NULL, name_on_demand, -1, NULL, &sync_job_id);
        assert_eq(ret, SYNC_ERROR_INVALID_PARAMETER);
 
        return 0;
@@ -347,11 +393,11 @@ int utc_sync_manager_on_demand_sync_job_n(void)
 
 
 /**
- * @testcase           utc_sync_manager_on_demand_sync_job_n2
+ * @testcase           utc_sync_manager_on_demand_sync_job_p2
  * @since_tizen                2.4
- * @description                Negative test case of adding on-demand sync jobs with invalid sync option
+ * @description                Positive test case of adding on-demand sync jobs with @c NULL parameters
  */
-int utc_sync_manager_on_demand_sync_job_n2(void)
+int utc_sync_manager_on_demand_sync_job_p2(void)
 {
        int ret = SYNC_ERROR_NONE;
 
@@ -368,17 +414,29 @@ int utc_sync_manager_on_demand_sync_job_n2(void)
 
        int sync_job_id = 0;
 
-       ret = sync_manager_on_demand_sync_job(account, name_on_demand, -1, user_data, &sync_job_id);
-       assert_eq(ret, SYNC_ERROR_INVALID_PARAMETER);
+       ret = sync_manager_on_demand_sync_job(NULL, name_on_demand, SYNC_OPTION_NO_RETRY, user_data, &sync_job_id);
+       assert_eq(ret, SYNC_ERROR_NONE);
 
-       ret = sync_manager_on_demand_sync_job(NULL, name_on_demand, -1, user_data, &sync_job_id);
-       assert_eq(ret, SYNC_ERROR_INVALID_PARAMETER);
+       ret = sync_manager_remove_sync_job(sync_job_id);
+       assert_eq(ret, SYNC_ERROR_NONE);
 
-       ret = sync_manager_on_demand_sync_job(account, name_on_demand, -1, NULL, &sync_job_id);
-       assert_eq(ret, SYNC_ERROR_INVALID_PARAMETER);
+       ret = sync_manager_on_demand_sync_job(account, name_on_demand, SYNC_OPTION_EXPEDITED, NULL, &sync_job_id);
+       assert_eq(ret, SYNC_ERROR_NONE);
 
-       ret = sync_manager_on_demand_sync_job(NULL, name_on_demand, -1, NULL, &sync_job_id);
-       assert_eq(ret, SYNC_ERROR_INVALID_PARAMETER);
+       wait_for_async();
+
+       ret = is_callback_finished();
+       assert_eq(ret, SYNC_ERROR_NONE);
+       is_finished = false;
+
+       ret = sync_manager_on_demand_sync_job(NULL, name_on_demand, (SYNC_OPTION_NO_RETRY | SYNC_OPTION_EXPEDITED), NULL, &sync_job_id);
+       assert_eq(ret, SYNC_ERROR_NONE);
+
+       wait_for_async();
+
+       ret = is_callback_finished();
+       assert_eq(ret, SYNC_ERROR_NONE);
+       is_finished = false;
 
        return 0;
 }
@@ -496,92 +554,32 @@ int utc_sync_manager_add_periodic_sync_job_p(void)
        ret = sync_manager_add_periodic_sync_job(account, name_periodic, SYNC_PERIOD_INTERVAL_2H, SYNC_OPTION_EXPEDITED, user_data, &sync_job_id);
        assert_eq(ret, SYNC_ERROR_NONE);
 
-       ret = sync_manager_remove_sync_job(sync_job_id);
-       assert_eq(ret, SYNC_ERROR_NONE);
+       wait_for_async();
 
-       sync_manager_setup_interval();
-
-       ret = sync_manager_add_periodic_sync_job(account, name_periodic, SYNC_PERIOD_INTERVAL_3H, (SYNC_OPTION_NO_RETRY | SYNC_OPTION_EXPEDITED), user_data, &sync_job_id);
+       ret = is_callback_finished();
        assert_eq(ret, SYNC_ERROR_NONE);
+       is_finished = false;
 
        ret = sync_manager_remove_sync_job(sync_job_id);
        assert_eq(ret, SYNC_ERROR_NONE);
 
        sync_manager_setup_interval();
 
-       ret = sync_manager_add_periodic_sync_job(account, name_periodic, SYNC_PERIOD_INTERVAL_6H, SYNC_OPTION_NONE, user_data, &sync_job_id);
-       assert_eq(ret, SYNC_ERROR_NONE);
-
-       ret = sync_manager_remove_sync_job(sync_job_id);
-       assert_eq(ret, SYNC_ERROR_NONE);
-
-       sync_manager_setup_interval();
-
-       ret = sync_manager_add_periodic_sync_job(account, name_periodic, SYNC_PERIOD_INTERVAL_12H, SYNC_OPTION_NO_RETRY, user_data, &sync_job_id);
-       assert_eq(ret, SYNC_ERROR_NONE);
-
-       ret = sync_manager_remove_sync_job(sync_job_id);
-       assert_eq(ret, SYNC_ERROR_NONE);
-
-       sync_manager_setup_interval();
-
-       ret = sync_manager_add_periodic_sync_job(account, name_periodic, SYNC_PERIOD_INTERVAL_1DAY, SYNC_OPTION_EXPEDITED, user_data, &sync_job_id);
-       assert_eq(ret, SYNC_ERROR_NONE);
-
-       ret = sync_manager_remove_sync_job(sync_job_id);
-       assert_eq(ret, SYNC_ERROR_NONE);
-
-       return 0;
-}
-
-
-/**
- * @testcase           utc_sync_manager_add_periodic_sync_job_p2
- * @since_tizen                2.4
- * @description                Positive test case of adding periodic sync jobs with @c NULL parameters
- */
-int utc_sync_manager_add_periodic_sync_job_p2(void)
-{
-       int ret = SYNC_ERROR_NONE;
-
-       sync_manager_setup_adapter();
-       assert(set_cb);
-
-       sync_manager_setup_account();
-       assert(using_acc);
-       assert(created_acc);
-       assert(existed_acc);
-
-       user_data = bundle_create();
-       bundle_add_str(user_data, "str", "String user_data sample.");
-
-       int sync_job_id = 0;
-
-       ret = sync_manager_add_periodic_sync_job(NULL, name_periodic, SYNC_PERIOD_INTERVAL_30MIN, SYNC_OPTION_NONE, user_data, &sync_job_id);
-       assert_eq(ret, SYNC_ERROR_NONE);
-
-       ret = sync_manager_remove_sync_job(sync_job_id);
-       assert_eq(ret, SYNC_ERROR_NONE);
-
-       sync_manager_setup_interval();
-
-       ret = sync_manager_add_periodic_sync_job(account, name_periodic, SYNC_PERIOD_INTERVAL_1H, SYNC_OPTION_NO_RETRY, NULL, &sync_job_id);
-       assert_eq(ret, SYNC_ERROR_NONE);
-
-       ret = sync_manager_remove_sync_job(sync_job_id);
+       ret = sync_manager_add_periodic_sync_job(account, name_periodic, SYNC_PERIOD_INTERVAL_3H, (SYNC_OPTION_NO_RETRY | SYNC_OPTION_EXPEDITED), user_data, &sync_job_id);
        assert_eq(ret, SYNC_ERROR_NONE);
 
-       sync_manager_setup_interval();
+       wait_for_async();
 
-       ret = sync_manager_add_periodic_sync_job(NULL, name_periodic, SYNC_PERIOD_INTERVAL_2H, SYNC_OPTION_EXPEDITED, NULL, &sync_job_id);
+       ret = is_callback_finished();
        assert_eq(ret, SYNC_ERROR_NONE);
+       is_finished = false;
 
        ret = sync_manager_remove_sync_job(sync_job_id);
        assert_eq(ret, SYNC_ERROR_NONE);
 
        sync_manager_setup_interval();
 
-       ret = sync_manager_add_periodic_sync_job(NULL, name_periodic, SYNC_PERIOD_INTERVAL_3H, (SYNC_OPTION_NO_RETRY | SYNC_OPTION_EXPEDITED), user_data, &sync_job_id);
+       ret = sync_manager_add_periodic_sync_job(account, name_periodic, SYNC_PERIOD_INTERVAL_6H, SYNC_OPTION_NONE, user_data, &sync_job_id);
        assert_eq(ret, SYNC_ERROR_NONE);
 
        ret = sync_manager_remove_sync_job(sync_job_id);
@@ -589,7 +587,7 @@ int utc_sync_manager_add_periodic_sync_job_p2(void)
 
        sync_manager_setup_interval();
 
-       ret = sync_manager_add_periodic_sync_job(account, name_periodic, SYNC_PERIOD_INTERVAL_6H, SYNC_OPTION_NONE, NULL, &sync_job_id);
+       ret = sync_manager_add_periodic_sync_job(account, name_periodic, SYNC_PERIOD_INTERVAL_12H, SYNC_OPTION_NO_RETRY, user_data, &sync_job_id);
        assert_eq(ret, SYNC_ERROR_NONE);
 
        ret = sync_manager_remove_sync_job(sync_job_id);
@@ -597,16 +595,14 @@ int utc_sync_manager_add_periodic_sync_job_p2(void)
 
        sync_manager_setup_interval();
 
-       ret = sync_manager_add_periodic_sync_job(NULL, name_periodic, SYNC_PERIOD_INTERVAL_12H, SYNC_OPTION_NO_RETRY, NULL, &sync_job_id);
-       assert_eq(ret, SYNC_ERROR_NONE);
-
-       ret = sync_manager_remove_sync_job(sync_job_id);
+       ret = sync_manager_add_periodic_sync_job(account, name_periodic, SYNC_PERIOD_INTERVAL_1DAY, SYNC_OPTION_EXPEDITED, user_data, &sync_job_id);
        assert_eq(ret, SYNC_ERROR_NONE);
 
-       sync_manager_setup_interval();
+       wait_for_async();
 
-       ret = sync_manager_add_periodic_sync_job(NULL, name_periodic, SYNC_PERIOD_INTERVAL_1DAY, SYNC_OPTION_EXPEDITED, user_data, &sync_job_id);
+       ret = is_callback_finished();
        assert_eq(ret, SYNC_ERROR_NONE);
+       is_finished = false;
 
        ret = sync_manager_remove_sync_job(sync_job_id);
        assert_eq(ret, SYNC_ERROR_NONE);
@@ -729,6 +725,104 @@ int utc_sync_manager_add_periodic_sync_job_n3(void)
 }
 
 
+/**
+ * @testcase           utc_sync_manager_add_periodic_sync_job_p2
+ * @since_tizen                2.4
+ * @description                Positive test case of adding periodic sync jobs with @c NULL parameters
+ */
+int utc_sync_manager_add_periodic_sync_job_p2(void)
+{
+       int ret = SYNC_ERROR_NONE;
+
+       sync_manager_setup_adapter();
+       assert(set_cb);
+
+       sync_manager_setup_account();
+       assert(using_acc);
+       assert(created_acc);
+       assert(existed_acc);
+
+       user_data = bundle_create();
+       bundle_add_str(user_data, "str", "String user_data sample.");
+
+       int sync_job_id = 0;
+
+       ret = sync_manager_add_periodic_sync_job(NULL, name_periodic, SYNC_PERIOD_INTERVAL_30MIN, SYNC_OPTION_NONE, user_data, &sync_job_id);
+       assert_eq(ret, SYNC_ERROR_NONE);
+
+       ret = sync_manager_remove_sync_job(sync_job_id);
+       assert_eq(ret, SYNC_ERROR_NONE);
+
+       sync_manager_setup_interval();
+
+       ret = sync_manager_add_periodic_sync_job(account, name_periodic, SYNC_PERIOD_INTERVAL_1H, SYNC_OPTION_NO_RETRY, NULL, &sync_job_id);
+       assert_eq(ret, SYNC_ERROR_NONE);
+
+       ret = sync_manager_remove_sync_job(sync_job_id);
+       assert_eq(ret, SYNC_ERROR_NONE);
+
+       sync_manager_setup_interval();
+
+       ret = sync_manager_add_periodic_sync_job(NULL, name_periodic, SYNC_PERIOD_INTERVAL_2H, SYNC_OPTION_EXPEDITED, NULL, &sync_job_id);
+       assert_eq(ret, SYNC_ERROR_NONE);
+
+       wait_for_async();
+
+       ret = is_callback_finished();
+       assert_eq(ret, SYNC_ERROR_NONE);
+       is_finished = false;
+
+       ret = sync_manager_remove_sync_job(sync_job_id);
+       assert_eq(ret, SYNC_ERROR_NONE);
+
+       sync_manager_setup_interval();
+
+       ret = sync_manager_add_periodic_sync_job(NULL, name_periodic, SYNC_PERIOD_INTERVAL_3H, (SYNC_OPTION_NO_RETRY | SYNC_OPTION_EXPEDITED), user_data, &sync_job_id);
+       assert_eq(ret, SYNC_ERROR_NONE);
+
+       wait_for_async();
+
+       ret = is_callback_finished();
+       assert_eq(ret, SYNC_ERROR_NONE);
+       is_finished = false;
+
+       ret = sync_manager_remove_sync_job(sync_job_id);
+       assert_eq(ret, SYNC_ERROR_NONE);
+
+       sync_manager_setup_interval();
+
+       ret = sync_manager_add_periodic_sync_job(account, name_periodic, SYNC_PERIOD_INTERVAL_6H, SYNC_OPTION_NONE, NULL, &sync_job_id);
+       assert_eq(ret, SYNC_ERROR_NONE);
+
+       ret = sync_manager_remove_sync_job(sync_job_id);
+       assert_eq(ret, SYNC_ERROR_NONE);
+
+       sync_manager_setup_interval();
+
+       ret = sync_manager_add_periodic_sync_job(NULL, name_periodic, SYNC_PERIOD_INTERVAL_12H, SYNC_OPTION_NO_RETRY, NULL, &sync_job_id);
+       assert_eq(ret, SYNC_ERROR_NONE);
+
+       ret = sync_manager_remove_sync_job(sync_job_id);
+       assert_eq(ret, SYNC_ERROR_NONE);
+
+       sync_manager_setup_interval();
+
+       ret = sync_manager_add_periodic_sync_job(NULL, name_periodic, SYNC_PERIOD_INTERVAL_1DAY, SYNC_OPTION_EXPEDITED, user_data, &sync_job_id);
+       assert_eq(ret, SYNC_ERROR_NONE);
+
+       wait_for_async();
+
+       ret = is_callback_finished();
+       assert_eq(ret, SYNC_ERROR_NONE);
+       is_finished = false;
+
+       ret = sync_manager_remove_sync_job(sync_job_id);
+       assert_eq(ret, SYNC_ERROR_NONE);
+
+       return 0;
+}
+
+
 /**
  * @testcase           utc_sync_manager_add_periodic_sync_job_n4
  * @since_tizen                2.4
@@ -831,6 +925,7 @@ int utc_sync_manager_add_data_change_sync_job_p(void)
 
        int sync_job_id = 0;
 
+#ifdef MOBILE
        ret = sync_manager_add_data_change_sync_job(account, capability_calendar, SYNC_OPTION_NONE, user_data, &sync_job_id);
        assert_eq(ret, SYNC_ERROR_NONE);
 
@@ -842,88 +937,39 @@ int utc_sync_manager_add_data_change_sync_job_p(void)
 
        ret = sync_manager_remove_sync_job(sync_job_id);
        assert_eq(ret, SYNC_ERROR_NONE);
+#endif
 
        ret = sync_manager_add_data_change_sync_job(account, capability_image, SYNC_OPTION_EXPEDITED, user_data, &sync_job_id);
        assert_eq(ret, SYNC_ERROR_NONE);
 
-       ret = sync_manager_remove_sync_job(sync_job_id);
-       assert_eq(ret, SYNC_ERROR_NONE);
+       wait_for_async();
 
-       ret = sync_manager_add_data_change_sync_job(account, capability_video, (SYNC_OPTION_NO_RETRY | SYNC_OPTION_EXPEDITED), user_data, &sync_job_id);
+       ret = is_callback_finished();
        assert_eq(ret, SYNC_ERROR_NONE);
+       is_finished = false;
 
        ret = sync_manager_remove_sync_job(sync_job_id);
        assert_eq(ret, SYNC_ERROR_NONE);
 
-       ret = sync_manager_add_data_change_sync_job(account, capability_sound, SYNC_OPTION_NONE, user_data, &sync_job_id);
-       assert_eq(ret, SYNC_ERROR_NONE);
-
-       ret = sync_manager_remove_sync_job(sync_job_id);
-       assert_eq(ret, SYNC_ERROR_NONE);
-
-       ret = sync_manager_add_data_change_sync_job(account, capability_music, SYNC_OPTION_NO_RETRY, user_data, &sync_job_id);
-       assert_eq(ret, SYNC_ERROR_NONE);
-
-       ret = sync_manager_remove_sync_job(sync_job_id);
-       assert_eq(ret, SYNC_ERROR_NONE);
-
-       return 0;
-}
-
-
-/**
- * @testcase           utc_sync_manager_add_data_change_sync_job_p2
- * @since_tizen                2.4
- * @description                Positive test case of adding data change sync jobs with @c NULL parameters
- */
-int utc_sync_manager_add_data_change_sync_job_p2(void)
-{
-       int ret = SYNC_ERROR_NONE;
-
-       sync_manager_setup_adapter();
-       assert(set_cb);
-
-       sync_manager_setup_account();
-       assert(using_acc);
-       assert(created_acc);
-       assert(existed_acc);
-
-       user_data = bundle_create();
-       bundle_add_str(user_data, "str", "String user_data sample.");
-
-       int sync_job_id = 0;
-
-       ret = sync_manager_add_data_change_sync_job(NULL, capability_calendar, SYNC_OPTION_EXPEDITED, user_data, &sync_job_id);
-       assert_eq(ret, SYNC_ERROR_NONE);
-
-       ret = sync_manager_remove_sync_job(sync_job_id);
-       assert_eq(ret, SYNC_ERROR_NONE);
-
-       ret = sync_manager_add_data_change_sync_job(account, capability_contact, (SYNC_OPTION_NO_RETRY | SYNC_OPTION_EXPEDITED), NULL, &sync_job_id);
-       assert_eq(ret, SYNC_ERROR_NONE);
-
-       ret = sync_manager_remove_sync_job(sync_job_id);
+       ret = sync_manager_add_data_change_sync_job(account, capability_video, (SYNC_OPTION_NO_RETRY | SYNC_OPTION_EXPEDITED), user_data, &sync_job_id);
        assert_eq(ret, SYNC_ERROR_NONE);
 
-       ret = sync_manager_add_data_change_sync_job(NULL, capability_image, SYNC_OPTION_NONE, NULL, &sync_job_id);
-       assert_eq(ret, SYNC_ERROR_NONE);
+       wait_for_async();
 
-       ret = sync_manager_remove_sync_job(sync_job_id);
-       assert_eq(ret, SYNC_ERROR_NONE);
-
-       ret = sync_manager_add_data_change_sync_job(NULL, capability_video, SYNC_OPTION_NO_RETRY, user_data, &sync_job_id);
+       ret = is_callback_finished();
        assert_eq(ret, SYNC_ERROR_NONE);
+       is_finished = false;
 
        ret = sync_manager_remove_sync_job(sync_job_id);
        assert_eq(ret, SYNC_ERROR_NONE);
 
-       ret = sync_manager_add_data_change_sync_job(account, capability_sound, SYNC_OPTION_EXPEDITED, NULL, &sync_job_id);
+       ret = sync_manager_add_data_change_sync_job(account, capability_sound, SYNC_OPTION_NONE, user_data, &sync_job_id);
        assert_eq(ret, SYNC_ERROR_NONE);
 
        ret = sync_manager_remove_sync_job(sync_job_id);
        assert_eq(ret, SYNC_ERROR_NONE);
 
-       ret = sync_manager_add_data_change_sync_job(NULL, capability_music, (SYNC_OPTION_NO_RETRY | SYNC_OPTION_EXPEDITED), NULL, &sync_job_id);
+       ret = sync_manager_add_data_change_sync_job(account, capability_music, SYNC_OPTION_NO_RETRY, user_data, &sync_job_id);
        assert_eq(ret, SYNC_ERROR_NONE);
 
        ret = sync_manager_remove_sync_job(sync_job_id);
@@ -1005,11 +1051,13 @@ int utc_sync_manager_add_data_change_sync_job_n2(void)
 
        int sync_job_id = 0;
 
+#ifdef MOBILE
        ret = sync_manager_add_data_change_sync_job(account, capability_calendar, -1, user_data, &sync_job_id);
        assert_eq(ret, SYNC_ERROR_INVALID_PARAMETER);
 
        ret = sync_manager_add_data_change_sync_job(NULL, capability_contact, -1, user_data, &sync_job_id);
        assert_eq(ret, SYNC_ERROR_INVALID_PARAMETER);
+#endif
 
        ret = sync_manager_add_data_change_sync_job(account, capability_image, -1, NULL, &sync_job_id);
        assert_eq(ret, SYNC_ERROR_INVALID_PARAMETER);
@@ -1021,6 +1069,94 @@ int utc_sync_manager_add_data_change_sync_job_n2(void)
 }
 
 
+/**
+ * @testcase           utc_sync_manager_add_data_change_sync_job_p2
+ * @since_tizen                2.4
+ * @description                Positive test case of adding data change sync jobs with @c NULL parameters
+ */
+int utc_sync_manager_add_data_change_sync_job_p2(void)
+{
+       int ret = SYNC_ERROR_NONE;
+
+       sync_manager_setup_adapter();
+       assert(set_cb);
+
+       sync_manager_setup_account();
+       assert(using_acc);
+       assert(created_acc);
+       assert(existed_acc);
+
+       user_data = bundle_create();
+       bundle_add_str(user_data, "str", "String user_data sample.");
+
+       int sync_job_id = 0;
+
+#ifdef MOBILE
+       ret = sync_manager_add_data_change_sync_job(NULL, capability_calendar, SYNC_OPTION_EXPEDITED, user_data, &sync_job_id);
+       assert_eq(ret, SYNC_ERROR_NONE);
+
+       wait_for_async();
+
+       ret = is_callback_finished();
+       assert_eq(ret, SYNC_ERROR_NONE);
+       is_finished = false;
+
+       ret = sync_manager_remove_sync_job(sync_job_id);
+       assert_eq(ret, SYNC_ERROR_NONE);
+
+       ret = sync_manager_add_data_change_sync_job(account, capability_contact, (SYNC_OPTION_NO_RETRY | SYNC_OPTION_EXPEDITED), NULL, &sync_job_id);
+       assert_eq(ret, SYNC_ERROR_NONE);
+
+       wait_for_async();
+
+       ret = is_callback_finished();
+       assert_eq(ret, SYNC_ERROR_NONE);
+       is_finished = false;
+
+       ret = sync_manager_remove_sync_job(sync_job_id);
+       assert_eq(ret, SYNC_ERROR_NONE);
+#endif
+
+       ret = sync_manager_add_data_change_sync_job(NULL, capability_image, SYNC_OPTION_NONE, NULL, &sync_job_id);
+       assert_eq(ret, SYNC_ERROR_NONE);
+
+       ret = sync_manager_remove_sync_job(sync_job_id);
+       assert_eq(ret, SYNC_ERROR_NONE);
+
+       ret = sync_manager_add_data_change_sync_job(NULL, capability_video, SYNC_OPTION_NO_RETRY, user_data, &sync_job_id);
+       assert_eq(ret, SYNC_ERROR_NONE);
+
+       ret = sync_manager_remove_sync_job(sync_job_id);
+       assert_eq(ret, SYNC_ERROR_NONE);
+
+       ret = sync_manager_add_data_change_sync_job(account, capability_sound, SYNC_OPTION_EXPEDITED, NULL, &sync_job_id);
+       assert_eq(ret, SYNC_ERROR_NONE);
+
+       wait_for_async();
+
+       ret = is_callback_finished();
+       assert_eq(ret, SYNC_ERROR_NONE);
+       is_finished = false;
+
+       ret = sync_manager_remove_sync_job(sync_job_id);
+       assert_eq(ret, SYNC_ERROR_NONE);
+
+       ret = sync_manager_add_data_change_sync_job(NULL, capability_music, (SYNC_OPTION_NO_RETRY | SYNC_OPTION_EXPEDITED), NULL, &sync_job_id);
+       assert_eq(ret, SYNC_ERROR_NONE);
+
+       wait_for_async();
+
+       ret = is_callback_finished();
+       assert_eq(ret, SYNC_ERROR_NONE);
+       is_finished = false;
+
+       ret = sync_manager_remove_sync_job(sync_job_id);
+       assert_eq(ret, SYNC_ERROR_NONE);
+
+       return 0;
+}
+
+
 /**
  * @testcase           utc_sync_manager_add_data_change_sync_job_n3
  * @since_tizen                2.4
@@ -1047,11 +1183,13 @@ int utc_sync_manager_add_data_change_sync_job_n3(void)
        ret = sync_manager_add_data_change_sync_job(NULL, capability_music, SYNC_OPTION_NO_RETRY, user_data, NULL);
        assert_eq(ret, SYNC_ERROR_INVALID_PARAMETER);
 
+#ifdef MOBILE
        ret = sync_manager_add_data_change_sync_job(account, capability_calendar, SYNC_OPTION_EXPEDITED, NULL, NULL);
        assert_eq(ret, SYNC_ERROR_INVALID_PARAMETER);
 
        ret = sync_manager_add_data_change_sync_job(NULL, capability_contact, (SYNC_OPTION_NO_RETRY | SYNC_OPTION_EXPEDITED), NULL, NULL);
        assert_eq(ret, SYNC_ERROR_INVALID_PARAMETER);
+#endif
 
        return 0;
 }
@@ -1079,11 +1217,13 @@ int utc_sync_manager_add_data_change_sync_job_n4(void)
        ret = sync_manager_add_data_change_sync_job(account, capability_music, SYNC_OPTION_NONE, user_data, &sync_job_id);
        assert_eq(ret, SYNC_ERROR_SYNC_ADAPTER_NOT_FOUND);
 
+#ifdef MOBILE
        ret = sync_manager_add_data_change_sync_job(NULL, capability_calendar, SYNC_OPTION_EXPEDITED, user_data, &sync_job_id);
        assert_eq(ret, SYNC_ERROR_SYNC_ADAPTER_NOT_FOUND);
 
        ret = sync_manager_add_data_change_sync_job(account, capability_contact, (SYNC_OPTION_NO_RETRY | SYNC_OPTION_EXPEDITED), NULL, &sync_job_id);
        assert_eq(ret, SYNC_ERROR_SYNC_ADAPTER_NOT_FOUND);
+#endif
 
        ret = sync_manager_add_data_change_sync_job(NULL, capability_image, SYNC_OPTION_NONE, NULL, &sync_job_id);
        assert_eq(ret, SYNC_ERROR_SYNC_ADAPTER_NOT_FOUND);
@@ -1141,12 +1281,24 @@ int utc_sync_manager_remove_sync_job_p(void)
        ret = sync_manager_remove_sync_job(sync_job_id);
        assert_eq(ret, SYNC_ERROR_NONE);
 
+       wait_for_async();
+
+       ret = is_callback_finished();
+       assert_eq(ret, SYNC_ERROR_NONE);
+       is_finished = false;
+
        ret = sync_manager_on_demand_sync_job(NULL, name_on_demand, (SYNC_OPTION_NO_RETRY | SYNC_OPTION_EXPEDITED), NULL, &sync_job_id);
        assert_eq(ret, SYNC_ERROR_NONE);
 
        ret = sync_manager_remove_sync_job(sync_job_id);
        assert_eq(ret, SYNC_ERROR_NONE);
 
+       wait_for_async();
+
+       ret = is_callback_finished();
+       assert_eq(ret, SYNC_ERROR_NONE);
+       is_finished = false;
+
        return 0;
 }
 
@@ -1192,6 +1344,12 @@ int utc_sync_manager_remove_sync_job_p2(void)
        ret = sync_manager_add_periodic_sync_job(account, name_periodic, SYNC_PERIOD_INTERVAL_6H, SYNC_OPTION_EXPEDITED, NULL, &sync_job_id);
        assert_eq(ret, SYNC_ERROR_NONE);
 
+       wait_for_async();
+
+       ret = is_callback_finished();
+       assert_eq(ret, SYNC_ERROR_NONE);
+       is_finished = false;
+
        ret = sync_manager_remove_sync_job(sync_job_id);
        assert_eq(ret, SYNC_ERROR_NONE);
 
@@ -1200,6 +1358,12 @@ int utc_sync_manager_remove_sync_job_p2(void)
        ret = sync_manager_add_periodic_sync_job(NULL, name_periodic, SYNC_PERIOD_INTERVAL_1DAY, (SYNC_OPTION_NO_RETRY | SYNC_OPTION_EXPEDITED), NULL, &sync_job_id);
        assert_eq(ret, SYNC_ERROR_NONE);
 
+       wait_for_async();
+
+       ret = is_callback_finished();
+       assert_eq(ret, SYNC_ERROR_NONE);
+       is_finished = false;
+
        ret = sync_manager_remove_sync_job(sync_job_id);
        assert_eq(ret, SYNC_ERROR_NONE);
 
@@ -1229,6 +1393,7 @@ int utc_sync_manager_remove_sync_job_p3(void)
 
        int sync_job_id = 0;
 
+#ifdef MOBILE
        ret = sync_manager_add_data_change_sync_job(account, capability_calendar, SYNC_OPTION_NONE, user_data, &sync_job_id);
        assert_eq(ret, SYNC_ERROR_NONE);
 
@@ -1240,16 +1405,29 @@ int utc_sync_manager_remove_sync_job_p3(void)
 
        ret = sync_manager_remove_sync_job(sync_job_id);
        assert_eq(ret, SYNC_ERROR_NONE);
+#endif
 
        ret = sync_manager_add_data_change_sync_job(account, capability_image, SYNC_OPTION_EXPEDITED, NULL, &sync_job_id);
        assert_eq(ret, SYNC_ERROR_NONE);
 
+       wait_for_async();
+
+       ret = is_callback_finished();
+       assert_eq(ret, SYNC_ERROR_NONE);
+       is_finished = false;
+
        ret = sync_manager_remove_sync_job(sync_job_id);
        assert_eq(ret, SYNC_ERROR_NONE);
 
        ret = sync_manager_add_data_change_sync_job(NULL, capability_video, (SYNC_OPTION_NO_RETRY | SYNC_OPTION_EXPEDITED), NULL, &sync_job_id);
        assert_eq(ret, SYNC_ERROR_NONE);
 
+       wait_for_async();
+
+       ret = is_callback_finished();
+       assert_eq(ret, SYNC_ERROR_NONE);
+       is_finished = false;
+
        ret = sync_manager_remove_sync_job(sync_job_id);
        assert_eq(ret, SYNC_ERROR_NONE);
 
@@ -1279,15 +1457,6 @@ int utc_sync_manager_remove_sync_job_n(void)
 
        int sync_job_id = 0;
 
-       ret = sync_manager_on_demand_sync_job(account, name_on_demand, SYNC_OPTION_NONE, user_data, &sync_job_id);
-       assert_eq(ret, SYNC_ERROR_NONE);
-
-       ret = sync_manager_remove_sync_job(-1);
-       assert_eq(ret, SYNC_ERROR_INVALID_PARAMETER);
-
-       ret = sync_manager_remove_sync_job(sync_job_id);
-       assert_eq(ret, SYNC_ERROR_NONE);
-
        ret = sync_manager_add_periodic_sync_job(account, name_periodic, SYNC_PERIOD_INTERVAL_30MIN, SYNC_OPTION_NONE, user_data, &sync_job_id);
        assert_eq(ret, SYNC_ERROR_NONE);
 
@@ -1297,7 +1466,7 @@ int utc_sync_manager_remove_sync_job_n(void)
        ret = sync_manager_remove_sync_job(sync_job_id);
        assert_eq(ret, SYNC_ERROR_NONE);
 
-       ret = sync_manager_add_data_change_sync_job(account, capability_calendar, SYNC_OPTION_NONE, user_data, &sync_job_id);
+       ret = sync_manager_add_data_change_sync_job(account, capability_image, SYNC_OPTION_NONE, user_data, &sync_job_id);
        assert_eq(ret, SYNC_ERROR_NONE);
 
        ret = sync_manager_remove_sync_job(-1);
@@ -1332,15 +1501,11 @@ int utc_sync_manager_foreach_sync_job_p(void)
 
        int sync_job_id1 = 0;
        int sync_job_id2 = 0;
-       int sync_job_id3 = 0;
-
-       ret = sync_manager_on_demand_sync_job(account, name_on_demand, SYNC_OPTION_NONE, user_data, &sync_job_id1);
-       assert_eq(ret, SYNC_ERROR_NONE);
 
-       ret = sync_manager_add_periodic_sync_job(account, name_periodic, SYNC_PERIOD_INTERVAL_30MIN, SYNC_OPTION_NONE, user_data, &sync_job_id2);
+       ret = sync_manager_add_periodic_sync_job(account, name_periodic, SYNC_PERIOD_INTERVAL_30MIN, SYNC_OPTION_NONE, user_data, &sync_job_id1);
        assert_eq(ret, SYNC_ERROR_NONE);
 
-       ret = sync_manager_add_data_change_sync_job(account, capability_calendar, SYNC_OPTION_NONE, user_data, &sync_job_id3);
+       ret = sync_manager_add_data_change_sync_job(account, capability_sound, SYNC_OPTION_NONE, user_data, &sync_job_id2);
        assert_eq(ret, SYNC_ERROR_NONE);
 
        ret = sync_manager_foreach_sync_job(sync_job_cb, NULL);
@@ -1352,9 +1517,6 @@ int utc_sync_manager_foreach_sync_job_p(void)
        ret = sync_manager_remove_sync_job(sync_job_id2);
        assert_eq(ret, SYNC_ERROR_NONE);
 
-       ret = sync_manager_remove_sync_job(sync_job_id3);
-       assert_eq(ret, SYNC_ERROR_NONE);
-
        return 0;
 }
 
@@ -1381,15 +1543,11 @@ int utc_sync_manager_foreach_sync_job_n(void)
 
        int sync_job_id1 = 0;
        int sync_job_id2 = 0;
-       int sync_job_id3 = 0;
-
-       ret = sync_manager_on_demand_sync_job(account, name_on_demand, SYNC_OPTION_NONE, user_data, &sync_job_id1);
-       assert_eq(ret, SYNC_ERROR_NONE);
 
-       ret = sync_manager_add_periodic_sync_job(account, name_periodic, SYNC_PERIOD_INTERVAL_30MIN, SYNC_OPTION_NONE, user_data, &sync_job_id2);
+       ret = sync_manager_add_periodic_sync_job(account, name_periodic, SYNC_PERIOD_INTERVAL_30MIN, SYNC_OPTION_NONE, user_data, &sync_job_id1);
        assert_eq(ret, SYNC_ERROR_NONE);
 
-       ret = sync_manager_add_data_change_sync_job(account, capability_calendar, SYNC_OPTION_NONE, user_data, &sync_job_id3);
+       ret = sync_manager_add_data_change_sync_job(account, capability_music, SYNC_OPTION_NONE, user_data, &sync_job_id2);
        assert_eq(ret, SYNC_ERROR_NONE);
 
        ret = sync_manager_foreach_sync_job(NULL, NULL);
@@ -1401,8 +1559,5 @@ int utc_sync_manager_foreach_sync_job_n(void)
        ret = sync_manager_remove_sync_job(sync_job_id2);
        assert_eq(ret, SYNC_ERROR_NONE);
 
-       ret = sync_manager_remove_sync_job(sync_job_id3);
-       assert_eq(ret, SYNC_ERROR_NONE);
-
        return 0;
 }
index fe9cdb6d4a938634c0dfc1fdbf147982a9e956e6..5068c63947b8fb3b7eca0a58bd67a01214896e01 100644 (file)
@@ -71,11 +71,15 @@ __sync_adapter_on_start_sync(TizenSyncAdapter *pObject,
        LOG_LOGD("Received start sync request in sync adapter: params account[%d] jobname [%s] Data sync [%s]", accountId, pSyncJobName, is_data_sync ? "YES" : "NO");
 
        char *command_line = proc_get_cmdline_self();
+
+       if (!g_sync_adapter) {
+               LOG_LOGD("Sync adapter is already released");
+               return false;
+       }
+
        if (g_sync_adapter->__syncRunning) {
                LOG_LOGD("Sync already running");
-
                tizen_sync_adapter_call_send_result_sync(pObject, command_line, (int)SYNC_STATUS_SYNC_ALREADY_IN_PROGRESS, pSyncJobName, NULL, NULL);
-
                return true;
        }
 
@@ -129,6 +133,7 @@ __sync_adapter_on_stop_sync(
                account_create(&account);
                account_query_account_by_account_id(accountId, &account);
        }
+
        bundle *sync_job_user_data = umarshal_bundle(pSyncJobUserData);
 
        if (is_data_sync)
index f3e6de3fd3b93f28e465e9cb4af16eb2b35c3f9c..bbc41b209c06965582c0a4174e26dcef722b2e85 100644 (file)
@@ -416,14 +416,14 @@ void
 SyncService::TriggerStopSync(const char* appId, int accountId, const char* syncJobName, bool isDataSync, bundle* pExtras) {
        LOG_LOGD("Trigger stop sync %s", appId);
 
-       //int id = -1;
-
        TizenSyncAdapter* pSyncAdapter = (TizenSyncAdapter*) g_hash_table_lookup(g_hash_table, appId);
-       if (pSyncAdapter == NULL) {
+       if (!pSyncAdapter) {
                LOG_LOGD("Failed to lookup syncadapter");
                return;
        }
+
        GVariant* pBundle = marshal_bundle(pExtras);
+
        tizen_sync_adapter_emit_cancel_sync(pSyncAdapter, accountId, syncJobName, isDataSync, pBundle);
 }
 /* LCOV_EXCL_STOP */