[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