[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