File indexing completed on 2024-04-28 15:19:31
0001 /* 0002 SPDX-FileCopyrightText: 2010 Martin Blumenstingl <darklight.xdarklight@googlemail.com> 0003 0004 SPDX-License-Identifier: LGPL-2.0-or-later 0005 */ 0006 #include "kconfigloadertest.h" 0007 0008 #include <kconfig.h> 0009 #include <kconfiggroup.h> 0010 #include <kconfigloader.h> 0011 #include <kconfigskeleton.h> 0012 0013 Q_DECLARE_METATYPE(QList<int>) 0014 0015 static const QString s_testName(QStringLiteral("kconfigloadertest")); // clazy:exclude=non-pod-global-static 0016 0017 #define GET_CONFIG_ITEM_VALUE(type, configName) \ 0018 KConfigSkeletonItem *item = cl->findItem(s_testName, configName); \ 0019 /* Check if we got back a valid item. */ \ 0020 QVERIFY(item != nullptr); \ 0021 /* Cast the item to the given type. */ \ 0022 type typeItem = dynamic_cast<type>(item); \ 0023 /* Make sure the cast was successful. */ \ 0024 QVERIFY(typeItem != nullptr); 0025 0026 void ConfigLoaderTest::init() 0027 { 0028 QString fileName = s_testName + QLatin1String(".xml"); 0029 configFile = new QFile(QFINDTESTDATA(QString::fromLatin1("/") + fileName)); 0030 cl = new KConfigLoader(configFile->fileName(), configFile); 0031 } 0032 0033 void ConfigLoaderTest::cleanup() 0034 { 0035 delete cl; 0036 delete configFile; 0037 } 0038 0039 void ConfigLoaderTest::boolDefaultValue() 0040 { 0041 GET_CONFIG_ITEM_VALUE(KCoreConfigSkeleton::ItemBool *, QStringLiteral("DefaultBoolItem")); 0042 0043 QVERIFY(typeItem->isEqual(true)); 0044 } 0045 0046 void ConfigLoaderTest::colorDefaultValue() 0047 { 0048 GET_CONFIG_ITEM_VALUE(KConfigSkeleton::ItemColor *, QStringLiteral("DefaultColorItem")); 0049 0050 QVERIFY(typeItem->isEqual(QColor("#00FF00"))); 0051 } 0052 0053 void ConfigLoaderTest::dateTimeDefaultValue() 0054 { 0055 GET_CONFIG_ITEM_VALUE(KCoreConfigSkeleton::ItemDateTime *, QStringLiteral("DefaultDateTimeItem")); 0056 0057 QVERIFY(typeItem->isEqual(QDateTime::fromString(QStringLiteral("Thu Sep 09 2010")))); 0058 } 0059 0060 void ConfigLoaderTest::enumDefaultValue() 0061 { 0062 GET_CONFIG_ITEM_VALUE(KConfigSkeleton::ItemEnum *, QStringLiteral("DefaultEnumItem")); 0063 0064 QVERIFY(typeItem->isEqual(3)); 0065 } 0066 0067 void ConfigLoaderTest::fontDefaultValue() 0068 { 0069 GET_CONFIG_ITEM_VALUE(KConfigSkeleton::ItemFont *, QStringLiteral("DefaultFontItem")); 0070 0071 QVERIFY(typeItem->isEqual(QFont(QStringLiteral("DejaVu Sans")))); 0072 } 0073 0074 void ConfigLoaderTest::intDefaultValue() 0075 { 0076 GET_CONFIG_ITEM_VALUE(KCoreConfigSkeleton::ItemInt *, QStringLiteral("DefaultIntItem")); 0077 0078 QVERIFY(typeItem->isEqual(27)); 0079 } 0080 0081 void ConfigLoaderTest::passwordDefaultValue() 0082 { 0083 GET_CONFIG_ITEM_VALUE(KConfigSkeleton::ItemPassword *, QStringLiteral("DefaultPasswordItem")); 0084 0085 QVERIFY(typeItem->isEqual(QString::fromLatin1("h4x."))); 0086 } 0087 0088 void ConfigLoaderTest::pathDefaultValue() 0089 { 0090 GET_CONFIG_ITEM_VALUE(KConfigSkeleton::ItemPath *, QStringLiteral("DefaultPathItem")); 0091 0092 QVERIFY(typeItem->isEqual(QString::fromLatin1("/dev/null"))); 0093 } 0094 0095 void ConfigLoaderTest::stringDefaultValue() 0096 { 0097 GET_CONFIG_ITEM_VALUE(KConfigSkeleton::ItemString *, QStringLiteral("DefaultStringItem")); 0098 0099 QVERIFY(typeItem->isEqual(QString::fromLatin1("TestString"))); 0100 } 0101 0102 void ConfigLoaderTest::stringListDefaultValue() 0103 { 0104 GET_CONFIG_ITEM_VALUE(KConfigSkeleton::ItemStringList *, QStringLiteral("DefaultStringListItem")); 0105 0106 // Create a string list with the expected values. 0107 QStringList expected; 0108 expected.append(QStringLiteral("One")); 0109 expected.append(QStringLiteral("Two")); 0110 expected.append(QStringLiteral("Three")); 0111 expected.append(QStringLiteral("Four")); 0112 expected.append(QStringLiteral("Five")); 0113 0114 QVERIFY(typeItem->isEqual(expected)); 0115 } 0116 0117 void ConfigLoaderTest::uintDefaultValue() 0118 { 0119 GET_CONFIG_ITEM_VALUE(KCoreConfigSkeleton::ItemUInt *, QStringLiteral("DefaultUIntItem")); 0120 0121 QVERIFY(typeItem->isEqual(7U)); 0122 } 0123 0124 void ConfigLoaderTest::urlDefaultValue() 0125 { 0126 GET_CONFIG_ITEM_VALUE(KCoreConfigSkeleton::ItemUrl *, QStringLiteral("DefaultUrlItem")); 0127 0128 QVERIFY(typeItem->isEqual(QUrl(QStringLiteral("http://kde.org")))); 0129 } 0130 0131 void ConfigLoaderTest::doubleDefaultValue() 0132 { 0133 GET_CONFIG_ITEM_VALUE(KCoreConfigSkeleton::ItemDouble *, QStringLiteral("DefaultDoubleItem")); 0134 0135 QVERIFY(typeItem->isEqual(13.37)); 0136 } 0137 0138 void ConfigLoaderTest::intListDefaultValue() 0139 { 0140 GET_CONFIG_ITEM_VALUE(KCoreConfigSkeleton::ItemIntList *, QStringLiteral("DefaultIntListItem")); 0141 0142 // Create a int list with the expected values. 0143 QList<int> expected; 0144 expected.append(1); 0145 expected.append(1); 0146 expected.append(2); 0147 expected.append(3); 0148 expected.append(5); 0149 expected.append(8); 0150 0151 QVERIFY(typeItem->isEqual(QVariant::fromValue(expected))); 0152 } 0153 0154 void ConfigLoaderTest::intListEmptyDefaultValue() 0155 { 0156 GET_CONFIG_ITEM_VALUE(KCoreConfigSkeleton::ItemIntList *, QStringLiteral("EmptyDefaultIntListItem")); 0157 0158 QVERIFY(typeItem->value().isEmpty()); 0159 } 0160 0161 void ConfigLoaderTest::longLongDefaultValue() 0162 { 0163 GET_CONFIG_ITEM_VALUE(KCoreConfigSkeleton::ItemLongLong *, QStringLiteral("DefaultLongLongItem")); 0164 0165 QVERIFY(typeItem->isEqual(Q_INT64_C(-9211372036854775808))); 0166 } 0167 0168 void ConfigLoaderTest::pointDefaultValue() 0169 { 0170 GET_CONFIG_ITEM_VALUE(KCoreConfigSkeleton::ItemPoint *, QStringLiteral("DefaultPointItem")); 0171 0172 QVERIFY(typeItem->isEqual(QPoint(185, 857))); 0173 } 0174 0175 void ConfigLoaderTest::rectDefaultValue() 0176 { 0177 GET_CONFIG_ITEM_VALUE(KCoreConfigSkeleton::ItemRect *, QStringLiteral("DefaultRectItem")); 0178 0179 // Create a new QRect with the expected value. 0180 QRect expected; 0181 expected.setCoords(3, 7, 951, 358); 0182 0183 QVERIFY(typeItem->isEqual(expected)); 0184 } 0185 0186 void ConfigLoaderTest::sizeDefaultValue() 0187 { 0188 GET_CONFIG_ITEM_VALUE(KCoreConfigSkeleton::ItemSize *, QStringLiteral("DefaultSizeItem")); 0189 0190 QVERIFY(typeItem->isEqual(QSize(640, 480))); 0191 } 0192 0193 void ConfigLoaderTest::ulongLongDefaultValue() 0194 { 0195 GET_CONFIG_ITEM_VALUE(KCoreConfigSkeleton::ItemULongLong *, QStringLiteral("DefaultULongLongItem")); 0196 0197 QVERIFY(typeItem->isEqual(Q_UINT64_C(9223372036854775806))); 0198 } 0199 0200 QTEST_MAIN(ConfigLoaderTest) 0201 0202 #include "moc_kconfigloadertest.cpp"