File indexing completed on 2024-04-28 03:53:12
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::enumDefaultValueString() 0068 { 0069 GET_CONFIG_ITEM_VALUE(KConfigSkeleton::ItemEnum *, QStringLiteral("DefaultEnumItemString")); 0070 0071 QVERIFY(typeItem->isEqual(2)); 0072 } 0073 0074 void ConfigLoaderTest::fontDefaultValue() 0075 { 0076 GET_CONFIG_ITEM_VALUE(KConfigSkeleton::ItemFont *, QStringLiteral("DefaultFontItem")); 0077 0078 QVERIFY(typeItem->isEqual(QFont(QStringLiteral("DejaVu Sans")))); 0079 } 0080 0081 void ConfigLoaderTest::intDefaultValue() 0082 { 0083 GET_CONFIG_ITEM_VALUE(KCoreConfigSkeleton::ItemInt *, QStringLiteral("DefaultIntItem")); 0084 0085 QVERIFY(typeItem->isEqual(27)); 0086 } 0087 0088 void ConfigLoaderTest::passwordDefaultValue() 0089 { 0090 GET_CONFIG_ITEM_VALUE(KConfigSkeleton::ItemPassword *, QStringLiteral("DefaultPasswordItem")); 0091 0092 QVERIFY(typeItem->isEqual(QString::fromLatin1("h4x."))); 0093 } 0094 0095 void ConfigLoaderTest::pathDefaultValue() 0096 { 0097 GET_CONFIG_ITEM_VALUE(KConfigSkeleton::ItemPath *, QStringLiteral("DefaultPathItem")); 0098 0099 QVERIFY(typeItem->isEqual(QString::fromLatin1("/dev/null"))); 0100 } 0101 0102 void ConfigLoaderTest::stringDefaultValue() 0103 { 0104 GET_CONFIG_ITEM_VALUE(KConfigSkeleton::ItemString *, QStringLiteral("DefaultStringItem")); 0105 0106 QVERIFY(typeItem->isEqual(QString::fromLatin1("TestString"))); 0107 } 0108 0109 void ConfigLoaderTest::stringListDefaultValue() 0110 { 0111 GET_CONFIG_ITEM_VALUE(KConfigSkeleton::ItemStringList *, QStringLiteral("DefaultStringListItem")); 0112 0113 // Create a string list with the expected values. 0114 QStringList expected; 0115 expected.append(QStringLiteral("One")); 0116 expected.append(QStringLiteral("Two")); 0117 expected.append(QStringLiteral("Three")); 0118 expected.append(QStringLiteral("Four")); 0119 expected.append(QStringLiteral("Five")); 0120 0121 QVERIFY(typeItem->isEqual(expected)); 0122 } 0123 0124 void ConfigLoaderTest::uintDefaultValue() 0125 { 0126 GET_CONFIG_ITEM_VALUE(KCoreConfigSkeleton::ItemUInt *, QStringLiteral("DefaultUIntItem")); 0127 0128 QVERIFY(typeItem->isEqual(7U)); 0129 } 0130 0131 void ConfigLoaderTest::urlDefaultValue() 0132 { 0133 GET_CONFIG_ITEM_VALUE(KCoreConfigSkeleton::ItemUrl *, QStringLiteral("DefaultUrlItem")); 0134 0135 QVERIFY(typeItem->isEqual(QUrl(QStringLiteral("http://kde.org")))); 0136 } 0137 0138 void ConfigLoaderTest::doubleDefaultValue() 0139 { 0140 GET_CONFIG_ITEM_VALUE(KCoreConfigSkeleton::ItemDouble *, QStringLiteral("DefaultDoubleItem")); 0141 0142 QVERIFY(typeItem->isEqual(13.37)); 0143 } 0144 0145 void ConfigLoaderTest::intListDefaultValue() 0146 { 0147 GET_CONFIG_ITEM_VALUE(KCoreConfigSkeleton::ItemIntList *, QStringLiteral("DefaultIntListItem")); 0148 0149 // Create a int list with the expected values. 0150 QList<int> expected; 0151 expected.append(1); 0152 expected.append(1); 0153 expected.append(2); 0154 expected.append(3); 0155 expected.append(5); 0156 expected.append(8); 0157 0158 QVERIFY(typeItem->isEqual(QVariant::fromValue(expected))); 0159 } 0160 0161 void ConfigLoaderTest::intListEmptyDefaultValue() 0162 { 0163 GET_CONFIG_ITEM_VALUE(KCoreConfigSkeleton::ItemIntList *, QStringLiteral("EmptyDefaultIntListItem")); 0164 0165 QVERIFY(typeItem->value().isEmpty()); 0166 } 0167 0168 void ConfigLoaderTest::longLongDefaultValue() 0169 { 0170 GET_CONFIG_ITEM_VALUE(KCoreConfigSkeleton::ItemLongLong *, QStringLiteral("DefaultLongLongItem")); 0171 0172 QVERIFY(typeItem->isEqual(Q_INT64_C(-9211372036854775808))); 0173 } 0174 0175 void ConfigLoaderTest::pointDefaultValue() 0176 { 0177 GET_CONFIG_ITEM_VALUE(KCoreConfigSkeleton::ItemPoint *, QStringLiteral("DefaultPointItem")); 0178 0179 QVERIFY(typeItem->isEqual(QPoint(185, 857))); 0180 } 0181 0182 void ConfigLoaderTest::pointFDefaultValue() 0183 { 0184 GET_CONFIG_ITEM_VALUE(KCoreConfigSkeleton::ItemPointF *, QStringLiteral("DefaultPointFItem")); 0185 0186 QVERIFY(typeItem->isEqual(QPointF(185.5, 857.5))); 0187 } 0188 0189 void ConfigLoaderTest::rectDefaultValue() 0190 { 0191 GET_CONFIG_ITEM_VALUE(KCoreConfigSkeleton::ItemRect *, QStringLiteral("DefaultRectItem")); 0192 0193 // Create a new QRect with the expected value. 0194 QRect expected; 0195 expected.setCoords(3, 7, 951, 358); 0196 0197 QVERIFY(typeItem->isEqual(expected)); 0198 } 0199 0200 void ConfigLoaderTest::rectFDefaultValue() 0201 { 0202 GET_CONFIG_ITEM_VALUE(KCoreConfigSkeleton::ItemRectF *, QStringLiteral("DefaultRectFItem")); 0203 0204 // Create a new QRectF with the expected value. 0205 QRectF expected; 0206 expected.setCoords(3.5, 7.5, 951.5, 358.5); 0207 0208 QVERIFY(typeItem->isEqual(expected)); 0209 } 0210 0211 void ConfigLoaderTest::sizeDefaultValue() 0212 { 0213 GET_CONFIG_ITEM_VALUE(KCoreConfigSkeleton::ItemSize *, QStringLiteral("DefaultSizeItem")); 0214 0215 QVERIFY(typeItem->isEqual(QSize(640, 480))); 0216 } 0217 0218 void ConfigLoaderTest::sizeFDefaultValue() 0219 { 0220 GET_CONFIG_ITEM_VALUE(KCoreConfigSkeleton::ItemSizeF *, QStringLiteral("DefaultSizeFItem")); 0221 0222 QVERIFY(typeItem->isEqual(QSizeF(640.5, 480.5))); 0223 } 0224 0225 void ConfigLoaderTest::ulongLongDefaultValue() 0226 { 0227 GET_CONFIG_ITEM_VALUE(KCoreConfigSkeleton::ItemULongLong *, QStringLiteral("DefaultULongLongItem")); 0228 0229 QVERIFY(typeItem->isEqual(Q_UINT64_C(9223372036854775806))); 0230 } 0231 0232 QTEST_MAIN(ConfigLoaderTest) 0233 0234 #include "moc_kconfigloadertest.cpp"