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>
20 #include <rua_manager.h>
27 #include "sqlite3_mock.h"
28 #include "pkgmgr_info_mock.h"
29 #include "test_fixture.h"
32 using ::testing::DoAll;
33 using ::testing::SetArgPointee;
34 using ::testing::Return;
36 static bool __rua_info_cb(rua_info_h info, void* user_data) {
38 rua_info_h* cloned = (rua_info_h*)user_data;
39 rua_info_clone(info, cloned);
45 static char** __create_table(void) {
46 char** table = (char** )calloc(10, sizeof(char*));
47 table[0] = strdup("pkgname");
48 if (table[0] == nullptr) {
52 table[1] = strdup("apppath");
53 if (table[1] == nullptr) {
57 table[2] = strdup("arg");
58 if (table[2] == nullptr) {
62 table[3] = strdup("122232");
63 if (table[3] == nullptr) {
67 table[4] = strdup("instance_id");
68 if (table[4] == nullptr) {
72 table[5] = strdup("instance_name");
73 if (table[5] == nullptr) {
77 table[6] = strdup("icon");
78 if (table[6] == nullptr) {
82 table[7] = strdup("uri");
83 if (table[7] == nullptr) {
87 table[8] = strdup("image");
88 if (table[8] == nullptr) {
92 table[9] = strdup("compid");
93 if (table[9] == nullptr) {
100 for (int i = 0; i < 10; i++) {
108 class ManagerMocks : public ::testing::NiceMock<AulMock>,
109 public ::testing::NiceMock<PkgmgrInfoMock>,
110 public ::testing::NiceMock<SqlMock> {};
112 class RuaManagerTest : public TestFixture {
114 RuaManagerTest() : TestFixture(std::make_unique<ManagerMocks>()) {}
115 virtual ~RuaManagerTest() {}
117 virtual void SetUp() {
118 table_ = __create_table();
119 if (table_ == nullptr)
122 temp_ = (void*)malloc(1);
123 if (temp_ == nullptr)
126 EXPECT_CALL(GetMock<SqlMock>(),
127 sqlite3_open_v2(_, _, _, _)).WillRepeatedly(Return(0));
128 EXPECT_CALL(GetMock<SqlMock>(),
129 sqlite3_close_v2(_)).WillRepeatedly(Return(0));
130 EXPECT_CALL(GetMock<SqlMock>(),
131 sqlite3_free_table(_));
132 EXPECT_CALL(GetMock<SqlMock>(),
133 sqlite3_busy_handler(_, _, _)).WillRepeatedly(Return(0));
134 EXPECT_CALL(GetMock<SqlMock>(),
135 sqlite3_get_table(_, _, _, _, _, _)).
136 WillOnce(DoAll(SetArgPointee<2>(table_),
138 SetArgPointee<4>(0), (Return(0))));
139 EXPECT_CALL(GetMock<PkgmgrInfoMock>(),
140 pkgmgrinfo_appinfo_get_appinfo(_, _)).
141 WillOnce(DoAll(SetArgPointee<1>(temp_),Return(0)));
142 EXPECT_CALL(GetMock<AulMock>(),
143 aul_comp_info_create(_, _)).
144 WillOnce(DoAll(SetArgPointee<1>(temp_),Return(0)));
145 EXPECT_CALL(GetMock<AulMock>(),
146 aul_comp_info_destroy(_)).
147 WillRepeatedly(Return(0));
148 EXPECT_CALL(GetMock<PkgmgrInfoMock>(),
149 pkgmgrinfo_appinfo_destroy_appinfo(_)).
150 WillRepeatedly(Return(0));
151 EXPECT_CALL(GetMock<PkgmgrInfoMock>(),
152 pkgmgrinfo_appinfo_clone_appinfo(_, _)).
153 WillOnce(DoAll(SetArgPointee<1>(temp_),Return(0)));
154 EXPECT_CALL(GetMock<AulMock>(),
155 aul_comp_info_clone(_, _)).
156 WillOnce(DoAll(SetArgPointee<1>(temp_),Return(0)));
158 rua_manager_foreach_rua_info(__rua_info_cb, &info_);
161 virtual void TearDown() {
163 for (int i = 0; i < 10; i++)
170 rua_info_destroy(info_);
174 rua_info_h info_ = nullptr;
177 char** table_ = nullptr;
178 void* temp_ = nullptr;
181 TEST_F(RuaManagerTest, rua_manager_delete_rua_info) {
182 EXPECT_CALL(GetMock<AulMock>(),
183 aul_delete_rua_history_for_uid(_, _)).
186 int ret = rua_manager_delete_rua_info(info_);
190 TEST_F(RuaManagerTest, rua_manager_delete_all_rua_info) {
191 EXPECT_CALL(GetMock<AulMock>(),
192 aul_delete_rua_history_for_uid(_, _)).
195 int ret = rua_manager_delete_all_rua_info();
199 TEST_F(RuaManagerTest, rua_manager_get_app_control_from_rua_info_N) {
202 int ret = rua_manager_get_app_control_from_rua_info(info_, &ac);
206 TEST_F(RuaManagerTest, rua_manager_get_rua_context_from_rua_info) {
209 int ret = rua_manager_get_rua_context_from_rua_info(info_, &ctx);
212 ret = rua_context_destroy(ctx);
217 TEST_F(RuaManagerTest, rua_manager_is_running_N) {
221 int ret = rua_manager_get_rua_context_from_rua_info(info_, &ctx);
224 ret = rua_manager_is_running(ctx, &running);
227 ret = rua_context_destroy(ctx);
231 TEST_F(RuaManagerTest, rua_manager_resume_N) {
234 int ret = rua_manager_get_rua_context_from_rua_info(info_, &ctx);
237 ret = rua_manager_resume(ctx);
240 ret = rua_context_destroy(ctx);
244 TEST_F(RuaManagerTest, rua_manager_terminate_N) {
247 int ret = rua_manager_get_rua_context_from_rua_info(info_, &ctx);
250 ret = rua_manager_terminate(ctx);
253 ret = rua_context_destroy(ctx);
257 TEST_F(RuaManagerTest, rua_context_get_app_id) {
261 int ret = rua_manager_get_rua_context_from_rua_info(info_, &ctx);
264 ret = rua_context_get_app_id(ctx, &appid);
266 EXPECT_EQ(appid, std::string("pkgname"));
271 TEST_F(RuaManagerTest, rua_context_get_instance_id) {
275 int ret = rua_manager_get_rua_context_from_rua_info(info_, &ctx);
278 ret = rua_context_get_instance_id(ctx, &instanceid);
280 EXPECT_EQ(instanceid, std::string("instance_id"));
285 TEST_F(RuaManagerTest, rua_context_get_component_id) {
289 int ret = rua_manager_get_rua_context_from_rua_info(info_, &ctx);
292 ret = rua_context_get_component_id(ctx, &compid);
294 EXPECT_EQ(compid, std::string("compid"));
299 TEST_F(RuaManagerTest, rua_info_get_app_id) {
302 int ret = rua_info_get_app_id(info_, &app_id);
304 EXPECT_EQ(app_id, std::string("pkgname"));
309 TEST_F(RuaManagerTest, rua_info_get_app_path) {
312 int ret = rua_info_get_app_path(info_, &app_path);
314 EXPECT_EQ(app_path, std::string("apppath"));
319 TEST_F(RuaManagerTest, rua_info_get_args) {
322 int ret = rua_info_get_args(info_, &args);
324 EXPECT_EQ(args, std::string("arg"));
329 TEST_F(RuaManagerTest, rua_info_get_launch_time) {
332 int ret = rua_info_get_launch_time(info_, &launch_time);
334 EXPECT_EQ(launch_time, 122232);
337 TEST_F(RuaManagerTest, rua_info_get_instance_id) {
340 int ret = rua_info_get_instance_id(info_, &instance_id);
342 EXPECT_EQ(instance_id, std::string("instance_id"));
347 TEST_F(RuaManagerTest, rua_info_get_instance_name) {
350 int ret = rua_info_get_instance_name(info_, &instance_name);
352 EXPECT_EQ(instance_name, std::string("instance_name"));
357 TEST_F(RuaManagerTest, rua_info_get_icon) {
360 int ret = rua_info_get_icon(info_, &icon);
362 EXPECT_EQ(icon, std::string("icon"));
367 TEST_F(RuaManagerTest, rua_info_get_uri) {
370 int ret = rua_info_get_uri(info_, &uri);
372 EXPECT_EQ(uri, std::string("uri"));
377 TEST_F(RuaManagerTest, rua_info_get_image) {
380 int ret = rua_info_get_image(info_, &image);
382 EXPECT_EQ(image, std::string("image"));
387 TEST_F(RuaManagerTest, rua_info_get_component_id) {
390 int ret = rua_info_get_component_id(info_, &comp_id);
392 EXPECT_EQ(comp_id, std::string("compid"));
397 TEST_F(RuaManagerTest, rua_info_is_managed_by_task_manager) {
398 EXPECT_CALL(GetMock<AulMock>(),
399 aul_comp_info_is_taskmanage(_, _)).
404 int ret = rua_info_is_managed_by_task_manager(info_, &managed);
408 TEST_F(RuaManagerTest, rua_info_get_label) {
409 EXPECT_CALL(GetMock<AulMock>(),
410 aul_comp_info_get_label(_, _)).
415 int ret = rua_info_get_label(info_, &label);