application->multiple = strdup("test_multiple");
application->taskmanage = strdup("test_taskmanage");
application->type = strdup("test_type");
- application->categories = strdup("test_categories");
- application->extraid = strdup("test_extraid");
application->hwacceleration = strdup("test_hwacceleration");
application->screenreader = strdup("test_screenreader");
application->mainapp = strdup("test_mainapp");
application->indicatordisplay = strdup("test_indicatordisplay");
application->portraitimg = strdup("test_portraitimg");
application->landscapeimg = strdup("test_landscapeimg");
- application->effectimage_type = strdup("test_effectimage_type");
application->guestmode_visibility = strdup("test_guestmode_visibility");
application->component = strdup("test_component");
application->permission_type = strdup("test_permission_type");
application->launch_mode = strdup("test_launch_mode");
application->support_ambient = strdup("test_support_ambient");
application->setup_appid = strdup("test_setup_appid");
- application->alias_appid = strdup("test_alias_appid");
- application->effective_appid = strdup("test_effective_appid");
- application->package_type = strdup("test_package_type");
+ application->package_type = strdup("test_type");
application->tep_name = strdup("test_tep_name");
application->zip_mount_file = strdup("test_zip_mount_file");
application->root_path = strdup("test_root_path");
application->api_version = strdup("test_api_version");
- application->for_all_users = strdup("test_for_all_users");
+ application->for_all_users = strdup("false");
application->is_disabled = strdup("false");
application->splash_screen_display = strdup("test_splash_screen_display");
application->external_path = strdup("test_external_path");
- application->package_system = strdup("test_package_system");
+ application->package_system = strdup("test_system");
application->removable = strdup("test_removable");
- application->package_installed_time = strdup("test_package_installed_time");
+ application->package_installed_time = strdup("test_installed_time");
application->support_mode = strdup("test_support_mode");
-
label_x* label = reinterpret_cast<label_x*>(calloc(1, sizeof(label_x)));
label->lang = strdup("test_lang");
label->name = strdup("test_name");
icon->section = strdup("test_section");
icon->size = strdup("test_size");
icon->resolution = strdup("test_resolution");
- icon->dpi = strdup("test_dpi");
+ icon->dpi = strdup("ldpi");
application->icon = g_list_append(application->icon, icon);
- image_x* image = reinterpret_cast<image_x*>(calloc(1, sizeof(image_x)));
- image->text = strdup("test_text");
- image->lang = strdup("test_lang");
- image->section = strdup("test_section");
- application->image = g_list_append(application->image, image);
-
application->category =
g_list_append(application->category, strdup("test_category"));
g_list_append(application->datacontrol, datacontrol);
application->background_category = g_list_append(
- application->background_category, strdup("test_background_category"));
+ application->background_category, strdup("enable"));
appcontrol_x* appcontrol =
reinterpret_cast<appcontrol_x*>(calloc(1, sizeof(appcontrol_x)));
reinterpret_cast<splashscreen_x*>(calloc(1, sizeof(splashscreen_x)));
splashscreen->src = strdup("test_src");
splashscreen->type = strdup("ttest_type");
- splashscreen->dpi = strdup("test_dpi");
- splashscreen->orientation = strdup("orientattest_orientation");
+ splashscreen->dpi = strdup("ldpi");
+ splashscreen->orientation = strdup("portrait");
splashscreen->indicatordisplay =
strdup("indicatordisptest_indicatordisplay");
splashscreen->operation = strdup("operattest_operation");
splashscreen->color_depth = strdup("color_detest_color_depth");
application->splashscreens =
g_list_append(application->splashscreens, splashscreen);
-
return application;
}
+bool IsEqualApplicationExtraInfo(application_x* applicationA,
+ application_x* applicationB) {
+ for (GList* a = applicationA->label, *b = applicationB->label;
+ a && b; a = a->next, b = b->next) {
+ label_x* label_a = reinterpret_cast<label_x* >(a->data);
+ label_x* label_b = reinterpret_cast<label_x* >(b->data);
+ STR_EQ(label_a->name, label_b->name);
+ }
+
+ INT_EQ(g_list_length(applicationA->icon),
+ g_list_length(applicationB->icon));
+ for (GList *a = applicationA->icon, *b = applicationB->icon;
+ a && b; a = a->next, b = b->next) {
+ icon_x *icon_a = reinterpret_cast<icon_x *>(a->data);
+ icon_x *icon_b = reinterpret_cast<icon_x *>(b->data);
+ STR_EQ(icon_a->dpi, icon_b->dpi);
+ STR_EQ(icon_a->resolution, icon_b->resolution);
+ STR_EQ(icon_a->section, icon_b->section);
+ STR_EQ(icon_a->size, icon_b->size);
+ }
+
+ INT_EQ(g_list_length(applicationA->datacontrol),
+ g_list_length(applicationB->datacontrol));
+ for (GList *a = applicationA->datacontrol, *b = applicationB->datacontrol;
+ a && b; a = a->next, b = b->next) {
+ datacontrol_x *datacontrol_a = reinterpret_cast<datacontrol_x *>(a->data);
+ datacontrol_x *datacontrol_b = reinterpret_cast<datacontrol_x *>(b->data);
+ STR_EQ(datacontrol_a->access, datacontrol_b->access);
+ STR_EQ(datacontrol_a->providerid, datacontrol_b->providerid);
+ STR_EQ(datacontrol_a->trusted, datacontrol_b->trusted);
+ STR_EQ(datacontrol_a->type, datacontrol_b->type);
+ INT_EQ(g_list_length(datacontrol_a->privileges)
+ , g_list_length(datacontrol_b->privileges));
+ for (GList *a = datacontrol_a->privileges, *b = datacontrol_b->privileges;
+ a && b; a = a->next, b = b->next) {
+ char *privilege_a = reinterpret_cast<char *>(a->data);
+ char *privilege_b = reinterpret_cast<char *>(b->data);
+ STR_EQ(privilege_a, privilege_b);
+ }
+ }
+
+ for (GList *a = applicationA->appcontrol, *b = applicationB->appcontrol;
+ a && b; a = a->next, b = b->next) {
+ appcontrol_x *appcontrol_a = reinterpret_cast<appcontrol_x *>(a->data);
+ appcontrol_x *appcontrol_b = reinterpret_cast<appcontrol_x *>(b->data);
+ for (GList *a = appcontrol_a->privileges, *b = appcontrol_b->privileges;
+ a && b; a = a->next, b = b->next) {
+ char *privilege_a = reinterpret_cast<char *>(a->data);
+ char *privilege_b = reinterpret_cast<char *>(b->data);
+ STR_EQ(privilege_a, privilege_b);
+ }
+ }
+
+
+ return true;
+}
+
bool IsEqualApplication(application_x *applicationA,
application_x *applicationB) {
STR_EQ(applicationA->appid, applicationB->appid);
label_x *label_a = reinterpret_cast<label_x *>(a->data);
label_x *label_b = reinterpret_cast<label_x *>(b->data);
STR_EQ(label_a->lang, label_b->lang);
- STR_EQ(label_a->name, label_b->name);
STR_EQ(label_a->text, label_b->text);
}
a && b; a = a->next, b = b->next) {
icon_x *icon_a = reinterpret_cast<icon_x *>(a->data);
icon_x *icon_b = reinterpret_cast<icon_x *>(b->data);
- STR_EQ(icon_a->dpi, icon_b->dpi);
STR_EQ(icon_a->lang, icon_b->lang);
- STR_EQ(icon_a->resolution, icon_b->resolution);
- STR_EQ(icon_a->section, icon_b->section);
- STR_EQ(icon_a->size, icon_b->size);
STR_EQ(icon_a->text, icon_b->text);
}
STR_EQ(metadata_a->value, metadata_b->value);
}
- INT_EQ(g_list_length(applicationA->datacontrol),
- g_list_length(applicationB->datacontrol));
- for (GList *a = applicationA->datacontrol, *b = applicationB->datacontrol;
- a && b; a = a->next, b = b->next) {
- datacontrol_x *datacontrol_a = reinterpret_cast<datacontrol_x *>(a->data);
- datacontrol_x *datacontrol_b = reinterpret_cast<datacontrol_x *>(b->data);
- STR_EQ(datacontrol_a->access, datacontrol_b->access);
- STR_EQ(datacontrol_a->providerid, datacontrol_b->providerid);
- STR_EQ(datacontrol_a->trusted, datacontrol_b->trusted);
- STR_EQ(datacontrol_a->type, datacontrol_b->type);
- INT_EQ(g_list_length(datacontrol_a->privileges)
- , g_list_length(datacontrol_b->privileges));
- for (GList *a = datacontrol_a->privileges, *b = datacontrol_b->privileges;
- a && b; a = a->next, b = b->next) {
- char *privilege_a = reinterpret_cast<char *>(a->data);
- char *privilege_b = reinterpret_cast<char *>(b->data);
- STR_EQ(privilege_a, privilege_b);
- }
- }
-
INT_EQ(g_list_length(applicationA->background_category),
g_list_length(applicationB->background_category));
for (GList *a = applicationA->background_category,
STR_EQ(appcontrol_a->operation, appcontrol_b->operation);
STR_EQ(appcontrol_a->uri, appcontrol_b->uri);
STR_EQ(appcontrol_a->visibility, appcontrol_b->visibility);
- INT_EQ(g_list_length(appcontrol_a->privileges)
- , g_list_length(appcontrol_b->privileges));
- for (GList *a = appcontrol_a->privileges, *b = appcontrol_b->privileges;
- a && b; a = a->next, b = b->next) {
- char *privilege_a = reinterpret_cast<char *>(a->data);
- char *privilege_b = reinterpret_cast<char *>(b->data);
- STR_EQ(privilege_a, privilege_b);
- }
}
INT_EQ(g_list_length(applicationA->splashscreens),
splashscreen_x *splashscreen_b =
reinterpret_cast<splashscreen_x *>(b->data);
STR_EQ(splashscreen_a->color_depth, splashscreen_b->color_depth);
- STR_EQ(splashscreen_a->dpi, splashscreen_b->dpi);
STR_EQ(splashscreen_a->indicatordisplay, splashscreen_b->indicatordisplay);
STR_EQ(splashscreen_a->operation, splashscreen_b->operation);
STR_EQ(splashscreen_a->orientation, splashscreen_b->orientation);
return true;
}
-bool IsEqualApplications(const std::vector<application_x *>& applicationsA,
+bool IsEqualApplicationsStructure(const std::vector<application_x *>& applicationsA,
const std::vector<application_x *>& applicationsB) {
for (unsigned int i = 0; i < applicationsA.size(); ++i) {
if (!IsEqualApplication(applicationsA[i], applicationsB[i]))
return false;
+ if (!IsEqualApplicationExtraInfo(applicationsA[i], applicationsB[i]))
+ return false;
+ }
+
+ return true;
+}
+
+bool IsEqualApplicationsInfo(const std::vector<application_x *>& applicationsA,
+ const std::vector<application_x *>& applicationsB) {
+ for (unsigned int i = 0; i < applicationsA.size(); ++i) {
+ if (!IsEqualApplication(applicationsA[i], applicationsB[i]))
+ return false;
}
return true;
package_x *package;
package = reinterpret_cast<package_x*>(calloc(1, sizeof(package_x)));
- package->for_all_users = strdup("test_for_all_users");
+ package->for_all_users = strdup("false");
package->package = strdup(pkgid.c_str());
package->version = strdup("test_version");
package->installlocation = strdup("test_installlocation");
icon->section = strdup("test_section");
icon->size = strdup("test_size");
icon->resolution = strdup("test_resolution");
- icon->dpi = strdup("test_dpi");
+ icon->dpi = strdup("ldpi");
package->icon = g_list_append(package->icon, icon);
label->lang = strdup("test_lang");
label->name = strdup("test_name");
label->text = strdup("test_text");
-
package->label = g_list_append(package->label, label);
+
author_x* author = reinterpret_cast<author_x*>(calloc(1, sizeof(author_x)));
author->email = strdup("test_email");
author->href = strdup("test_href");
return package;
}
+bool IsEqualPackageExtraInfo(package_x *packageA, package_x *packageB) {
+ STR_EQ(packageA->ns, packageB->ns);
+ STR_EQ(packageA->backend_installer, packageB->backend_installer);
+ STR_EQ(packageA->use_system_certs, packageB->use_system_certs);
+
+ for (GList *a = packageA->icon, *b = packageB->icon;
+ a && b; a = a->next, b = b->next) {
+ icon_x *icon_a = reinterpret_cast<icon_x *>(a->data);
+ icon_x *icon_b = reinterpret_cast<icon_x *>(b->data);
+ STR_EQ(icon_a->dpi, icon_b->dpi);
+ STR_EQ(icon_a->resolution, icon_b->resolution);
+ STR_EQ(icon_a->section, icon_b->section);
+ STR_EQ(icon_a->size, icon_b->size);
+ }
+
+ INT_EQ(g_list_length(packageA->label), g_list_length(packageB->label));
+ for (GList *a = packageA->label, *b = packageB->label;
+ a && b; a = a->next, b = b->next) {
+ label_x *label_a = reinterpret_cast<label_x *>(a->data);
+ label_x *label_b = reinterpret_cast<label_x *>(b->data);
+ STR_EQ(label_a->name, label_b->name);
+ }
+
+ INT_EQ(g_list_length(packageA->author), g_list_length(packageB->author));
+ for (GList *a = packageA->author, *b = packageB->author;
+ a && b; a = a->next, b = b->next) {
+ author_x *author_a = reinterpret_cast<author_x *>(a->data);
+ author_x *author_b = reinterpret_cast<author_x *>(b->data);
+ STR_EQ(author_a->email, author_b->email);
+ STR_EQ(author_a->href, author_b->href);
+ STR_EQ(author_a->lang, author_b->lang);
+ STR_EQ(author_a->text, author_b->text);
+ }
+
+ INT_EQ(g_list_length(packageA->description),
+ g_list_length(packageB->description));
+ for (GList *a = packageA->description, *b = packageB->description;
+ a && b; a = a->next, b = b->next) {
+ description_x *description_a = reinterpret_cast<description_x *>(a->data);
+ description_x *description_b = reinterpret_cast<description_x *>(b->data);
+ STR_EQ(description_a->name, description_b->name);
+ }
+
+ INT_EQ(g_list_length(packageA->provides_appdefined_privileges),
+ g_list_length(packageB->provides_appdefined_privileges));
+ for (GList *a = packageA->provides_appdefined_privileges,
+ *b = packageB->provides_appdefined_privileges;
+ a && b; a = a->next, b = b->next) {
+ appdefined_privilege_x *privilege_a =
+ reinterpret_cast<appdefined_privilege_x *>(a->data);
+ appdefined_privilege_x *privilege_b =
+ reinterpret_cast<appdefined_privilege_x *>(b->data);
+ STR_EQ(privilege_a->license, privilege_b->license);
+ STR_EQ(privilege_a->type, privilege_b->type);
+ STR_EQ(privilege_a->value, privilege_b->value);
+ }
+
+ INT_EQ(g_list_length(packageA->plugin), g_list_length(packageB->plugin));
+ for (GList *a = packageA->plugin, *b = packageB->plugin;
+ a && b; a = a->next, b = b->next) {
+ plugin_x *plugin_a = reinterpret_cast<plugin_x *>(a->data);
+ plugin_x *plugin_b = reinterpret_cast<plugin_x *>(b->data);
+ STR_EQ(plugin_a->appid, plugin_b->appid);
+ STR_EQ(plugin_a->pkgid, plugin_b->pkgid);
+ STR_EQ(plugin_a->plugin_name, plugin_b->plugin_name);
+ STR_EQ(plugin_a->plugin_type, plugin_b->plugin_type);
+ }
+
+ INT_EQ(g_list_length(packageA->application),
+ g_list_length(packageB->application));
+ for (GList *a = packageA->application, *b = packageB->application;
+ a && b; a = a->next, b = b->next) {
+ application_x *application_a = reinterpret_cast<application_x *>(a->data);
+ application_x *application_b = reinterpret_cast<application_x *>(b->data);
+
+ if (!IsEqualApplication(application_a, application_b))
+ return false;
+ if (!IsEqualApplicationExtraInfo(application_a, application_b))
+ return false;
+ }
+
+ return true;
+}
+
bool IsEqualPackage(package_x *packageA, package_x *packageB) {
STR_EQ(packageA->for_all_users, packageB->for_all_users);
STR_EQ(packageA->package, packageB->package);
STR_EQ(packageA->version, packageB->version);
STR_EQ(packageA->installlocation, packageB->installlocation);
- STR_EQ(packageA->ns, packageB->ns);
STR_EQ(packageA->removable, packageB->removable);
STR_EQ(packageA->preload, packageB->preload);
STR_EQ(packageA->readonly, packageB->readonly);
STR_EQ(packageA->api_version, packageB->api_version);
STR_EQ(packageA->tep_name, packageB->tep_name);
STR_EQ(packageA->zip_mount_file, packageB->zip_mount_file);
- STR_EQ(packageA->backend_installer, packageB->backend_installer);
STR_EQ(packageA->external_path, packageB->external_path);
- STR_EQ(packageA->use_system_certs, packageB->use_system_certs);
INT_EQ(g_list_length(packageA->icon), g_list_length(packageB->icon));
for (GList *a = packageA->icon, *b = packageB->icon;
a && b; a = a->next, b = b->next) {
icon_x *icon_a = reinterpret_cast<icon_x *>(a->data);
icon_x *icon_b = reinterpret_cast<icon_x *>(b->data);
- STR_EQ(icon_a->dpi, icon_b->dpi);
STR_EQ(icon_a->lang, icon_b->lang);
- STR_EQ(icon_a->resolution, icon_b->resolution);
- STR_EQ(icon_a->section, icon_b->section);
- STR_EQ(icon_a->size, icon_b->size);
STR_EQ(icon_a->text, icon_b->text);
}
label_x *label_a = reinterpret_cast<label_x *>(a->data);
label_x *label_b = reinterpret_cast<label_x *>(b->data);
STR_EQ(label_a->lang, label_b->lang);
- STR_EQ(label_a->name, label_b->name);
STR_EQ(label_a->text, label_b->text);
}
- INT_EQ(g_list_length(packageA->author), g_list_length(packageB->author));
- for (GList *a = packageA->author, *b = packageB->author;
- a && b; a = a->next, b = b->next) {
- author_x *author_a = reinterpret_cast<author_x *>(a->data);
- author_x *author_b = reinterpret_cast<author_x *>(b->data);
- STR_EQ(author_a->email, author_b->email);
- STR_EQ(author_a->href, author_b->href);
- STR_EQ(author_a->lang, author_b->lang);
- STR_EQ(author_a->text, author_b->text);
- }
-
INT_EQ(g_list_length(packageA->description),
g_list_length(packageB->description));
for (GList *a = packageA->description, *b = packageB->description;
description_x *description_a = reinterpret_cast<description_x *>(a->data);
description_x *description_b = reinterpret_cast<description_x *>(b->data);
STR_EQ(description_a->lang, description_b->lang);
- STR_EQ(description_a->name, description_b->name);
STR_EQ(description_a->text, description_b->text);
}
STR_EQ(privilege_a->value, privilege_b->value);
}
- INT_EQ(g_list_length(packageA->provides_appdefined_privileges),
- g_list_length(packageB->provides_appdefined_privileges));
- for (GList *a = packageA->provides_appdefined_privileges,
- *b = packageB->provides_appdefined_privileges;
- a && b; a = a->next, b = b->next) {
- appdefined_privilege_x *privilege_a =
- reinterpret_cast<appdefined_privilege_x *>(a->data);
- appdefined_privilege_x *privilege_b =
- reinterpret_cast<appdefined_privilege_x *>(b->data);
- STR_EQ(privilege_a->license, privilege_b->license);
- STR_EQ(privilege_a->type, privilege_b->type);
- STR_EQ(privilege_a->value, privilege_b->value);
- }
-
INT_EQ(g_list_length(packageA->dependencies),
g_list_length(packageB->dependencies));
for (GList *a = packageA->dependencies, *b = packageB->dependencies;
STR_EQ(dependency_a->type, dependency_b->type);
}
- INT_EQ(g_list_length(packageA->plugin), g_list_length(packageB->plugin));
- for (GList *a = packageA->plugin, *b = packageB->plugin;
- a && b; a = a->next, b = b->next) {
- plugin_x *plugin_a = reinterpret_cast<plugin_x *>(a->data);
- plugin_x *plugin_b = reinterpret_cast<plugin_x *>(b->data);
- STR_EQ(plugin_a->appid, plugin_b->appid);
- STR_EQ(plugin_a->pkgid, plugin_b->pkgid);
- STR_EQ(plugin_a->plugin_name, plugin_b->plugin_name);
- STR_EQ(plugin_a->plugin_type, plugin_b->plugin_type);
- }
+ return true;
+}
- INT_EQ(g_list_length(packageA->application),
- g_list_length(packageB->application));
- for (GList *a = packageA->application, *b = packageB->application;
- a && b; a = a->next, b = b->next) {
- application_x *application_a = reinterpret_cast<application_x *>(a->data);
- application_x *application_b = reinterpret_cast<application_x *>(b->data);
+bool IsEqualPackagesStructure(const std::vector<package_x *>& packagesA,
+ const std::vector<package_x *>&packagesB) {
+ if (packagesA.size() != packagesB.size())
+ return false;
- if (!IsEqualApplication(application_a, application_b))
+ for (unsigned int i = 0; i < packagesA.size(); ++i) {
+ if (!IsEqualPackage(packagesA[i], packagesB[i]))
+ return false;
+ if (!IsEqualPackageExtraInfo(packagesA[i], packagesB[i]))
return false;
}
return true;
}
-bool IsEqualPackages(const std::vector<package_x *>&packagesA,
+bool IsEqualPackagesInfo(const std::vector<package_x *>& packagesA,
const std::vector<package_x *>&packagesB) {
if (packagesA.size() != packagesB.size())
return false;
#include <cstdio>
+#include "appinfo_db_handler.hh"
#include "create_db_handler.hh"
#include "db_type.hh"
#include "parcel_utils.hh"
#include "pkg_get_db_handler.hh"
#include "pkg_set_db_handler.hh"
#include "mock/file_mock.h"
+#include "mock/test_fixture.h"
+#include "mock/system_info_mock.h"
#include "pkgmgr-info.h"
#include "pkgmgrinfo_basic.h"
MOCK_METHOD0(GetConnection, std::vector<std::pair<sqlite3*, uid_t>>());
};
-class DBHandlerTest : public ::testing::Test {
+class Mocks : public :: testing::NiceMock<SystemInfoMock> {};
+
+class AppInfoDBHandlerMock : public pkgmgr_server::database::AppInfoDBHandler {
+ public:
+ AppInfoDBHandlerMock(uid_t uid, int pid) : pkgmgr_server::database::AppInfoDBHandler(uid, pid) {}
+
+ MOCK_METHOD0(Connect, bool());
+ MOCK_METHOD0(GetConnection, std::vector<std::pair<sqlite3*, uid_t>>());
+};
+
+class DBHandlerTest : public TestFixture {
public:
+ DBHandlerTest() : TestFixture(std::make_unique<Mocks>()) {}
+ virtual ~DBHandlerTest() {}
+
virtual void SetUp() {
sqlite3 *db;
ASSERT_EQ(sqlite3_open_v2(TEST_PARSER_DB, &db,
.Times(2).WillRepeatedly(testing::Return(true));
EXPECT_CALL(create_db_handler, GetConnection())
.Times(2).WillRepeatedly(testing::Return(GetDBHandles()));
+ EXPECT_CALL(GetMock<SystemInfoMock>(),
+ system_info_get_platform_int(testing::_, testing::_))
+ .WillRepeatedly(testing::DoAll(
+ testing::SetArgPointee<1>(120), testing::Return(0)));
fopen_mock_setup(true);
ASSERT_EQ(create_db_handler.Execute(), 0);
fopen_mock_setup(false);
sqlite3_close_v2(handle.first);
ASSERT_EQ(remove(TEST_PARSER_DB), 0);
+ std::string journal_path(TEST_PARSER_DB);
+ journal_path += "-journal";
+ ASSERT_EQ(remove(journal_path.c_str()), 0);
}
const std::vector<std::pair<sqlite3*, uid_t>>& GetDBHandles() {
PkgGetDBHandlerMock pkg_get_db_handler(0, 0);
pkg_get_db_handler.SetFilter(filter_ptr.get());
+ pkg_get_db_handler.SetLocale("test_lang");
EXPECT_CALL(pkg_get_db_handler, Connect()).WillOnce(testing::Return(true));
EXPECT_CALL(pkg_get_db_handler, GetConnection())
.WillOnce(testing::Return(GetDBHandles()));
ASSERT_EQ(pkg_get_db_handler.Execute(), 0);
+
+ auto lpkginfo_list = pkg_get_db_handler.GetPkgHandle();
+ ASSERT_EQ(lpkginfo_list.size(), 1);
+
+ auto test_pkginfo = GetTestPackage(pkgid);
+ std::vector<package_x*> rpkginfo_list;
+ rpkginfo_list.emplace_back(test_pkginfo);
+
+ ASSERT_EQ(IsEqualPackagesInfo(lpkginfo_list, rpkginfo_list), true);
+}
+
+TEST_F(DBHandlerTest, AppInfoDBHandlerTest) {
+ PkgSetDBHandlerMock pkg_set_db_handler(0, 0);
+ pkg_set_db_handler.SetWriteType(pkgmgr_common::PkgWriteType::Insert);
+ std::unique_ptr<package_x, decltype(pkgmgrinfo_basic_free_package)*> ptr(
+ GetTestPackage("test_package"), pkgmgrinfo_basic_free_package);
+ pkg_set_db_handler.SetPkgInfo(ptr.get());
+
+ EXPECT_CALL(pkg_set_db_handler, Connect()).WillOnce(testing::Return(true));
+ EXPECT_CALL(pkg_set_db_handler, GetConnection())
+ .WillOnce(testing::Return(GetDBHandles()));
+ ASSERT_EQ(pkg_set_db_handler.Execute(), 0);
+
+ pkgmgrinfo_appinfo_filter_h filter;
+ std::string appid = "test_app1";
+
+ ASSERT_EQ(pkgmgrinfo_appinfo_filter_create(&filter), PMINFO_R_OK);
+ std::unique_ptr<pkgmgrinfo_filter_x, decltype(
+ pkgmgrinfo_appinfo_filter_destroy)*> filter_ptr(
+ reinterpret_cast<pkgmgrinfo_filter_x *>(filter),
+ pkgmgrinfo_appinfo_filter_destroy);
+ ASSERT_EQ(pkgmgrinfo_appinfo_filter_add_string(filter,
+ PMINFO_APPINFO_PROP_APP_ID, appid.c_str()), PMINFO_R_OK);
+ ASSERT_EQ(pkgmgrinfo_appinfo_filter_add_bool(filter,
+ PMINFO_APPINFO_PROP_APP_DISABLE, false), PMINFO_R_OK);
+
+ AppInfoDBHandlerMock appinfo_db_handler(0, 0);
+ appinfo_db_handler.SetFilter(filter_ptr.get());
+
+ EXPECT_CALL(appinfo_db_handler, Connect()).WillOnce(testing::Return(true));
+ EXPECT_CALL(appinfo_db_handler, GetConnection())
+ .WillOnce(testing::Return(GetDBHandles()));
+ appinfo_db_handler.SetLocale("test_lang");
+ ASSERT_EQ(appinfo_db_handler.Execute(), 0);
+
+ auto lappinfo_list = appinfo_db_handler.GetAppHandle();
+ ASSERT_EQ(lappinfo_list.size(), 1);
+
+ auto test_appinfo = GetTestApplication(appid);
+ std::vector<application_x*> rappinfo_list;
+ rappinfo_list.emplace_back(test_appinfo);
+
+ ASSERT_EQ(IsEqualApplicationsInfo(lappinfo_list, rappinfo_list), true);
}