2014-11-13 01:04:59 +02:00
|
|
|
/* This file is part of the KDE libraries
|
|
|
|
Copyright (C) 1997 Matthias Kalle Dalheimer (kalle@kde.org)
|
|
|
|
|
|
|
|
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 <qtest_kde.h>
|
|
|
|
#include "kconfigguitest.h"
|
2015-02-27 07:40:26 +00:00
|
|
|
#include "moc_kconfigguitest.cpp"
|
2014-11-13 01:04:59 +02:00
|
|
|
|
|
|
|
#include <kconfig.h>
|
|
|
|
#include <kdebug.h>
|
|
|
|
#include <QtGui/QFont>
|
|
|
|
#include <kconfiggroup.h>
|
|
|
|
#include <kcursor.h>
|
|
|
|
|
|
|
|
QTEST_KDEMAIN( KConfigTest, GUI )
|
|
|
|
|
|
|
|
#define COLORENTRY1 QColor("steelblue")
|
|
|
|
#define COLORENTRY2 QColor(235, 235, 100, 125)
|
|
|
|
#define COLORENTRY3 QColor(234, 234, 127)
|
|
|
|
#define FONTENTRY QFont("Times", 16, QFont::Normal)
|
|
|
|
|
|
|
|
void KConfigTest::initTestCase()
|
|
|
|
{
|
|
|
|
// cheat the linker on windows to link against kdeui
|
|
|
|
KCursor::hideCursorDelay();
|
|
|
|
|
|
|
|
KConfig sc( "kconfigtest" );
|
|
|
|
|
|
|
|
KConfigGroup cg(&sc, "ComplexTypes");
|
|
|
|
cg.writeEntry( "colorEntry1", COLORENTRY1 );
|
|
|
|
cg.writeEntry( "colorEntry2", COLORENTRY2 );
|
|
|
|
cg.writeEntry( "colorEntry3", (QList<int>() << 234 << 234 << 127));
|
|
|
|
cg.writeEntry( "colorEntry4", (QList<int>() << 235 << 235 << 100 << 125));
|
|
|
|
cg.writeEntry( "fontEntry", FONTENTRY );
|
|
|
|
sc.sync();
|
|
|
|
|
|
|
|
KConfig sc1("kdebugrc");
|
|
|
|
KConfigGroup sg0(&sc1, "0");
|
|
|
|
sg0.writeEntry("AbortFatal", false);
|
|
|
|
sg0.writeEntry("WarnOutput", 0);
|
|
|
|
sg0.writeEntry("FatalOutput", 0);
|
|
|
|
sc1.sync();
|
|
|
|
}
|
|
|
|
|
|
|
|
void KConfigTest::cleanupTestCase()
|
|
|
|
{
|
|
|
|
QDir local(QDir::homePath() + "/.kde-unit-test/share/config");
|
|
|
|
|
|
|
|
foreach(const QString &file, local.entryList(QDir::Files))
|
|
|
|
if(!local.remove(file))
|
|
|
|
qWarning("%s: removing failed", qPrintable( file ));
|
|
|
|
|
|
|
|
QCOMPARE((int)local.entryList(QDir::Files).count(), 0);
|
|
|
|
|
|
|
|
local.cdUp();
|
|
|
|
local.rmpath("config");
|
|
|
|
}
|
|
|
|
|
|
|
|
void KConfigTest::testComplex()
|
|
|
|
{
|
|
|
|
KConfig sc2( "kconfigtest" );
|
|
|
|
KConfigGroup sc3(&sc2, "ComplexTypes");
|
|
|
|
|
|
|
|
QCOMPARE( QVariant(sc3.readEntry( "colorEntry1", QColor(Qt::black) )).toString(),
|
|
|
|
QVariant(COLORENTRY1).toString() );
|
|
|
|
QCOMPARE( sc3.readEntry( "colorEntry1", QColor() ), COLORENTRY1 );
|
|
|
|
QCOMPARE( sc3.readEntry( "colorEntry2", QColor() ), COLORENTRY2 );
|
|
|
|
QCOMPARE( sc3.readEntry( "colorEntry3", QColor() ), COLORENTRY3 );
|
|
|
|
QCOMPARE( sc3.readEntry( "colorEntry4", QColor() ), COLORENTRY2 );
|
|
|
|
QCOMPARE( sc3.readEntry( "defaultColorTest", QColor("black") ), QColor("black") );
|
|
|
|
QCOMPARE( sc3.readEntry( "fontEntry", QFont() ), FONTENTRY );
|
|
|
|
}
|
|
|
|
|
|
|
|
void KConfigTest::testInvalid()
|
|
|
|
{
|
|
|
|
KConfig sc( "kconfigtest" );
|
|
|
|
|
|
|
|
// all of these should print a message to the kdebug.dbg file
|
|
|
|
KConfigGroup sc3(&sc, "InvalidTypes" );
|
|
|
|
|
|
|
|
QList<int> list;
|
|
|
|
|
|
|
|
// 1 element list
|
|
|
|
list << 1;
|
|
|
|
sc3.writeEntry( QString("badList"), list);
|
|
|
|
sc.sync();
|
|
|
|
|
|
|
|
QVERIFY( sc3.readEntry( "badList", QColor() ) == QColor() );
|
|
|
|
|
|
|
|
// 2 element list
|
|
|
|
list << 2;
|
|
|
|
sc3.writeEntry( "badList", list);
|
|
|
|
sc.sync();
|
|
|
|
|
|
|
|
QVERIFY( sc3.readEntry( "badList", QColor() ) == QColor() );
|
|
|
|
|
|
|
|
// 3 element list
|
|
|
|
list << 303;
|
|
|
|
sc3.writeEntry( "badList", list);
|
|
|
|
sc.sync();
|
|
|
|
|
|
|
|
QVERIFY( sc3.readEntry( "badList", QColor() ) == QColor() ); // out of bounds
|
|
|
|
|
|
|
|
// 4 element list
|
|
|
|
list << 4;
|
|
|
|
sc3.writeEntry( "badList", list );
|
|
|
|
sc.sync();
|
|
|
|
|
|
|
|
QVERIFY( sc3.readEntry( "badList", QColor() ) == QColor() ); // out of bounds
|
|
|
|
|
|
|
|
list[2] = -3;
|
|
|
|
sc3.writeEntry( "badList", list ); sc.sync();
|
|
|
|
QVERIFY( sc3.readEntry( "badList", QColor() ) == QColor() ); // out of bounds
|
|
|
|
|
|
|
|
// 5 element list
|
|
|
|
list[2] = 3;
|
|
|
|
list << 5;
|
|
|
|
sc3.writeEntry( "badList", list);
|
|
|
|
sc.sync();
|
|
|
|
|
|
|
|
QVERIFY( sc3.readEntry( "badList", QColor() ) == QColor() );
|
|
|
|
|
|
|
|
// 6 element list
|
|
|
|
list << 6;
|
|
|
|
sc3.writeEntry( "badList", list);
|
|
|
|
sc.sync();
|
|
|
|
|
|
|
|
QVERIFY( sc3.readEntry( "badList", QColor() ) == QColor() );
|
|
|
|
}
|