Improve unittest 97/230197/9
authorJusung Son <jusung07.son@samsung.com>
Wed, 8 Apr 2020 10:47:06 +0000 (19:47 +0900)
committerJusung Son <jusung07.son@samsung.com>
Fri, 17 Apr 2020 05:59:50 +0000 (14:59 +0900)
Change-Id: I6af45e99ea2d8cab91ca97a42d4ef662e24270f5
Signed-off-by: Jusung Son <jusung07.son@samsung.com>
unittest/data/test.sql
unittest/src/test-complication.cc
unittest/src/test-editables-container.cc
unittest/src/test-watchface-complication-provider.cc
unittest/src/test-watchface-complication.cc
unittest/src/test-watchface-editable.cc
unittest/src/test-watchface-editor.cc

index 6b7f7d2..c4e9419 100644 (file)
@@ -60,6 +60,13 @@ INSERT INTO provider_icon (
   'icon_path'
 );
 
+INSERT INTO provider_icon (
+  provider_id, locale, icon_path) VALUES (
+  'org.tizen.gmock_comp_provider2/test',
+  'No Locale',
+  'icon_path'
+);
+
 INSERT INTO provider_localized_info (
   provider_id, locale, provider_label) VALUES (
   'org.tizen.gmock_comp_provider/test',
@@ -67,6 +74,13 @@ INSERT INTO provider_localized_info (
   'provider_label'
 );
 
+INSERT INTO provider_localized_info (
+  provider_id, locale, provider_label) VALUES (
+  'org.tizen.gmock_comp_provider2/test',
+  'No Locale',
+  'provider_label'
+);
+
 INSERT INTO provider_support_types (
   provider_id, support_type, default_data) VALUES (
   'org.tizen.gmock_comp_provider/test',
index ce1b861..965e650 100644 (file)
@@ -317,6 +317,7 @@ guint __fake_signal_subscribe_on_data_updated(GDBusConnection* connection,
                       "__COMP_UPDATED__",
                       parameters,
                       user_data);
+  g_variant_unref(parameters);
   parameters = g_variant_new("(s)", "org.tizen.gmock_comp_provider2/test");
   callback(nullptr, "org.tizen.gmock_comp_provider2",
                       "test path",
@@ -330,6 +331,7 @@ guint __fake_signal_subscribe_on_data_updated(GDBusConnection* connection,
                       "__PROVIDER_READY__",
                       parameters,
                       user_data);
+  g_variant_unref(parameters);
   return 1;
 }
 
index 620b7da..aae37f8 100644 (file)
@@ -189,19 +189,40 @@ guint __fake_signal_subscribe_on_update(GDBusConnection* connection,
                         "test interface",
                         "__EDITABLE_EDIT_READY__",
                         parameters);
+    g_variant_unref(parameters);
+
+    parameters = g_variant_new("(s)", "test");
+    rs->OnSignal(nullptr, "org.tizen.editor",
+                        "test path",
+                        "test interface",
+                        "__EDITABLE_EDIT_READY__",
+                        parameters);
+    g_variant_unref(parameters);
 
     parameters = g_variant_new("(iisii)", 0, 0, b.ToRaw().first.get(), 0, 0);
+    rs->OnSignal(nullptr, "test",
+                        "test path",
+                        "test interface",
+                        "__EDITABLE_EDIT_PREVIEW__",
+                        parameters);
     rs->OnSignal(nullptr, "org.tizen.editor",
                         "test path",
                         "test interface",
                         "__EDITABLE_EDIT_PREVIEW__",
                         parameters);
+    rs->OnSignal(nullptr, "test",
+                        "test path",
+                        "test interface",
+                        "__EDITABLE_EDIT_CANCEL__",
+                        parameters);
     rs->OnSignal(nullptr, "org.tizen.editor",
                         "test path",
                         "test interface",
                         "__EDITABLE_EDIT_CANCEL__",
                         parameters);
-    parameters = g_variant_new("(iisii)", 0, 0, b.ToRaw().first.get(), 0, 0);
+    g_variant_unref(parameters);
+
+    parameters = g_variant_new("(iisii)", 0, 0, b.ToRaw().first.get(), 0, 1);
     rs->OnSignal(nullptr, "org.tizen.editor",
                         "test path",
                         "test interface",
@@ -212,6 +233,8 @@ guint __fake_signal_subscribe_on_update(GDBusConnection* connection,
                         "test interface",
                         "__EDITABLE_EDIT_COMPLETE__",
                         parameters);
+    g_variant_unref(parameters);
+
     g_main_loop_quit(ec_loop_);
 
     return G_SOURCE_CONTINUE;
index 5e4527f..94fd3dd 100644 (file)
@@ -97,19 +97,40 @@ guint __fake_signal_subscribe_on_update(GDBusConnection* connection,
   if (event_timer__ != 0)
     g_source_remove(event_timer__);
 
-  event_timer__ = g_timeout_add(1000, [](gpointer user_data)->gboolean {
+  event_timer__ = g_timeout_add(500, [](gpointer user_data)->gboolean {
     IGDBus::IGDBusEvent* rs = static_cast<IGDBus::IGDBusEvent*>(user_data);
     Bundle b;
     string sender_name = "org.tizen.gmock_comp_provider2";
     b.Add("context", "test");
+
     GVariant* parameters = g_variant_new("(siis)",
         "org.tizen.gmock_comp_provider2", 1, Icon, b.ToRaw().first.get());
-
     rs->OnSignal(nullptr, sender_name,
                         "test path",
                         "test interface",
                         "__COMP_UPDATE_REQUEST__",
                         parameters);
+    g_variant_unref(parameters);
+
+    parameters = g_variant_new("(siii)",
+        "org.tizen.gmock_comp_provider2", Icon, 1, 1);
+    rs->OnSignal(nullptr, sender_name,
+                        "test path",
+                        "test interface",
+                        "__COMP_NOTIFY_LISTENING_STATUS__",
+                        parameters);
+    g_variant_unref(parameters);
+
+    parameters = g_variant_new("(siii)",
+        "org.tizen.gmock_comp_provider2", Icon, 1, 0);
+    rs->OnSignal(nullptr, sender_name,
+                        "test path",
+                        "test interface",
+                        "__COMP_NOTIFY_LISTENING_STATUS__",
+                        parameters);
+    g_variant_unref(parameters);
+
+    rs->OnVanish("org.tizen.watchface_complication._384a702381f61e7c1466cda88f001d28");
 
     if (g_main_loop_is_running(loop_))
       g_main_loop_quit(loop_);
@@ -138,26 +159,34 @@ void __all_provider_foreach_cb(const provider_info_h info, void *user_data) {
 
 void __provider_foreach_cb(const provider_info_h info, void *user_data) {
   char* str_value = nullptr;
+  int types, ret;
   watchface_complication_provider_info_get_id(info, &str_value);
   unique_ptr<char, decltype(free)*> ptr(str_value, free);
   EXPECT_STREQ(ptr.get(), "org.tizen.gmock_comp_provider/test");
+  ret = watchface_complication_provider_info_get_id(info, nullptr);
+  EXPECT_EQ(WATCHFACE_COMPLICATION_ERROR_INVALID_PARAMETER, ret);
 
   str_value = nullptr;
   watchface_complication_provider_info_get_app_id(info, &str_value);
   ptr.reset(str_value);
   EXPECT_STREQ(ptr.get(), "org.tizen.gmock_comp_provider");
+  ret = watchface_complication_provider_info_get_app_id(info, nullptr);
+  EXPECT_EQ(WATCHFACE_COMPLICATION_ERROR_INVALID_PARAMETER, ret);
 
   str_value = nullptr;
   watchface_complication_provider_info_get_label(info, &str_value);
   ptr.reset(str_value);
   EXPECT_STREQ(ptr.get(), "provider_label");
+  ret =   watchface_complication_provider_info_get_label(info, nullptr);
+  EXPECT_EQ(WATCHFACE_COMPLICATION_ERROR_INVALID_PARAMETER, ret);
 
   str_value = nullptr;
   watchface_complication_provider_info_get_icon(info, &str_value);
   ptr.reset(str_value);
   EXPECT_STREQ(ptr.get(), "icon_path");
+  ret = watchface_complication_provider_info_get_icon(info, nullptr);
+  EXPECT_EQ(WATCHFACE_COMPLICATION_ERROR_INVALID_PARAMETER, ret);
 
-  int types;
   watchface_complication_provider_info_get_types(info, &types);
   EXPECT_EQ(WATCHFACE_COMPLICATION_TYPE_SHORT_TEXT |
                 WATCHFACE_COMPLICATION_TYPE_LONG_TEXT |
@@ -167,6 +196,9 @@ void __provider_foreach_cb(const provider_info_h info, void *user_data) {
                 WATCHFACE_COMPLICATION_TYPE_IMAGE |
                 WATCHFACE_COMPLICATION_TYPE_SMALL_IMAGE,
                 types);
+
+  ret = watchface_complication_provider_info_get_types(info, nullptr);
+  EXPECT_EQ(WATCHFACE_COMPLICATION_ERROR_INVALID_PARAMETER, ret);
 }
 
 class CWCP : public ::testing::Test {
@@ -205,10 +237,26 @@ void _update_requested_cb(
       const char* provider_id, const char* req_appid,
       watchface_complication_type_e type, const bundle* context,
       bundle* share_data, void* user_data) {
-  watchface_complication_provider_data_set_type(
+  int ret;
+  ret = watchface_complication_provider_data_set_type(
       share_data, WATCHFACE_COMPLICATION_TYPE_ICON);
-  watchface_complication_provider_data_set_icon_path(
+  EXPECT_EQ(WATCHFACE_COMPLICATION_ERROR_NONE, ret);
+
+  ret = watchface_complication_provider_data_set_icon_path(
+      share_data, nullptr);
+  EXPECT_EQ(WATCHFACE_COMPLICATION_ERROR_INVALID_PARAMETER, ret);
+  ret = watchface_complication_provider_data_set_icon_path(
       share_data, "data/icon.png");
+  EXPECT_EQ(WATCHFACE_COMPLICATION_ERROR_NONE, ret);
+
+  watchface_complication_provider_data_set_type(
+      share_data, WATCHFACE_COMPLICATION_TYPE_NO_DATA);
+}
+
+void _consumer_status_cb(const char *provider_id,
+      const char *request_appid,
+      watchface_complication_consumer_status_e status,
+      void *user_data) {
 }
 
 TEST_F(CWCP, watchface_complication_provider_add_update_requested_cb)
@@ -217,14 +265,34 @@ TEST_F(CWCP, watchface_complication_provider_add_update_requested_cb)
       "org.tizen.gmock_comp_provider2/test",
       _update_requested_cb, nullptr);
   EXPECT_EQ(WATCHFACE_COMPLICATION_ERROR_NONE, ret);
+  ret = watchface_complication_provider_add_update_requested_cb(
+      "org.tizen.gmock_comp_provider2/test",
+      _update_requested_cb, nullptr);
+  EXPECT_EQ( WATCHFACE_COMPLICATION_ERROR_INVALID_PARAMETER, ret);
+
+  watchface_complication_provider_set_consumer_status_cb(
+    _consumer_status_cb, nullptr);
+
+  /* already registered callback check*/
+  watchface_complication_provider_set_consumer_status_cb(
+    _consumer_status_cb, nullptr);
+
   ret = watchface_complication_provider_notify_update(
       "org.tizen.gmock_comp_provider2/test");
   EXPECT_EQ(WATCHFACE_COMPLICATION_ERROR_NONE, ret);
+  ret = watchface_complication_provider_notify_update(
+      "org.tizen");
+  EXPECT_EQ(WATCHFACE_COMPLICATION_ERROR_INVALID_PARAMETER, ret);
+
   RunLoop();
   ret = watchface_complication_provider_remove_update_requested_cb(
       "org.tizen.gmock_comp_provider2/test",
       _update_requested_cb);
   EXPECT_EQ(WATCHFACE_COMPLICATION_ERROR_NONE, ret);
+  ret = watchface_complication_provider_remove_update_requested_cb(
+      "org.tizen.gmock_comp_provider2/test",
+      _update_requested_cb);
+  EXPECT_EQ(WATCHFACE_COMPLICATION_ERROR_INVALID_PARAMETER, ret);
 }
 
 TEST_F(CWCP, watchface_complication_provider_setup_reply_to_editor)
@@ -247,15 +315,23 @@ TEST_F(CWCP, watchface_complication_provider_setup_is_editing)
 {
   app_control_h service;
   app_control_create(&service);
-  app_control_add_extra_data(service,
-      "__SETUP_EDITOR_APPID_KEY__", "org.test.editor");
-  app_control_add_extra_data(service, "__SETUP_EDITABLE_ID_KEY__", "10");
 
   bool is_editing = false;
   int ret = watchface_complication_provider_setup_is_editing(
+         service, &is_editing);
+  EXPECT_EQ(WATCHFACE_COMPLICATION_ERROR_NONE, ret);
+  EXPECT_EQ(false, is_editing);
+
+  app_control_add_extra_data(service,
+      "__SETUP_EDITOR_APPID_KEY__", "org.test.editor");
+
+  ret = watchface_complication_provider_setup_is_editing(
       service, &is_editing);
   app_control_destroy(service);
   EXPECT_EQ(WATCHFACE_COMPLICATION_ERROR_NONE, ret);
+
+  ret = watchface_complication_provider_setup_is_editing(nullptr, nullptr);
+  EXPECT_EQ(WATCHFACE_COMPLICATION_ERROR_INVALID_PARAMETER, ret);
 }
 
 TEST_F(CWCP, watchface_complication_provider_setup_get_context)
@@ -264,14 +340,27 @@ TEST_F(CWCP, watchface_complication_provider_setup_get_context)
   app_control_create(&service);
   app_control_add_extra_data(service,
       "__SETUP_EDITOR_APPID_KEY__", "org.test.editor");
-  app_control_add_extra_data(service, "__SETUP_EDITABLE_ID_KEY__", "10");
-  bundle* context = bundle_create();
-
+  bundle* context;
   int ret = watchface_complication_provider_setup_get_context(
       service, &context);
+  EXPECT_EQ(nullptr, context);
+
+  bundle* context_test = bundle_create();
+  bundle_raw* r;
+  int len;
+  bundle_encode(context_test, &r, &len);
+  app_control_add_extra_data(service, "__SETUP_CONTEXT_DATA_KEY__",
+          (const char *)r);
+  bundle_free(context_test);
+  free(r);
+  ret = watchface_complication_provider_setup_get_context(
+         service, &context);
   bundle_free(context);
   app_control_destroy(service);
   EXPECT_EQ(WATCHFACE_COMPLICATION_ERROR_NONE, ret);
+
+  ret = watchface_complication_provider_setup_get_context(nullptr, nullptr);
+  EXPECT_EQ(WATCHFACE_COMPLICATION_ERROR_INVALID_PARAMETER, ret);
 }
 
 TEST_F(CWCP, watchface_complication_provider_data_set_type)
@@ -281,47 +370,196 @@ TEST_F(CWCP, watchface_complication_provider_data_set_type)
       shared, WATCHFACE_COMPLICATION_TYPE_LONG_TEXT);
   bundle_free(shared);
   EXPECT_EQ(WATCHFACE_COMPLICATION_ERROR_NONE, ret);
+
+  ret = watchface_complication_provider_data_set_type(
+      nullptr, WATCHFACE_COMPLICATION_TYPE_LONG_TEXT);
+  EXPECT_EQ(WATCHFACE_COMPLICATION_ERROR_INVALID_PARAMETER, ret);
 }
 
 TEST_F(CWCP, watchface_complication_provider_data_is_valid)
 {
   bundle* shared = bundle_create();
+  bool is_valid;
   int ret = watchface_complication_provider_data_set_type(
+      nullptr, WATCHFACE_COMPLICATION_TYPE_LONG_TEXT);
+  EXPECT_EQ(WATCHFACE_COMPLICATION_ERROR_INVALID_PARAMETER, ret);
+  ret = watchface_complication_provider_data_set_type(
+      shared, (watchface_complication_type_e)-1);
+  EXPECT_EQ(WATCHFACE_COMPLICATION_ERROR_INVALID_PARAMETER, ret);
+  ret = watchface_complication_provider_data_is_valid(shared, nullptr);
+  EXPECT_EQ(WATCHFACE_COMPLICATION_ERROR_INVALID_PARAMETER, ret);
+
+  /* WATCHFACE_COMPLICATION_TYPE_SHORT_TEXT */
+  watchface_complication_provider_data_set_type(
+      shared, WATCHFACE_COMPLICATION_TYPE_SHORT_TEXT);
+  ret = watchface_complication_provider_data_set_short_text(shared, "t");
+  EXPECT_EQ(WATCHFACE_COMPLICATION_ERROR_NONE, ret);
+  ret = watchface_complication_provider_data_is_valid(shared, &is_valid);
+  EXPECT_EQ(WATCHFACE_COMPLICATION_ERROR_NONE, ret);
+  EXPECT_EQ(is_valid, true);
+  ret = watchface_complication_provider_data_set_small_image_path_with_aod(shared, "t", "t");
+  EXPECT_EQ(WATCHFACE_COMPLICATION_ERROR_INVALID_PARAMETER, ret);
+  ret = watchface_complication_provider_data_set_small_image_path(shared, "t");
+  EXPECT_EQ(WATCHFACE_COMPLICATION_ERROR_INVALID_PARAMETER, ret);
+
+  /* WATCHFACE_COMPLICATION_TYPE_LONG_TEXT */
+  watchface_complication_provider_data_set_type(
       shared, WATCHFACE_COMPLICATION_TYPE_LONG_TEXT);
+  ret = watchface_complication_provider_data_set_title(shared, "title");
   EXPECT_EQ(WATCHFACE_COMPLICATION_ERROR_NONE, ret);
-  bool is_valid;
   ret = watchface_complication_provider_data_is_valid(shared, &is_valid);
   EXPECT_EQ(WATCHFACE_COMPLICATION_ERROR_NONE, ret);
   EXPECT_EQ(is_valid, false);
+  ret = watchface_complication_provider_data_set_image_path_with_aod(shared, "t", "t");
+  EXPECT_EQ(WATCHFACE_COMPLICATION_ERROR_INVALID_PARAMETER, ret);
+  ret = watchface_complication_provider_data_set_short_text(shared, "t");
+  EXPECT_EQ(WATCHFACE_COMPLICATION_ERROR_INVALID_PARAMETER, ret);
 
+  /* WATCHFACE_COMPLICATION_TYPE_RANGED_VALUE */
   watchface_complication_provider_data_set_type(
       shared, WATCHFACE_COMPLICATION_TYPE_RANGED_VALUE);
-  watchface_complication_provider_data_set_ranged_value(
+  ret = watchface_complication_provider_data_set_ranged_value(
       shared, 10.0, 0.0, 100.0);
+  EXPECT_EQ(WATCHFACE_COMPLICATION_ERROR_NONE, ret);
   ret = watchface_complication_provider_data_is_valid(shared, &is_valid);
   EXPECT_EQ(WATCHFACE_COMPLICATION_ERROR_NONE, ret);
   EXPECT_EQ(is_valid, true);
-
+  ret = watchface_complication_provider_data_set_icon_path_with_aod(shared, "t", "t");
+  EXPECT_EQ(WATCHFACE_COMPLICATION_ERROR_INVALID_PARAMETER, ret);
+  ret = watchface_complication_provider_data_set_icon_path(shared, "t");
+  EXPECT_EQ(WATCHFACE_COMPLICATION_ERROR_INVALID_PARAMETER, ret);
+  ret = watchface_complication_provider_data_set_small_image_path_with_aod(shared, "t", "t");
+  EXPECT_EQ(WATCHFACE_COMPLICATION_ERROR_INVALID_PARAMETER, ret);
+  ret = watchface_complication_provider_data_set_small_image_path(shared, "t");
+  EXPECT_EQ(WATCHFACE_COMPLICATION_ERROR_INVALID_PARAMETER, ret);
+
+  /* WATCHFACE_COMPLICATION_TYPE_TIME */
   watchface_complication_provider_data_set_type(
       shared, WATCHFACE_COMPLICATION_TYPE_TIME);
   watchface_complication_provider_data_set_timestamp(shared, 10.0);
   ret = watchface_complication_provider_data_is_valid(shared, &is_valid);
   EXPECT_EQ(WATCHFACE_COMPLICATION_ERROR_NONE, ret);
   EXPECT_EQ(is_valid, true);
+  ret = watchface_complication_provider_data_set_small_image_path_with_aod(shared, "t", "t");
+  EXPECT_EQ(WATCHFACE_COMPLICATION_ERROR_INVALID_PARAMETER, ret);
+  ret = watchface_complication_provider_data_set_small_image_path(shared, "t");
+  EXPECT_EQ(WATCHFACE_COMPLICATION_ERROR_INVALID_PARAMETER, ret);
 
+  /* WATCHFACE_COMPLICATION_TYPE_ICON */
+  watchface_complication_provider_data_set_type(
+      shared, WATCHFACE_COMPLICATION_TYPE_ICON);
+  ret = watchface_complication_provider_data_set_icon_path(shared, "res/data.png");
+  EXPECT_EQ(WATCHFACE_COMPLICATION_ERROR_NONE, ret);
+  ret = watchface_complication_provider_data_is_valid(shared, &is_valid);
+  EXPECT_EQ(WATCHFACE_COMPLICATION_ERROR_NONE, ret);
+  EXPECT_EQ(is_valid, true);
+  ret = watchface_complication_provider_data_set_small_image_path_with_aod(shared, "t", "t");
+  EXPECT_EQ(WATCHFACE_COMPLICATION_ERROR_INVALID_PARAMETER, ret);
+  ret = watchface_complication_provider_data_set_small_image_path(shared, "t");
+  EXPECT_EQ(WATCHFACE_COMPLICATION_ERROR_INVALID_PARAMETER, ret);
+  ret = watchface_complication_provider_data_set_title(shared, "t");
+  EXPECT_EQ(WATCHFACE_COMPLICATION_ERROR_INVALID_PARAMETER, ret);
+  ret = watchface_complication_provider_data_set_short_text(shared, "t");
+  EXPECT_EQ(WATCHFACE_COMPLICATION_ERROR_INVALID_PARAMETER, ret);
+
+  /* WATCHFACE_COMPLICATION_TYPE_IMAGE */
   watchface_complication_provider_data_set_type(
       shared, WATCHFACE_COMPLICATION_TYPE_IMAGE);
   watchface_complication_provider_data_set_image_path(shared, "res/data.png");
   ret = watchface_complication_provider_data_is_valid(shared, &is_valid);
   EXPECT_EQ(WATCHFACE_COMPLICATION_ERROR_NONE, ret);
   EXPECT_EQ(is_valid, true);
-
+  ret = watchface_complication_provider_data_set_icon_path_with_aod(shared, "t", "t");
+  EXPECT_EQ(WATCHFACE_COMPLICATION_ERROR_INVALID_PARAMETER, ret);
+  ret = watchface_complication_provider_data_set_small_image_path_with_aod(shared, "t", "t");
+  EXPECT_EQ(WATCHFACE_COMPLICATION_ERROR_INVALID_PARAMETER, ret);
+  ret = watchface_complication_provider_data_set_title(shared, "t");
+  EXPECT_EQ(WATCHFACE_COMPLICATION_ERROR_INVALID_PARAMETER, ret);
+  ret = watchface_complication_provider_data_set_short_text(shared, "t");
+  EXPECT_EQ(WATCHFACE_COMPLICATION_ERROR_INVALID_PARAMETER, ret);
+  ret = watchface_complication_provider_data_set_small_image_path(shared, "t");
+  EXPECT_EQ(WATCHFACE_COMPLICATION_ERROR_INVALID_PARAMETER, ret);
+  ret = watchface_complication_provider_data_set_icon_path(shared, "t");
+  EXPECT_EQ(WATCHFACE_COMPLICATION_ERROR_INVALID_PARAMETER, ret);
+
+  /* WATCHFACE_COMPLICATION_TYPE_SMALL_IMAGE */
   watchface_complication_provider_data_set_type(shared,
     static_cast<watchface_complication_type_e>(WATCHFACE_COMPLICATION_TYPE_SMALL_IMAGE));
   watchface_complication_provider_data_set_small_image_path(shared, "res/data.png");
   ret = watchface_complication_provider_data_is_valid(shared, &is_valid);
   EXPECT_EQ(WATCHFACE_COMPLICATION_ERROR_NONE, ret);
   EXPECT_EQ(is_valid, true);
+  ret = watchface_complication_provider_data_set_icon_path_with_aod(shared, "t", "t");
+  EXPECT_EQ(WATCHFACE_COMPLICATION_ERROR_INVALID_PARAMETER, ret);
+  ret = watchface_complication_provider_data_set_title(shared, "t");
+  EXPECT_EQ(WATCHFACE_COMPLICATION_ERROR_INVALID_PARAMETER, ret);
+  ret = watchface_complication_provider_data_set_short_text(shared, "t");
+  EXPECT_EQ(WATCHFACE_COMPLICATION_ERROR_INVALID_PARAMETER, ret);
+  ret = watchface_complication_provider_data_set_icon_path(shared, "t");
+  EXPECT_EQ(WATCHFACE_COMPLICATION_ERROR_INVALID_PARAMETER, ret);
+  ret = watchface_complication_provider_data_set_long_text(shared, "t");
+  EXPECT_EQ(WATCHFACE_COMPLICATION_ERROR_INVALID_PARAMETER, ret);
+  ret = watchface_complication_provider_data_set_timestamp(shared, 0);
+  EXPECT_EQ(WATCHFACE_COMPLICATION_ERROR_INVALID_PARAMETER, ret);
+  ret = watchface_complication_provider_data_set_image_path(shared, "t");
+  EXPECT_EQ(WATCHFACE_COMPLICATION_ERROR_INVALID_PARAMETER, ret);
+
+  bundle_free(shared);
+}
+
+ TEST_F(CWCP, negative_test)
+{
+  bundle* shared = bundle_create();
+  int ret;
+
+  ret = watchface_complication_provider_data_set_icon_path(shared, nullptr);
+  EXPECT_EQ(WATCHFACE_COMPLICATION_ERROR_INVALID_PARAMETER, ret);
+  ret = watchface_complication_provider_data_set_image_path(shared, nullptr);
+  EXPECT_EQ(WATCHFACE_COMPLICATION_ERROR_INVALID_PARAMETER, ret);
+  ret = watchface_complication_provider_data_set_small_image_path(shared, nullptr);
+  EXPECT_EQ(WATCHFACE_COMPLICATION_ERROR_INVALID_PARAMETER, ret);
+  ret = watchface_complication_provider_data_set_ranged_value(
+  shared, 10.0, 100.0, 0.0);
+  EXPECT_EQ(WATCHFACE_COMPLICATION_ERROR_INVALID_PARAMETER, ret);
+  ret = watchface_complication_provider_data_set_title(shared, nullptr);
+  EXPECT_EQ(WATCHFACE_COMPLICATION_ERROR_INVALID_PARAMETER, ret);
+  ret = watchface_complication_provider_data_set_short_text(shared, nullptr);
+  EXPECT_EQ(WATCHFACE_COMPLICATION_ERROR_INVALID_PARAMETER, ret);
+  ret = watchface_complication_provider_data_set_icon_path_with_aod(shared, nullptr, "t");
+  EXPECT_EQ(WATCHFACE_COMPLICATION_ERROR_INVALID_PARAMETER, ret);
+  ret = watchface_complication_provider_data_set_image_path_with_aod(shared, nullptr, "t");
+  EXPECT_EQ(WATCHFACE_COMPLICATION_ERROR_INVALID_PARAMETER, ret);
+  ret = watchface_complication_provider_data_set_small_image_path_with_aod(shared, nullptr, "t");
+  EXPECT_EQ(WATCHFACE_COMPLICATION_ERROR_INVALID_PARAMETER, ret);
+  ret = watchface_complication_provider_data_set_long_text(shared, nullptr);
+  EXPECT_EQ(WATCHFACE_COMPLICATION_ERROR_INVALID_PARAMETER, ret);
+  ret = watchface_complication_provider_data_set_timestamp(nullptr, 0);
+  EXPECT_EQ(WATCHFACE_COMPLICATION_ERROR_INVALID_PARAMETER, ret);
+  ret = watchface_complication_provider_timeinfo_create(nullptr);
+  EXPECT_EQ(WATCHFACE_COMPLICATION_ERROR_INVALID_PARAMETER, ret);
+
+  complication_time_info_h info;
+  watchface_complication_provider_timeinfo_create(&info);
+  ret = watchface_complication_provider_timeinfo_set_timezone(info, nullptr);
+  EXPECT_EQ(WATCHFACE_COMPLICATION_ERROR_INVALID_PARAMETER, ret);
+  ret = watchface_complication_provider_timeinfo_set_timezone_id(info, nullptr);
+  EXPECT_EQ(WATCHFACE_COMPLICATION_ERROR_INVALID_PARAMETER, ret);
+  ret = watchface_complication_provider_timeinfo_set_timezone_country(info, nullptr);
+  EXPECT_EQ(WATCHFACE_COMPLICATION_ERROR_INVALID_PARAMETER, ret);
+  ret = watchface_complication_provider_timeinfo_set_timezone_city(info, nullptr);
+  EXPECT_EQ(WATCHFACE_COMPLICATION_ERROR_INVALID_PARAMETER, ret);
+  ret = watchface_complication_provider_data_set_timeinfo(nullptr, info);
+  EXPECT_EQ(WATCHFACE_COMPLICATION_ERROR_INVALID_PARAMETER, ret);
+  ret = watchface_complication_provider_timeinfo_destroy(nullptr);
+  EXPECT_EQ(WATCHFACE_COMPLICATION_ERROR_INVALID_PARAMETER, ret);
+  ret = watchface_complication_provider_data_set_extra_data(shared, nullptr);
+  watchface_complication_provider_timeinfo_destroy(info);
+
+  EXPECT_EQ(WATCHFACE_COMPLICATION_ERROR_INVALID_PARAMETER, ret);
+  ret = watchface_complication_provider_data_set_screen_reader_text(shared, nullptr);
+  EXPECT_EQ(WATCHFACE_COMPLICATION_ERROR_INVALID_PARAMETER, ret);
+
+  bundle_free(shared);
 }
 
 TEST_F(CWCP, watchface_complication_provider_event_get_type)
@@ -347,9 +585,13 @@ TEST_F(CWCP, watchface_complication_provider_event_get_type)
   bundle_free(shared);
   bundle_free(touch_data);
   free(raw_data);
-  app_control_destroy(service);
   EXPECT_EQ(WATCHFACE_COMPLICATION_ERROR_NONE, ret);
-  EXPECT_EQ(type,  WATCHFACE_COMPLICATION_EVENT_TAP);
+  EXPECT_EQ(type, WATCHFACE_COMPLICATION_EVENT_TAP);
+
+  ret = watchface_complication_provider_event_get_type(
+        service, nullptr);
+  EXPECT_EQ(WATCHFACE_COMPLICATION_ERROR_INVALID_PARAMETER, ret);
+  app_control_destroy(service);
 }
 
 TEST_F(CWCP, watchface_complication_provider_event_get_provider_id)
@@ -376,10 +618,14 @@ TEST_F(CWCP, watchface_complication_provider_event_get_provider_id)
   bundle_free(shared);
   bundle_free(touch_data);
   free(raw_data);
-  app_control_destroy(service);
   EXPECT_EQ(WATCHFACE_COMPLICATION_ERROR_NONE, ret);
   EXPECT_STREQ(ret_provider, "org.tizen.provider");
   free(ret_provider);
+
+  ret = watchface_complication_provider_event_get_provider_id(
+      service, nullptr);
+  EXPECT_EQ(WATCHFACE_COMPLICATION_ERROR_INVALID_PARAMETER, ret);
+  app_control_destroy(service);
 }
 
 TEST_F(CWCP, watchface_complication_provider_event_get_complication_type)
@@ -408,9 +654,13 @@ TEST_F(CWCP, watchface_complication_provider_event_get_complication_type)
   bundle_free(shared);
   bundle_free(touch_data);
   free(raw_data);
-  app_control_destroy(service);
   EXPECT_EQ(WATCHFACE_COMPLICATION_ERROR_NONE, ret);
   EXPECT_EQ(type, WATCHFACE_COMPLICATION_TYPE_SHORT_TEXT);
+
+  ret = watchface_complication_provider_event_get_complication_type(
+      service, nullptr);
+  EXPECT_EQ(WATCHFACE_COMPLICATION_ERROR_INVALID_PARAMETER, ret);
+  app_control_destroy(service);
 }
 
 TEST_F(CWCP, watchface_complication_provider_event_get_context)
@@ -445,8 +695,12 @@ TEST_F(CWCP, watchface_complication_provider_event_get_context)
   bundle_free(touch_data);
   bundle_free(shared);
   bundle_free(context);
-  app_control_destroy(service);
   EXPECT_EQ(WATCHFACE_COMPLICATION_ERROR_NONE, ret);
+
+  ret = watchface_complication_provider_event_get_context(
+      service, nullptr);
+  EXPECT_EQ(WATCHFACE_COMPLICATION_ERROR_INVALID_PARAMETER, ret);
+  app_control_destroy(service);
 }
 
 TEST_F(CWCP, watchface_complication_provider_foreach_info)
@@ -462,5 +716,8 @@ TEST_F(CWCP, watchface_complication_provider_foreach_info)
           "org.tizen.gmock_comp_provider", __provider_foreach_cb, nullptr);
   EXPECT_EQ(WATCHFACE_COMPLICATION_ERROR_NONE, ret);
 
+  ret = watchface_complication_provider_foreach_info(
+          nullptr, nullptr, &count);
+  EXPECT_EQ(WATCHFACE_COMPLICATION_ERROR_INVALID_PARAMETER, ret);
 }
 }
index 8088730..f6b824c 100644 (file)
@@ -268,6 +268,10 @@ TEST_F(CWC, watchface_complication_add_updated_cb)
   ret = watchface_complication_add_updated_cb(complication_,
       _complication_updated_cb, _complication_error_cb, nullptr);
   EXPECT_EQ(WATCHFACE_COMPLICATION_ERROR_NONE, ret);
+
+  ret = watchface_complication_add_updated_cb(complication_,
+      _complication_updated_cb, _complication_error_cb, nullptr);
+  EXPECT_EQ(WATCHFACE_COMPLICATION_ERROR_INVALID_PARAMETER, ret);
 }
 
 TEST_F(CWC, watchface_complication_remove_updated_cb)
@@ -348,6 +352,7 @@ guint __fake_signal_subscribe_on_data_updated(GDBusConnection* connection,
                         "test interface",
                         "__COMP_UPDATED__",
                         parameters);
+    g_variant_unref(parameters);
 
     b.Delete("__DATA_TYPE_KEY__");
     snprintf(num_str, sizeof(num_str), "%d", LongText);
@@ -364,6 +369,7 @@ guint __fake_signal_subscribe_on_data_updated(GDBusConnection* connection,
                         "test interface",
                         "__COMP_UPDATED__",
                         parameters);
+    g_variant_unref(parameters);
 
     b.Delete("__DATA_TYPE_KEY__");
     snprintf(num_str, sizeof(num_str), "%d", RangedValue);
@@ -379,6 +385,7 @@ guint __fake_signal_subscribe_on_data_updated(GDBusConnection* connection,
                         "test interface",
                         "__COMP_UPDATED__",
                         parameters);
+    g_variant_unref(parameters);
 
     b.Delete("__DATA_TYPE_KEY__");
     snprintf(num_str, sizeof(num_str), "%d", Time);
@@ -407,6 +414,7 @@ guint __fake_signal_subscribe_on_data_updated(GDBusConnection* connection,
                         "test interface",
                         "__COMP_UPDATED__",
                         parameters);
+    g_variant_unref(parameters);
 
     b.Delete("__DATA_TYPE_KEY__");
     snprintf(num_str, sizeof(num_str), "%d", Image);
@@ -422,6 +430,7 @@ guint __fake_signal_subscribe_on_data_updated(GDBusConnection* connection,
                         "test interface",
                         "__COMP_UPDATED__",
                         parameters);
+    g_variant_unref(parameters);
 
     b.Delete("__DATA_TYPE_KEY__");
     snprintf(num_str, sizeof(num_str), "%d", SmallImage);
@@ -437,6 +446,7 @@ guint __fake_signal_subscribe_on_data_updated(GDBusConnection* connection,
                         "test interface",
                         "__COMP_UPDATED__",
                         parameters);
+    g_variant_unref(parameters);
 
     if (g_main_loop_is_running(loop_))
       g_main_loop_quit(loop_);
@@ -856,4 +866,187 @@ TEST_F(CWC, watchface_complication_priority_list_apply)
   EXPECT_EQ(WATCHFACE_COMPLICATION_ERROR_NONE, ret);
 }
 
+TEST_F(CWC, negative_test)
+{
+  int comp_id = 777;
+  int ret = watchface_complication_create(comp_id,
+              nullptr,
+              WATCHFACE_COMPLICATION_TYPE_SHORT_TEXT,
+              WATCHFACE_COMPLICATION_TYPE_SHORT_TEXT,
+              WATCHFACE_COMPLICATION_EVENT_TAP,
+              &complication_);
+  EXPECT_EQ(WATCHFACE_COMPLICATION_ERROR_INVALID_PARAMETER, ret);
+  ret = watchface_complication_create(comp_id,
+              "org.tizen.gmock_comp_provider2/test",
+              (watchface_complication_type_e)0x100,
+              WATCHFACE_COMPLICATION_TYPE_SHORT_TEXT,
+              WATCHFACE_COMPLICATION_EVENT_TAP,
+              &complication_);
+  EXPECT_EQ(WATCHFACE_COMPLICATION_ERROR_INVALID_PARAMETER, ret);
+  ret = watchface_complication_create(comp_id,
+              "org.tizen.gmock_comp_provider2/test",
+              WATCHFACE_COMPLICATION_TYPE_SHORT_TEXT,
+              0x1000,
+              WATCHFACE_COMPLICATION_EVENT_TAP,
+              &complication_);
+              EXPECT_EQ(WATCHFACE_COMPLICATION_ERROR_INVALID_PARAMETER, ret);
+  ret = watchface_complication_create(comp_id,
+              "org.tizen.gmock_comp_provider2/test",
+              WATCHFACE_COMPLICATION_TYPE_SHORT_TEXT,
+              WATCHFACE_COMPLICATION_TYPE_SHORT_TEXT,
+              0x100,
+              &complication_);
+  EXPECT_EQ(WATCHFACE_COMPLICATION_ERROR_INVALID_PARAMETER, ret);
+  ret = watchface_complication_create(comp_id,
+              "org.tizen.gmock_comp_provider2/test",
+              WATCHFACE_COMPLICATION_TYPE_SHORT_TEXT,
+              WATCHFACE_COMPLICATION_TYPE_SHORT_TEXT,
+              WATCHFACE_COMPLICATION_EVENT_TAP,
+              nullptr);
+  EXPECT_EQ(WATCHFACE_COMPLICATION_ERROR_INVALID_PARAMETER, ret);
+
+  bundle* shared = bundle_create();
+  watchface_complication_type_e type;
+  ret = watchface_complication_data_get_type(shared, nullptr);
+  EXPECT_EQ(WATCHFACE_COMPLICATION_ERROR_INVALID_PARAMETER, ret);
+  ret = watchface_complication_data_get_type(shared, &type);
+  EXPECT_EQ(WATCHFACE_COMPLICATION_ERROR_NO_DATA, ret);
+
+  char num_str[32] = {0, };
+  long time_stamp;
+  complication_time_info_h info = nullptr;
+  snprintf(num_str, sizeof(num_str), "%d", 200);
+  bundle_add_str(shared, "__DATA_TYPE_KEY__", num_str);
+  ret = watchface_complication_data_get_type(shared, &type);
+  EXPECT_EQ(WATCHFACE_COMPLICATION_ERROR_INVALID_PARAMETER, ret);
+  ret = watchface_complication_data_get_short_text(shared, nullptr);
+  EXPECT_EQ(WATCHFACE_COMPLICATION_ERROR_INVALID_PARAMETER, ret);
+  ret = watchface_complication_data_get_aod_icon_path(shared, nullptr);
+  EXPECT_EQ(WATCHFACE_COMPLICATION_ERROR_INVALID_PARAMETER, ret);
+  ret = watchface_complication_data_get_aod_image_path(shared, nullptr);
+  EXPECT_EQ(WATCHFACE_COMPLICATION_ERROR_INVALID_PARAMETER, ret);
+  ret = watchface_complication_data_get_aod_small_image_path(shared, nullptr);
+  EXPECT_EQ(WATCHFACE_COMPLICATION_ERROR_INVALID_PARAMETER, ret);
+  ret = watchface_complication_data_get_small_image_path(shared, nullptr);
+  EXPECT_EQ(WATCHFACE_COMPLICATION_ERROR_INVALID_PARAMETER, ret);
+  ret = watchface_complication_data_get_long_text(shared, nullptr);
+  EXPECT_EQ(WATCHFACE_COMPLICATION_ERROR_INVALID_PARAMETER, ret);
+  ret = watchface_complication_data_get_title(shared, nullptr);
+  EXPECT_EQ(WATCHFACE_COMPLICATION_ERROR_INVALID_PARAMETER, ret);
+  ret = watchface_complication_data_get_timestamp(shared, nullptr);
+  EXPECT_EQ(WATCHFACE_COMPLICATION_ERROR_INVALID_PARAMETER, ret);
+  ret = watchface_complication_data_get_timestamp(shared, &time_stamp);
+  EXPECT_EQ(WATCHFACE_COMPLICATION_ERROR_NO_DATA, ret);
+  ret = watchface_complication_data_get_timeinfo(shared, nullptr);
+  EXPECT_EQ(WATCHFACE_COMPLICATION_ERROR_INVALID_PARAMETER, ret);
+  ret = watchface_complication_data_get_timeinfo(shared, &info);
+  EXPECT_EQ(WATCHFACE_COMPLICATION_ERROR_NO_DATA, ret);
+  ret = watchface_complication_timeinfo_get_timezone(info, nullptr);
+  EXPECT_EQ(WATCHFACE_COMPLICATION_ERROR_INVALID_PARAMETER, ret);
+  ret = watchface_complication_timeinfo_get_timezone_id(info, nullptr);
+  EXPECT_EQ(WATCHFACE_COMPLICATION_ERROR_INVALID_PARAMETER, ret);
+  ret = watchface_complication_timeinfo_get_timezone_country(info, nullptr);
+  EXPECT_EQ(WATCHFACE_COMPLICATION_ERROR_INVALID_PARAMETER, ret);
+  ret = watchface_complication_timeinfo_get_timezone_city(info, nullptr);
+  EXPECT_EQ(WATCHFACE_COMPLICATION_ERROR_INVALID_PARAMETER, ret);
+  ret = watchface_complication_timeinfo_get_timestamp(info, nullptr);
+  EXPECT_EQ(WATCHFACE_COMPLICATION_ERROR_INVALID_PARAMETER, ret);
+  ret = watchface_complication_timeinfo_destroy(nullptr);
+  EXPECT_EQ(WATCHFACE_COMPLICATION_ERROR_INVALID_PARAMETER, ret);
+  watchface_complication_timeinfo_destroy(info);
+  ret = watchface_complication_data_get_image_path(shared, nullptr);
+  EXPECT_EQ(WATCHFACE_COMPLICATION_ERROR_INVALID_PARAMETER, ret);
+  ret = watchface_complication_data_get_ranged_value(shared, nullptr, nullptr, nullptr);
+  EXPECT_EQ(WATCHFACE_COMPLICATION_ERROR_INVALID_PARAMETER, ret);
+  double value;
+  ret = watchface_complication_data_get_ranged_value(shared, &value, &value, &value);
+  EXPECT_EQ(WATCHFACE_COMPLICATION_ERROR_NO_DATA, ret);
+  bundle_add_str(shared, "__CUR_KEY__", num_str);
+  ret = watchface_complication_data_get_ranged_value(shared, &value, &value, &value);
+  EXPECT_EQ(WATCHFACE_COMPLICATION_ERROR_NO_DATA, ret);
+  bundle_add_str(shared, "__MIN_KEY__", num_str);
+  ret = watchface_complication_data_get_ranged_value(shared, &value, &value, &value);
+  EXPECT_EQ(WATCHFACE_COMPLICATION_ERROR_NO_DATA, ret);
+  ret = watchface_complication_data_get_icon_path(shared, nullptr);
+  EXPECT_EQ(WATCHFACE_COMPLICATION_ERROR_INVALID_PARAMETER, ret);
+  ret = watchface_complication_data_get_extra_data(shared, nullptr);
+  EXPECT_EQ(WATCHFACE_COMPLICATION_ERROR_INVALID_PARAMETER, ret);
+  ret = watchface_complication_data_get_screen_reader_text(shared, nullptr);
+  EXPECT_EQ(WATCHFACE_COMPLICATION_ERROR_INVALID_PARAMETER, ret);
+
+  bundle_free(shared);
+}
+
+TEST_F(CWC, list_negative_test)
+{
+  complication_allowed_list_h handle;
+  watchface_complication_allowed_list_create(&handle);
+  int ret = watchface_complication_allowed_list_create(nullptr);
+  EXPECT_EQ(WATCHFACE_COMPLICATION_ERROR_INVALID_PARAMETER, ret);
+  ret = watchface_complication_allowed_list_destroy(nullptr);
+  EXPECT_EQ(WATCHFACE_COMPLICATION_ERROR_INVALID_PARAMETER, ret);
+  ret = watchface_complication_allowed_list_add(handle, nullptr, 7);
+  EXPECT_EQ(WATCHFACE_COMPLICATION_ERROR_INVALID_PARAMETER, ret);
+  watchface_complication_allowed_list_add(handle, "test", 7);
+  ret = watchface_complication_allowed_list_add(handle, "test", 7);
+  EXPECT_EQ(WATCHFACE_COMPLICATION_ERROR_EXIST_ID, ret);
+  ret = watchface_complication_allowed_list_delete(handle, nullptr);
+  EXPECT_EQ(WATCHFACE_COMPLICATION_ERROR_INVALID_PARAMETER, ret);
+  ret = watchface_complication_allowed_list_delete(handle, "test1");
+  EXPECT_EQ(WATCHFACE_COMPLICATION_ERROR_NO_DATA, ret);
+  ret = watchface_complication_allowed_list_get_nth(handle, -1, nullptr, nullptr);
+  EXPECT_EQ(WATCHFACE_COMPLICATION_ERROR_INVALID_PARAMETER, ret);
+  ret = watchface_complication_allowed_list_apply(nullptr, handle);
+  EXPECT_EQ(WATCHFACE_COMPLICATION_ERROR_INVALID_PARAMETER, ret);
+  ret = watchface_complication_allowed_list_clear(nullptr);
+  EXPECT_EQ(WATCHFACE_COMPLICATION_ERROR_INVALID_PARAMETER, ret);
+  watchface_complication_allowed_list_destroy(handle);
+  ret = watchface_complication_get_default_data
+          ("test", WATCHFACE_COMPLICATION_TYPE_LONG_TEXT, nullptr);
+  EXPECT_EQ(WATCHFACE_COMPLICATION_ERROR_INVALID_PARAMETER, ret);
+
+  complication_denied_list_h denied_handle;
+  watchface_complication_denied_list_create(&denied_handle);
+  ret = watchface_complication_denied_list_create(nullptr);
+  EXPECT_EQ(WATCHFACE_COMPLICATION_ERROR_INVALID_PARAMETER, ret);
+  watchface_complication_denied_list_add(denied_handle, "test", 7);
+  ret = watchface_complication_denied_list_add(denied_handle, "test", 7);
+  EXPECT_EQ(WATCHFACE_COMPLICATION_ERROR_EXIST_ID, ret);
+  ret = watchface_complication_denied_list_add(denied_handle, nullptr, 7);
+  EXPECT_EQ(WATCHFACE_COMPLICATION_ERROR_INVALID_PARAMETER, ret);
+  ret = watchface_complication_denied_list_delete(denied_handle, nullptr);
+  EXPECT_EQ(WATCHFACE_COMPLICATION_ERROR_INVALID_PARAMETER, ret);
+  ret = watchface_complication_denied_list_delete(denied_handle, "test1");
+  EXPECT_EQ(WATCHFACE_COMPLICATION_ERROR_NO_DATA, ret);
+  ret = watchface_complication_denied_list_get_nth(denied_handle, -1, nullptr, nullptr);
+  EXPECT_EQ(WATCHFACE_COMPLICATION_ERROR_INVALID_PARAMETER, ret);
+  ret = watchface_complication_denied_list_apply(nullptr, denied_handle);
+  EXPECT_EQ(WATCHFACE_COMPLICATION_ERROR_INVALID_PARAMETER, ret);
+  ret = watchface_complication_denied_list_clear(nullptr);
+  EXPECT_EQ(WATCHFACE_COMPLICATION_ERROR_INVALID_PARAMETER, ret);
+  watchface_complication_denied_list_destroy(denied_handle);
+  ret = watchface_complication_denied_list_destroy(nullptr);
+  EXPECT_EQ(WATCHFACE_COMPLICATION_ERROR_INVALID_PARAMETER, ret);
+
+  complication_priority_list_h priority_handle;
+  watchface_complication_priority_list_create(&priority_handle);
+  ret = watchface_complication_priority_list_create(nullptr);
+  EXPECT_EQ(WATCHFACE_COMPLICATION_ERROR_INVALID_PARAMETER, ret);
+  ret = watchface_complication_priority_list_add(priority_handle, nullptr, 7);
+  EXPECT_EQ(WATCHFACE_COMPLICATION_ERROR_INVALID_PARAMETER, ret);
+  watchface_complication_priority_list_add(priority_handle, "test", 7);
+  ret = watchface_complication_priority_list_add(priority_handle, "test", 7);
+  EXPECT_EQ(WATCHFACE_COMPLICATION_ERROR_EXIST_ID, ret);
+  ret = watchface_complication_priority_list_delete(priority_handle, nullptr);
+  EXPECT_EQ(WATCHFACE_COMPLICATION_ERROR_INVALID_PARAMETER, ret);
+  ret = watchface_complication_priority_list_get_nth(priority_handle, -1, nullptr, nullptr);
+  EXPECT_EQ(WATCHFACE_COMPLICATION_ERROR_INVALID_PARAMETER, ret);
+  ret = watchface_complication_priority_list_apply(nullptr, nullptr);
+  EXPECT_EQ(WATCHFACE_COMPLICATION_ERROR_INVALID_PARAMETER, ret);
+  ret = watchface_complication_priority_list_clear(nullptr);
+  EXPECT_EQ(WATCHFACE_COMPLICATION_ERROR_INVALID_PARAMETER, ret);
+  ret = watchface_complication_priority_list_destroy(nullptr);
+  EXPECT_EQ(WATCHFACE_COMPLICATION_ERROR_INVALID_PARAMETER, ret);
+  watchface_complication_priority_list_destroy(priority_handle);
+}
 }
index 7ccc095..3101e8b 100644 (file)
@@ -149,14 +149,20 @@ void _editable_update_requested_cb(
     watchface_editable_highlight_destroy(hi_);
   int ret = watchface_editable_get_highlight(handle, &hi_);
   EXPECT_EQ(WATCHFACE_COMPLICATION_ERROR_NONE, ret);
+  ret = watchface_editable_get_highlight(handle, nullptr);
+  EXPECT_EQ(WATCHFACE_COMPLICATION_ERROR_INVALID_PARAMETER, ret);
 
   watchface_editable_shape_type_e shape;
   ret = watchface_editable_highlight_get_shape_type(hi_, &shape);
   EXPECT_EQ(WATCHFACE_COMPLICATION_ERROR_NONE, ret);
+  ret = watchface_editable_highlight_get_shape_type(hi_, nullptr);
+  EXPECT_EQ(WATCHFACE_COMPLICATION_ERROR_INVALID_PARAMETER, ret);
 
   int x, y, w, h;
   ret = watchface_editable_highlight_get_geometry(hi_, &x, &y, &w, &h);
   EXPECT_EQ(WATCHFACE_COMPLICATION_ERROR_NONE, ret);
+  ret = watchface_editable_highlight_get_geometry(hi_, nullptr, &y, &w, &h);
+  EXPECT_EQ(WATCHFACE_COMPLICATION_ERROR_INVALID_PARAMETER, ret);
 
   ret = watchface_editable_set_editable_name(handle, "test");
   EXPECT_EQ(WATCHFACE_COMPLICATION_ERROR_NONE, ret);
@@ -189,6 +195,8 @@ void _editable_update_requested_cb(
   watchface_editable_container_h container;
   ret = watchface_editable_container_get(&container);
   EXPECT_EQ(WATCHFACE_COMPLICATION_ERROR_NONE, ret);
+  ret = watchface_editable_container_get(nullptr);
+  EXPECT_EQ(WATCHFACE_COMPLICATION_ERROR_INVALID_PARAMETER, ret);
 }
 
 void _editable_edit_ready_cb(
@@ -196,7 +204,7 @@ void _editable_edit_ready_cb(
       const char* editor_appid,
       void* user_data) {
   int comp_id = 1;
-  int design_element_id = 2;
+  int design_element_id = 3;
   int ret = watchface_complication_create(comp_id,
     "org.tizen.gmock_comp_provider/test",
     WATCHFACE_COMPLICATION_TYPE_SHORT_TEXT,
@@ -215,41 +223,80 @@ void _editable_edit_ready_cb(
   EXPECT_DOUBLE_EQ(norm_y, 0.5);
   EXPECT_DOUBLE_EQ(norm_w, 0.3);
   EXPECT_DOUBLE_EQ(norm_h, 0.3);
+  ret = watchface_editable_highlight_get_normalized_geometry(
+        hi_, nullptr, &norm_y, &norm_w, &norm_h);
+  EXPECT_EQ(WATCHFACE_COMPLICATION_ERROR_INVALID_PARAMETER, ret);
 
   ret = watchface_editable_add_complication(handle, comp_id, comp_, hi_);
   EXPECT_EQ(WATCHFACE_COMPLICATION_ERROR_NONE, ret);
+    ret = watchface_editable_add_complication(handle, comp_id, comp_, hi_);
+  EXPECT_EQ(WATCHFACE_COMPLICATION_ERROR_EXIST_ID, ret);
   ret = watchface_editable_candidates_list_create(&candidates_list_);
   EXPECT_EQ(WATCHFACE_COMPLICATION_ERROR_NONE, ret);
 
+  ret = watchface_editable_candidates_list_create(nullptr);
+  EXPECT_EQ(WATCHFACE_COMPLICATION_ERROR_INVALID_PARAMETER, ret);
+
   bundle* current_data = nullptr;
   ret = watchface_editable_load_current_data(design_element_id, &current_data);
   if (current_data != nullptr)
     bundle_free(current_data);
   EXPECT_EQ(WATCHFACE_COMPLICATION_ERROR_NO_DATA, ret);
 
-  watchface_editable_highlight_destroy(hi_);
-  watchface_editable_highlight_create(&hi_, WATCHFACE_EDITABLE_SHAPE_TYPE_CIRCLE);
-  watchface_editable_highlight_set_geometry(hi_, 100, 50, 100, 100);
-  watchface_editable_highlight_set_normalized_geometry(hi_, 0.7, 0.7, 0.3, 0.3);
-  watchface_editable_highlight_set_shape_type(hi_, WATCHFACE_EDITABLE_SHAPE_TYPE_RECT);
+  ret = watchface_editable_highlight_destroy(hi_);
+  EXPECT_EQ(WATCHFACE_COMPLICATION_ERROR_NONE, ret);
+  ret = watchface_editable_highlight_destroy(nullptr);
+  EXPECT_EQ(WATCHFACE_COMPLICATION_ERROR_INVALID_PARAMETER, ret);
+  ret = watchface_editable_highlight_create(&hi_, WATCHFACE_EDITABLE_SHAPE_TYPE_CIRCLE);
+  EXPECT_EQ(WATCHFACE_COMPLICATION_ERROR_NONE, ret);
+  ret = watchface_editable_highlight_create(nullptr, WATCHFACE_EDITABLE_SHAPE_TYPE_CIRCLE);
+  EXPECT_EQ(WATCHFACE_COMPLICATION_ERROR_INVALID_PARAMETER, ret);
+  ret = watchface_editable_highlight_set_geometry(hi_, 100, 50, 100, 100);
+  EXPECT_EQ(WATCHFACE_COMPLICATION_ERROR_NONE, ret);
+  ret = watchface_editable_highlight_set_normalized_geometry(hi_, 0.7, 0.7, 0.3, 0.3);
+  EXPECT_EQ(WATCHFACE_COMPLICATION_ERROR_NONE, ret);
+  ret = watchface_editable_highlight_set_normalized_geometry(hi_, 2.0, 0.7, 0.3, 0.3);
+  EXPECT_EQ(WATCHFACE_COMPLICATION_ERROR_INVALID_PARAMETER, ret);
+  ret = watchface_editable_highlight_set_shape_type(hi_, WATCHFACE_EDITABLE_SHAPE_TYPE_RECT);
+  EXPECT_EQ(WATCHFACE_COMPLICATION_ERROR_NONE, ret);
+  ret = watchface_editable_highlight_set_shape_type(hi_, (watchface_editable_shape_type_e)3);
+  EXPECT_EQ(WATCHFACE_COMPLICATION_ERROR_INVALID_PARAMETER, ret);
   bundle* design_element = bundle_create();
   bundle_add_str(design_element, "TEST_COLOR", "Blue");
   ret = watchface_editable_candidates_list_add(candidates_list_, design_element);
-  bundle_free(design_element);
   EXPECT_EQ(WATCHFACE_COMPLICATION_ERROR_NONE, ret);
+  bundle_free(design_element);
+  ret = watchface_editable_candidates_list_add(candidates_list_, nullptr);
+  EXPECT_EQ(WATCHFACE_COMPLICATION_ERROR_INVALID_PARAMETER, ret);
+  ret = watchface_editable_add_design_element(handle, design_element_id, 10000,
+      candidates_list_, hi_, "Color");
+  EXPECT_EQ(WATCHFACE_COMPLICATION_ERROR_INVALID_PARAMETER, ret);
   ret = watchface_editable_add_design_element(handle, design_element_id, 0,
       candidates_list_, hi_, "Color");
   EXPECT_EQ(WATCHFACE_COMPLICATION_ERROR_NONE, ret);
+  ret = watchface_editable_add_design_element(handle, design_element_id, 0,
+      candidates_list_, hi_, "Color");
+  EXPECT_EQ(WATCHFACE_COMPLICATION_ERROR_EXIST_ID, ret);
   ret = watchface_editable_request_edit(handle,
       _editable_update_requested_cb, user_data);
   EXPECT_EQ(WATCHFACE_COMPLICATION_ERROR_NONE, ret);
+
+  ret = watchface_editable_candidates_list_destroy(nullptr);
+  EXPECT_EQ(WATCHFACE_COMPLICATION_ERROR_INVALID_PARAMETER, ret);
 }
 
 TEST_F(CWE, watchface_editable_candidates_list)
 {
-  int ret = watchface_editable_add_edit_ready_cb(
+  watchface_editable_container_h container;
+  int ret = watchface_editable_container_get(&container);
+  EXPECT_EQ(WATCHFACE_COMPLICATION_ERROR_IO_ERROR, ret);
+
+  ret = watchface_editable_add_edit_ready_cb(
       _editable_edit_ready_cb, nullptr);
   EXPECT_EQ(WATCHFACE_COMPLICATION_ERROR_NONE, ret);
+  ret = watchface_editable_add_edit_ready_cb(
+      _editable_edit_ready_cb, nullptr);
+  EXPECT_EQ(WATCHFACE_COMPLICATION_ERROR_INVALID_PARAMETER, ret);
   RunLoop();
   ret = watchface_editable_remove_edit_ready_cb(
       _editable_edit_ready_cb);
@@ -264,48 +311,99 @@ TEST_F(CWE, watchface_editable_candidates_color_test)
 
   int ret = watchface_editable_candidate_create(&candidate, "test");
   EXPECT_EQ(WATCHFACE_COMPLICATION_ERROR_NONE, ret);
+  ret = watchface_editable_candidate_create(&candidate, nullptr);
+  EXPECT_EQ(WATCHFACE_COMPLICATION_ERROR_INVALID_PARAMETER, ret);
 
   char* id;
   watchface_editable_candidate_get_id(candidate, &id);
   EXPECT_STREQ(id, "test");
   free(id);
 
-  watchface_editable_candidate_color_create(&color, 12, 34, 56, 78);
-  watchface_editable_candidate_set_color(candidate, color);
-  watchface_editable_candidate_color_destroy(color);
+  ret = watchface_editable_candidate_get_id(candidate, nullptr);
+  EXPECT_EQ(WATCHFACE_COMPLICATION_ERROR_INVALID_PARAMETER, ret);
+  bundle *empty_bundle = bundle_create();
+  ret = watchface_editable_candidate_get_id(empty_bundle, &id);
+  EXPECT_EQ(WATCHFACE_COMPLICATION_ERROR_NO_DATA, ret);
 
-  watchface_editable_candidate_get_color(candidate, &ret_color);
+
+  ret = watchface_editable_candidate_color_create(&color, 12, 34, 56, 78);
+  EXPECT_EQ(WATCHFACE_COMPLICATION_ERROR_NONE, ret);
+  ret = watchface_editable_candidate_color_create(&color, 12, -7, 56, 78);
+  EXPECT_EQ(WATCHFACE_COMPLICATION_ERROR_INVALID_PARAMETER, ret);
+  ret = watchface_editable_candidate_set_color(candidate, color);
+  EXPECT_EQ(WATCHFACE_COMPLICATION_ERROR_NONE, ret);
+  ret = watchface_editable_candidate_set_color(nullptr, nullptr);
+  EXPECT_EQ(WATCHFACE_COMPLICATION_ERROR_INVALID_PARAMETER, ret);
+  ret = watchface_editable_candidate_color_destroy(color);
+  EXPECT_EQ(WATCHFACE_COMPLICATION_ERROR_NONE, ret);
+
+  ret = watchface_editable_candidate_get_color(candidate, &ret_color);
+  EXPECT_EQ(WATCHFACE_COMPLICATION_ERROR_NONE, ret);
+  ret = watchface_editable_candidate_get_color(candidate, nullptr);
+  EXPECT_EQ(WATCHFACE_COMPLICATION_ERROR_INVALID_PARAMETER, ret);
+    ret = watchface_editable_candidate_get_color(empty_bundle, &ret_color);
+  EXPECT_EQ(WATCHFACE_COMPLICATION_ERROR_NO_DATA, ret);
 
   int r, g, b, a;
-  watchface_editable_candidate_color_get(ret_color, &r, &g, &b, &a);
-  watchface_editable_candidate_color_destroy(ret_color);
+  ret = watchface_editable_candidate_color_get(ret_color, &r, &g, &b, &a);
+  EXPECT_EQ(WATCHFACE_COMPLICATION_ERROR_NONE, ret);
+  ret = watchface_editable_candidate_color_get(ret_color, nullptr, &g, &b, &a);
+  EXPECT_EQ(WATCHFACE_COMPLICATION_ERROR_INVALID_PARAMETER, ret);
+  ret = watchface_editable_candidate_color_destroy(nullptr);
+  EXPECT_EQ(WATCHFACE_COMPLICATION_ERROR_INVALID_PARAMETER, ret);
+  ret = watchface_editable_candidate_color_destroy(ret_color);
+  EXPECT_EQ(WATCHFACE_COMPLICATION_ERROR_NONE, ret);
   EXPECT_EQ(12, r);
   EXPECT_EQ(34, g);
   EXPECT_EQ(56, b);
   EXPECT_EQ(78, a);
 
   char* name;
-  watchface_editable_candidate_set_name(candidate, "test_name");
-  watchface_editable_candidate_get_name(candidate, &name);
+  ret = watchface_editable_candidate_set_name(candidate, "test_name");
+  EXPECT_EQ(WATCHFACE_COMPLICATION_ERROR_NONE, ret);
+  ret = watchface_editable_candidate_get_name(candidate, &name);
+  EXPECT_EQ(WATCHFACE_COMPLICATION_ERROR_NONE, ret);
   EXPECT_STREQ(name, "test_name");
   free(name);
 
+  ret = watchface_editable_candidate_set_name(candidate, nullptr);
+  EXPECT_EQ(WATCHFACE_COMPLICATION_ERROR_INVALID_PARAMETER, ret);
+  ret = watchface_editable_candidate_set_name(candidate, "test_name");
+  EXPECT_EQ(WATCHFACE_COMPLICATION_ERROR_IO_ERROR, ret);
+  ret = watchface_editable_candidate_get_name(candidate, nullptr);
+  EXPECT_EQ(WATCHFACE_COMPLICATION_ERROR_INVALID_PARAMETER, ret);
+  ret = watchface_editable_candidate_get_name(empty_bundle, &name);
+  EXPECT_EQ(WATCHFACE_COMPLICATION_ERROR_NO_DATA, ret);
+
+  bundle_free(empty_bundle);
   bundle_free(candidate);
 }
 
 TEST_F(CWE, watchface_editable_candidates_preview_image_test)
 {
   bundle *candidate;
+  bundle *empty_bundle = bundle_create();
 
   int ret = watchface_editable_candidate_create(&candidate, "test");
   EXPECT_EQ(WATCHFACE_COMPLICATION_ERROR_NONE, ret);
 
-  watchface_editable_candidate_set_preview_image(candidate, "imagepath");
+  ret = watchface_editable_candidate_set_preview_image(candidate, "imagepath");
+  EXPECT_EQ(WATCHFACE_COMPLICATION_ERROR_NONE, ret);
+  ret = watchface_editable_candidate_set_preview_image(candidate, nullptr);
+  EXPECT_EQ(WATCHFACE_COMPLICATION_ERROR_INVALID_PARAMETER, ret);
 
   char* imagepath;
-  watchface_editable_candidate_get_preview_image(candidate, &imagepath);
+  ret = watchface_editable_candidate_get_preview_image(candidate, &imagepath);
+  EXPECT_EQ(WATCHFACE_COMPLICATION_ERROR_NONE, ret);
   EXPECT_STREQ(imagepath, "imagepath");
   free(imagepath);
+
+  ret = watchface_editable_candidate_get_preview_image(candidate, nullptr);
+  EXPECT_EQ(WATCHFACE_COMPLICATION_ERROR_INVALID_PARAMETER, ret);
+  ret = watchface_editable_candidate_get_preview_image(empty_bundle, &imagepath);
+  EXPECT_EQ(WATCHFACE_COMPLICATION_ERROR_NO_DATA, ret);
+
+  bundle_free(empty_bundle);
   bundle_free(candidate);
 }
 
index 3c062c3..8d7df4a 100644 (file)
@@ -22,6 +22,8 @@
 #include "watchface-complication/design-element.hh"
 #include "watchface-complication/editables-container.hh"
 #include "watchface-complication/received-editable.hh"
+#include "watchface-editor-internal.h"
+#include "watchface-editable-internal.h"
 
 #include "mock/system_info_mock.h"
 #include "mock/tzplatform_config_mock.h"
@@ -96,6 +98,7 @@ guint __fake_signal_subscribe_on_update(GDBusConnection* connection,
     editable_list.push_back(
         reinterpret_cast<char*>(data.ToRaw().first.get()));
     list_data.Add("EDITABLE_LIST", editable_list);
+    list_data.Add("EDITABLE_LIST1", editable_list);
 
     GVariant* parameters = g_variant_new("(ss)",
         "org.tizen.watch", list_data.ToRaw().first.get());
@@ -105,14 +108,26 @@ guint __fake_signal_subscribe_on_update(GDBusConnection* connection,
                         "test interface",
                         "__EDITABLE_EDIT_REQUEST__",
                         parameters);
+    g_variant_unref(parameters);
+
     Bundle setup_ctx;
     parameters = g_variant_new("(is)",
-        "org.tizen.watch", setup_ctx.ToRaw().first.get());
+        0, setup_ctx.ToRaw().first.get());
     rs->OnSignal(nullptr, "org.tizen.watch",
                         "test path",
                         "test interface",
                         "__SETUP_REPLY__",
                         parameters);
+    g_variant_unref(parameters);
+
+    parameters = g_variant_new("(iii)", 0, 3, 0);
+    rs->OnSignal(nullptr, "org.tizen.watch",
+                        "test path",
+                        "test interface",
+                        "__EDIT_RESULT__",
+                        parameters);
+    g_variant_unref(parameters);
+
     if (g_main_loop_is_running(loop_))
       g_main_loop_quit(loop_);
 
@@ -170,23 +185,38 @@ void _edit_result_cb(const watchface_editable_h handle,
 
 void _editor_request_edit_cb(const char* appid,
       editable_list_h list, void* user_data) {
-  int size;
+  int size, ret;
   editable_list_h dup_list = nullptr;
-  watchface_editor_editable_list_get_size(list, &size);
-  watchface_editor_editable_list_dup(list, &dup_list);
-  int ret = watchface_editor_editable_list_get_size(dup_list, &size);
+  watchface_editable_h dup_handle = nullptr;
+  watchface_editable_h handle = nullptr;
+  ret = watchface_editor_editable_list_get_size(list, &size);
+  EXPECT_EQ(WATCHFACE_COMPLICATION_ERROR_NONE, ret);
+  ret = watchface_editor_editable_list_get_size(list, nullptr);
+  EXPECT_EQ(WATCHFACE_COMPLICATION_ERROR_INVALID_PARAMETER, ret);
+  ret = watchface_editor_editable_list_dup(list, nullptr);
+  EXPECT_EQ(WATCHFACE_COMPLICATION_ERROR_INVALID_PARAMETER, ret);
+  ret = watchface_editor_editable_list_dup(list, &dup_list);
+  EXPECT_EQ(WATCHFACE_COMPLICATION_ERROR_NONE, ret);
+  ret = watchface_editor_editable_list_get_size(dup_list, &size);
   EXPECT_EQ(WATCHFACE_COMPLICATION_ERROR_NONE, ret);
   for (int i = 0; i < size; i++) {
-    watchface_editable_h handle;
+    ret = watchface_editor_editable_list_get_nth(dup_list, i, nullptr);
+    EXPECT_EQ(WATCHFACE_COMPLICATION_ERROR_INVALID_PARAMETER, ret);
     ret = watchface_editor_editable_list_get_nth(dup_list, i, &handle);
     EXPECT_EQ(WATCHFACE_COMPLICATION_ERROR_NONE, ret);
 
     int c_size;
     bundle* c_data;
     bool exist;
+    ret = watchface_editor_editable_candidate_list_get_size(handle, nullptr);
+    EXPECT_EQ(WATCHFACE_COMPLICATION_ERROR_INVALID_PARAMETER, ret);
     ret = watchface_editor_editable_candidate_list_get_size(handle, &c_size);
     EXPECT_EQ(WATCHFACE_COMPLICATION_ERROR_NONE, ret);
     for (int j = 0; j < c_size; j++) {
+      ret = watchface_editor_editable_candidate_list_get_nth(handle, 10000, &c_data);
+      EXPECT_EQ(WATCHFACE_COMPLICATION_ERROR_INVALID_PARAMETER, ret);
+      ret = watchface_editor_editable_candidate_list_get_nth(handle, j, nullptr);
+      EXPECT_EQ(WATCHFACE_COMPLICATION_ERROR_INVALID_PARAMETER, ret);
       ret = watchface_editor_editable_candidate_list_get_nth(handle, j, &c_data);
       EXPECT_EQ(WATCHFACE_COMPLICATION_ERROR_NONE, ret);
 
@@ -208,9 +238,16 @@ void _editor_request_edit_cb(const char* appid,
         EXPECT_EQ(WATCHFACE_COMPLICATION_ERROR_NONE, ret);
 
         char* provider_name = nullptr;
-        watchface_editor_get_complication_provider_name(c_data, &provider_name);
+        ret = watchface_editor_get_complication_provider_name(c_data, &provider_name);
         if (provider_name != nullptr)
           free(provider_name);
+        EXPECT_EQ(WATCHFACE_COMPLICATION_ERROR_NONE, ret);
+
+        char* icon = nullptr;
+        ret = watchface_editor_get_complication_provider_icon(c_data, &icon);
+        if (icon != nullptr)
+          free(icon);
+        EXPECT_EQ(WATCHFACE_COMPLICATION_ERROR_NONE, ret);
       }
       bundle_free(c_data);
     }
@@ -223,21 +260,54 @@ void _editor_request_edit_cb(const char* appid,
       if (setup_appid != nullptr)
         free(setup_appid);
 
+      ret = watchface_editor_is_setup_app_exist(handle, nullptr);
+      EXPECT_EQ(WATCHFACE_COMPLICATION_ERROR_INVALID_PARAMETER, ret);
       ret = watchface_editor_is_setup_app_exist(handle, &setup_app_exist);
       EXPECT_EQ(WATCHFACE_COMPLICATION_ERROR_NONE, ret);
 
-      watchface_editor_launch_setup_app(handle, _setup_result_cb, nullptr);
+      bundle* c_context = bundle_create();
+      ret = watchface_editor_set_context(nullptr, nullptr);
+      EXPECT_EQ(WATCHFACE_COMPLICATION_ERROR_INVALID_PARAMETER, ret);
+      ret = watchface_editor_set_context(handle, nullptr);
+      EXPECT_EQ(WATCHFACE_COMPLICATION_ERROR_NONE, ret);
+      ret = watchface_editor_set_context(handle, c_context);
+      EXPECT_EQ(WATCHFACE_COMPLICATION_ERROR_NONE, ret);
+      bundle_free(c_context);
+
+      ret = watchface_editor_launch_setup_app(nullptr, _setup_result_cb, nullptr);
+      EXPECT_EQ(WATCHFACE_COMPLICATION_ERROR_INVALID_PARAMETER, ret);
+      ret = watchface_editor_launch_setup_app(handle, _setup_result_cb, nullptr);
+      EXPECT_EQ(WATCHFACE_COMPLICATION_ERROR_NONE, ret);
     }
 
-    bundle* c_context = bundle_create();
-    watchface_editor_set_context(handle, c_context);
-    bundle_free(c_context);
-    watchface_editor_edit_preview(handle, 0);
-    watchface_editor_edit_preview_with_result(handle, 0, _edit_result_cb, 0, true, nullptr);
+    ret = watchface_editor_edit_preview(nullptr, 0);
+    EXPECT_EQ(WATCHFACE_COMPLICATION_ERROR_INVALID_PARAMETER, ret);
+    ret = watchface_editor_edit_preview(handle, 0);
+    EXPECT_EQ(WATCHFACE_COMPLICATION_ERROR_NONE, ret);
+
+    ret = watchface_editor_edit_preview_with_result(handle, 0, _edit_result_cb, -1, true, nullptr);
+    EXPECT_EQ(WATCHFACE_COMPLICATION_ERROR_INVALID_PARAMETER, ret);
+    ret = watchface_editor_edit_preview_with_result(handle, 0, _edit_result_cb, 1, true, nullptr);
+    EXPECT_EQ(WATCHFACE_COMPLICATION_ERROR_NONE, ret);
   }
+
   watchface_editor_edit_cancel();
   watchface_editor_edit_complete();
-  watchface_editor_editable_list_destroy(dup_list);
+  ret = watchface_editable_dup(handle, &dup_handle);
+  EXPECT_EQ(WATCHFACE_COMPLICATION_ERROR_NONE, ret);
+  ret = watchface_editable_edit_done(dup_handle);
+  EXPECT_EQ(WATCHFACE_COMPLICATION_ERROR_NONE, ret);
+  ret = watchface_editable_edit_done(nullptr);
+  EXPECT_EQ(WATCHFACE_COMPLICATION_ERROR_INVALID_PARAMETER, ret);
+  ret = watchface_editable_destroy(dup_handle);
+  EXPECT_EQ(WATCHFACE_COMPLICATION_ERROR_NONE, ret);
+  ret = watchface_editable_destroy(nullptr);
+  EXPECT_EQ(WATCHFACE_COMPLICATION_ERROR_INVALID_PARAMETER, ret);
+  ret = watchface_editor_editable_list_destroy(dup_list);
+  EXPECT_EQ(WATCHFACE_COMPLICATION_ERROR_NONE, ret);
+  ret = watchface_editor_editable_list_destroy(nullptr);
+  EXPECT_EQ(WATCHFACE_COMPLICATION_ERROR_INVALID_PARAMETER, ret);
+
 }
 
 TEST_F(CWED, watchface_editable_candidates_list)
@@ -251,6 +321,14 @@ TEST_F(CWED, watchface_editable_candidates_list)
   ret = watchface_editor_remove_request_edit_cb(
       _editor_request_edit_cb);
   EXPECT_EQ(WATCHFACE_COMPLICATION_ERROR_NONE, ret);
+
+  ret = watchface_editor_add_request_edit_cb(
+      nullptr, nullptr);
+  EXPECT_EQ(WATCHFACE_COMPLICATION_ERROR_INVALID_PARAMETER, ret);
+  ret = watchface_editor_notify_edit_ready(nullptr);
+  EXPECT_EQ(WATCHFACE_COMPLICATION_ERROR_INVALID_PARAMETER, ret);
+  ret = watchface_editor_remove_request_edit_cb(nullptr);
+  EXPECT_EQ(WATCHFACE_COMPLICATION_ERROR_INVALID_PARAMETER, ret);
 }
 
 }
\ No newline at end of file