/******************************************************************************** * Copyright 2010 by Martin Blumenstingl * * * * This library is free software; you can redistribute it and/or * * modify it under the terms of the GNU Library General Public * * License as published by the Free Software Foundation; either * * version 2 of the License, or (at your option) any later version. * * * * This library is distributed in the hope that it will be useful, * * but WITHOUT ANY WARRANTY; without even the implied warranty of * * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * * Library General Public License for more details. * * * * You should have received a copy of the GNU Library General Public License * * along with this library; see the file COPYING.LIB. If not, write to * * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, * * Boston, MA 02110-1301, USA. * *********************************************************************************/ #include "kconfigloadertest.h" #include #include #include #include Q_DECLARE_METATYPE(QList) #define TEST_NAME QString::fromLatin1("kconfigloadertest") #define GET_CONFIG_ITEM_VALUE(type, configName) \ KConfigSkeletonItem* item = cl->findItem(TEST_NAME, configName); \ /* Check if we got back a valid item. */ \ QVERIFY(item != nullptr); \ /* Cast the item to the given type. */ \ type typeItem = dynamic_cast(item); \ /* Make sure the cast was successful. */ \ QVERIFY(typeItem != nullptr); void ConfigLoaderTest::init() { QString fileName = TEST_NAME + QLatin1String(".xml"); configFile = new QFile(QFINDTESTDATA(QString::fromLatin1("/") + fileName)); cl = new KConfigLoader(configFile->fileName(), configFile); } void ConfigLoaderTest::cleanup() { delete cl; delete configFile; } void ConfigLoaderTest::boolDefaultValue() { GET_CONFIG_ITEM_VALUE(KCoreConfigSkeleton::ItemBool *, "DefaultBoolItem"); QVERIFY(typeItem->isEqual(true)); } void ConfigLoaderTest::colorDefaultValue() { GET_CONFIG_ITEM_VALUE(KConfigSkeleton::ItemColor *, "DefaultColorItem"); QVERIFY(typeItem->isEqual(QColor("#00FF00"))); } void ConfigLoaderTest::dateTimeDefaultValue() { GET_CONFIG_ITEM_VALUE(KCoreConfigSkeleton::ItemDateTime *, "DefaultDateTimeItem"); QVERIFY(typeItem->isEqual(QDateTime::fromString("Thu Sep 09 2010"))); } void ConfigLoaderTest::enumDefaultValue() { GET_CONFIG_ITEM_VALUE(KConfigSkeleton::ItemEnum *, "DefaultEnumItem"); QVERIFY(typeItem->isEqual(3)); } void ConfigLoaderTest::fontDefaultValue() { GET_CONFIG_ITEM_VALUE(KConfigSkeleton::ItemFont *, "DefaultFontItem"); QVERIFY(typeItem->isEqual(QFont("DejaVu Sans"))); } void ConfigLoaderTest::intDefaultValue() { GET_CONFIG_ITEM_VALUE(KCoreConfigSkeleton::ItemInt *, "DefaultIntItem"); QVERIFY(typeItem->isEqual(27)); } void ConfigLoaderTest::passwordDefaultValue() { GET_CONFIG_ITEM_VALUE(KConfigSkeleton::ItemPassword *, "DefaultPasswordItem"); QVERIFY(typeItem->isEqual(QString::fromLatin1("h4x."))); } void ConfigLoaderTest::pathDefaultValue() { GET_CONFIG_ITEM_VALUE(KConfigSkeleton::ItemPath *, "DefaultPathItem"); QVERIFY(typeItem->isEqual(QString::fromLatin1("/dev/null"))); } void ConfigLoaderTest::stringDefaultValue() { GET_CONFIG_ITEM_VALUE(KConfigSkeleton::ItemString *, "DefaultStringItem"); QVERIFY(typeItem->isEqual(QString::fromLatin1("TestString"))); } void ConfigLoaderTest::stringListDefaultValue() { GET_CONFIG_ITEM_VALUE(KConfigSkeleton::ItemStringList *, "DefaultStringListItem"); // Create a string list with the expected values. QStringList expected; expected.append(QStringLiteral("One")); expected.append(QStringLiteral("Two")); expected.append(QStringLiteral("Three")); expected.append(QStringLiteral("Four")); expected.append(QStringLiteral("Five")); QVERIFY(typeItem->isEqual(expected)); } void ConfigLoaderTest::uintDefaultValue() { GET_CONFIG_ITEM_VALUE(KCoreConfigSkeleton::ItemUInt *, "DefaultUIntItem"); QVERIFY(typeItem->isEqual(7U)); } void ConfigLoaderTest::urlDefaultValue() { GET_CONFIG_ITEM_VALUE(KCoreConfigSkeleton::ItemUrl *, "DefaultUrlItem"); QVERIFY(typeItem->isEqual(QUrl("http://kde.org"))); } void ConfigLoaderTest::doubleDefaultValue() { GET_CONFIG_ITEM_VALUE(KCoreConfigSkeleton::ItemDouble *, "DefaultDoubleItem"); QVERIFY(typeItem->isEqual(13.37)); } void ConfigLoaderTest::intListDefaultValue() { GET_CONFIG_ITEM_VALUE(KCoreConfigSkeleton::ItemIntList *, "DefaultIntListItem"); // Create a int list with the expected values. QList expected; expected.append(1); expected.append(1); expected.append(2); expected.append(3); expected.append(5); expected.append(8); QVERIFY(typeItem->isEqual(qVariantFromValue(expected))); } void ConfigLoaderTest::longLongDefaultValue() { GET_CONFIG_ITEM_VALUE(KCoreConfigSkeleton::ItemLongLong *, "DefaultLongLongItem"); QVERIFY(typeItem->isEqual(Q_INT64_C(-9211372036854775808))); } void ConfigLoaderTest::pointDefaultValue() { GET_CONFIG_ITEM_VALUE(KCoreConfigSkeleton::ItemPoint *, "DefaultPointItem"); QVERIFY(typeItem->isEqual(QPoint(185, 857))); } void ConfigLoaderTest::rectDefaultValue() { GET_CONFIG_ITEM_VALUE(KCoreConfigSkeleton::ItemRect *, "DefaultRectItem"); // Create a new QRect with the expected value. QRect expected; expected.setCoords(3, 7, 951, 358); QVERIFY(typeItem->isEqual(expected)); } void ConfigLoaderTest::sizeDefaultValue() { GET_CONFIG_ITEM_VALUE(KCoreConfigSkeleton::ItemSize *, "DefaultSizeItem"); QVERIFY(typeItem->isEqual(QSize(640, 480))); } void ConfigLoaderTest::ulongLongDefaultValue() { GET_CONFIG_ITEM_VALUE(KCoreConfigSkeleton::ItemULongLong *, "DefaultULongLongItem"); QVERIFY(typeItem->isEqual(Q_UINT64_C(9223372036854775806))); } QTEST_MAIN(ConfigLoaderTest)