1 /* 2 SPDX-FileCopyrightText: 2011 Andriy Rysin <rysin@kde.org> 3 4 SPDX-License-Identifier: GPL-2.0-or-later 5 */ 6 7 #include <QIcon> 8 #include <QtTest> 9 10 #include "../flags.h" 11 #include "../keyboard_config.h" 12 #include "../xkb_rules.h" 13 14 class FlagsTest : public QObject 15 { 16 Q_OBJECT 17 18 Flags *flags; 19 const Rules *rules; 20 21 private Q_SLOTS: initTestCase()22 void initTestCase() 23 { 24 flags = new Flags(); 25 rules = nullptr; 26 } 27 cleanupTestCase()28 void cleanupTestCase() 29 { 30 delete flags; 31 delete rules; 32 } 33 testRules()34 void testRules() 35 { 36 QVERIFY(flags != nullptr); 37 38 const QIcon iconUs(flags->getIcon(QStringLiteral("us"))); 39 QVERIFY(!iconUs.isNull()); 40 QVERIFY(flags->getIcon("--").isNull()); 41 42 KeyboardConfig keyboardConfig; 43 LayoutUnit layoutUnit(QStringLiteral("us")); 44 LayoutUnit layoutUnit1(QStringLiteral("us"), QStringLiteral("intl")); 45 layoutUnit1.setDisplayName(QStringLiteral("usi")); 46 LayoutUnit layoutUnit2(QStringLiteral("us"), QStringLiteral("other")); 47 48 keyboardConfig.layouts.append(layoutUnit1); 49 QCOMPARE(flags->getShortText(layoutUnit, keyboardConfig), QString("us")); 50 QCOMPARE(flags->getShortText(layoutUnit1, keyboardConfig), QString("usi")); 51 QCOMPARE(flags->getShortText(layoutUnit2, keyboardConfig), QString("us")); 52 53 const Rules *rules = Rules::readRules(Rules::NO_EXTRAS); 54 QCOMPARE(flags->getLongText(layoutUnit, rules), QString("English (US)")); 55 QCOMPARE(flags->getLongText(layoutUnit2, rules), QString("other")); 56 57 rules = nullptr; // when no rules found 58 QCOMPARE(flags->getLongText(layoutUnit1, rules), QString("us - intl")); 59 } 60 61 // void loadRulesBenchmark() { 62 // QBENCHMARK { 63 // Flags* flags = new Flags(); 64 // delete flags; 65 // } 66 // } 67 }; 68 69 // need GUI for xkb protocol in xkb_rules.cpp 70 QTEST_MAIN(FlagsTest) 71 72 #include "flags_test.moc" 73