summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorInkyun Kil <inkyun.kil@samsung.com>2023-09-18 10:54:38 +0900
committerInkyun Kil <inkyun.kil@samsung.com>2023-09-18 16:05:05 +0900
commit0adb0f3a05020fdffcfc838aaac1ef58f0a713d8 (patch)
tree1ad25127c9cc3d96c48c4f645e01a1e0af23d653
parenta431d6166c77c1cbf17e31a6ca8b54ba7ec793da (diff)
downloadwidget-service-0adb0f3a05020fdffcfc838aaac1ef58f0a713d8.tar.gz
widget-service-0adb0f3a05020fdffcfc838aaac1ef58f0a713d8.tar.bz2
widget-service-0adb0f3a05020fdffcfc838aaac1ef58f0a713d8.zip
Improves code coverage and modify unittest package name
Change-Id: I0b0e714d8ae01b4274f64573e8c7b728f236205f Signed-off-by: Inkyun Kil <inkyun.kil@samsung.com>
-rw-r--r--packaging/libwidget_service.spec8
-rw-r--r--parser/lib/widget_plugin_parser_db.cc4
-rw-r--r--src/widget_instance.c2
-rw-r--r--src/widget_service.c173
-rw-r--r--unittest/mock/aul_mock.cc4
-rw-r--r--unittest/mock/aul_mock.h1
-rw-r--r--unittest/mock/pkgmgr-info_mock.cc17
-rw-r--r--unittest/mock/pkgmgr-info_mock.h6
-rw-r--r--unittest/mock/system_info_mock.cc4
-rw-r--r--unittest/mock/system_info_mock.h1
-rw-r--r--unittest/mock/vconf_mock.cc23
-rw-r--r--unittest/mock/vconf_mock.h32
-rw-r--r--unittest/src/test_widget_plugin_parser.cc1
-rw-r--r--unittest/src/test_widget_service.cc352
-rw-r--r--unittest/src/test_widget_service_instance.cc97
15 files changed, 610 insertions, 115 deletions
diff --git a/packaging/libwidget_service.spec b/packaging/libwidget_service.spec
index 709f779..353a6c7 100644
--- a/packaging/libwidget_service.spec
+++ b/packaging/libwidget_service.spec
@@ -175,16 +175,16 @@ else
fi
#################################################
-# widget_service_unittests
+# widget-service-unittests
#################################################
-%package -n widget_service_unittests
+%package -n widget-service-unittests
Summary: GTest for widget_service
Group: Development/Libraries
-%description -n widget_service_unittests
+%description -n widget-service-unittests
GTest for widget_service
-%files -n widget_service_unittests
+%files -n widget-service-unittests
%{_bindir}/widget_service_unittests
%{_bindir}/tizen-unittests/%{name}/run-unittest.sh
diff --git a/parser/lib/widget_plugin_parser_db.cc b/parser/lib/widget_plugin_parser_db.cc
index 5fcd6bf..859fe09 100644
--- a/parser/lib/widget_plugin_parser_db.cc
+++ b/parser/lib/widget_plugin_parser_db.cc
@@ -90,7 +90,7 @@ std::string ConvertPath(const std::string& preview_path,
return "";
}
-
+/* LCOV_EXCL_START */
bool BusyHandler(int count) {
constexpr int BUSY_WAITING_USEC = 50000;
constexpr int BUSY_WAITING_MAX = 20;
@@ -102,7 +102,7 @@ bool BusyHandler(int count) {
return false;
}
-
+/* LCOV_EXCL_STOP */
int IsGlobal(uid_t uid) {
constexpr int ROOT_USER = 0;
diff --git a/src/widget_instance.c b/src/widget_instance.c
index 23a2ee5..22a20cd 100644
--- a/src/widget_instance.c
+++ b/src/widget_instance.c
@@ -692,7 +692,6 @@ static int __check_valid_sender(char *widget_id, int pid)
return -1;
}
-/* LCOV_EXCL_START */
static int __check_valid_sender_v2(const char *sender_pkgid)
{
char pkgid[256] = {0, };
@@ -721,7 +720,6 @@ static int __check_valid_sender_v2(const char *sender_pkgid)
return -1;
}
-/* LCOV_EXCL_STOP */
static int __status_handler(const char *endpoint, aul_app_com_result_e e, bundle *envelope, void *user_data)
{
diff --git a/src/widget_service.c b/src/widget_service.c
index 4fc39ea..64680ad 100644
--- a/src/widget_service.c
+++ b/src/widget_service.c
@@ -173,17 +173,21 @@ static int check_privilege(const char *privilege)
fd = open("/proc/self/attr/current", O_RDONLY);
if (fd < 0) {
+/* LCOV_EXCL_START */
LOGE("open [%d] failed!", errno);
ret = -1;
+/* LCOV_EXCL_STOP */
goto out;
}
ret = read(fd, subject_label, SMACK_LABEL_LEN);
if (ret < 0) {
+/* LCOV_EXCL_START */
LOGE("read [%d] failed!", errno);
close(fd);
ret = -1;
goto out;
+/* LCOV_EXCL_STOP */
}
close(fd);
@@ -284,7 +288,7 @@ static int __change_own(uid_t uid, const char *path)
printf("chown fail %s", path);
return WIDGET_ERROR_FAULT;
}
-
+/* LCOV_EXCL_START */
mode = S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP | S_IROTH | S_IWOTH;
ret = chmod(path, mode);
if (ret == -1) {
@@ -304,7 +308,7 @@ static int __change_own(uid_t uid, const char *path)
printf("chmod failed : %s", path);
return WIDGET_ERROR_FAULT;;
}
-
+/* LCOV_EXCL_STOP */
return WIDGET_ERROR_NONE;
}
@@ -322,18 +326,22 @@ static int _recover_db(const char *path, uid_t uid, bool is_init)
SQLITE_OPEN_CREATE | SQLITE_OPEN_READWRITE,
NULL);
if (ret != SQLITE_OK) {
+/* LCOV_EXCL_START */
_E("Failed to open db[%d]", ret);
sqlite3_close_v2(db);
unlink(path);
return WIDGET_ERROR_FAULT;
+/* LCOV_EXCL_STOP */
}
ret = sqlite3_exec(db, CREATE_WIDGET_TABLE, NULL, NULL, &errmsg);
sqlite3_close_v2(db);
if (ret != SQLITE_OK) {
+/* LCOV_EXCL_START */
_E("Failed to exec query[%d][%s]", ret, errmsg);
sqlite3_free(errmsg);
return WIDGET_ERROR_FAULT;
+/* LCOV_EXCL_STOP */
}
__change_smack(path);
@@ -355,9 +363,11 @@ static int _integrity_check(sqlite3 *db)
ret = sqlite3_exec(db, "PRAGMA integrity_check",
_check_integrity_cb, NULL, &errmsg);
if (ret != SQLITE_OK || _is_corrupted) {
+/* LCOV_EXCL_START */
_E("Failed to exec query[%d][%s]", ret, errmsg);
sqlite3_free(errmsg);
return WIDGET_ERROR_FAULT;
+/* LCOV_EXCL_STOP */
}
return WIDGET_ERROR_NONE;
@@ -562,7 +572,7 @@ static char *_resolution_file_path(void)
return path;
}
-
+/* LCOV_EXCL_START */
static void _resolution_update_size_list(int width_type, int height_type, int width, int height)
{
int idx = 0;
@@ -619,7 +629,7 @@ static void _resolution_update_size_list(int width_type, int height_type, int wi
_I("size type(%d): %dx%d (%dx%d)\n", idx, width_type, height_type, width, height);
}
-
+/* LCOV_EXCL_STOP */
static int _resolution_update_from_file(void)
{
int width_type = 0;
@@ -638,7 +648,7 @@ static int _resolution_update_from_file(void)
file_path = _resolution_file_path();
if (file_path == NULL)
return WIDGET_ERROR_OUT_OF_MEMORY;
-
+/* LCOV_EXCL_START */
dic = iniparser_load(file_path);
if (dic == NULL) {
_E("fail to load [%s] ", file_path);
@@ -696,7 +706,7 @@ static int _resolution_update_from_file(void)
return WIDGET_ERROR_NONE;
}
-
+/* LCOV_EXCL_STOP */
static int _get_supported_size_type(int width, int height, int *type)
{
int i;
@@ -868,25 +878,31 @@ static int _get_widget_supported_sizes(const char *widget_id, uid_t uid,
sqlite3_reset(stmt);
width = malloc(sizeof(int) * count);
if (!width) {
+/* LCOV_EXCL_START */
_E("Failed to allocate width");
ret = WIDGET_ERROR_FAULT; /* It shoud be WIDGET_ERROR_OUT_OF_MEMORY */
goto err;
+/* LCOV_EXCL_STOP */
}
height = malloc(sizeof(int) * count);
if (!height) {
+/* LCOV_EXCL_START */
_E("Failed to allocate height");
ret = WIDGET_ERROR_FAULT; /* It should be WIDGET_ERROR_OUT_OF_MEMORY */
goto err;
+/* LCOV_EXCL_STOP */
}
for (i = 0; i < count; i++) {
ret = sqlite3_step(stmt);
if (ret != SQLITE_ROW) {
+/* LCOV_EXCL_START */
_E("sqlite3_step() is failed. err(%s)",
sqlite3_errmsg(db));
ret = WIDGET_ERROR_FAULT;
goto err;
+/* LCOV_EXCL_STOP */
}
_get_column_int(stmt, 0, &width[i]);
_get_column_int(stmt, 1, &height[i]);
@@ -963,23 +979,29 @@ static int _get_widget_supported_info(const char *widget_id, uid_t uid,
sqlite3_reset(stmt);
width = malloc(sizeof(int) * count);
if (!width) {
+/* LCOV_EXCL_START */
_E("Failed to allocate width");
ret = WIDGET_ERROR_FAULT; /* It should be WIDGET_ERROR_OUT_OF_MEMORY */
goto err;
+/* LCOV_EXCL_STOP */
}
height = malloc(sizeof(int) * count);
if (!height) {
+/* LCOV_EXCL_START */
_E("Failed to allocate height");
ret = WIDGET_ERROR_FAULT; /* It should be WIDGET_ERROR_OUT_OF_MEMORY */
goto err;
+/* LCOV_EXCL_STOP */
}
type = malloc(sizeof(int) * count);
if (!type) {
+/* LCOV_EXCL_START */
_E("Failed to allocate type");
ret = WIDGET_ERROR_FAULT; /* It should be WIDGET_ERROR_OUT_OF_MEMORY */
goto err;
+/* LCOV_EXCL_STOP */
}
for (i = 0; i < count; i++) {
@@ -1046,12 +1068,12 @@ EAPI int widget_service_change_period(const char *pkgname, const char *id, doubl
widget_instance_h instance;
struct widget_instance_info_s instance_info;
int ret;
-
+/* LCOV_EXCL_START */
if (!_is_widget_feature_enabled()) {
_E("not supported");
return WIDGET_ERROR_NOT_SUPPORTED;
}
-
+/* LCOV_EXCL_STOP */
if (!pkgname || !id || period < 0.0f) {
_E("invalid parameter");
return WIDGET_ERROR_INVALID_PARAMETER;
@@ -1084,12 +1106,12 @@ EAPI int widget_service_trigger_update(const char *widget_id, const char *id, bu
int ret;
bundle_raw *raw = NULL;
int len;
-
+/* LCOV_EXCL_START */
if (!_is_widget_feature_enabled()) {
_E("not supported");
return WIDGET_ERROR_NOT_SUPPORTED;
}
-
+/* LCOV_EXCL_STOP */
if (!widget_id) {
_E("invalid parameter");
return WIDGET_ERROR_INVALID_PARAMETER;
@@ -1184,12 +1206,12 @@ EAPI int widget_service_get_widget_list(widget_list_cb cb, void *data)
GList *list = NULL;
GList *tmp;
struct widget_list_item *item;
-
+/* LCOV_EXCL_START */
if (!_is_widget_feature_enabled()) {
_E("not supported");
return WIDGET_ERROR_NOT_SUPPORTED;
}
-
+/* LCOV_EXCL_STOP */
if (cb == NULL) {
_E("invalid parameter");
return WIDGET_ERROR_INVALID_PARAMETER;
@@ -1226,12 +1248,12 @@ EAPI int widget_service_get_widget_list_by_pkgid(const char *pkgid,
GList *list = NULL;
GList *tmp;
struct widget_list_item *item;
-
+/* LCOV_EXCL_START */
if (!_is_widget_feature_enabled()) {
_E("not supported");
return WIDGET_ERROR_NOT_SUPPORTED;
}
-
+/* LCOV_EXCL_STOP */
if (pkgid == NULL || cb == NULL) {
_E("invalid parameter");
return WIDGET_ERROR_INVALID_PARAMETER;
@@ -1290,6 +1312,7 @@ static char *_get_main_app_id(const char *widget_id, uid_t uid)
ret = sqlite3_step(stmt);
if (ret != SQLITE_ROW) {
+ /* LCOV_EXCL_START */
/* TODO: which error should be set? */
if (ret == SQLITE_DONE) {
set_last_result(WIDGET_ERROR_NOT_EXIST);
@@ -1300,6 +1323,7 @@ static char *_get_main_app_id(const char *widget_id, uid_t uid)
sqlite3_finalize(stmt);
sqlite3_close_v2(db);
return NULL;
+ /* LCOV_EXCL_STOP */
}
_get_column_str(stmt, 0, &pkgid);
@@ -1333,13 +1357,13 @@ static char *_get_main_app_id(const char *widget_id, uid_t uid)
EAPI char *widget_service_get_main_app_id(const char *widget_id)
{
char *appid;
-
+/* LCOV_EXCL_START */
if (!_is_widget_feature_enabled()) {
_E("not supported");
set_last_result(WIDGET_ERROR_NOT_SUPPORTED);
return NULL;
}
-
+/* LCOV_EXCL_STOP */
if (widget_id == NULL) {
_E("invalid parameter");
set_last_result(WIDGET_ERROR_INVALID_PARAMETER);
@@ -1370,12 +1394,12 @@ EAPI int widget_service_get_supported_size_types(const char *widget_id,
int ret;
int *width = NULL;
int *height = NULL;
-
+/* LCOV_EXCL_START */
if (!_is_widget_feature_enabled()) {
_E("not supported");
return WIDGET_ERROR_NOT_SUPPORTED;
}
-
+/* LCOV_EXCL_STOP */
if (widget_id == NULL || cnt == NULL || types == NULL) {
_E("invalid parameter");
return WIDGET_ERROR_INVALID_PARAMETER;
@@ -1460,13 +1484,13 @@ static char *_get_app_id_of_setup_app(const char *widget_id, uid_t uid)
EAPI char *widget_service_get_app_id_of_setup_app(const char *widget_id)
{
char *appid;
-
+/* LCOV_EXCL_START */
if (!_is_widget_feature_enabled()) {
_E("not supported");
set_last_result(WIDGET_ERROR_NOT_SUPPORTED);
return NULL;
}
-
+/* LCOV_EXCL_STOP */
if (widget_id == NULL) {
_E("invalid parameter");
set_last_result(WIDGET_ERROR_INVALID_PARAMETER);
@@ -1509,16 +1533,19 @@ static int _get_nodisplay(const char *widget_id, uid_t uid)
ret = sqlite3_prepare_v2(db, query, strlen(query), &stmt, NULL);
if (ret != SQLITE_OK) {
+/* LCOV_EXCL_START */
_E("prepare error: %s", sqlite3_errmsg(db));
sqlite3_close_v2(db);
set_last_result(WIDGET_ERROR_FAULT);
return 0;
+/* LCOV_EXCL_STOP */
}
sqlite3_bind_text(stmt, 1, widget_id, -1, SQLITE_STATIC);
ret = sqlite3_step(stmt);
if (ret != SQLITE_ROW) {
+/* LCOV_EXCL_START */
/* TODO: which error should be set? */
if (ret == SQLITE_DONE) {
set_last_result(WIDGET_ERROR_NOT_EXIST);
@@ -1529,6 +1556,7 @@ static int _get_nodisplay(const char *widget_id, uid_t uid)
sqlite3_finalize(stmt);
sqlite3_close_v2(db);
return 0;
+/* LCOV_EXCL_STOP */
}
_get_column_int(stmt, 0, &nodisplay);
@@ -1556,15 +1584,18 @@ static int _get_update_period(const char *widget_id, uid_t uid, double *period)
ret = sqlite3_prepare_v2(db, query, strlen(query), &stmt, NULL);
if (ret != SQLITE_OK) {
+/* LCOV_EXCL_START */
_E("prepare error: %s", sqlite3_errmsg(db));
sqlite3_close_v2(db);
return WIDGET_ERROR_FAULT;
+/* LCOV_EXCL_STOP */
}
sqlite3_bind_text(stmt, 1, widget_id, -1, SQLITE_STATIC);
ret = sqlite3_step(stmt);
if (ret != SQLITE_ROW) {
+/* LCOV_EXCL_START */
if (ret == SQLITE_DONE) {
ret = WIDGET_ERROR_NOT_EXIST;
} else {
@@ -1574,6 +1605,7 @@ static int _get_update_period(const char *widget_id, uid_t uid, double *period)
sqlite3_finalize(stmt);
sqlite3_close_v2(db);
return ret;
+/* LCOV_EXCL_STOP */
}
_get_column_double(stmt, 0, period);
@@ -1602,13 +1634,13 @@ int widget_service_get_update_period(const char *widget_id, double *period)
EAPI int widget_service_get_nodisplay(const char *widget_id)
{
int nodisplay;
-
+/* LCOV_EXCL_START */
if (!_is_widget_feature_enabled()) {
_E("not supported");
set_last_result(WIDGET_ERROR_NOT_SUPPORTED);
return 0;
}
-
+/* LCOV_EXCL_STOP */
if (widget_id == NULL) {
_E("invalid parameter");
set_last_result(WIDGET_ERROR_INVALID_PARAMETER);
@@ -1637,11 +1669,12 @@ EAPI int widget_service_get_nodisplay(const char *widget_id)
/* deprecated, always return need_of_frame as false */
EAPI int widget_service_get_need_of_frame(const char *pkgid, widget_size_type_e size_type, bool *need_of_frame)
{
+/* LCOV_EXCL_START */
if (!_is_widget_feature_enabled()) {
_E("not supported");
return WIDGET_ERROR_NOT_SUPPORTED;
}
-
+/* LCOV_EXCL_STOP */
if (!pkgid) {
_E("invalid parameter");
return WIDGET_ERROR_INVALID_PARAMETER;
@@ -1658,11 +1691,12 @@ EAPI int widget_service_get_need_of_frame(const char *pkgid, widget_size_type_e
/* deprecated, always return need_of_touch_event as false */
EAPI int widget_service_get_need_of_touch_effect(const char *pkgid, widget_size_type_e size_type, bool *need_of_touch_event)
{
+/* LCOV_EXCL_START */
if (!_is_widget_feature_enabled()) {
_E("not supported");
return WIDGET_ERROR_NOT_SUPPORTED;
}
-
+/* LCOV_EXCL_STOP */
if (!pkgid) {
_E("invalid parameter");
return WIDGET_ERROR_INVALID_PARAMETER;
@@ -1679,11 +1713,12 @@ EAPI int widget_service_get_need_of_touch_effect(const char *pkgid, widget_size_
/* deprecated, always return need_of_mouse_event as false */
EAPI int widget_service_get_need_of_mouse_event(const char *pkgid, widget_size_type_e size_type, bool *need_of_mouse_event)
{
+/* LCOV_EXCL_START */
if (!_is_widget_feature_enabled()) {
_E("not supported");
return WIDGET_ERROR_NOT_SUPPORTED;
}
-
+/* LCOV_EXCL_STOP */
if (!pkgid) {
_E("invalid parameter");
return WIDGET_ERROR_INVALID_PARAMETER;
@@ -1729,6 +1764,7 @@ static char *_get_preview_image_path(const char *widget_id, int width,
ret = sqlite3_step(stmt);
if (ret != SQLITE_ROW) {
+/* LCOV_EXCL_START */
/* TODO: which error should be set? */
if (ret == SQLITE_DONE) {
set_last_result(WIDGET_ERROR_NOT_EXIST);
@@ -1739,6 +1775,7 @@ static char *_get_preview_image_path(const char *widget_id, int width,
sqlite3_finalize(stmt);
sqlite3_close_v2(db);
return NULL;
+/* LCOV_EXCL_STOP */
}
_get_column_str(stmt, 0, &path);
@@ -1811,13 +1848,13 @@ EAPI char *widget_service_get_preview_image_path(const char *widget_id,
int buf_len;
int i;
int printed;
-
+/* LCOV_EXCL_START */
if (!_is_widget_feature_enabled()) {
_E("not supported");
set_last_result(WIDGET_ERROR_NOT_SUPPORTED);
return NULL;
}
-
+/* LCOV_EXCL_STOP */
/* TODO: validate size_type */
if (widget_id == NULL) {
_E("invalid parameter");
@@ -1908,6 +1945,7 @@ static char *_get_main_widget_id(const char *pkg_id, uid_t uid)
ret = sqlite3_step(stmt);
if (ret != SQLITE_ROW) {
+/* LCOV_EXCL_START */
if (ret != SQLITE_DONE)
_E("step error: %s", sqlite3_errmsg(db));
sqlite3_finalize(stmt);
@@ -1916,6 +1954,7 @@ static char *_get_main_widget_id(const char *pkg_id, uid_t uid)
set_last_result(ret == SQLITE_DONE ? WIDGET_ERROR_NOT_EXIST :
WIDGET_ERROR_FAULT);
return NULL;
+/* LCOV_EXCL_STOP */
}
_get_column_str(stmt, 0, &widget_id);
@@ -1963,6 +2002,7 @@ static char *_get_icon(const char *widget_id, const char *lang, uid_t uid)
ret = sqlite3_step(stmt);
if (ret != SQLITE_ROW) {
+/* LCOV_EXCL_START */
if (ret != SQLITE_DONE)
_E("step error: %s", sqlite3_errmsg(db));
sqlite3_finalize(stmt);
@@ -1971,6 +2011,7 @@ static char *_get_icon(const char *widget_id, const char *lang, uid_t uid)
set_last_result(ret == SQLITE_DONE ? WIDGET_ERROR_NOT_EXIST :
WIDGET_ERROR_FAULT);
return NULL;
+/* LCOV_EXCL_STOP */
}
_get_column_str(stmt, 0, &icon);
@@ -1987,13 +2028,13 @@ EAPI char *widget_service_get_icon(const char *pkgid, const char *lang)
{
char *icon;
char *widget_id;
-
+/* LCOV_EXCL_START */
if (!_is_widget_feature_enabled()) {
_E("not supported");
set_last_result(WIDGET_ERROR_NOT_SUPPORTED);
return NULL;
}
-
+/* LCOV_EXCL_STOP */
if (pkgid == NULL) {
_E("invalid parameter");
set_last_result(WIDGET_ERROR_INVALID_PARAMETER);
@@ -2058,6 +2099,7 @@ static char *_get_name(const char *widget_id, const char *lang, uid_t uid)
ret = sqlite3_step(stmt);
if (ret != SQLITE_ROW) {
+/* LCOV_EXCL_START */
if (ret != SQLITE_DONE)
_E("step error: %s", sqlite3_errmsg(db));
sqlite3_finalize(stmt);
@@ -2066,6 +2108,7 @@ static char *_get_name(const char *widget_id, const char *lang, uid_t uid)
set_last_result(ret == SQLITE_DONE ? WIDGET_ERROR_NOT_EXIST :
WIDGET_ERROR_FAULT);
return NULL;
+/* LCOV_EXCL_STOP */
}
_get_column_str(stmt, 0, &label);
@@ -2110,12 +2153,13 @@ EAPI char *widget_service_get_name(const char *widget_id, const char *lang)
char *name;
char *language;
+/* LCOV_EXCL_START */
if (!_is_widget_feature_enabled()) {
_E("not supported");
set_last_result(WIDGET_ERROR_NOT_SUPPORTED);
return NULL;
}
-
+/* LCOV_EXCL_STOP */
if (widget_id == NULL) {
_E("invalid parameter");
set_last_result(WIDGET_ERROR_INVALID_PARAMETER);
@@ -2159,12 +2203,12 @@ EAPI int widget_service_get_supported_sizes(const char *widget_id, int *cnt,
int **w, int **h)
{
int ret;
-
+/* LCOV_EXCL_START */
if (!_is_widget_feature_enabled()) {
_E("not supported");
return WIDGET_ERROR_NOT_SUPPORTED;
}
-
+/* LCOV_EXCL_STOP */
if (widget_id == NULL || cnt == NULL || w == NULL || h == NULL) {
_E("invalid parameter");
return WIDGET_ERROR_INVALID_PARAMETER;
@@ -2221,6 +2265,7 @@ static char *_get_widget_id(const char *appid, uid_t uid)
ret = sqlite3_step(stmt);
if (ret != SQLITE_ROW) {
+/* LCOV_EXCL_START */
_E("step error: %s", sqlite3_errmsg(db));
sqlite3_finalize(stmt);
sqlite3_close_v2(db);
@@ -2228,6 +2273,7 @@ static char *_get_widget_id(const char *appid, uid_t uid)
set_last_result(ret == SQLITE_DONE ? WIDGET_ERROR_NOT_EXIST :
WIDGET_ERROR_FAULT);
return NULL;
+/* LCOV_EXCL_STOP */
}
_get_column_str(stmt, 0, &classid);
@@ -2287,7 +2333,7 @@ static char *__get_widget_main_appid_from_pkgid_or_appid(const char *id)
if (widget_list == NULL)
goto end;
-
+/* LCOV_EXCL_START */
iter = g_list_first(widget_list);
while (iter) {
item = (struct widget_list_item *)iter->data;
@@ -2308,7 +2354,7 @@ static char *__get_widget_main_appid_from_pkgid_or_appid(const char *id)
free(item);
}
}
-
+/* LCOV_EXCL_STOP */
end:
if (pkginfo)
pkgmgrinfo_pkginfo_destroy_pkginfo(pkginfo);
@@ -2324,13 +2370,13 @@ EAPI char *widget_service_get_widget_id(const char *appid)
{
char *classid;
char *widget_id;
-
+/* LCOV_EXCL_START */
if (!_is_widget_feature_enabled()) {
_E("not supported");
set_last_result(WIDGET_ERROR_NOT_SUPPORTED);
return NULL;
}
-
+/* LCOV_EXCL_STOP */
if (appid == NULL) {
_E("invalid parameter");
set_last_result(WIDGET_ERROR_INVALID_PARAMETER);
@@ -2402,6 +2448,7 @@ static char *_get_package_id(const char *widget_id, uid_t uid)
ret = sqlite3_step(stmt);
if (ret != SQLITE_ROW) {
+/* LCOV_EXCL_START */
/* TODO: which error should be set? */
if (ret == SQLITE_DONE) {
set_last_result(WIDGET_ERROR_NOT_EXIST);
@@ -2412,6 +2459,7 @@ static char *_get_package_id(const char *widget_id, uid_t uid)
sqlite3_finalize(stmt);
sqlite3_close_v2(db);
return NULL;
+/* LCOV_EXCL_STOP */
}
_get_column_str(stmt, 0, &pkgid);
@@ -2427,13 +2475,13 @@ static char *_get_package_id(const char *widget_id, uid_t uid)
EAPI char *widget_service_get_package_id(const char *widget_id)
{
char *pkgid;
-
+/* LCOV_EXCL_START */
if (!_is_widget_feature_enabled()) {
_E("not supported");
set_last_result(WIDGET_ERROR_NOT_SUPPORTED);
return NULL;
}
-
+/* LCOV_EXCL_STOP */
if (widget_id == NULL) {
_E("invalid parameter");
set_last_result(WIDGET_ERROR_INVALID_PARAMETER);
@@ -2461,11 +2509,12 @@ EAPI char *widget_service_get_package_id(const char *widget_id)
EAPI int widget_service_get_size(widget_size_type_e type, int *width,
int *height)
{
+/* LCOV_EXCL_START */
if (!_is_widget_feature_enabled()) {
_E("not supported");
return WIDGET_ERROR_NOT_SUPPORTED;
}
-
+/* LCOV_EXCL_STOP */
if (width == NULL || height == NULL) {
_E("invalid parameter");
return WIDGET_ERROR_INVALID_PARAMETER;
@@ -2480,11 +2529,12 @@ EAPI int widget_service_get_size(widget_size_type_e type, int *width,
EAPI int widget_service_get_size_type(int width, int height,
widget_size_type_e *size_type)
{
+/* LCOV_EXCL_START */
if (!_is_widget_feature_enabled()) {
_E("not supported");
return WIDGET_ERROR_NOT_SUPPORTED;
}
-
+/* LCOV_EXCL_STOP */
if (width <= 0 || height <= 0 || size_type == NULL) {
_E("invalid parameter");
return WIDGET_ERROR_INVALID_PARAMETER;
@@ -2500,12 +2550,12 @@ EAPI int widget_service_get_content_of_widget_instance(const char *widget_id, co
{
char *raw = NULL;
int ret;
-
+/* LCOV_EXCL_START */
if (!_is_widget_feature_enabled()) {
_E("not supported");
return WIDGET_ERROR_NOT_SUPPORTED;
}
-
+/* LCOV_EXCL_STOP */
if (widget_id == NULL || widget_instance_id == NULL || b == NULL) {
_E("invalid parameter");
return WIDGET_ERROR_INVALID_PARAMETER;
@@ -2570,12 +2620,12 @@ EAPI int widget_service_get_widget_instance_list(const char *widget_id, widget_i
cb_data.cb = cb;
cb_data.data = data;
cb_data.cnt = 0;
-
+/* LCOV_EXCL_START */
if (!_is_widget_feature_enabled()) {
_E("not supported");
return WIDGET_ERROR_NOT_SUPPORTED;
}
-
+/* LCOV_EXCL_STOP */
if (widget_id == NULL || cb == NULL) {
_E("inavlid parameter");
return WIDGET_ERROR_INVALID_PARAMETER;
@@ -2615,12 +2665,12 @@ EAPI int widget_service_set_lifecycle_event_cb(const char *widget_id, widget_lif
int ret = WIDGET_ERROR_NONE;
struct lifecycle_s *cb_info;
GList *head = lifecycle_cbs;
-
+/* LCOV_EXCL_START */
if (!_is_widget_feature_enabled()) {
_E("not supported");
return WIDGET_ERROR_NOT_SUPPORTED;
}
-
+/* LCOV_EXCL_STOP */
if (cb == NULL) {
_E("invalid parameter");
return WIDGET_ERROR_INVALID_PARAMETER;
@@ -2668,12 +2718,12 @@ EAPI int widget_service_unset_lifecycle_event_cb(const char *widget_id, void **u
struct lifecycle_s *cb_info;
struct lifecycle_s *found = NULL;
GList *head = lifecycle_cbs;
-
+/* LCOV_EXCL_START */
if (!_is_widget_feature_enabled()) {
_E("not supported");
return WIDGET_ERROR_NOT_SUPPORTED;
}
-
+/* LCOV_EXCL_STOP */
while (head) {
cb_info = (struct lifecycle_s *)head->data;
if (cb_info && widget_id && cb_info->widget_id) {
@@ -2731,6 +2781,7 @@ static int __get_max_instance(const char *widget_id, uid_t uid)
ret = sqlite3_step(stmt);
if (ret != SQLITE_ROW) {
+/* LCOV_EXCL_START */
if (ret == SQLITE_DONE) {
ret = WIDGET_ERROR_NOT_EXIST;
} else {
@@ -2740,6 +2791,7 @@ static int __get_max_instance(const char *widget_id, uid_t uid)
sqlite3_finalize(stmt);
sqlite3_close_v2(db);
return ret;
+/* LCOV_EXCL_STOP */
}
_get_column_int(stmt, 0, &max_instance);
@@ -2754,12 +2806,12 @@ static int __get_max_instance(const char *widget_id, uid_t uid)
EAPI int widget_service_get_widget_max_count(const char *widget_id)
{
int ret;
-
+/* LCOV_EXCL_START */
if (!_is_widget_feature_enabled()) {
_E("Not supported");
return WIDGET_ERROR_NOT_SUPPORTED;
}
-
+/* LCOV_EXCL_STOP */
if (widget_id == NULL) {
_E("Invalid parameter");
return WIDGET_ERROR_INVALID_PARAMETER;
@@ -2779,12 +2831,12 @@ EAPI int widget_service_get_widget_max_count(const char *widget_id)
EAPI int widget_service_get_instance_count(const char *widget_id, const char *cluster, const char *category)
{
int ret;
-
+/* LCOV_EXCL_START */
if (!_is_widget_feature_enabled()) {
_E("Not supported");
return WIDGET_ERROR_NOT_SUPPORTED;
}
-
+/* LCOV_EXCL_STOP */
if (widget_id == NULL) {
_E("Invalid parameter");
return WIDGET_ERROR_INVALID_PARAMETER;
@@ -2804,12 +2856,12 @@ EAPI int widget_service_set_widget_disabled(const char *widget_id,
bool disabled)
{
int ret;
-
+/* LCOV_EXCL_START */
if (!_is_widget_feature_enabled()) {
_E("Not supported");
return WIDGET_ERROR_NOT_SUPPORTED;
}
-
+/* LCOV_EXCL_STOP */
if (widget_id == NULL) {
_E("Invalid parameter");
return WIDGET_ERROR_INVALID_PARAMETER;
@@ -2861,6 +2913,7 @@ static int _get_disable(const char *widget_id, bool *is_disabled, uid_t uid)
ret = sqlite3_step(stmt);
if (ret != SQLITE_ROW) {
+/* LCOV_EXCL_START */
if (ret == SQLITE_DONE) {
ret = WIDGET_ERROR_NOT_EXIST;
} else {
@@ -2871,6 +2924,7 @@ static int _get_disable(const char *widget_id, bool *is_disabled, uid_t uid)
sqlite3_finalize(stmt);
sqlite3_close_v2(db);
return ret;
+/* LCOV_EXCL_STOP */
}
_get_column_int(stmt, 0, &disable);
@@ -2887,12 +2941,12 @@ EAPI int widget_service_get_widget_disabled(const char *widget_id,
bool *is_disabled)
{
int ret;
-
+/* LCOV_EXCL_START */
if (!_is_widget_feature_enabled()) {
_E("Not supported");
return WIDGET_ERROR_NOT_SUPPORTED;
}
-
+/* LCOV_EXCL_STOP */
if (widget_id == NULL || is_disabled == NULL) {
_E("Invalid parameter");
return WIDGET_ERROR_INVALID_PARAMETER;
@@ -2937,12 +2991,12 @@ EAPI int widget_service_set_disable_event_cb(widget_disable_event_cb callback,
_E("invalid parameter");
return WIDGET_ERROR_INVALID_PARAMETER;
}
-
+/* LCOV_EXCL_START */
if (!_is_widget_feature_enabled()) {
_E("Not supported");
return WIDGET_ERROR_NOT_SUPPORTED;
}
-
+/* LCOV_EXCL_STOP */
if (check_privilege("http://tizen.org/privilege/widget.viewer") < 0)
return WIDGET_ERROR_PERMISSION_DENIED;
@@ -2960,11 +3014,12 @@ EAPI int widget_service_set_disable_event_cb(widget_disable_event_cb callback,
EAPI int widget_service_unset_disable_event_cb(void)
{
+/* LCOV_EXCL_START */
if (!_is_widget_feature_enabled()) {
_E("not supported");
return WIDGET_ERROR_NOT_SUPPORTED;
}
-
+/* LCOV_EXCL_STOP */
if (check_privilege("http://tizen.org/privilege/widget.viewer") < 0)
return WIDGET_ERROR_PERMISSION_DENIED;
diff --git a/unittest/mock/aul_mock.cc b/unittest/mock/aul_mock.cc
index 4fa9ce0..703cf97 100644
--- a/unittest/mock/aul_mock.cc
+++ b/unittest/mock/aul_mock.cc
@@ -65,4 +65,8 @@ extern "C" int aul_app_com_create(const char* arg1,
aul_app_com_permission_h arg2, app_com_cb arg3, void* arg4,
aul_app_com_connection_h* arg5) {
return MOCK_HOOK_P5(AulMock, aul_app_com_create, arg1, arg2, arg3, arg4, arg5);
+}
+
+extern "C" int aul_app_get_pkgid_bypid(int pid, char *pkgid, int len) {
+ return MOCK_HOOK_P3(AulMock, aul_app_get_pkgid_bypid, pid, pkgid, len);
} \ No newline at end of file
diff --git a/unittest/mock/aul_mock.h b/unittest/mock/aul_mock.h
index 5d2587c..d7751cd 100644
--- a/unittest/mock/aul_mock.h
+++ b/unittest/mock/aul_mock.h
@@ -43,6 +43,7 @@ class AulMock : public virtual ModuleMock {
const char *, char **));
MOCK_METHOD5(aul_app_com_create, int (const char *, aul_app_com_permission_h,
app_com_cb, void *, aul_app_com_connection_h *));
+ MOCK_METHOD3(aul_app_get_pkgid_bypid, int (int , char *, int));
};
diff --git a/unittest/mock/pkgmgr-info_mock.cc b/unittest/mock/pkgmgr-info_mock.cc
index d9ab1d5..37e8491 100644
--- a/unittest/mock/pkgmgr-info_mock.cc
+++ b/unittest/mock/pkgmgr-info_mock.cc
@@ -40,3 +40,20 @@ extern "C" int pkgmgrinfo_pkginfo_get_root_path(pkgmgrinfo_pkginfo_h handle,
return MOCK_HOOK_P2(PkgMgrInfoMock, pkgmgrinfo_pkginfo_get_root_path, handle,
root_path);
}
+
+extern "C" int pkgmgrinfo_pkginfo_get_pkginfo(const char* arg1,
+ pkgmgrinfo_pkginfo_h* arg2) {
+ return MOCK_HOOK_P2(PkgMgrInfoMock, pkgmgrinfo_pkginfo_get_pkginfo,
+ arg1, arg2);
+}
+
+extern "C" int pkgmgrinfo_appinfo_get_appinfo(const char* arg1,
+ pkgmgrinfo_appinfo_h* arg2) {
+ return MOCK_HOOK_P2(PkgMgrInfoMock, pkgmgrinfo_appinfo_get_appinfo,
+ arg1, arg2);
+}
+
+extern "C" int pkgmgrinfo_appinfo_get_pkgid(pkgmgrinfo_appinfo_h arg1,
+ char** arg2) {
+ return MOCK_HOOK_P2(PkgMgrInfoMock, pkgmgrinfo_appinfo_get_pkgid, arg1, arg2);
+} \ No newline at end of file
diff --git a/unittest/mock/pkgmgr-info_mock.h b/unittest/mock/pkgmgr-info_mock.h
index 6274d4e..5c29606 100644
--- a/unittest/mock/pkgmgr-info_mock.h
+++ b/unittest/mock/pkgmgr-info_mock.h
@@ -34,6 +34,12 @@ class PkgMgrInfoMock : public virtual ModuleMock {
int (pkgmgrinfo_pkginfo_h));
MOCK_METHOD2(pkgmgrinfo_pkginfo_get_root_path,
int (pkgmgrinfo_pkginfo_h, char**));
+ MOCK_METHOD2(pkgmgrinfo_pkginfo_get_pkginfo,
+ int (const char*, pkgmgrinfo_pkginfo_h*));
+ MOCK_METHOD2(pkgmgrinfo_appinfo_get_appinfo,
+ int (const char*, pkgmgrinfo_appinfo_h*));
+ MOCK_METHOD2(pkgmgrinfo_appinfo_get_pkgid,
+ int (pkgmgrinfo_appinfo_h, char**));
};
#endif // UNIT_TESTS_MOCK_PKGMGR_INFO_MOCK_H_ \ No newline at end of file
diff --git a/unittest/mock/system_info_mock.cc b/unittest/mock/system_info_mock.cc
index 9d83ca3..e0f6a55 100644
--- a/unittest/mock/system_info_mock.cc
+++ b/unittest/mock/system_info_mock.cc
@@ -25,4 +25,8 @@ extern "C" uid_t getuid(void) {
extern "C" int system_info_get_platform_bool(const char* arg1, bool* arg2) {
return MOCK_HOOK_P2(SystemInfoMock, system_info_get_platform_bool, arg1, arg2);
+}
+
+extern "C" int system_info_get_platform_int(const char* arg1, int* arg2) {
+ return MOCK_HOOK_P2(SystemInfoMock, system_info_get_platform_int, arg1, arg2);
} \ No newline at end of file
diff --git a/unittest/mock/system_info_mock.h b/unittest/mock/system_info_mock.h
index 3d24290..58c0761 100644
--- a/unittest/mock/system_info_mock.h
+++ b/unittest/mock/system_info_mock.h
@@ -32,6 +32,7 @@ class SystemInfoMock : public virtual ModuleMock {
MOCK_METHOD0(getuid, uid_t (void));
MOCK_METHOD2(system_info_get_platform_bool, int (const char*, bool*));
+ MOCK_METHOD2(system_info_get_platform_int, int (const char*, int*));
};
#endif // UNIT_TESTS_MOCK_SYSTEM_INFO_MOCK_H_ \ No newline at end of file
diff --git a/unittest/mock/vconf_mock.cc b/unittest/mock/vconf_mock.cc
new file mode 100644
index 0000000..758ffbf
--- /dev/null
+++ b/unittest/mock/vconf_mock.cc
@@ -0,0 +1,23 @@
+/*
+ * Copyright (c) 2023 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
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * 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 "vconf_mock.h"
+#include "mock_hook.h"
+#include "test_fixture.h"
+
+extern "C" char* vconf_get_str(const char* in_key) {
+ return MOCK_HOOK_P1(VconfMock, vconf_get_str, in_key);
+}
diff --git a/unittest/mock/vconf_mock.h b/unittest/mock/vconf_mock.h
new file mode 100644
index 0000000..b5f3835
--- /dev/null
+++ b/unittest/mock/vconf_mock.h
@@ -0,0 +1,32 @@
+/*
+ * Copyright (c) 2023 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
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * 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.
+ */
+
+#ifndef UNIT_TESTS_MOCK_VCONF_MOCK_H_
+#define UNIT_TESTS_MOCK_VCONF_MOCK_H_
+
+#include <vconf.h>
+#include <gmock/gmock.h>
+
+#include "module_mock.h"
+
+class VconfMock : public virtual ModuleMock {
+ public:
+ virtual ~VconfMock() {}
+
+ MOCK_METHOD1(vconf_get_str, char* (const char*));
+};
+
+#endif // MOCK_VCONF_MOCUNIT_TESTS_MOCK_VCONF_MOCK_H__H_ \ No newline at end of file
diff --git a/unittest/src/test_widget_plugin_parser.cc b/unittest/src/test_widget_plugin_parser.cc
index e4d9fa0..e2595ad 100644
--- a/unittest/src/test_widget_plugin_parser.cc
+++ b/unittest/src/test_widget_plugin_parser.cc
@@ -32,7 +32,6 @@
using ::testing::_;
using ::testing::DoAll;
using ::testing::Invoke;
-using ::testing::SetArgPointee;
using ::testing::Return;
namespace {
diff --git a/unittest/src/test_widget_service.cc b/unittest/src/test_widget_service.cc
index 714dacf..8e718d1 100644
--- a/unittest/src/test_widget_service.cc
+++ b/unittest/src/test_widget_service.cc
@@ -19,7 +19,10 @@
#include <stdio.h>
#include <sqlite3.h>
#include <dlfcn.h>
+#include <unistd.h>
+#include <fcntl.h>
+#include "include/widget_instance.h"
#include "include/widget_service.h"
#include "include/widget_errno.h"
#include "include/widget_service_internal.h"
@@ -29,6 +32,7 @@
#include "glib_mock.h"
#include "tzplatform_config_mock.h"
#include "pkgmgr-info_mock.h"
+#include "vconf_mock.h"
#include "test_fixture.h"
#include "widget_plugin_parser.hh"
#include "widget_plugin_parser_error.h"
@@ -36,7 +40,7 @@
using ::testing::_;
using ::testing::DoAll;
using ::testing::Invoke;
-using ::testing::SetArgPointee;
+using ::testing::InvokeArgument;
using ::testing::Return;
namespace {
@@ -143,12 +147,23 @@ int __fake_pkgmgrinfo_pkginfo_destroy_pkginfo(pkgmgrinfo_pkginfo_h handle) {
return PMINFO_R_OK;
}
+int __fake_system_info_get_platform_int1(const char *key, int *val) {
+ *val = 320;
+ return SYSTEM_INFO_ERROR_NONE;
+}
+
+int __fake_system_info_get_platform_int2(const char *key, int *val) {
+ *val = 480;
+ return SYSTEM_INFO_ERROR_NONE;
+}
+
class Mocks : virtual public ::testing::NiceMock<AulMock>,
virtual public ::testing::NiceMock<CynaraMock>,
virtual public ::testing::NiceMock<GlibMock>,
virtual public ::testing::NiceMock<PkgMgrInfoMock>,
virtual public ::testing::NiceMock<SystemInfoMock>,
- virtual public ::testing::NiceMock<TzplatformConfigMock> {};
+ virtual public ::testing::NiceMock<TzplatformConfigMock>,
+ virtual public ::testing::NiceMock<VconfMock> {};
constexpr char XML1[] = R"__widget(<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<manifest xmlns="http://tizen.org/ns/packages" api-version="5.5" package="org.tizen.gallery_common" version="1.0.0">
@@ -177,7 +192,6 @@ constexpr char XML1[] = R"__widget(<?xml version="1.0" encoding="UTF-8" standalo
</widget-application>
</manifest>
)__widget";
-
} // namespace
class WidgetServiceTest : public TestFixture {
@@ -248,6 +262,23 @@ TEST_F(WidgetServiceTest, GetDisabled) {
ASSERT_EQ(ret, WIDGET_ERROR_NONE);
}
+TEST_F(WidgetServiceTest, GetDisabled_N) {
+ EXPECT_CALL(GetMock<CynaraMock>(), cynara_initialize(_, _))
+ .WillOnce(Return(1));
+
+ int ret = WIDGET_ERROR_NONE;
+ bool is_disabled;
+
+ ret = widget_service_get_widget_disabled(NULL,
+ &is_disabled);
+ ASSERT_EQ(ret, WIDGET_ERROR_INVALID_PARAMETER);
+
+ ret = widget_service_get_widget_disabled("org.tizen.gallery.widget",
+ &is_disabled);
+ ASSERT_EQ(ret, WIDGET_ERROR_PERMISSION_DENIED);
+}
+
+
void _widget_disable_event_cb(const char *widget_id, bool is_disabled, void *user_data) {
}
@@ -277,8 +308,13 @@ TEST_F(WidgetServiceTest, UnsetDisabledEventCallback) {
.WillRepeatedly(Invoke(__fake_cynara_check));
EXPECT_CALL(GetMock<CynaraMock>(), cynara_finish(_))
.WillRepeatedly(Invoke(__fake_cynara_finish));
+
+ bundle *b = bundle_create();
+ bundle_add_str(b, AUL_K_WIDGET_DISABLE, "1");
+ bundle_add_str(b, AUL_K_WIDGET_ID, "widget_id");
EXPECT_CALL(GetMock<AulMock>(), aul_app_com_create(_, _, _, _, _))
- .WillRepeatedly(Invoke(__fake_aul_app_com_create));
+ .WillOnce(DoAll(InvokeArgument<2>("end", AUL_APP_COM_R_OK, b, nullptr),
+ Return(0)));
EXPECT_CALL(GetMock<AulMock>(), aul_app_com_leave(_))
.WillRepeatedly(Invoke(__fake_aul_app_com_leave));
@@ -287,14 +323,20 @@ TEST_F(WidgetServiceTest, UnsetDisabledEventCallback) {
ret = widget_service_set_disable_event_cb(_widget_disable_event_cb, NULL);
ret = widget_service_unset_disable_event_cb();
ASSERT_EQ(ret, WIDGET_ERROR_NONE);
+ bundle_free(b);
}
TEST_F(WidgetServiceTest, GetSize) {
+ int width, height;
+
EXPECT_CALL(GetMock<SystemInfoMock>(), system_info_get_platform_bool(_, _))
.WillRepeatedly(Invoke(__fake_system_info_get_platform_bool));
+ EXPECT_CALL(GetMock<SystemInfoMock>(), system_info_get_platform_int(_, _))
+ .Times(2)
+ .WillOnce(Invoke(__fake_system_info_get_platform_int1))
+ .WillOnce(Invoke(__fake_system_info_get_platform_int2));
int ret;
- int width, height;
ret = widget_service_get_size(WIDGET_SIZE_TYPE_4x4, &width, &height);
ASSERT_EQ(ret, WIDGET_ERROR_NONE);
@@ -303,6 +345,8 @@ TEST_F(WidgetServiceTest, GetSize) {
TEST_F(WidgetServiceTest, GetSizeType) {
EXPECT_CALL(GetMock<SystemInfoMock>(), system_info_get_platform_bool(_, _))
.WillRepeatedly(Invoke(__fake_system_info_get_platform_bool));
+ EXPECT_CALL(GetMock<SystemInfoMock>(), system_info_get_platform_int(_, _))
+ .WillRepeatedly(Return(0));
int ret;
widget_size_type_e type;
@@ -384,6 +428,17 @@ TEST_F(WidgetServiceTest, TriggerUpdate) {
ASSERT_EQ(ret, WIDGET_ERROR_NONE);
}
+TEST_F(WidgetServiceTest, TriggerUpdate_N1) {
+ EXPECT_CALL(GetMock<SystemInfoMock>(), system_info_get_platform_bool(_, _))
+ .WillRepeatedly(Invoke(__fake_system_info_get_platform_bool));
+
+ int ret;
+
+ ret = widget_service_trigger_update(NULL,
+ "org.tizen.gallery.widget", NULL, 1);
+ ASSERT_EQ(ret, WIDGET_ERROR_INVALID_PARAMETER);
+}
+
TEST_F(WidgetServiceTest, ChangePeriod) {
EXPECT_CALL(GetMock<SystemInfoMock>(), system_info_get_platform_bool(_, _))
.WillRepeatedly(Invoke(__fake_system_info_get_platform_bool));
@@ -397,6 +452,17 @@ TEST_F(WidgetServiceTest, ChangePeriod) {
ASSERT_EQ(ret, WIDGET_ERROR_NONE);
}
+TEST_F(WidgetServiceTest, ChangePeriod_N2) {
+ EXPECT_CALL(GetMock<SystemInfoMock>(), system_info_get_platform_bool(_, _))
+ .WillRepeatedly(Invoke(__fake_system_info_get_platform_bool));
+
+ int ret;
+
+ ret = widget_service_change_period(NULL,
+ "org.tizen.gallery.widget", 1.0);
+ ASSERT_EQ(ret, WIDGET_ERROR_INVALID_PARAMETER);
+}
+
int _widget_list_cb(const char *pkgid, const char *widget_id, int is_prime, void *user_data) {
return 0;
}
@@ -419,6 +485,28 @@ TEST_F(WidgetServiceTest, GetWidgetList) {
ASSERT_EQ(ret, 1);
}
+TEST_F(WidgetServiceTest, GetWidgetList_N1) {
+ EXPECT_CALL(GetMock<SystemInfoMock>(), system_info_get_platform_bool(_, _))
+ .WillRepeatedly(Invoke(__fake_system_info_get_platform_bool));
+
+ int ret;
+
+ ret = widget_service_get_widget_list(NULL, NULL);
+ ASSERT_EQ(ret, WIDGET_ERROR_INVALID_PARAMETER);
+}
+
+TEST_F(WidgetServiceTest, GetWidgetList_N3) {
+ EXPECT_CALL(GetMock<SystemInfoMock>(), system_info_get_platform_bool(_, _))
+ .WillRepeatedly(Invoke(__fake_system_info_get_platform_bool));
+ EXPECT_CALL(GetMock<CynaraMock>(), cynara_initialize(_, _))
+ .WillRepeatedly(Return(1));
+
+ int ret;
+
+ ret = widget_service_get_widget_list(_widget_list_cb, NULL);
+ ASSERT_EQ(ret, WIDGET_ERROR_PERMISSION_DENIED);
+}
+
TEST_F(WidgetServiceTest, GetMainAppId) {
EXPECT_CALL(GetMock<SystemInfoMock>(), system_info_get_platform_bool(_, _))
.WillRepeatedly(Invoke(__fake_system_info_get_platform_bool));
@@ -444,6 +532,22 @@ TEST_F(WidgetServiceTest, GetMainAppId) {
ASSERT_STREQ(p.get(), "org.tizen.mainappid");
}
+TEST_F(WidgetServiceTest, GetMainAppId_N1) {
+ char *app_id = NULL;
+
+ app_id = widget_service_get_main_app_id(NULL);
+ ASSERT_STREQ(app_id, NULL);
+}
+
+TEST_F(WidgetServiceTest, GetMainAppId_N2) {
+ EXPECT_CALL(GetMock<CynaraMock>(), cynara_check(_, _, _, _, _))
+ .WillRepeatedly(Return(1));
+ char *app_id = NULL;
+
+ app_id = widget_service_get_main_app_id("org.tizen.gallery.widget");
+ ASSERT_STREQ(app_id, NULL);
+}
+
int _widget_list_by_pkgid_cb(const char *widget_id, int is_prime, void *user_data) {
return 0;
}
@@ -465,6 +569,17 @@ TEST_F(WidgetServiceTest, GetWidgetListByPkgId) {
ASSERT_EQ(ret, WIDGET_ERROR_NONE);
}
+TEST_F(WidgetServiceTest, GetWidgetListByPkgId_N1) {
+ EXPECT_CALL(GetMock<SystemInfoMock>(), system_info_get_platform_bool(_, _))
+ .WillRepeatedly(Invoke(__fake_system_info_get_platform_bool));
+
+ int ret;
+
+ ret = widget_service_get_widget_list_by_pkgid(NULL,
+ _widget_list_by_pkgid_cb, NULL);
+ ASSERT_EQ(ret, WIDGET_ERROR_INVALID_PARAMETER);
+}
+
TEST_F(WidgetServiceTest, GetWidgetId) {
EXPECT_CALL(GetMock<SystemInfoMock>(), system_info_get_platform_bool(_, _))
.WillRepeatedly(Invoke(__fake_system_info_get_platform_bool));
@@ -490,6 +605,45 @@ TEST_F(WidgetServiceTest, GetWidgetId) {
ASSERT_STREQ(p.get(), "org.tizen.gallery.widget");
}
+TEST_F(WidgetServiceTest, GetWidgetId_N) {
+ EXPECT_CALL(GetMock<SystemInfoMock>(), system_info_get_platform_bool(_, _))
+ .WillRepeatedly(Invoke(__fake_system_info_get_platform_bool));
+ EXPECT_CALL(GetMock<CynaraMock>(), cynara_initialize(_, _))
+ .Times(2)
+ .WillOnce(Invoke(__fake_cynara_initialize))
+ .WillOnce(Return(1));
+ EXPECT_CALL(GetMock<CynaraMock>(), cynara_check(_, _, _, _, _))
+ .WillRepeatedly(Invoke(__fake_cynara_check));
+ EXPECT_CALL(GetMock<CynaraMock>(), cynara_finish(_))
+ .WillRepeatedly(Invoke(__fake_cynara_finish));
+ EXPECT_CALL(GetMock<TzplatformConfigMock>(), tzplatform_mkpath(_, _))
+ .WillRepeatedly(Invoke(__fake_tzplatform_mkpath));
+ EXPECT_CALL(GetMock<PkgMgrInfoMock>(), pkgmgrinfo_pkginfo_get_pkginfo(_, _))
+ .Times(2)
+ .WillOnce(Return(1))
+ .WillOnce(Return(0));
+ EXPECT_CALL(GetMock<PkgMgrInfoMock>(), pkgmgrinfo_appinfo_get_appinfo(_, _))
+ .WillRepeatedly(Return(0));
+ EXPECT_CALL(GetMock<PkgMgrInfoMock>(), pkgmgrinfo_appinfo_get_pkgid(_, _))
+ .WillRepeatedly(Invoke([](pkgmgrinfo_appinfo_h info, char **pkgid) -> int {
+ *pkgid = (char *)"org.tizen.gallery.widget";
+ return 0;
+ }));
+
+
+ char *widget_id = NULL;
+
+ widget_id = widget_service_get_widget_id("org.tizen.gallery.widget_invalid");
+ auto p = std::unique_ptr<char, decltype(std::free)*>(widget_id, std::free);
+ EXPECT_NE(p.get(), "org.tizen.gallery.widget");
+
+ widget_id = widget_service_get_widget_id("org.tizen.gallery.widget_invalid");
+ ASSERT_EQ(widget_id, nullptr);
+
+ widget_id = widget_service_get_widget_id(NULL);
+ ASSERT_EQ(widget_id, nullptr);
+}
+
TEST_F(WidgetServiceTest, GetAppIdOfSetupApp) {
EXPECT_CALL(GetMock<SystemInfoMock>(), system_info_get_platform_bool(_, _))
.WillRepeatedly(Invoke(__fake_system_info_get_platform_bool));
@@ -506,15 +660,42 @@ TEST_F(WidgetServiceTest, GetAppIdOfSetupApp) {
app_id = widget_service_get_app_id_of_setup_app("org.tizen.gallery.widget");
auto p = std::unique_ptr<char, decltype(std::free)*>(app_id, std::free);
-
ASSERT_STREQ(p.get(), "org.tizen.setup_appid");
}
+TEST_F(WidgetServiceTest, GetAppIdOfSetupApp_N) {
+ EXPECT_CALL(GetMock<SystemInfoMock>(), system_info_get_platform_bool(_, _))
+ .WillRepeatedly(Invoke(__fake_system_info_get_platform_bool));
+ EXPECT_CALL(GetMock<CynaraMock>(), cynara_initialize(_, _))
+ .Times(2)
+ .WillOnce(Invoke(__fake_cynara_initialize))
+ .WillOnce(Return(1));
+ EXPECT_CALL(GetMock<CynaraMock>(), cynara_check(_, _, _, _, _))
+ .WillRepeatedly(Invoke(__fake_cynara_check));
+ EXPECT_CALL(GetMock<CynaraMock>(), cynara_finish(_))
+ .WillRepeatedly(Invoke(__fake_cynara_finish));
+ EXPECT_CALL(GetMock<TzplatformConfigMock>(), tzplatform_mkpath(_, _))
+ .WillRepeatedly(Invoke(__fake_tzplatform_mkpath));
+
+ char *app_id = NULL;
+
+ app_id = widget_service_get_app_id_of_setup_app("org.tizen.gallery.widget_inv");
+ ASSERT_EQ(app_id, nullptr);
+
+ app_id = widget_service_get_app_id_of_setup_app(NULL);
+ ASSERT_EQ(app_id, nullptr);
+
+ app_id = widget_service_get_app_id_of_setup_app("org.tizen.gallery.widget");
+ ASSERT_EQ(app_id, nullptr);
+}
+
TEST_F(WidgetServiceTest, GetPackageId) {
EXPECT_CALL(GetMock<SystemInfoMock>(), system_info_get_platform_bool(_, _))
.WillRepeatedly(Invoke(__fake_system_info_get_platform_bool));
EXPECT_CALL(GetMock<CynaraMock>(), cynara_initialize(_, _))
- .WillRepeatedly(Invoke(__fake_cynara_initialize));
+ .Times(2)
+ .WillOnce(Invoke(__fake_cynara_initialize))
+ .WillOnce(Return(1));
EXPECT_CALL(GetMock<CynaraMock>(), cynara_check(_, _, _, _, _))
.WillRepeatedly(Invoke(__fake_cynara_check));
EXPECT_CALL(GetMock<CynaraMock>(), cynara_finish(_))
@@ -527,13 +708,22 @@ TEST_F(WidgetServiceTest, GetPackageId) {
package_id = widget_service_get_package_id("org.tizen.gallery.widget");
auto p = std::unique_ptr<char, decltype(std::free)*>(package_id, std::free);
ASSERT_STREQ(p.get(), "org.tizen.gallery_common");
+
+ //For code coverage
+ package_id = widget_service_get_package_id("org.tizen.gallery.widget");
+ ASSERT_EQ(package_id, nullptr);
+
+ package_id = widget_service_get_package_id(NULL);
+ ASSERT_EQ(package_id, nullptr);
}
TEST_F(WidgetServiceTest, GetName) {
EXPECT_CALL(GetMock<SystemInfoMock>(), system_info_get_platform_bool(_, _))
.WillRepeatedly(Invoke(__fake_system_info_get_platform_bool));
EXPECT_CALL(GetMock<CynaraMock>(), cynara_initialize(_, _))
- .WillRepeatedly(Invoke(__fake_cynara_initialize));
+ .Times(2)
+ .WillOnce(Invoke(__fake_cynara_initialize))
+ .WillOnce(Return(1));
EXPECT_CALL(GetMock<CynaraMock>(), cynara_check(_, _, _, _, _))
.WillRepeatedly(Invoke(__fake_cynara_check));
EXPECT_CALL(GetMock<CynaraMock>(), cynara_finish(_))
@@ -546,9 +736,16 @@ TEST_F(WidgetServiceTest, GetName) {
name = widget_service_get_name("org.tizen.gallery.widget", "en-us");
auto p = std::unique_ptr<char, decltype(std::free)*>(name, std::free);
ASSERT_STREQ(p.get(), "Gallery");
+
+ // For code coverage
+ name = widget_service_get_name(NULL, "en-us");
+ ASSERT_EQ(name, nullptr);
+
+ name = widget_service_get_name("org.tizen.gallery.widget", "en-us");
+ ASSERT_EQ(name, nullptr);
}
-TEST_F(WidgetServiceTest, GetPreviewImagePath) {
+TEST_F(WidgetServiceTest, GetName2) {
EXPECT_CALL(GetMock<SystemInfoMock>(), system_info_get_platform_bool(_, _))
.WillRepeatedly(Invoke(__fake_system_info_get_platform_bool));
EXPECT_CALL(GetMock<CynaraMock>(), cynara_initialize(_, _))
@@ -559,6 +756,33 @@ TEST_F(WidgetServiceTest, GetPreviewImagePath) {
.WillRepeatedly(Invoke(__fake_cynara_finish));
EXPECT_CALL(GetMock<TzplatformConfigMock>(), tzplatform_mkpath(_, _))
.WillRepeatedly(Invoke(__fake_tzplatform_mkpath));
+ char *lang = strdup("en-us");
+ EXPECT_CALL(GetMock<VconfMock>(), vconf_get_str(_))
+ .WillRepeatedly(Return(lang));
+
+ char *name = NULL;
+
+ name = widget_service_get_name("org.tizen.gallery.widget", NULL);
+ auto p = std::unique_ptr<char, decltype(std::free)*>(name, std::free);
+ EXPECT_STREQ(p.get(), "Gallery");
+}
+
+TEST_F(WidgetServiceTest, GetPreviewImagePath) {
+ EXPECT_CALL(GetMock<SystemInfoMock>(), system_info_get_platform_bool(_, _))
+ .WillRepeatedly(Invoke(__fake_system_info_get_platform_bool));
+ EXPECT_CALL(GetMock<CynaraMock>(), cynara_initialize(_, _))
+ .Times(2)
+ .WillOnce(Invoke(__fake_cynara_initialize))
+ .WillOnce(Return(1));
+ EXPECT_CALL(GetMock<CynaraMock>(), cynara_check(_, _, _, _, _))
+ .WillRepeatedly(Invoke(__fake_cynara_check));
+ EXPECT_CALL(GetMock<CynaraMock>(), cynara_finish(_))
+ .WillRepeatedly(Invoke(__fake_cynara_finish));
+ EXPECT_CALL(GetMock<TzplatformConfigMock>(), tzplatform_mkpath(_, _))
+ .WillRepeatedly(Invoke(__fake_tzplatform_mkpath));
+ char *lang = strdup("en-us");
+ EXPECT_CALL(GetMock<VconfMock>(), vconf_get_str(_))
+ .WillRepeatedly(Return(lang));
char *path = NULL;
@@ -566,13 +790,24 @@ TEST_F(WidgetServiceTest, GetPreviewImagePath) {
"org.tizen.gallery.widget", WIDGET_SIZE_TYPE_4x4);
auto p = std::unique_ptr<char, decltype(std::free)*>(path, std::free);
ASSERT_STREQ(p.get(), ".//shared/res/preview_gallery_4x4.png");
+
+ // For code coverage
+ path = widget_service_get_preview_image_path(
+ NULL, WIDGET_SIZE_TYPE_4x4);
+ ASSERT_EQ(path, nullptr);
+
+ path = widget_service_get_preview_image_path(
+ "org.tizen.gallery.widget", WIDGET_SIZE_TYPE_4x4);
+ ASSERT_EQ(path, nullptr);
}
TEST_F(WidgetServiceTest, GetIcon) {
EXPECT_CALL(GetMock<SystemInfoMock>(), system_info_get_platform_bool(_, _))
.WillRepeatedly(Invoke(__fake_system_info_get_platform_bool));
EXPECT_CALL(GetMock<CynaraMock>(), cynara_initialize(_, _))
- .WillRepeatedly(Invoke(__fake_cynara_initialize));
+ .Times(2)
+ .WillOnce(Invoke(__fake_cynara_initialize))
+ .WillOnce(Return(1));
EXPECT_CALL(GetMock<CynaraMock>(), cynara_check(_, _, _, _, _))
.WillRepeatedly(Invoke(__fake_cynara_check));
EXPECT_CALL(GetMock<CynaraMock>(), cynara_finish(_))
@@ -585,13 +820,22 @@ TEST_F(WidgetServiceTest, GetIcon) {
path = widget_service_get_icon("org.tizen.gallery_common", "");
auto p = std::unique_ptr<char, decltype(std::free)*>(path, std::free);
ASSERT_STREQ(p.get(), ".//shared/res/preview_gallery_4x4.png");
+
+ // For code coverage
+ path = widget_service_get_icon(NULL, "");
+ ASSERT_EQ(path, nullptr);
+
+ path = widget_service_get_icon("org.tizen.gallery_common", "");
+ ASSERT_EQ(path, nullptr);
}
TEST_F(WidgetServiceTest, GetNodisplay) {
EXPECT_CALL(GetMock<SystemInfoMock>(), system_info_get_platform_bool(_, _))
.WillRepeatedly(Invoke(__fake_system_info_get_platform_bool));
EXPECT_CALL(GetMock<CynaraMock>(), cynara_initialize(_, _))
- .WillRepeatedly(Invoke(__fake_cynara_initialize));
+ .Times(2)
+ .WillOnce(Invoke(__fake_cynara_initialize))
+ .WillOnce(Return(1));
EXPECT_CALL(GetMock<CynaraMock>(), cynara_check(_, _, _, _, _))
.WillRepeatedly(Invoke(__fake_cynara_check));
EXPECT_CALL(GetMock<CynaraMock>(), cynara_finish(_))
@@ -603,6 +847,13 @@ TEST_F(WidgetServiceTest, GetNodisplay) {
ret = widget_service_get_nodisplay("org.tizen.gallery.widget");
ASSERT_EQ(ret, 0);
+
+ //For code coverage
+ ret = widget_service_get_nodisplay(NULL);
+ ASSERT_EQ(ret, 0);
+
+ ret = widget_service_get_nodisplay("org.tizen.gallery.widget");
+ ASSERT_EQ(ret, 0);
}
TEST_F(WidgetServiceTest, GetSupportedSizes) {
@@ -628,6 +879,27 @@ TEST_F(WidgetServiceTest, GetSupportedSizes) {
free(h);
}
+TEST_F(WidgetServiceTest, GetSupportedSizes_N) {
+ EXPECT_CALL(GetMock<SystemInfoMock>(), system_info_get_platform_bool(_, _))
+ .WillRepeatedly(Invoke(__fake_system_info_get_platform_bool));
+ EXPECT_CALL(GetMock<CynaraMock>(), cynara_initialize(_, _))
+ .WillRepeatedly(Invoke(__fake_cynara_initialize));
+ EXPECT_CALL(GetMock<CynaraMock>(), cynara_check(_, _, _, _, _))
+ .WillRepeatedly(Invoke(__fake_cynara_check));
+ EXPECT_CALL(GetMock<CynaraMock>(), cynara_finish(_))
+ .WillRepeatedly(Invoke(__fake_cynara_finish));
+ EXPECT_CALL(GetMock<TzplatformConfigMock>(), tzplatform_mkpath(_, _))
+ .WillRepeatedly(Invoke(__fake_tzplatform_mkpath));
+
+ int ret;
+ int cnt = 10;
+ int *w;
+ int *h;
+
+ ret = widget_service_get_supported_sizes("org.tizen.gallery.widget_invalid", &cnt, &w, &h);
+ ASSERT_EQ(ret, WIDGET_ERROR_NOT_EXIST);
+}
+
TEST_F(WidgetServiceTest, GetSupportedSizeTypes) {
EXPECT_CALL(GetMock<SystemInfoMock>(), system_info_get_platform_bool(_, _))
.WillRepeatedly(Invoke(__fake_system_info_get_platform_bool));
@@ -649,6 +921,34 @@ TEST_F(WidgetServiceTest, GetSupportedSizeTypes) {
free(types);
}
+TEST_F(WidgetServiceTest, GetSupportedSizeTypes_N1) {
+ EXPECT_CALL(GetMock<SystemInfoMock>(), system_info_get_platform_bool(_, _))
+ .WillRepeatedly(Invoke(__fake_system_info_get_platform_bool));
+ EXPECT_CALL(GetMock<CynaraMock>(), cynara_initialize(_, _))
+ .WillRepeatedly(Invoke(__fake_cynara_initialize));
+ EXPECT_CALL(GetMock<CynaraMock>(), cynara_check(_, _, _, _, _))
+ .WillRepeatedly(Invoke(__fake_cynara_check));
+ EXPECT_CALL(GetMock<CynaraMock>(), cynara_finish(_))
+ .WillRepeatedly(Invoke(__fake_cynara_finish));
+ EXPECT_CALL(GetMock<TzplatformConfigMock>(), tzplatform_mkpath(_, _))
+ .WillRepeatedly(Invoke(__fake_tzplatform_mkpath));
+
+ int ret;
+ int cnt = 10;
+ int *types;
+
+ ret = widget_service_get_supported_size_types("org.tizen.gallery.widget_invalid", &cnt, &types);
+ ASSERT_EQ(ret, WIDGET_ERROR_NONE);
+}
+
+TEST_F(WidgetServiceTest, GetSupportedSizeTypes_N2) {
+ int ret;
+ int *types;
+
+ ret = widget_service_get_supported_size_types("org.tizen.gallery.widget_invalid", NULL, &types);
+ ASSERT_EQ(ret, WIDGET_ERROR_INVALID_PARAMETER);
+}
+
static int _widget_instance_list_cb(const char *widget_id, const char *instance_id, void *user_data) {
return 0;
}
@@ -683,7 +983,22 @@ int _widget_lifecycle_event_cb(const char *widget_id, widget_lifecycle_event_e l
return 0;
}
-TEST_F(WidgetServiceTest, SetLifecycleEventCb) {
+TEST_F(WidgetServiceTest, SetUnsetLifecycleEventCb) {
+ bundle *b = bundle_create();
+ int status = WIDGET_INSTANCE_EVENT_APP_RESTART_REQUEST;
+ bundle_add_str(b, AUL_K_WIDGET_ID, "org.tizen.gallery.widget");
+ bundle_add_str(b, AUL_K_COM_SENDER_PID, "100");
+ bundle_add_byte(b, AUL_K_WIDGET_STATUS, &status, sizeof(int));
+ bundle_add_str(b, AUL_K_PKGID, "sender");
+ EXPECT_CALL(GetMock<AulMock>(), aul_app_com_create(_, _, _, _, _))
+ .WillOnce(DoAll(InvokeArgument<2>("end", AUL_APP_COM_R_OK, b, nullptr),
+ Return(0)));
+ EXPECT_CALL(GetMock<AulMock>(), aul_app_get_pkgid_bypid(_, _, _))
+ .WillOnce(Invoke([](int pid, char* pkgid, int len) -> int {
+ snprintf(pkgid, len, "%s", "sender");
+ return 0;
+ }));
+
EXPECT_CALL(GetMock<SystemInfoMock>(), system_info_get_platform_bool(_, _))
.WillRepeatedly(Invoke(__fake_system_info_get_platform_bool));
@@ -692,17 +1007,12 @@ TEST_F(WidgetServiceTest, SetLifecycleEventCb) {
ret = widget_service_set_lifecycle_event_cb("org.tizen.gallery.widget",
_widget_lifecycle_event_cb, NULL);
ASSERT_EQ(ret, WIDGET_ERROR_NONE);
-}
-
-
-TEST_F(WidgetServiceTest, UnsetLifecycleEventCb) {
- EXPECT_CALL(GetMock<SystemInfoMock>(), system_info_get_platform_bool(_, _))
- .WillRepeatedly(Invoke(__fake_system_info_get_platform_bool));
-
- int ret;
-
+ ret = widget_service_set_lifecycle_event_cb("org.tizen.gallery.widget2",
+ _widget_lifecycle_event_cb, NULL);
+ ASSERT_EQ(ret, WIDGET_ERROR_NONE);
ret = widget_service_unset_lifecycle_event_cb("org.tizen.gallery.widget", NULL);
ASSERT_EQ(ret, WIDGET_ERROR_NONE);
+ bundle_free(b);
}
TEST_F(WidgetServiceTest, GetContent) {
diff --git a/unittest/src/test_widget_service_instance.cc b/unittest/src/test_widget_service_instance.cc
index 74a5dfb..d708675 100644
--- a/unittest/src/test_widget_service_instance.cc
+++ b/unittest/src/test_widget_service_instance.cc
@@ -32,7 +32,7 @@
using ::testing::_;
using ::testing::DoAll;
using ::testing::Invoke;
-using ::testing::SetArgPointee;
+using ::testing::InvokeArgument;
using ::testing::Return;
namespace {
@@ -41,18 +41,12 @@ const char *__fake_tzplatform_mkpath(enum tzplatform_variable id, const char *pa
return ".widget_test.db";
}
+char *instance_id = NULL;
static int __pid = 77;
int __fake_aul_launch_app_async(const char *appid, bundle *kb) {
return __pid;
}
-int __fake_aul_app_com_create(const char *endpoint, aul_app_com_permission_h permission,
- app_com_cb callback, void *user_data, aul_app_com_connection_h *connection) {
- static int __not_null;
- *connection = (aul_app_com_connection_h)&__not_null;
- return 0;
-}
-
int __fake_aul_app_com_leave(aul_app_com_connection_h connection) {
return 0;
}
@@ -130,17 +124,23 @@ class WidgetInstanceTest : public TestFixture {
};
TEST_F(WidgetInstanceTest, InstanceInit) {
+ bundle *b = bundle_create();
+ int status = WIDGET_INSTANCE_EVENT_APP_RESTART_REQUEST;
+ bundle_add_str(b, AUL_K_WIDGET_ID, "org.tizen.gallery.widget");
+ bundle_add_str(b, AUL_K_COM_SENDER_PID, "100");
+ bundle_add_byte(b, AUL_K_WIDGET_STATUS, &status, sizeof(int));
+
EXPECT_CALL(GetMock<AulMock>(), aul_app_com_create(_, _, _, _, _))
- .WillRepeatedly(Invoke(__fake_aul_app_com_create));
+ .WillOnce(DoAll(InvokeArgument<2>("end", AUL_APP_COM_R_OK, b, nullptr),
+ Return(0)));
int ret;
ret = widget_instance_init("org.tizen.gallery.widget");
ASSERT_EQ(ret, 0);
+ bundle_free(b);
}
-char *instance_id = NULL;
-
TEST_F(WidgetInstanceTest, InstanceCreate) {
EXPECT_CALL(GetMock<TzplatformConfigMock>(), tzplatform_mkpath(_, _))
.WillRepeatedly(Invoke(__fake_tzplatform_mkpath));
@@ -150,6 +150,47 @@ TEST_F(WidgetInstanceTest, InstanceCreate) {
ASSERT_EQ(ret, 0);
}
+TEST_F(WidgetInstanceTest, InstanceInit2) {
+ bundle *b = bundle_create();
+ int status = WIDGET_INSTANCE_EVENT_CREATE;
+ bundle_add_str(b, AUL_K_WIDGET_ID, "org.tizen.gallery.widget");
+ bundle_add_byte(b, AUL_K_WIDGET_STATUS, &status, sizeof(int));
+ bundle_add_str(b, AUL_K_WIDGET_INSTANCE_ID, instance_id);
+ bundle_add_str(b, WIDGET_K_CONTENT_INFO, "cont_info");
+ bundle_add_str(b, AUL_K_WIDGET_ERROR_CODE, "13");
+
+ bundle *b2 = bundle_dup(b);
+ int status2 = WIDGET_INSTANCE_EVENT_TERMINATE;
+ bundle_del(b2, AUL_K_WIDGET_STATUS);
+ bundle_add_byte(b2, AUL_K_WIDGET_STATUS, &status2, sizeof(int));
+
+ bundle *b4 = bundle_dup(b);
+ int status4 = WIDGET_INSTANCE_EVENT_FAULT;
+ bundle_del(b4, AUL_K_WIDGET_STATUS);
+ bundle_add_byte(b4, AUL_K_WIDGET_STATUS, &status4, sizeof(int));
+
+ bundle *b5 = bundle_dup(b);
+ int status5 = WIDGET_INSTANCE_EVENT_EXTRA_UPDATED;
+ bundle_del(b5, AUL_K_WIDGET_STATUS);
+ bundle_add_byte(b5, AUL_K_WIDGET_STATUS, &status5, sizeof(int));
+
+ EXPECT_CALL(GetMock<AulMock>(), aul_app_com_create(_, _, _, _, _))
+ .WillOnce(DoAll(InvokeArgument<2>("end", AUL_APP_COM_R_OK, b, nullptr),
+ InvokeArgument<2>("end", AUL_APP_COM_R_OK, b2, nullptr),
+ InvokeArgument<2>("end", AUL_APP_COM_R_OK, b4, nullptr),
+ InvokeArgument<2>("end", AUL_APP_COM_R_OK, b5, nullptr),
+ Return(0)));
+
+ int ret;
+
+ ret = widget_instance_init("org.tizen.gallery.widget");
+ ASSERT_EQ(ret, 0);
+ bundle_free(b);
+ bundle_free(b2);
+ bundle_free(b4);
+ bundle_free(b5);
+}
+
TEST_F(WidgetInstanceTest, InstanceLaunch) {
EXPECT_CALL(GetMock<AulMock>(), aul_launch_app_async(_, _))
.WillRepeatedly(Invoke(__fake_aul_launch_app_async));
@@ -321,12 +362,7 @@ TEST_F(WidgetInstanceTest, InstanceUnlistenEvent) {
}
TEST_F(WidgetInstanceTest, InstanceListenStatus) {
-
- EXPECT_CALL(GetMock<AulMock>(), aul_app_com_create(_, _, _, _, _))
- .WillRepeatedly(Invoke(__fake_aul_app_com_create));
-
- int ret = 0;
-
+ int ret;
ret = widget_instance_listen_status("org.tizen.gallery.widget",
_widget_instance_event_cb, NULL);
ASSERT_EQ(ret, 0);
@@ -369,15 +405,6 @@ TEST_F(WidgetInstanceTest, InstanceSetSdkUtil) {
bundle_free(b);
}
-TEST_F(WidgetInstanceTest, InstanceRefUnref) {
- widget_instance_h instance = nullptr;
-
- instance = widget_instance_ref(ins);
- ASSERT_NE(instance, nullptr);
-
- widget_instance_unref(instance);
-}
-
TEST_F(WidgetInstanceTest, InstanceTerminate) {
EXPECT_CALL(GetMock<AulMock>(), aul_launch_app_async(_, _))
.WillRepeatedly(Invoke(__fake_aul_launch_app_async));
@@ -413,4 +440,22 @@ TEST_F(WidgetInstanceTest, InstanceFini) {
ret = widget_instance_fini();
ASSERT_EQ(ret, 0);
+}
+
+TEST_F(WidgetInstanceTest, InstanceDel_N) {
+ int ret = 0;
+
+ ret = widget_instance_delete("org.tizen.gallery.widget", instance_id);
+ ASSERT_NE(ret, WIDGET_ERROR_NONE);
+}
+
+TEST_F(WidgetInstanceTest, InstanceRefUnref) {
+ widget_instance_h instance = nullptr;
+
+ instance = widget_instance_ref(ins);
+ ASSERT_NE(instance, nullptr);
+
+ widget_instance_unref(instance);
+ widget_instance_unref(instance);
+ widget_instance_unref(instance);
} \ No newline at end of file