From fff61bc1f7b056823d3dfb0714489d693a69adb8 Mon Sep 17 00:00:00 2001 From: Ilho Kim Date: Thu, 4 Apr 2024 11:18:28 +0900 Subject: [PATCH] Revert "Remove app event dependency" This reverts following commits - 441d34a89b31dd19ab12688a4f802928c8e7f789 - 0edaf0178d64a07fd2448627e02f9ea400c432d4 Change-Id: I071e17ba25493066e37d38da5e9c07563fac4642 Signed-off-by: Ilho Kim --- CMakeLists.txt | 1 + client/CMakeLists.txt | 1 + installer/CMakeLists.txt | 1 + installer/pkgmgr-installer.pc.in | 2 +- packaging/pkgmgr.spec | 1 + test/unit_tests/CMakeLists.txt | 1 + test/unit_tests/mock/app_event_mock.cc | 37 ++++++++++++++++++++++++++++++++++ test/unit_tests/mock/app_event_mock.hh | 36 +++++++++++++++++++++++++++++++++ test/unit_tests/test_client.cc | 4 +++- 9 files changed, 82 insertions(+), 2 deletions(-) create mode 100644 test/unit_tests/mock/app_event_mock.cc create mode 100644 test/unit_tests/mock/app_event_mock.hh diff --git a/CMakeLists.txt b/CMakeLists.txt index 51d0da6..2cbea2f 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -24,6 +24,7 @@ PKG_CHECK_MODULES(GMOCK_DEPS REQUIRED gmock) PKG_CHECK_MODULES(GLIB_DEPS REQUIRED glib-2.0) PKG_CHECK_MODULES(GIO_DEPS REQUIRED gio-2.0) PKG_CHECK_MODULES(RPC_PORT_DEPS REQUIRED rpc-port) +PKG_CHECK_MODULES(CAPI_APPFW_EVENT_DEPS REQUIRED capi-appfw-event) PKG_CHECK_MODULES(PKGMGR_PARSER_DEPS REQUIRED pkgmgr-parser) PKG_CHECK_MODULES(PKGMGR_INFO_DEPS REQUIRED pkgmgr-info) PKG_CHECK_MODULES(INIPARSER_DEPS REQUIRED iniparser) diff --git a/client/CMakeLists.txt b/client/CMakeLists.txt index e97eb4f..fe06c79 100644 --- a/client/CMakeLists.txt +++ b/client/CMakeLists.txt @@ -21,6 +21,7 @@ APPLY_PKG_CONFIG(${PKGMGR_CLIENT} PUBLIC PLATFORM_CONFIG_DEPS MINIZIP_DEPS RPC_PORT_DEPS + CAPI_APPFW_EVENT_DEPS ) TARGET_LINK_LIBRARIES(${PKGMGR_CLIENT} PUBLIC "dl") diff --git a/installer/CMakeLists.txt b/installer/CMakeLists.txt index 0395123..d117ebd 100644 --- a/installer/CMakeLists.txt +++ b/installer/CMakeLists.txt @@ -9,6 +9,7 @@ PKG_CHECK_MODULES(INSTALLER_DEPS REQUIRED pkgmgr-info libtzplatform-config rpc-port + capi-appfw-event ) FOREACH(FLAGS ${INSTALLER_DEPS_CFLAGS}) diff --git a/installer/pkgmgr-installer.pc.in b/installer/pkgmgr-installer.pc.in index f812a3b..fe02345 100644 --- a/installer/pkgmgr-installer.pc.in +++ b/installer/pkgmgr-installer.pc.in @@ -11,6 +11,6 @@ includedir=@INCLUDEDIR@ Name: package manager installer library Description: SLP package manager's installer lib for each backends Version: @FULLVER@ -Requires: +Requires: capi-appfw-event Libs: -L${libdir} -lpkgmgr_installer Cflags: -I${includedir}/pkgmgr diff --git a/packaging/pkgmgr.spec b/packaging/pkgmgr.spec index 73ad4f1..b5c2321 100644 --- a/packaging/pkgmgr.spec +++ b/packaging/pkgmgr.spec @@ -33,6 +33,7 @@ BuildRequires: pkgconfig(libsmack) BuildRequires: pkgconfig(libsystemd) BuildRequires: pkgconfig(minizip) BuildRequires: pkgconfig(rpc-port) +BuildRequires: pkgconfig(capi-appfw-event) BuildRequires: pkgconfig(gmock) BuildRequires: pkgmgr-info-parser-devel BuildRequires: pkgmgr-info-parser diff --git a/test/unit_tests/CMakeLists.txt b/test/unit_tests/CMakeLists.txt index 967dec9..d328392 100644 --- a/test/unit_tests/CMakeLists.txt +++ b/test/unit_tests/CMakeLists.txt @@ -18,6 +18,7 @@ APPLY_PKG_CONFIG(${TARGET_PKGMGR_UNIT_TEST} PUBLIC GMOCK_DEPS GLIB_DEPS RPC_PORT_DEPS + CAPI_APPFW_EVENT_DEPS DLOG_DEPS BUNDLE_DEPS ) diff --git a/test/unit_tests/mock/app_event_mock.cc b/test/unit_tests/mock/app_event_mock.cc new file mode 100644 index 0000000..165caa3 --- /dev/null +++ b/test/unit_tests/mock/app_event_mock.cc @@ -0,0 +1,37 @@ +/* + * Copyright (c) 2022 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 "mock/app_event_mock.hh" +#include "mock/mock_hook.hh" +#include "mock/test_fixture.hh" + +extern "C" int event_add_event_handler(const char *event_name, + event_cb callback, void *user_data, event_handler_h *event_handler) { + return MOCK_HOOK_P4(AppEventMock, event_add_event_handler, + event_name, callback, user_data, event_handler); +} + +extern "C" int event_remove_event_handler(event_handler_h event_handler) { + return MOCK_HOOK_P1(AppEventMock, event_remove_event_handler, + event_handler); +} + +extern "C" int event_publish_app_event(const char *event_name, + bundle *event_data) { + return MOCK_HOOK_P2(AppEventMock, event_publish_app_event, + event_name, event_data); +} diff --git a/test/unit_tests/mock/app_event_mock.hh b/test/unit_tests/mock/app_event_mock.hh new file mode 100644 index 0000000..fe6af4b --- /dev/null +++ b/test/unit_tests/mock/app_event_mock.hh @@ -0,0 +1,36 @@ +/* + * Copyright (c) 2022 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_APP_EVENT_MOCK_HH_ +#define UNIT_TESTS_MOCK_APP_EVENT_MOCK_HH_ + +#include +#include + +#include "mock/module_mock.hh" + +class AppEventMock : public virtual ModuleMock { + public: + AppEventMock() {} + virtual ~AppEventMock() {} + + MOCK_METHOD(int, event_add_event_handler, (const char*, + event_cb, void*, event_handler_h*)); + MOCK_METHOD(int, event_remove_event_handler, (event_handler_h)); + MOCK_METHOD(int, event_publish_app_event, (const char*, bundle*)); +}; + +#endif // UNIT_TESTS_MOCK_APP_EVENT_MOCK_HH_ diff --git a/test/unit_tests/test_client.cc b/test/unit_tests/test_client.cc index b8c44ee..c5fb6e7 100644 --- a/test/unit_tests/test_client.cc +++ b/test/unit_tests/test_client.cc @@ -4,13 +4,15 @@ #include #include "unit_tests/mock/rpc_port_mock.hh" +#include "unit_tests/mock/app_event_mock.hh" #include "unit_tests/mock/test_fixture.hh" using ::testing::_; using ::testing::Invoke; namespace { -class Mocks : public ::testing::NiceMock {}; +class Mocks : public ::testing::NiceMock, + virtual public ::testing::NiceMock {}; } // namespace -- 2.7.4