File indexing completed on 2024-11-03 05:14:37
0001 /*************************************************************************** 0002 * Copyright © 2015 Harald Sitter <sitter@kde.org> * 0003 * * 0004 * This program is free software; you can redistribute it and/or * 0005 * modify it under the terms of the GNU General Public License as * 0006 * published by the Free Software Foundation; either version 2 of * 0007 * the License or (at your option) version 3 or any later version * 0008 * accepted by the membership of KDE e.V. (or its successor approved * 0009 * by the membership of KDE e.V.), which shall act as a proxy * 0010 * defined in Section 14 of version 3 of the license. * 0011 * * 0012 * This program is distributed in the hope that it will be useful, * 0013 * but WITHOUT ANY WARRANTY; without even the implied warranty of * 0014 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * 0015 * GNU General Public License for more details. * 0016 * * 0017 * You should have received a copy of the GNU General Public License * 0018 * along with this program. If not, see <http://www.gnu.org/licenses/>. * 0019 ***************************************************************************/ 0020 0021 #include <QObject> 0022 #include <QtTest> 0023 0024 #define private public 0025 #include "../src/daemon/hookevent/locale.h" 0026 #undef private 0027 0028 class LocaleTest : public QObject 0029 { 0030 Q_OBJECT 0031 private Q_SLOTS: 0032 void en(); 0033 void enEncoding(); 0034 void en_US(); 0035 void en_USVariant(); 0036 void en_USVariantEncoding(); 0037 void en_USEncoding(); 0038 }; 0039 0040 void LocaleTest::en() 0041 { 0042 Locale l(QStringLiteral("en")); 0043 QCOMPARE(l.m_language, QStringLiteral("en")); 0044 QCOMPARE(l.m_country, QString()); 0045 QCOMPARE(l.m_variant, QString()); 0046 QCOMPARE(l.m_encoding, QString()); 0047 QCOMPARE(l.combinations(), QStringList() << "en"); 0048 } 0049 0050 void LocaleTest::enEncoding() 0051 { 0052 Locale l(QStringLiteral("en.UTF-8")); 0053 QCOMPARE(l.m_language, QStringLiteral("en")); 0054 QCOMPARE(l.m_country, QString()); 0055 QCOMPARE(l.m_variant, QString()); 0056 QCOMPARE(l.m_encoding, QStringLiteral("UTF-8")); 0057 QCOMPARE(l.combinations(), QStringList() << "en.UTF-8" << "en"); 0058 } 0059 0060 0061 void LocaleTest::en_US() 0062 { 0063 Locale l(QStringLiteral("en_US")); 0064 QCOMPARE(l.m_language, QStringLiteral("en")); 0065 QCOMPARE(l.m_country, QStringLiteral("US")); 0066 QCOMPARE(l.m_variant, QString()); 0067 QCOMPARE(l.m_encoding, QString()); 0068 QCOMPARE(l.combinations(), QStringList() << "en_US" << "en"); 0069 } 0070 0071 void LocaleTest::en_USVariant() 0072 { 0073 Locale l(QStringLiteral("en_US@foo")); 0074 QCOMPARE(l.m_language, QStringLiteral("en")); 0075 QCOMPARE(l.m_country, QStringLiteral("US")); 0076 QCOMPARE(l.m_variant, QStringLiteral("foo")); 0077 QCOMPARE(l.m_encoding, QString()); 0078 QCOMPARE(l.combinations(), QStringList() << "en_US@foo" << "en@foo" << "en_US" << "en"); 0079 } 0080 0081 void LocaleTest::en_USVariantEncoding() 0082 { 0083 Locale l(QStringLiteral("en_US@foo.UTF-8")); 0084 QCOMPARE(l.m_language, QStringLiteral("en")); 0085 QCOMPARE(l.m_country, QStringLiteral("US")); 0086 QCOMPARE(l.m_variant, QStringLiteral("foo")); 0087 QCOMPARE(l.m_encoding, QStringLiteral("UTF-8")); 0088 QCOMPARE(l.combinations(), QStringList() << "en_US@foo.UTF-8" << "en_US@foo" << "en@foo.UTF-8" << "en@foo" << "en_US.UTF-8" << "en_US" << "en.UTF-8" << "en"); 0089 } 0090 0091 void LocaleTest::en_USEncoding() 0092 { 0093 Locale l(QStringLiteral("en_US.UTF-8")); 0094 QCOMPARE(l.m_language, QStringLiteral("en")); 0095 QCOMPARE(l.m_country, QStringLiteral("US")); 0096 QCOMPARE(l.m_variant, QString()); 0097 QCOMPARE(l.m_encoding, QStringLiteral("UTF-8")); 0098 QCOMPARE(l.combinations(), QStringList() << "en_US.UTF-8" << "en_US" << "en.UTF-8" << "en"); 0099 } 0100 0101 QTEST_GUILESS_MAIN(LocaleTest); 0102 0103 #include "localetest.moc"