File indexing completed on 2024-11-24 05:00:37

0001 /*
0002     SPDX-FileCopyrightText: 2011 Andriy Rysin <rysin@kde.org>
0003 
0004     SPDX-License-Identifier: GPL-2.0-or-later
0005 */
0006 
0007 //#include <kapplication.h>
0008 
0009 #include <QIcon>
0010 #include <QTest>
0011 
0012 #include "../flags.h"
0013 #include "../keyboard_config.h"
0014 #include "../keyboard_daemon.h"
0015 #include "../xkb_rules.h"
0016 
0017 class KeyboardDaemonTest : public QObject
0018 {
0019     Q_OBJECT
0020 
0021     KeyboardDaemon *keyboardDaemon;
0022     //    KApplication* kapplication;
0023 
0024 private Q_SLOTS:
0025     void initTestCase()
0026     {
0027         //      kapplication = new KApplication();
0028         //      const KAboutData* kAboutData = new KAboutData(i18n("a").toLatin1(), i18n("a").toLatin1(), KLocalizedString(), i18n("a").toLatin1());
0029         //      KCmdLineArgs::init(kAboutData);
0030         keyboardDaemon = new KeyboardDaemon(this, QList<QVariant>());
0031     }
0032 
0033     void cleanupTestCase()
0034     {
0035         delete keyboardDaemon;
0036         //      delete kapplication;
0037     }
0038 
0039     void testDaemon()
0040     {
0041         QVERIFY(keyboardDaemon != nullptr);
0042 
0043         //        QVERIFY( ! flags->getTransparentPixmap().isNull() );
0044         //
0045         //        const QIcon iconUs(flags->getIcon("us"));
0046         //        QVERIFY( ! iconUs.isNull() );
0047         //        QVERIFY( flags->getIcon("--").isNull() );
0048         //
0049         //      KeyboardConfig keyboardConfig;
0050         //        LayoutUnit layoutUnit("us");
0051         //        LayoutUnit layoutUnit1("us", "intl");
0052         //        layoutUnit1.setDisplayName("usi");
0053         //        LayoutUnit layoutUnit2("us", "other");
0054         //
0055         //        keyboardConfig.showFlag = true;
0056         //        const QIcon iconUsFlag = flags->getIconWithText(layoutUnit, keyboardConfig);
0057         //        QVERIFY( ! iconUsFlag.isNull() );
0058         //        QCOMPARE( image(iconUsFlag), image(iconUs) );
0059         //
0060         //        keyboardConfig.showFlag = false;
0061         //        const QIcon iconUsText = flags->getIconWithText(layoutUnit, keyboardConfig);
0062         //        QVERIFY( ! iconUsText.isNull() );
0063         //        QVERIFY( image(iconUsText) != image(iconUs) );
0064         //
0065         //        keyboardConfig.layouts.append(layoutUnit1);
0066         //        QCOMPARE( flags->getShortText(layoutUnit, keyboardConfig), QString("us") );
0067         //        QCOMPARE( flags->getShortText(layoutUnit1, keyboardConfig), QString("usi") );
0068         //        QCOMPARE( flags->getShortText(layoutUnit2, keyboardConfig), QString("us") );
0069         //
0070         //        const Rules* rules = Rules::readRules();
0071         //        QCOMPARE( flags->getLongText(layoutUnit, rules), QString("USA") );
0072         //        QVERIFY( flags->getLongText(layoutUnit1, rules).startsWith("USA - International") );
0073         //        QCOMPARE( flags->getLongText(layoutUnit2, rules), QString("USA - other") );
0074         //
0075         //        flags->clearCache();
0076     }
0077 
0078     //    void loadRulesBenchmark() {
0079     //      QBENCHMARK {
0080     //          Flags* flags = new Flags();
0081     //          delete flags;
0082     //      }
0083     //    }
0084 };
0085 
0086 // need GUI for xkb protocol in xkb_rules.cpp
0087 QTEST_MAIN(KeyboardDaemonTest)
0088 
0089 #include "keyboard_daemon_test.moc"