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()14int 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