2 * Copyright (c) 2020 Samsung Electronics Co., Ltd.
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
8 * http://www.apache.org/licenses/LICENSE-2.0
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
17 #include <gtest/gtest.h>
18 #include <gmock/gmock.h>
21 #include "include/widget_errno.h"
22 #include "include/widget_instance.h"
23 #include "include/widget_service_internal.h"
24 #include "unittest/mock/tzplatform_config_mock.h"
25 #include "unittest/mock/db_mock.h"
26 #include "unittest/mock/aul_mock.h"
30 const char *__fake_tzplatform_mkpath(enum tzplatform_variable id, const char *path) {
34 int __fake_aul_launch_app_async(const char *appid, bundle *kb) {
38 int __fake_aul_app_com_create(const char *endpoint, aul_app_com_permission_h permission,
39 app_com_cb callback, void *user_data, aul_app_com_connection_h *connection) {
40 aul_app_com_connection_h *conn;
42 conn = (aul_app_com_connection_h *)malloc(sizeof(connection));
48 int __fake_aul_app_com_leave(aul_app_com_connection_h connection) {
52 int __fake_aul_widget_instance_update(const char *widget_id, const char *instance_id, bundle *b) {
56 int __fake_aul_debug_info_init() {
60 int __fake_aul_debug_info_set(bundle *src, bundle *dst) {
64 class WidgetInstanceTest : public ::testing::Test {
66 virtual void SetUp() {
67 tzplatform_mkpath_fake.custom_fake = __fake_tzplatform_mkpath;
68 aul_launch_app_async_fake.custom_fake= __fake_aul_launch_app_async;
69 aul_app_com_create_fake.custom_fake = __fake_aul_app_com_create;
70 aul_app_com_leave_fake.custom_fake = __fake_aul_app_com_leave;
71 aul_widget_instance_update_fake.custom_fake = __fake_aul_widget_instance_update;
72 aul_debug_info_init_fake.custom_fake = __fake_aul_debug_info_init;
73 aul_debug_info_set_fake.custom_fake = __fake_aul_debug_info_set;
75 virtual void TearDown() {
79 TEST_F(WidgetInstanceTest, InstanceInit) {
82 ret = widget_instance_init("org.tizen.test_viewer");
86 char *instance_id = NULL;
88 TEST_F(WidgetInstanceTest, InstanceCreate) {
91 ret = widget_instance_create("org.tizen.test_widget", &instance_id);
95 TEST_F(WidgetInstanceTest, InstanceLaunch) {
98 ret = widget_instance_launch(instance_id, (char *)"TestContent", 4, 2);
102 TEST_F(WidgetInstanceTest, InstanceResume) {
105 ret = widget_instance_resume(instance_id);
109 TEST_F(WidgetInstanceTest, InstancePause) {
112 ret = widget_instance_pause(instance_id);
116 TEST_F(WidgetInstanceTest, InstanceResize) {
119 ret = widget_instance_resize(instance_id, 4, 2);
123 widget_instance_h ins;
125 int _widget_instance_foreach_cb(widget_instance_h instance, void *data) {
129 TEST_F(WidgetInstanceTest, InstanceForeach) {
132 ret = widget_instance_foreach("org.tizen.test_widget", _widget_instance_foreach_cb, NULL);
136 TEST_F(WidgetInstanceTest, InstanceGetInstance) {
137 widget_instance_h instance = nullptr;
139 instance = widget_instance_get_instance("org.tizen.test_widget", instance_id);
140 ASSERT_NE(instance, nullptr);
145 TEST_F(WidgetInstanceTest, InstanceGetId) {
149 ret = widget_instance_get_id(ins, &id);
153 TEST_F(WidgetInstanceTest, InstanceGetContent) {
155 char *content = NULL;
157 ret = widget_instance_get_content(ins, &content);
161 TEST_F(WidgetInstanceTest, InstanceGetWidth) {
165 ret = widget_instance_get_width(ins, &w);
169 TEST_F(WidgetInstanceTest, InstanceGetHeight) {
173 ret = widget_instance_get_height(ins, &h);
177 TEST_F(WidgetInstanceTest, InstanceSetPeriod) {
180 ret = widget_instance_set_period(ins, 3.0);
184 TEST_F(WidgetInstanceTest, InstanceGetPeriod) {
188 ret = widget_instance_get_period(ins, &period);
192 TEST_F(WidgetInstanceTest, InstanceGetErr) {
196 ret = widget_instance_get_error_code(ins, &err);
200 int _widget_instance_list_cb(const char *widget_id, const char *instance_id, void *user_data) {
204 TEST_F(WidgetInstanceTest, InstanceGetList) {
207 ret = widget_instance_get_instance_list("org.tizen.test_widget", _widget_instance_list_cb, NULL);
211 TEST_F(WidgetInstanceTest, InstanceChangePeriod) {
214 ret = widget_instance_change_period("org.tizen.test_widget", instance_id, 5.0);
218 TEST_F(WidgetInstanceTest, InstanceTriggerUpdate) {
221 ret = widget_instance_trigger_update(ins, "ContentInfo", 1);
225 int _widget_instance_event_cb(const char *widget_id, const char *instance_id, int event, void *data) {
229 TEST_F(WidgetInstanceTest, InstanceListenEvent) {
232 ret = widget_instance_listen_event(_widget_instance_event_cb, NULL);
236 TEST_F(WidgetInstanceTest, InstanceUnlistenEvent) {
239 ret = widget_instance_unlisten_event(_widget_instance_event_cb);
243 TEST_F(WidgetInstanceTest, InstanceListenStatus) {
246 ret = widget_instance_listen_status("org.tizen.test_widget", _widget_instance_event_cb, NULL);
250 TEST_F(WidgetInstanceTest, InstanceUnlistenStatus) {
253 ret = widget_instance_unlisten_status("org.tizen.test_widget");
257 TEST_F(WidgetInstanceTest, InstanceTriggerUpdateV2) {
260 ret = widget_instance_trigger_update_v2("org.tizen.test_widget", instance_id, "ContetnInfo", 1);
265 TEST_F(WidgetInstanceTest, InstanceSetSdkUtil) {
270 bundle_add_str(b, "__AUL_SDK__", "SdkUtil");
272 ret = widget_service_set_sdk_util(b);
278 TEST_F(WidgetInstanceTest, InstanceRefUnref) {
279 widget_instance_h instance = nullptr;
281 instance = widget_instance_ref(ins);
282 ASSERT_NE(instance, nullptr);
284 widget_instance_unref(instance);
287 TEST_F(WidgetInstanceTest, InstanceTerminate) {
290 ret = widget_instance_terminate(instance_id);
294 TEST_F(WidgetInstanceTest, InstanceDestroy) {
297 ret = widget_instance_destroy(instance_id);
301 TEST_F(WidgetInstanceTest, InstanceFini) {
304 ret = widget_instance_fini();