1 /*
2  * SPDX-FileCopyrightText: 2016-2016 CSSlayer <wengxt@gmail.com>
3  *
4  * SPDX-License-Identifier: LGPL-2.1-or-later
5  *
6  */
7 
8 #include "fcitx-utils/log.h"
9 #include "fcitx/action.h"
10 #include "fcitx/userinterfacemanager.h"
11 
12 using namespace fcitx;
13 
main()14 int main() {
15     auto uiManager = std::make_unique<UserInterfaceManager>(nullptr);
16     {
17         SimpleAction a;
18         FCITX_ASSERT(uiManager->registerAction("test", &a));
19         FCITX_ASSERT(uiManager->lookupAction("test") == &a);
20         FCITX_ASSERT(a.name() == "test");
21     }
22     FCITX_ASSERT(uiManager->lookupAction("test") == nullptr);
23     SimpleAction a2;
24     FCITX_ASSERT(uiManager->registerAction("test", &a2));
25     FCITX_ASSERT(a2.name() == "test");
26     FCITX_ASSERT(!uiManager->registerAction("test", &a2));
27     FCITX_ASSERT(!uiManager->registerAction("test2", &a2));
28     FCITX_ASSERT(uiManager->lookupAction("test") == &a2);
29 
30     {
31         SimpleAction a3;
32         FCITX_ASSERT(!uiManager->registerAction("test", &a3));
33         FCITX_ASSERT(uiManager->registerAction("test2", &a3));
34 
35         FCITX_ASSERT(uiManager->lookupAction("test2") == &a3);
36         uiManager->unregisterAction(&a3);
37         FCITX_ASSERT(uiManager->lookupAction("test2") == nullptr);
38     }
39 
40     uiManager.reset();
41     return 0;
42 }
43