feat: support application hooks

Signed-off-by: ComixHe <heyuming@deepin.org>
This commit is contained in:
ComixHe
2023-10-07 15:15:08 +08:00
committed by Comix
parent f233279466
commit fb0fc0a8ee
13 changed files with 317 additions and 56 deletions

25
tests/ut_hook.cpp Normal file
View File

@ -0,0 +1,25 @@
// SPDX-FileCopyrightText: 2023 UnionTech Software Technology Co., Ltd.
//
// SPDX-License-Identifier: LGPL-3.0-or-later
#include "applicationHooks.h"
#include <QDir>
#include <QStringList>
#include <gtest/gtest.h>
TEST(ApplicationHookTest, load)
{
auto file =
QDir::currentPath() + QDir::separator() + "data" + QDir::separator() + "hooks.d" + QDir::separator() + "1-test.json";
auto hook = ApplicationHook::loadFromFile(file);
EXPECT_TRUE(hook);
EXPECT_EQ(hook->hookName(), QString{"1-test.json"});
EXPECT_EQ(hook->execPath(), QString{"/usr/bin/echo"});
QStringList tmp{"for test"};
EXPECT_EQ(hook->args(), tmp);
tmp.push_front("/usr/bin/echo");
auto elem = generateHooks({std::move(hook).value()});
EXPECT_EQ(elem, tmp);
}