[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    [publictransport] /: Fix building test
From:       Friedrich_Karl_Tilman_Pülz <fpuelz () gmx ! de>
Date:       2012-11-30 20:36:57
Message-ID: 20121130203657.8EF1FA60D4 () git ! kde ! org
[Download RAW message or body]

Git commit 3d8dab2416b10667e470962f6c9707932911d565 by Friedrich Karl Tilman Pülz.
Committed on 27/11/2012 at 22:20.
Pushed by fkpulz into branch 'master'.

Fix building test

Add dependencies to timetablemate/plasma_engine_publictransport
for tests to ensure all needed files are generated.
Update to changes in the engine/libpublictransporthelper,
disable tests for removed providers. Show the failing provider
in ServiceProviderTest.

M  +4    -2    engine/tests/CMakeLists.txt
M  +5    -14   engine/tests/DeparturesTest.cpp
M  +7    -4    engine/tests/GeneralTransitTest.cpp
M  +4    -4    engine/tests/ScriptApiTest.cpp
M  +43   -34   engine/tests/ServiceProvidersTest.cpp
M  +6    -0    engine/tests/ServiceProvidersTest.h
M  +17   -28   engine/tests/StopSuggestionsTest.cpp
M  +24   -24   engine/timetablemate/src/CMakeLists.txt
M  +34   -10   engine/timetablemate/src/tests/CMakeLists.txt
M  +14   -2    engine/timetablemate/src/tests/DebuggerTest.cpp
M  +2    -8    libpublictransporthelper/tests/PublicTransportHelperTest.cpp

http://commits.kde.org/publictransport/3d8dab2416b10667e470962f6c9707932911d565

diff --git a/engine/tests/CMakeLists.txt b/engine/tests/CMakeLists.txt
index 90830a2..f02ae37 100644
--- a/engine/tests/CMakeLists.txt
+++ b/engine/tests/CMakeLists.txt
@@ -31,7 +31,9 @@ add_executable( StopSuggestionsTest ${StopSuggestionsTest_SRCS} )
 add_test( StopSuggestionsTest StopSuggestionsTest )
 target_link_libraries( StopSuggestionsTest ${QT_QTTEST_LIBRARY} ${KDE4_PLASMA_LIBS} \
)  
-set( DeparturesTest_SRCS DeparturesTest.cpp )
+qt4_wrap_cpp( engine_tests_MOC_SRCS ../enums.h )
+
+set( DeparturesTest_SRCS DeparturesTest.cpp ${engine_tests_MOC_SRCS}  )
 qt4_automoc( ${DeparturesTest_SRCS} )
 add_executable( DeparturesTest ${DeparturesTest_SRCS} )
 add_test( DeparturesTest DeparturesTest )
@@ -44,7 +46,7 @@ set( ScriptApiTest_SRCS
    ../serviceproviderglobal.cpp
    ../departureinfo.cpp
    ../script/scripting.cpp
-    ${publictransport_engine_MOC_SRCS} )
+    ${engine_tests_MOC_SRCS} )
 qt4_automoc( ${ScriptApiTest_SRCS} )
 add_executable( ScriptApiTest ${ScriptApiTest_SRCS} )
 add_test( ScriptApiTest ScriptApiTest )
diff --git a/engine/tests/DeparturesTest.cpp b/engine/tests/DeparturesTest.cpp
index ef1292c..17d325f 100644
--- a/engine/tests/DeparturesTest.cpp
+++ b/engine/tests/DeparturesTest.cpp
@@ -69,9 +69,6 @@ void testDepartureData( const TestVisualization &testVisualization, \
const QStrin  QVERIFY( departure.contains("Target") );
         QVERIFY( departure.contains("TransportLine") );
         QVERIFY( departure.contains("TypeOfVehicle") );
-        QVERIFY( departure.contains("VehicleName") );
-        QVERIFY( departure.contains("VehicleNamePlural") );
-        QVERIFY( departure.contains("VehicleIconName") );
     // 		QVERIFY( departureData.contains("journeyNews") ); // NOTE These values are \
only given if they are not empty  // 		QVERIFY( departureData.contains("platform") );
     // 		QVERIFY( departureData.contains("operator") );
@@ -86,9 +83,6 @@ void testDepartureData( const TestVisualization &testVisualization, \
const QStrin  QVERIFY( departure["Target"].canConvert(QVariant::String) );
         QVERIFY( departure["TransportLine"].canConvert(QVariant::String) );
         QVERIFY( departure["TypeOfVehicle"].canConvert(QVariant::Int) );
-        QVERIFY( departure["VehicleName"].canConvert(QVariant::String) );
-        QVERIFY( departure["VehicleNamePlural"].canConvert(QVariant::String) );
-        QVERIFY( departure["VehicleIconName"].canConvert(QVariant::String) );
         QVERIFY( departure["Delay"].canConvert(QVariant::Int) );
 //         QVERIFY( departure["RouteExactStops"].canConvert(QVariant::Int) );
         if ( departure.contains("JourneyNews") ) {
@@ -164,19 +158,16 @@ void DeparturesTest::departuresTest_data()
     QTest::newRow("de_fahrplaner") << "de_fahrplaner" << QString() << "Bremen Hbf";
     QTest::newRow("de_nasa") << "de_nasa" << QString() << "Kirkel Bahnhof";
     QTest::newRow("de_rmv") << "de_rmv" << QString() << "3000511"; // ID for \
                "Frankfurt (Main) Zoo"
-    QTest::newRow("de_vvs") << "de_vvs" << "Stuttgart" << "Herrenberg";
+//     QTest::newRow("de_vvs") << "de_vvs" << "Stuttgart" << "Herrenberg";
     QTest::newRow("dk_rejseplanen") << "dk_rejseplanen" << QString() << "Oslovej / \
                Ringvejen";
-    QTest::newRow("fr_gares") << "fr_gares" << QString() << "frlpd"; // Only takes \
stop IDs +//     QTest::newRow("fr_gares") << "fr_gares" << QString() << "frlpd"; // \
                Only takes stop IDs
     QTest::newRow("it_cup2000") << "it_cup2000" << QString() << "Roma - Bologna";
     QTest::newRow("it_orario") << "it_orario" << QString() << "Genova";
     QTest::newRow("pl_pkp") << "pl_pkp" << QString() << "Warszawa Centralna";
-    QTest::newRow("sk_atlas") << "sk_atlas" << "bratislava" << \
                QString::fromUtf8("Bradáčova");
-    QTest::newRow("sk_imhd") << "sk_imhd" << "bratislava" << "Nobelova";
+//     QTest::newRow("sk_atlas") << "sk_atlas" << "bratislava" << \
QString::fromUtf8("Bradáčova"); +//     QTest::newRow("sk_imhd") << "sk_imhd" << \
                "bratislava" << "Nobelova";
     QTest::newRow("us_septa") << "us_septa" << QString() << "Pennsylvania Park Av";
     QTest::newRow("international_flightstats") << "international_flightstats" << \
                QString() << "BRE";
-    // 19 service provider plugins tested, not tested:
-    //   at_oebb (needs a script instead of only regexps),
-    //   de_vrn (new departure urls are only for specific lines...)
 }
 
 void DeparturesTest::departuresTest()
@@ -268,7 +259,7 @@ void DeparturesTest::departuresTimeOffsetTest()
     QFETCH(int, timeOffset);
 
     // Connect source and wait until the dataUpdated slot gets called in \
                testVisualization
-    QString sourceName = QString("Departures %1|stop=%2|timeOffset=%3")
+    QString sourceName = QString("Departures %1|stop=%2|timeoffset=%3")
             .arg(serviceProvider).arg(stopName).arg(timeOffset);
     QEventLoop loop;
     TestVisualization testVisualization;
diff --git a/engine/tests/GeneralTransitTest.cpp \
b/engine/tests/GeneralTransitTest.cpp index 1569307..763aa6b 100644
--- a/engine/tests/GeneralTransitTest.cpp
+++ b/engine/tests/GeneralTransitTest.cpp
@@ -19,12 +19,14 @@
 
 #include "GeneralTransitTest.h"
 
-#include <QtTest/QTest>
 #include "gtfs/gtfsimporter.h"
+#include <KGlobal>
+#include <QtTest/QTest>
 
 void GeneralTransitTest::init()
 {
-
+    // Initialize for i18n
+    KGlobal::locale();
 }
 
 void GeneralTransitTest::cleanup()
@@ -44,8 +46,9 @@ void GeneralTransitTest::cleanupTestCase()
 
 void GeneralTransitTest::readGtfsDataTest()
 {
-    // Expects that the test is started from path engine/build/tests/
-    const QString fileName( "../../tests/sample-feed.zip" );
+    // Expects that the test is started from path build/engine/tests/,
+    // sample-feed.zip is in the source corresponding directory
+    const QString fileName( "../../../engine/tests/sample-feed.zip" );
 
     GtfsImporter importer( "sample_gtfs" );
     importer.startImport( fileName );
diff --git a/engine/tests/ScriptApiTest.cpp b/engine/tests/ScriptApiTest.cpp
index ac35e32..8622885 100644
--- a/engine/tests/ScriptApiTest.cpp
+++ b/engine/tests/ScriptApiTest.cpp
@@ -869,7 +869,7 @@ void ScriptApiTest::networkAsynchronousTest()
 
     // Wait for asynchronous download to finish
     QEventLoop loop( this );
-    connect( request, SIGNAL(finished(QByteArray,int,int)), &loop, SLOT(quit()) );
+    connect( request, SIGNAL(finished()), &loop, SLOT(quit()) );
     network.head( request ); // Use head() to save network bandwidth
     loop.exec();
 
@@ -899,7 +899,7 @@ void ScriptApiTest::networkAsynchronousAbortTest()
     // Start asynchronous download and wait for it to finish,
     // but directly abort the download
     QEventLoop loop( this );
-    connect( request, SIGNAL(finished(QByteArray,int,int)), &loop, SLOT(quit()) );
+    connect( request, SIGNAL(finished()), &loop, SLOT(quit()) );
     network.head( request ); // Use head() to save network bandwidth
     QTimer::singleShot( 50, request, SLOT(abort()) );
     loop.exec();
@@ -932,8 +932,8 @@ void ScriptApiTest::networkAsynchronousMultipleTest()
 
     // Start two asynchronous downloads and wait for both to finish
     QEventLoop loop(this);
-    connect( request1, SIGNAL(finished(QByteArray,int,int)), &loop, SLOT(quit()) );
-    connect( request2, SIGNAL(finished(QByteArray,int,int)), &loop, SLOT(quit()) );
+    connect( request1, SIGNAL(finished()), &loop, SLOT(quit()) );
+    connect( request2, SIGNAL(finished()), &loop, SLOT(quit()) );
     network.head( request1 ); // Use head() to save network bandwidth
     network.head( request2 );
 
diff --git a/engine/tests/ServiceProvidersTest.cpp \
b/engine/tests/ServiceProvidersTest.cpp index 0ba934a..7b1484f 100644
--- a/engine/tests/ServiceProvidersTest.cpp
+++ b/engine/tests/ServiceProvidersTest.cpp
@@ -56,52 +56,61 @@ void ServiceProvidersTest::serviceProviderTest()
 
     QRegExp regExpServiceProviderId( "([a-z]*)_[a-z*]" );
     QRegExp regExpVersion( "[0-9]+(\\.[0-9]*)*" );
-    foreach ( const QString &serviceProvider, testVisualization.data.keys() )
-    {
+    foreach ( const QString &serviceProvider, testVisualization.data.keys() ) {
         QVariantHash serviceProviderData = \
testVisualization.data[serviceProvider].toHash();  
         // Each service provider object should contain some elements
-        QVERIFY( !serviceProviderData.isEmpty() );
+        QVERIFY2( !serviceProviderData.isEmpty(), qPrintable(serviceProvider) );
 
         // Ensure that these keys are in the hash
-        QVERIFY( serviceProviderData.contains("id") );
-        QVERIFY( serviceProviderData.contains("country") );
-        QVERIFY( serviceProviderData.contains("name") );
-        QVERIFY( serviceProviderData.contains("description") );
+        QVERIFY2( serviceProviderData.contains("id"), qPrintable(serviceProvider) );
+        QVERIFY2( serviceProviderData.contains("type"), qPrintable(serviceProvider) \
); +        QVERIFY2( serviceProviderData.contains("country"), \
qPrintable(serviceProvider) ); +        QVERIFY2( \
serviceProviderData.contains("name"), qPrintable(serviceProvider) ); +        \
QVERIFY2( serviceProviderData.contains("description"), qPrintable(serviceProvider) ); \
  // Test data types
-        QVERIFY( serviceProviderData["id"].canConvert(QVariant::String) );
-        QVERIFY( serviceProviderData["country"].canConvert(QVariant::String) );
-        QVERIFY( serviceProviderData["name"].canConvert(QVariant::String) );
-        QVERIFY( serviceProviderData["description"].canConvert(QVariant::String) );
-        QVERIFY( serviceProviderData["features"].canConvert(QVariant::StringList) );
-        QVERIFY( serviceProviderData["featureNames"].canConvert(QVariant::StringList) \
                );
-        QVERIFY( serviceProviderData["email"].canConvert(QVariant::String) );
-        QVERIFY( serviceProviderData["author"].canConvert(QVariant::String) );
-        QVERIFY( serviceProviderData["fileName"].canConvert(QVariant::String) );
-        QVERIFY( serviceProviderData["scriptFileName"].canConvert(QVariant::String) \
                );
-        QVERIFY( serviceProviderData["onlyUseCitiesInList"].canConvert(QVariant::Bool) \
                );
-        QVERIFY( serviceProviderData["cities"].canConvert(QVariant::StringList) );
-        QVERIFY( serviceProviderData["url"].canConvert(QVariant::String) );
-        QVERIFY( serviceProviderData["shortUrl"].canConvert(QVariant::String) );
-        QVERIFY( serviceProviderData["credit"].canConvert(QVariant::String) );
-        QVERIFY( serviceProviderData["version"].canConvert(QVariant::String) );
-
-        QVERIFY( QUrl(serviceProviderData["url"].toString()).isValid() );
-        QVERIFY( QUrl(serviceProviderData["shortUrl"].toString()).isValid() );
+        QVERIFY2( serviceProviderData["id"].canConvert(QVariant::String), \
qPrintable(serviceProvider) ); +        QVERIFY2( \
serviceProviderData["type"].canConvert(QVariant::String), qPrintable(serviceProvider) \
); +        QVERIFY2( serviceProviderData["country"].canConvert(QVariant::String), \
qPrintable(serviceProvider) ); +        QVERIFY2( \
serviceProviderData["name"].canConvert(QVariant::String), qPrintable(serviceProvider) \
); +        QVERIFY2( \
serviceProviderData["description"].canConvert(QVariant::String), \
qPrintable(serviceProvider) ); +        QVERIFY2( \
serviceProviderData["features"].canConvert(QVariant::StringList), \
qPrintable(serviceProvider) ); +        QVERIFY2( \
serviceProviderData["featureNames"].canConvert(QVariant::StringList), \
qPrintable(serviceProvider) ); +        QVERIFY2( \
serviceProviderData["email"].canConvert(QVariant::String), \
qPrintable(serviceProvider) ); +        QVERIFY2( \
serviceProviderData["author"].canConvert(QVariant::String), \
qPrintable(serviceProvider) ); +        QVERIFY2( \
serviceProviderData["fileName"].canConvert(QVariant::String), \
qPrintable(serviceProvider) ); +        QVERIFY2( \
serviceProviderData["onlyUseCitiesInList"].canConvert(QVariant::Bool), \
qPrintable(serviceProvider) ); +        QVERIFY2( \
serviceProviderData["cities"].canConvert(QVariant::StringList), \
qPrintable(serviceProvider) ); +        QVERIFY2( \
serviceProviderData["url"].canConvert(QVariant::String), qPrintable(serviceProvider) \
); +        QVERIFY2( serviceProviderData["shortUrl"].canConvert(QVariant::String), \
qPrintable(serviceProvider) ); +        QVERIFY2( \
serviceProviderData["credit"].canConvert(QVariant::String), \
qPrintable(serviceProvider) ); +        QVERIFY2( \
serviceProviderData["version"].canConvert(QVariant::String), \
qPrintable(serviceProvider) ); +
+        QVERIFY2( QUrl(serviceProviderData["url"].toString()).isValid(), \
qPrintable(serviceProvider) ); +        QVERIFY2( \
QUrl(serviceProviderData["shortUrl"].toString()).isValid(), \
qPrintable(serviceProvider) ); +
+        const QString type = serviceProviderData["type"].toString();
+        if ( type == QLatin1String("GTFS") ) {
+            QVERIFY2( serviceProviderData["feedUrl"].canConvert(QVariant::String), \
qPrintable(serviceProvider) ); +            QVERIFY2( \
QUrl(serviceProviderData["feedUrl"].toString()).isValid(), \
qPrintable(serviceProvider) ); +        } else if ( type == QLatin1String("Scripted") \
) { +            QVERIFY2( \
serviceProviderData["scriptFileName"].canConvert(QVariant::String), \
qPrintable(serviceProvider) ); +        }
 
         // Ensure the id has correct format
         QString id = serviceProviderData["id"].toString();
         int pos = regExpServiceProviderId.indexIn( id );
-        QVERIFY2( pos != -1, QString("The service provider ID \"%1\" has a wrong \
                format, "
-                "should be \"<country_code>_<short_a-z_name>\", all \
lowercase").arg(id).toLatin1().data() ); +        QVERIFY2( pos != -1, \
qPrintable(QString("The service provider ID \"%1\" has a wrong format, " +            \
"should be \"<country_code>_<short_a-z_name>\", all lowercase").arg(id)) );  
         // Ensure that the used country code in the id is known
         QString countryCode = regExpServiceProviderId.cap( 1 );
         QVERIFY2( KGlobal::locale()->allCountriesList().contains(countryCode)
             || countryCode == QLatin1String("international") || countryCode == \
QLatin1String("unknown")  || countryCode == QLatin1String("erroneous"),
-            QString("Invalid country code \
\"%1\"").arg(countryCode).toLatin1().data() ); +            \
qPrintable(QString("Invalid country code \"%1\" for %2") +            \
.arg(countryCode, serviceProvider)) );  
         // Ensure the country key contains the same country code as the id
         QCOMPARE( countryCode, serviceProviderData["country"].toString() );
@@ -109,17 +118,17 @@ void ServiceProvidersTest::serviceProviderTest()
         // Ensure the version string has correct format
         QString version = serviceProviderData["version"].toString();
         QVERIFY2( regExpVersion.indexIn(version) != -1,
-                  QString("Invalid version format \"%1\" for \"%2\"")
-                  .arg(version).arg(id).toLatin1().data() );
+                  qPrintable(QString("Invalid version format \"%1\" for \"%2\"")
+                  .arg(version).arg(id)) );
 
         // Ensure the xml file exists
-        QVERIFY( QFile::exists(serviceProviderData["fileName"].toString()) );
+        QVERIFY2( QFile::exists(serviceProviderData["fileName"].toString()), \
qPrintable(serviceProvider) );  
         // Ensure that there are cities in the list, if only those cities should be \
used  if ( serviceProviderData["onlyUseCitiesInList"].toBool() ) {
             QVERIFY2( !serviceProviderData["cities"].toStringList().isEmpty(),
-                      "The \"cities\" key should contain city names if the \
                \"onlyUseCitiesInList\" "
-                      "key is true" );
+                      qPrintable(QString("The \"cities\" key should contain city \
names if the " +                      "\"onlyUseCitiesInList\" key is true for \
provider %1").arg(serviceProvider)) );  }
     }
     m_publicTransportEngine->disconnectSource( sourceName, this );
diff --git a/engine/tests/ServiceProvidersTest.h \
b/engine/tests/ServiceProvidersTest.h index 4858764..7690774 100644
--- a/engine/tests/ServiceProvidersTest.h
+++ b/engine/tests/ServiceProvidersTest.h
@@ -46,6 +46,12 @@ public:
     Plasma::DataEngine::Data data;
 };
 
+/**
+ * @brief Test the "ServiceProviders" data source of the PublicTransport data \
engine. + *
+ * Tests for valid provider data.
+ * @warning The data engine needs to be installed first.
+ */
 class ServiceProvidersTest : public QObject
 {
     Q_OBJECT
diff --git a/engine/tests/StopSuggestionsTest.cpp \
b/engine/tests/StopSuggestionsTest.cpp index cdfc679..34c47d9 100644
--- a/engine/tests/StopSuggestionsTest.cpp
+++ b/engine/tests/StopSuggestionsTest.cpp
@@ -52,28 +52,25 @@ void StopSuggestionsTest::stopSuggestionTest_data()
 
     // 21 service provider plugins
     QTest::newRow("at_oebb") << "at_oebb" << QString() << "Wien" << true << true;
-//     QTest::newRow("be_brail") << "be_brail" << QString() << "Brüssel" << true << \
                false;
-//     QTest::newRow("ch_sbb") << "ch_sbb" << QString() << "Bern" << true << false;
-//     QTest::newRow("cz_idnes") << "cz_idnes" << "Brno" << "Technolog" << false << \
                false;
-//     QTest::newRow("de_bvg") << "de_bvg" << QString() << "Alexander" << false << \
                false;
-//     QTest::newRow("de_db") << "de_db" << QString() << "Bremen Hbf" << true << \
                true;
-//     QTest::newRow("de_dvb") << "de_dvb" << QString() << "Hauptbahnhof" << false \
                << false;
-//     QTest::newRow("de_fahrplaner") << "de_fahrplaner" << QString() << "Bremen \
                Hbf" << true << false;
-//     QTest::newRow("de_nasa") << "de_nasa" << QString() << "Kirkel" << false << \
                false;
-//     QTest::newRow("de_rmv") << "de_rmv" << QString() << "Frankfurt" << false << \
                false;
-// //     QTest::newRow("de_vvs") << "de_vvs" << "Stuttgart" << "Herren" << false << \
                false; // Doesn't support stop suggestions
-//     QTest::newRow("dk_rejseplanen") << "dk_rejseplanen" << QString() << "Oslovej" \
<< false << false; +    QTest::newRow("be_brail") << "be_brail" << QString() << \
"Brüssel" << true << false; +    QTest::newRow("ch_sbb") << "ch_sbb" << QString() << \
"Bern" << true << false; +    QTest::newRow("cz_idnes") << "cz_idnes" << "Brno" << \
"Technolog" << false << false; +    QTest::newRow("de_bvg") << "de_bvg" << QString() \
<< "Alexander" << false << false; +    QTest::newRow("de_db") << "de_db" << QString() \
<< "Bremen Hbf" << true << true; +    QTest::newRow("de_dvb") << "de_dvb" << \
QString() << "Hauptbahnhof" << false << false; +    QTest::newRow("de_fahrplaner") << \
"de_fahrplaner" << QString() << "Bremen Hbf" << true << false; +    \
QTest::newRow("de_nasa") << "de_nasa" << QString() << "Kirkel" << false << false; +   \
QTest::newRow("de_rmv") << "de_rmv" << QString() << "Frankfurt" << false << false; \
+//     QTest::newRow("de_vvs") << "de_vvs" << "Stuttgart" << "Herren" << false << \
false; // Doesn't support stop suggestions +    QTest::newRow("dk_rejseplanen") << \
"dk_rejseplanen" << QString() << "Oslovej" << false << false;  //     \
                QTest::newRow("fr_gares") << "fr_gares" << QString() << "Lyon" << \
                true << false;
-//     QTest::newRow("it_cup2000") << "it_cup2000" << QString() << "Roma" << false \
                << false;
-//     QTest::newRow("it_orario") << "it_orario" << QString() << "Genova" << false \
                << false;
-//     QTest::newRow("pl_pkp") << "pl_pkp" << "Brno" << "Warszawa" << false << \
false; +    QTest::newRow("it_cup2000") << "it_cup2000" << QString() << "Roma" << \
false << false; +    QTest::newRow("it_orario") << "it_orario" << QString() << \
"Genova" << false << false; +    QTest::newRow("pl_pkp") << "pl_pkp" << "Brno" << \
"Warszawa" << false << false;  //     QTest::newRow("sk_atlas") << "sk_atlas" << \
"bratislava" << "br" << true << false;  //     QTest::newRow("sk_imhd") << "sk_imhd" \
                << "bratislava" << "br" << false << false;
-//     QTest::newRow("us_septa") << "us_septa" << QString() << "Pennsyl" << true << \
                false;
-//     QTest::newRow("international_flightstats") << "international_flightstats" << \
                QString() << "Bremen" << true << false;
-    // 19 service provider plugins tested, not tested:
-    //   de_vvs (doesn't provide stop suggestions)
-    //   de_vrn (new departure urls are only for specific lines...),
+    QTest::newRow("us_septa") << "us_septa" << QString() << "Pennsyl" << true << \
false; +    QTest::newRow("international_flightstats") << "international_flightstats" \
<< QString() << "Bremen" << true << false;  }
 
 void StopSuggestionsTest::stopSuggestionTest()
@@ -84,13 +81,6 @@ void StopSuggestionsTest::stopSuggestionTest()
     QFETCH(bool, containsIDs);
     QFETCH(bool, containsWeights);
 
-    for ( int n = 0; n < 100; ++n ) {
-    QString serviceProvider = "de_db";
-    QString city;
-    QString stopName = "Bremen " + QString::number(n);
-    bool containsIDs = true;
-    bool containsWeights = true;
-
     // Connect source and wait until the dataUpdated slot gets called in \
                testVisualization
     QString sourceName = QString("Stops \
%1|stop=%2").arg(serviceProvider).arg(stopName);  if ( !city.isNull() ) {
@@ -111,7 +101,7 @@ void StopSuggestionsTest::stopSuggestionTest()
 
     // Test main keys
     QVERIFY( !testVisualization.data["error"].toBool() );
-    QVERIFY( !testVisualization.data.contains("stops") );
+    QVERIFY( testVisualization.data.contains("stops") );
     QVERIFY( testVisualization.data["updated"].canConvert(QVariant::DateTime) );
 //     QVERIFY( !testVisualization.data["serviceProvider"].toString().isEmpty() ); \
TODO  //     QVERIFY( !testVisualization.data["requestUrl"].toString().isEmpty() ); \
TODO @@ -143,7 +133,6 @@ void StopSuggestionsTest::stopSuggestionTest()
 
     QVERIFY2( !testVisualization.data.isEmpty(),
               QString("No data for source name '%1' in 5 \
                seconds").arg(sourceName).toLatin1().data() );
-    }
 }
 
 QTEST_MAIN(StopSuggestionsTest)
diff --git a/engine/timetablemate/src/CMakeLists.txt \
b/engine/timetablemate/src/CMakeLists.txt index 613324a..27beb22 100644
--- a/engine/timetablemate/src/CMakeLists.txt
+++ b/engine/timetablemate/src/CMakeLists.txt
@@ -36,6 +36,29 @@ endif ( ENABLE_DEBUGGER_JOB_SYNCHRONIZATION )
 # Create debug_config.h from debug_config.h.in, ie. create #define's for each \
enabled variable from above  configure_file( debug_config.h.in debug_config.h )
 
+# Generate completion data class files and HTML documentation from scripting.h.
+# Rerun when the source file (scripting.h) or the tool changes.
+# Put the generated class files into the binary directory
+# and the HTML documentation into the sources.
+add_custom_command( OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/javascriptcompletiongeneric.h
+                           \
${CMAKE_CURRENT_BINARY_DIR}/javascriptcompletiongeneric.cpp +                         \
${CMAKE_CURRENT_SOURCE_DIR}/../doc/index.html +                           \
${CMAKE_CURRENT_SOURCE_DIR}/../doc/helper.html +                           \
${CMAKE_CURRENT_SOURCE_DIR}/../doc/network.html +                           \
${CMAKE_CURRENT_SOURCE_DIR}/../doc/networkrequest.html +                           \
${CMAKE_CURRENT_SOURCE_DIR}/../doc/resultobject.html +                           \
${CMAKE_CURRENT_SOURCE_DIR}/../doc/storage.html +                           \
${CMAKE_CURRENT_SOURCE_DIR}/../doc/enums.html +                           \
${CMAKE_CURRENT_SOURCE_DIR}/../doc/default.css +    COMMAND \
${CMAKE_BINARY_DIR}/engine/timetablemate/completiongenerator/completiongenerator +    \
--verbose +            --out_completion ${CMAKE_CURRENT_BINARY_DIR}
+            --out_doc ${CMAKE_CURRENT_SOURCE_DIR}/../doc
+    DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/../../script/scripting.h
+            ${CMAKE_CURRENT_SOURCE_DIR}/../../enums.h
+            ${CMAKE_CURRENT_SOURCE_DIR}/../../publictransportdataengine.h
+            ${CMAKE_BINARY_DIR}/engine/timetablemate/completiongenerator/completiongenerator \
) +
 qt4_wrap_cpp( timetablemate_MOC_SRCS ../../enums.h )
 set( timetablemate_SRCS
    main.cpp
@@ -91,7 +114,7 @@ kde4_add_ui_files( timetablemate_SRCS timetablemateview_base.ui \
preferences.ui )  kde4_add_kcfg_files( timetablemate_SRCS settings.kcfgc )
 kde4_add_executable( timetablemate ${timetablemate_SRCS} )
 
-add_dependencies( timetablemate publictransporthelper )
+add_dependencies( timetablemate publictransporthelper plasma_engine_publictransport \
)  
 # Collect all needed libraries in LIBS
 set( LIBS ${KDE4_KDEUI_LIBS}
@@ -126,29 +149,6 @@ target_link_libraries( timetablemate ${LIBS} )
 
 install( TARGETS timetablemate ${INSTALL_TARGETS_DEFAULT_ARGS} )
 
-# Generate completion data class files and HTML documentation from scripting.h.
-# Rerun when the source file (scripting.h) or the tool changes.
-# Put the generated class files into the binary directory
-# and the HTML documentation into the sources.
-add_custom_command( OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/javascriptcompletiongeneric.h
-                           \
                ${CMAKE_CURRENT_BINARY_DIR}/javascriptcompletiongeneric.cpp
-                           ${CMAKE_CURRENT_SOURCE_DIR}/../doc/index.html
-                           ${CMAKE_CURRENT_SOURCE_DIR}/../doc/helper.html
-                           ${CMAKE_CURRENT_SOURCE_DIR}/../doc/network.html
-                           ${CMAKE_CURRENT_SOURCE_DIR}/../doc/networkrequest.html
-                           ${CMAKE_CURRENT_SOURCE_DIR}/../doc/resultobject.html
-                           ${CMAKE_CURRENT_SOURCE_DIR}/../doc/storage.html
-                           ${CMAKE_CURRENT_SOURCE_DIR}/../doc/enums.html
-                           ${CMAKE_CURRENT_SOURCE_DIR}/../doc/default.css
-    COMMAND ${CMAKE_BINARY_DIR}/engine/timetablemate/completiongenerator/completiongenerator
                
-            --verbose
-            --out_completion ${CMAKE_CURRENT_BINARY_DIR}
-            --out_doc ${CMAKE_CURRENT_SOURCE_DIR}/../doc
-    DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/../../script/scripting.h
-            ${CMAKE_CURRENT_SOURCE_DIR}/../../enums.h
-            ${CMAKE_CURRENT_SOURCE_DIR}/../../publictransportdataengine.h
-            ${CMAKE_BINARY_DIR}/engine/timetablemate/completiongenerator/completiongenerator \
                )
-
 # Add unit tests
 if ( BUILD_TESTS )
     add_subdirectory( tests )
diff --git a/engine/timetablemate/src/tests/CMakeLists.txt \
b/engine/timetablemate/src/tests/CMakeLists.txt index 0bd42de..8b376e6 100644
--- a/engine/timetablemate/src/tests/CMakeLists.txt
+++ b/engine/timetablemate/src/tests/CMakeLists.txt
@@ -30,8 +30,11 @@ if ( BUILD_PROVIDER_TYPE_SCRIPT )
     target_link_libraries( JavaScriptParserTest
         ${QT_QTTEST_LIBRARY} ${QT_QTGUI_LIBRARY} ${KDE4_KDECORE_LIBS} )
 
+    # Needed to have javascriptcompletiongeneric.h/.cpp generated before building \
the test +    add_dependencies( JavaScriptParserTest timetablemate \
plasma_engine_publictransport ) +
     # Run moc manually, alternatively add #include "moc_foo.cpp" to the end of the \
                source files
-    qt4_wrap_cpp( timetablemate_MOC_SRCS
+    qt4_wrap_cpp( timetablemate_test_MOC_SRCS
         ../project.h
         ../projectmodel.h
         ../networkmonitormodel.h
@@ -39,14 +42,15 @@ if ( BUILD_PROVIDER_TYPE_SCRIPT )
         ../javascriptmodel.h
         ../javascriptcompletionmodel.h
         ../changelogwidget.h
+        ../linkchecker.h
 
         ../debugger/debugger.h
         ../debugger/debuggeragent.h
         ../debugger/debuggerjobs.h
         ../debugger/timetabledatarequestjob.h
         ../debugger/backtracemodel.h
-        ../debugger/variablemodel.h
         ../debugger/breakpointmodel.h
+        ../debugger/variablemodel.h
 
         ../tabs/abstracttab.h
         ../tabs/projectsourcetab.h
@@ -55,6 +59,7 @@ if ( BUILD_PROVIDER_TYPE_SCRIPT )
         ../tabs/dashboardtab.h
         ../tabs/plasmapreviewtab.h
         ../tabs/plasmapreview.h
+        ../tabs/gtfsdatabasetab.h
 
         ../../../serviceprovider.h
         ../../../serviceproviderdata.h
@@ -62,11 +67,10 @@ if ( BUILD_PROVIDER_TYPE_SCRIPT )
         ../../../script/script_thread.h
         ../../../script/serviceproviderscript.h
 
-#         ${CMAKE_CURRENT_BINARY_DIR}/../../javascriptcompletiongeneric.h
-#         ${CMAKE_CURRENT_BINARY_DIR}/../javascriptcompletiongeneric.h
-#         ${CMAKE_CURRENT_BINARY_DIR}/../javascriptcompletiongeneric.cpp
-    )
+        ../../../enums.h
 
+        ${CMAKE_CURRENT_BINARY_DIR}/../javascriptcompletiongeneric.h
+    )
     set( DebuggerTest_SRCS
         DebuggerTest.cpp
 
@@ -82,6 +86,7 @@ if ( BUILD_PROVIDER_TYPE_SCRIPT )
         ../javascriptparser.cpp
         ../projectsettingsdialog.cpp
         ../changelogwidget.cpp
+        ../linkchecker.cpp
         ../debugger/debugger.cpp
         ../debugger/debuggeragent.cpp
         ../debugger/variablemodel.cpp
@@ -98,6 +103,7 @@ if ( BUILD_PROVIDER_TYPE_SCRIPT )
         ../tabs/webtab.cpp
         ../tabs/plasmapreviewtab.cpp
         ../tabs/plasmapreview.cpp
+        ../tabs/gtfsdatabasetab.cpp
 
         # Use files directly from the data engine
         ../../../global.cpp
@@ -114,10 +120,11 @@ if ( BUILD_PROVIDER_TYPE_SCRIPT )
         ../../../script/scripting.cpp
         ../../../script/serviceproviderscript.cpp
 
+        ../../../gtfs/gtfsdatabase.cpp
+
         ${CMAKE_CURRENT_BINARY_DIR}/../javascriptcompletiongeneric.h
         ${CMAKE_CURRENT_BINARY_DIR}/../javascriptcompletiongeneric.cpp
-        ${engine_MOC_SRCS}
-        ${timetablemate_MOC_SRCS}
+        ${timetablemate_test_MOC_SRCS}
     )
     qt4_automoc( ${DebuggerTest_SRCS} )
 
@@ -127,16 +134,33 @@ if ( BUILD_PROVIDER_TYPE_SCRIPT )
         ${KDE4_KDEWEBKIT_LIBS} # For the web main view tab
         ${KDE4_PLASMA_LIBS} # For the Plasma preview main view tab
         ${KDE4_THREADWEAVER_LIBS} # For the debugger and for includes from the \
                engine
-        ${QT_QTSCRIPT_LIBRARY}
         ${QT_QTDECLARATIVE_LIBRARY} # For the dashboard main view tabs
-        ${MARBLE_LIBRARIES}
         kdeclarative # For KDeclarative, no ${KDE4_KDECLARATIVE_LIBS} available..
         publictransporthelper
         z # zlib
     )
 
+    if ( BUILD_PROVIDER_TYPE_SCRIPT )
+        set( LIBS ${LIBS} ${QT_QTSCRIPT_LIBRARY} )
+    endif ( BUILD_PROVIDER_TYPE_SCRIPT )
+
+    if ( BUILD_PROVIDER_TYPE_GTFS )
+        set( LIBS ${LIBS} ${QT_QTXML_LIBRARY} ${QT_QTSQL_LIBRARY} )
+        if ( BUILD_GTFS_REALTIME )
+            set( LIBS ${LIBS} pthread protobuf ) # pthread is needed for protobuf
+        endif ( BUILD_GTFS_REALTIME )
+    endif ( BUILD_PROVIDER_TYPE_GTFS )
+
+    if ( MARBLE_FOUND )
+        message( "     - Build with marble widgets (eg. LatLonEdit)" )
+        set ( LIBS ${LIBS} ${MARBLE_LIBRARIES} )
+    endif ( MARBLE_FOUND )
+
     add_executable( DebuggerTest ${DebuggerTest_SRCS} )
     add_test( DebuggerTest DebuggerTest )
     target_link_libraries( DebuggerTest ${LIBS} )
 
+    # Needed to have javascriptcompletiongeneric.h/.cpp generated before building \
the test +    add_dependencies( DebuggerTest timetablemate \
plasma_engine_publictransport ) +
 endif ( BUILD_PROVIDER_TYPE_SCRIPT )
diff --git a/engine/timetablemate/src/tests/DebuggerTest.cpp \
b/engine/timetablemate/src/tests/DebuggerTest.cpp index 1bc69d3..91c856d 100644
--- a/engine/timetablemate/src/tests/DebuggerTest.cpp
+++ b/engine/timetablemate/src/tests/DebuggerTest.cpp
@@ -24,6 +24,7 @@
 #include <debugger/debuggerjobs.h>
 #include <project.h>
 #include <projectmodel.h>
+#include <tabs/webtab.h>
 #include <engine/serviceproviderdatareader.h>
 #include <request.h>
 #include <serviceproviderglobal.h>
@@ -31,6 +32,10 @@
 #include <QtTest/QTest>
 #include <QTimer>
 #include <QSignalSpy>
+#include <QWebView>
+#include <KGlobal>
+#include <KStandardDirs>
+#include <KWebView>
 
 void DebuggerTest::initTestCase()
 {
@@ -161,7 +166,7 @@ void DebuggerTest::projectTestsTest()
 
     // Call testProject() twice on each project at random times
     // to try to produce rare situations where the program may crash
-    const int time = 1700;
+    const int time = 2700;
     i = 0;
     QTimer::singleShot( 0, projects[i], SLOT(testProject()) );
     QTimer::singleShot( time, projects[i++], SLOT(testProject()) );
@@ -180,6 +185,9 @@ void DebuggerTest::projectTestsTest()
     loop.exec();
 
     // Wait until testing ends
+    QTimer timeout;
+    timeout.setInterval( 5000 ); // Wait 5 seconds for a project to finish it's \
tests +    connect( &timeout, SIGNAL(timeout()), &loop, SLOT(quit()) );
     forever {
         // Get some information from the debuggers
         QString infoString;
@@ -199,7 +207,7 @@ void DebuggerTest::projectTestsTest()
                 infoString.append( "Ready " );
             }
         }
-        kDebug() << "State" << infoString;
+        kDebug() << "State " << infoString << timer.elapsed() << time;
 
         if ( timer.elapsed() > time ) {
             bool testsFinished = true;
@@ -210,8 +218,10 @@ void DebuggerTest::projectTestsTest()
 //                     disconnect( project, SIGNAL(testFinished(bool)), project, \
SLOT(testProject()) );  }
 
+                qApp->processEvents();
                 if ( project->isTestRunning() ) {
                     testsFinished = false;
+                    kDebug() << "Still running:" << project->data()->id();
                     break;
                 }
             }
@@ -220,7 +230,9 @@ void DebuggerTest::projectTestsTest()
             }
         }
 
+        timeout.start();
         loop.exec();
+        timeout.stop();
     }
 
     // Wait until all jobs are deleted
diff --git a/libpublictransporthelper/tests/PublicTransportHelperTest.cpp \
b/libpublictransporthelper/tests/PublicTransportHelperTest.cpp index d602072..8fb9075 \
                100644
--- a/libpublictransporthelper/tests/PublicTransportHelperTest.cpp
+++ b/libpublictransporthelper/tests/PublicTransportHelperTest.cpp
@@ -707,7 +707,7 @@ void \
PublicTransportHelperTest::stopSettingsDialogAddWidgetsLaterCustomFactoryTe  
 void PublicTransportHelperTest::stopWidgetTest()
 {
-    StopWidget stopWidget( 0, m_stopSettings, StopSettingsDialog::DefaultOptions,
+    StopWidget stopWidget( 0, 0, m_stopSettings, StopSettingsDialog::DefaultOptions,
                            ServiceProviderDataDialog::DefaultOptions, \
&m_filterConfigurations );  
 //     QSignalSpy changedSpy( &stopWidget, SIGNAL(changed(StopSettings)) );
@@ -753,7 +753,7 @@ void PublicTransportHelperTest::stopListWidgetTest()
 {
     StopSettingsList list;
     list << m_stopSettings;
-    StopListWidget stopListWidget( 0, list, StopSettingsDialog::DefaultOptions,
+    StopListWidget stopListWidget( 0, 0, list, StopSettingsDialog::DefaultOptions,
                                    ServiceProviderDataDialog::DefaultOptions, \
&m_filterConfigurations );  
     QSignalSpy addedSpy( &stopListWidget, SIGNAL(added(QWidget*)) );
@@ -855,18 +855,12 @@ void PublicTransportHelperTest::stopListWidgetTest()
 void PublicTransportHelperTest::locationModelTest()
 {
     LocationModel model;
-    QCOMPARE( model.rowCount(), 0 );
-
-    Plasma::DataEngineManager *manager = Plasma::DataEngineManager::self();
-    model.syncWithDataEngine( manager->loadEngine("publictransport") );
     QVERIFY( model.rowCount() > 0 );
 
     QModelIndex index = model.indexOfLocation("de");
     QVERIFY( index.isValid() );
 
     QCOMPARE( model.data(index, LocationCodeRole).toString(), QLatin1String("de") );
-
-    manager->unloadEngine("publictransport");
 }
 
 QTEST_MAIN(PublicTransportHelperTest)


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic