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)
51 table[1] = strdup("apppath");
52 if (table[1] == nullptr)
55 table[2] = strdup("arg");
56 if (table[2] == nullptr)
59 table[3] = strdup("122232");
60 if (table[3] == nullptr)
63 table[4] = strdup("instance_id");
64 if (table[4] == nullptr)
67 table[5] = strdup("instance_name");
68 if (table[5] == nullptr)
71 table[6] = strdup("icon");
72 if (table[6] == nullptr)
75 table[7] = strdup("uri");
76 if (table[7] == nullptr)
79 table[8] = strdup("image");
80 if (table[8] == nullptr)
83 table[9] = strdup("compid");
84 if (table[9] == nullptr)
90 for (int i = 0; i < 10; i++) {
98 class ManagerMocks : public ::testing::NiceMock<AulMock>,
99 public ::testing::NiceMock<PkgmgrInfoMock>,
100 public ::testing::NiceMock<SqlMock> {};
102 class RuaManagerTest : public TestFixture {
104 RuaManagerTest() : TestFixture(std::make_unique<ManagerMocks>()) {}
105 virtual ~RuaManagerTest() {}
107 virtual void SetUp() {
108 table_ = __create_table();
109 if (table_ == nullptr)
112 temp_ = (void*)malloc(1);
113 if (temp_ == nullptr)
116 EXPECT_CALL(GetMock<SqlMock>(),
117 sqlite3_open_v2(_, _, _, _)).WillRepeatedly(Return(0));
118 EXPECT_CALL(GetMock<SqlMock>(),
119 sqlite3_close_v2(_)).WillRepeatedly(Return(0));
120 EXPECT_CALL(GetMock<SqlMock>(),
121 sqlite3_free_table(_));
122 EXPECT_CALL(GetMock<SqlMock>(),
123 sqlite3_busy_handler(_, _, _)).WillRepeatedly(Return(0));
124 EXPECT_CALL(GetMock<SqlMock>(),
125 sqlite3_get_table(_, _, _, _, _, _)).
126 WillOnce(DoAll(SetArgPointee<2>(table_),
128 SetArgPointee<4>(0), (Return(0))));
129 EXPECT_CALL(GetMock<PkgmgrInfoMock>(),
130 pkgmgrinfo_appinfo_get_appinfo(_, _)).
131 WillOnce(DoAll(SetArgPointee<1>(temp_),Return(0)));
132 EXPECT_CALL(GetMock<AulMock>(),
133 aul_comp_info_create(_, _)).
134 WillOnce(DoAll(SetArgPointee<1>(temp_),Return(0)));
135 EXPECT_CALL(GetMock<AulMock>(),
136 aul_comp_info_destroy(_)).
137 WillRepeatedly(Return(0));
138 EXPECT_CALL(GetMock<PkgmgrInfoMock>(),
139 pkgmgrinfo_appinfo_destroy_appinfo(_)).
140 WillRepeatedly(Return(0));
141 EXPECT_CALL(GetMock<PkgmgrInfoMock>(),
142 pkgmgrinfo_appinfo_clone_appinfo(_, _)).
143 WillOnce(DoAll(SetArgPointee<1>(temp_),Return(0)));
144 EXPECT_CALL(GetMock<AulMock>(),
145 aul_comp_info_clone(_, _)).
146 WillOnce(DoAll(SetArgPointee<1>(temp_),Return(0)));
148 rua_manager_foreach_rua_info(__rua_info_cb, &info_);
151 virtual void TearDown() {
153 for (int i = 0; i < 10; i++)
160 rua_info_destroy(info_);
164 rua_info_h info_ = nullptr;
167 char** table_ = nullptr;
168 void* temp_ = nullptr;
171 TEST_F(RuaManagerTest, rua_manager_delete_rua_info) {
172 EXPECT_CALL(GetMock<AulMock>(),
173 aul_delete_rua_history_for_uid(_, _)).
176 int ret = rua_manager_delete_rua_info(info_);
180 TEST_F(RuaManagerTest, rua_manager_delete_all_rua_info) {
181 EXPECT_CALL(GetMock<AulMock>(),
182 aul_delete_rua_history_for_uid(_, _)).
185 int ret = rua_manager_delete_all_rua_info();
189 TEST_F(RuaManagerTest, rua_manager_get_app_control_from_rua_info_N) {
192 int ret = rua_manager_get_app_control_from_rua_info(info_, &ac);
196 TEST_F(RuaManagerTest, rua_manager_get_rua_context_from_rua_info) {
199 int ret = rua_manager_get_rua_context_from_rua_info(info_, &ctx);
202 ret = rua_context_destroy(ctx);
207 TEST_F(RuaManagerTest, rua_manager_is_running_N) {
211 int ret = rua_manager_get_rua_context_from_rua_info(info_, &ctx);
214 ret = rua_manager_is_running(ctx, &running);
217 ret = rua_context_destroy(ctx);
221 TEST_F(RuaManagerTest, rua_manager_resume_N) {
224 int ret = rua_manager_get_rua_context_from_rua_info(info_, &ctx);
227 ret = rua_manager_resume(ctx);
230 ret = rua_context_destroy(ctx);
234 TEST_F(RuaManagerTest, rua_manager_terminate_N) {
237 int ret = rua_manager_get_rua_context_from_rua_info(info_, &ctx);
240 ret = rua_manager_terminate(ctx);
243 ret = rua_context_destroy(ctx);
247 TEST_F(RuaManagerTest, rua_context_get_app_id) {
251 int ret = rua_manager_get_rua_context_from_rua_info(info_, &ctx);
254 ret = rua_context_get_app_id(ctx, &appid);
256 EXPECT_EQ(appid, std::string("pkgname"));
261 TEST_F(RuaManagerTest, rua_context_get_instance_id) {
265 int ret = rua_manager_get_rua_context_from_rua_info(info_, &ctx);
268 ret = rua_context_get_instance_id(ctx, &instanceid);
270 EXPECT_EQ(instanceid, std::string("instance_id"));
275 TEST_F(RuaManagerTest, rua_context_get_component_id) {
279 int ret = rua_manager_get_rua_context_from_rua_info(info_, &ctx);
282 ret = rua_context_get_component_id(ctx, &compid);
284 EXPECT_EQ(compid, std::string("compid"));
289 TEST_F(RuaManagerTest, rua_info_get_app_id) {
292 int ret = rua_info_get_app_id(info_, &app_id);
294 EXPECT_EQ(app_id, std::string("pkgname"));
299 TEST_F(RuaManagerTest, rua_info_get_app_path) {
302 int ret = rua_info_get_app_path(info_, &app_path);
304 EXPECT_EQ(app_path, std::string("apppath"));
309 TEST_F(RuaManagerTest, rua_info_get_args) {
312 int ret = rua_info_get_args(info_, &args);
314 EXPECT_EQ(args, std::string("arg"));
319 TEST_F(RuaManagerTest, rua_info_get_launch_time) {
322 int ret = rua_info_get_launch_time(info_, &launch_time);
324 EXPECT_EQ(launch_time, 122232);
327 TEST_F(RuaManagerTest, rua_info_get_instance_id) {
330 int ret = rua_info_get_instance_id(info_, &instance_id);
332 EXPECT_EQ(instance_id, std::string("instance_id"));
337 TEST_F(RuaManagerTest, rua_info_get_instance_name) {
340 int ret = rua_info_get_instance_name(info_, &instance_name);
342 EXPECT_EQ(instance_name, std::string("instance_name"));
347 TEST_F(RuaManagerTest, rua_info_get_icon) {
350 int ret = rua_info_get_icon(info_, &icon);
352 EXPECT_EQ(icon, std::string("icon"));
357 TEST_F(RuaManagerTest, rua_info_get_uri) {
360 int ret = rua_info_get_uri(info_, &uri);
362 EXPECT_EQ(uri, std::string("uri"));
367 TEST_F(RuaManagerTest, rua_info_get_image) {
370 int ret = rua_info_get_image(info_, &image);
372 EXPECT_EQ(image, std::string("image"));
377 TEST_F(RuaManagerTest, rua_info_get_component_id) {
380 int ret = rua_info_get_component_id(info_, &comp_id);
382 EXPECT_EQ(comp_id, std::string("compid"));
387 TEST_F(RuaManagerTest, rua_info_is_managed_by_task_manager) {
388 EXPECT_CALL(GetMock<AulMock>(),
389 aul_comp_info_is_taskmanage(_, _)).
394 int ret = rua_info_is_managed_by_task_manager(info_, &managed);
398 TEST_F(RuaManagerTest, rua_info_get_label) {
399 EXPECT_CALL(GetMock<AulMock>(),
400 aul_comp_info_get_label(_, _)).
405 int ret = rua_info_get_label(info_, &label);