[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: KDE/kdelibs
From: David Faure <faure () kde ! org>
Date: 2010-12-09 21:03:54
Message-ID: 20101209210354.EA6E5AC8A6 () svn ! kde ! org
[Download RAW message or body]
SVN commit 1204965 by dfaure:
Fix ktimezonewidget_unittest so that it works without kdebase installed, by sharing
the local-zone-tab code with kdecore's ktimezonestest
M +6 -66 kdecore/tests/ktimezonestest.cpp
A kdecore/tests/ktimezonestest_p.h [License: UNKNOWN]
M +30 -12 kdeui/tests/ktimezonewidget_unittest.cpp
--- trunk/KDE/kdelibs/kdecore/tests/ktimezonestest.cpp #1204964:1204965
@@ -25,84 +25,24 @@
#include "config.h" // for HAVE_TM_GMTOFF
#include "ksystemtimezone.h"
#include "ktzfiletimezone.h"
+#include "ktimezonestest_p.h"
#include "ktimezonestest.moc"
-#include <kconfiggroup.h>
QTEST_KDEMAIN_CORE(KTimeZonesTest)
+TimeZoneTestData s_testData;
+
void KTimeZonesTest::initTestCase()
{
- cleanupTestCase();
-
- mDataDir = QDir::homePath() + "/.kde-unit-test/ktimezonestest";
- QVERIFY(QDir().mkpath(mDataDir));
- writeZoneTab(false);
- QDir dir(mDataDir);
- QVERIFY(dir.mkdir("Africa"));
- QFile::copy(QString::fromLatin1(KDESRCDIR) + QLatin1String("/Cairo"), mDataDir + \
QLatin1String("/Africa/Cairo"));
- QVERIFY(dir.mkdir("America"));
- QFile::copy(QString::fromLatin1(KDESRCDIR) + QLatin1String("/Los_Angeles"), \
mDataDir + QLatin1String("/America/Los_Angeles"));
- QVERIFY(dir.mkdir("Asia"));
- QFile::copy(QString::fromLatin1(KDESRCDIR) + QLatin1String("/Dili"), mDataDir + \
QLatin1String("/Asia/Dili"));
- QVERIFY(dir.mkdir("Europe"));
- QFile::copy(QString::fromLatin1(KDESRCDIR) + QLatin1String("/Berlin"), mDataDir \
+ QLatin1String("/Europe/Berlin"));
- QFile::copy(QString::fromLatin1(KDESRCDIR) + QLatin1String("/London"), mDataDir \
+ QLatin1String("/Europe/London"));
- QFile::copy(QString::fromLatin1(KDESRCDIR) + QLatin1String("/Paris"), mDataDir + \
QLatin1String("/Europe/Paris"));
-
- KConfig config("ktimezonedrc");
- KConfigGroup group(&config, "TimeZones");
- group.writeEntry("ZoneinfoDir", mDataDir);
- group.writeEntry("Zonetab", mDataDir + QString::fromLatin1("/zone.tab"));
- group.writeEntry("LocalZone", QString::fromLatin1("Europe/Paris"));
- config.sync();
+ s_testData.setupTimeZoneTest(); // see ktimezonestest_p.h
+ mDataDir = s_testData.dataDir();
}
void KTimeZonesTest::cleanupTestCase()
{
- removeDir(QLatin1String("ktimezonestest/Africa"));
- removeDir(QLatin1String("ktimezonestest/America"));
- removeDir(QLatin1String("ktimezonestest/Asia"));
- removeDir(QLatin1String("ktimezonestest/Europe"));
- removeDir(QLatin1String("ktimezonestest"));
- removeDir(QLatin1String("share/config"));
- QDir().rmpath(QDir::homePath() + "/.kde-unit-test/share");
+ cleanupTimeZoneTest();
}
-void KTimeZonesTest::writeZoneTab(bool testcase)
-{
- QFile f;
- f.setFileName(mDataDir + QLatin1String("/zone.tab"));
- f.open(QIODevice::WriteOnly);
- QTextStream fStream(&f);
- if (testcase)
- fStream << "DE +5230+01322 Europe/Berlin\n"
- "EG +3003+03115 Africa/Cairo\n"
- "FR +4852+00220 Europe/Paris\n"
- "XX -512830+0001845 Europe/London Greater Britain\n"
- "TL -0833+12535 Asia/Dili\n"
- "US +340308-1181434 America/Los_Angeles Pacific Time\n";
- else
- fStream << "EG +3003+03115 Africa/Cairo\n"
- "FR +4852+00220 Europe/Paris\n"
- "GB +512830-0001845 Europe/London Great Britain\n"
- "US +340308-1181434 America/Los_Angeles Pacific Time\n";
- f.close();
-}
-
-void KTimeZonesTest::removeDir(const QString &subdir)
-{
- QDir local = QDir::homePath() + QLatin1String("/.kde-unit-test/") + subdir;
- 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();
- QString subd = subdir;
- subd.remove(QRegExp("^.*/"));
- local.rmpath(subd);
-}
-
-
///////////////////
// KTimeZones tests
///////////////////
--- trunk/KDE/kdelibs/kdeui/tests/ktimezonewidget_unittest.cpp #1204964:1204965
@@ -21,12 +21,27 @@
#include <ktimezonewidget.h>
#include <kconfiggroup.h>
#include <QtDBus/QtDBus>
+#include "../../kdecore/tests/ktimezonestest_p.h"
class KTimeZoneWidgetTest : public QObject
{
Q_OBJECT
+public:
+ void init() { initTestCase(); }
+
private Q_SLOTS:
+
+ void initTestCase()
+ {
+ mTestData.setupTimeZoneTest(); // see ktimezonestest_p.h
+ }
+
+ void cleanupTestCase()
+ {
+ mTestData.cleanupTimeZoneTest();
+ }
+
void testSetSelected()
{
if (!QDBusConnection::sessionBus().interface()->isServiceRegistered("org.kde.kded")) \
{ @@ -39,9 +54,9 @@
// Single selection mode (default)
QVERIFY(tzw.selectionMode() == KTimeZoneWidget::SingleSelection);
- tzw.setSelected("Europe/Zurich", true);
+ tzw.setSelected("Europe/Paris", true);
QCOMPARE(tzw.selectedItems().count(), 1);
- QCOMPARE(tzw.selection(), QStringList() << "Europe/Zurich");
+ QCOMPARE(tzw.selection(), QStringList() << "Europe/Paris");
tzw.setSelected("Africa/Cairo", true);
QCOMPARE(tzw.selectedItems().count(), 1);
QCOMPARE(tzw.selection(), QStringList() << "Africa/Cairo");
@@ -53,16 +68,16 @@
tzw.setSelected("Europe/Paris", true);
QCOMPARE(tzw.selectedItems().count(), 1);
QCOMPARE(tzw.selection(), QStringList() << "Europe/Paris");
- tzw.setSelected("America/New_York", true);
+ tzw.setSelected("America/Los_Angeles", true);
QCOMPARE(tzw.selectedItems().count(), 2);
- QCOMPARE(tzw.selection(), QStringList() << "America/New_York" << \
"Europe/Paris"); + QCOMPARE(tzw.selection(), QStringList() << \
"America/Los_Angeles" << "Europe/Paris"); }
void testCheckableItems()
{
- if (!QDBusConnection::sessionBus().interface()->isServiceRegistered("org.kde.kded")) \
{
- QSKIP("kded not running", SkipSingle);
- }
+ //if (!QDBusConnection::sessionBus().interface()->isServiceRegistered("org.kde.kded")) \
{ + // QSKIP("kded not running", SkipSingle);
+ //}
KTimeZoneWidget tzw;
tzw.setItemsCheckable(true);
@@ -72,9 +87,9 @@
// Single selection mode (default)
QVERIFY(tzw.selectionMode() == KTimeZoneWidget::SingleSelection);
- tzw.setSelected("Europe/Zurich", true);
+ tzw.setSelected("Europe/Paris", true);
QCOMPARE(tzw.selectedItems().count(), 0); // it got checked, not selected
- QCOMPARE(tzw.selection(), QStringList() << "Europe/Zurich");
+ QCOMPARE(tzw.selection(), QStringList() << "Europe/Paris");
tzw.setSelected("Africa/Cairo", true);
QCOMPARE(tzw.selection(), QStringList() << "Africa/Cairo");
@@ -83,9 +98,11 @@
tzw.clearSelection();
tzw.setSelected("Europe/Paris", true);
QCOMPARE(tzw.selection(), QStringList() << "Europe/Paris");
- tzw.setSelected("America/New_York", true);
- QCOMPARE(tzw.selection(), QStringList() << "America/New_York" << \
"Europe/Paris"); + tzw.setSelected("America/Los_Angeles", true);
+ QCOMPARE(tzw.selection(), QStringList() << "America/Los_Angeles" << \
"Europe/Paris"); }
+private:
+ TimeZoneTestData mTestData;
};
// Tricky problem. The kded module writes out a config file, but unit tests have
@@ -104,7 +121,9 @@
QApplication app( argc, argv );
app.setApplicationName( "ktimezonewidgettest" );
+ KTimeZoneWidgetTest tc;
#if 0
+ tc.init();
KTimeZoneWidget tzw;
tzw.setItemsCheckable(true);
tzw.setSelectionMode(KTimeZoneWidget::MultiSelection);
@@ -112,7 +131,6 @@
tzw.show();
return app.exec();
#else
- KTimeZoneWidgetTest tc;
return QTest::qExec( &tc, argc, argv );
#endif
}
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic