00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019 #ifndef QTEST_KDE_H
00020 #define QTEST_KDE_H
00021
00022 #include <QtTest/QtTest>
00023 #include <stdlib.h>
00024 #include <assert.h>
00025 #include <kaboutdata.h>
00026 #include <kcmdlineargs.h>
00027 #include <kcomponentdata.h>
00028 #include <kglobal.h>
00029 #include <kurl.h>
00030 #include <QtGui/QApplication>
00031 #include <QtCore/QEventLoop>
00032 #include <QtTest/QSignalSpy>
00033
00034 namespace QTest
00035 {
00043 KDECORE_EXPORT bool kWaitForSignal(QObject *obj, const char *signal, int timeout = 0);
00044 }
00045
00046
00047
00048 enum KDEMainFlag { NoGUI = 0, GUI = 1 };
00049 Q_DECLARE_FLAGS(KDEMainFlags, KDEMainFlag)
00050 Q_DECLARE_OPERATORS_FOR_FLAGS(KDEMainFlags)
00066 #define QTEST_KDEMAIN_WITH_COMPONENTNAME(TestObject, flags, componentName) \
00067 int main(int argc, char *argv[]) \
00068 { \
00069 setenv("LC_ALL", "C", 1); \
00070 assert( !QDir::homePath().isEmpty() ); \
00071 setenv("KDEHOME", QFile::encodeName( QDir::homePath() + QLatin1String("/.kde-unit-test") ), 1); \
00072 setenv("XDG_DATA_HOME", QFile::encodeName( QDir::homePath() + QLatin1String("/.kde-unit-test/xdg/local") ), 1); \
00073 setenv("XDG_CONFIG_HOME", QFile::encodeName( QDir::homePath() + QLatin1String("/.kde-unit-test/xdg/config") ), 1); \
00074 setenv("KDE_SKIP_KDERC", "1", 1); \
00075 unsetenv("KDE_COLOR_DEBUG"); \
00076 QFile::remove(QDir::homePath() + QLatin1String("/.kde-unit-test/share/config/qttestrc")); \
00077 KAboutData aboutData( QByteArray(componentName), QByteArray(), ki18n("KDE Test Program"), QByteArray("version") ); \
00078 KDEMainFlags mainFlags = flags; \
00079 KComponentData cData(&aboutData); \
00080 QApplication app( argc, argv, (mainFlags & GUI) != 0 ); \
00081 app.setApplicationName( QLatin1String("qttest") ); \
00082 qRegisterMetaType<KUrl>(); \
00083 qRegisterMetaType<KUrl::List>(); \
00084 TestObject tc; \
00085 KGlobal::ref(); \
00086 return QTest::qExec( &tc, argc, argv ); \
00087 }
00088
00102 #define QTEST_KDEMAIN(TestObject, flags) QTEST_KDEMAIN_WITH_COMPONENTNAME(TestObject, flags, "qttest")
00103
00117 #define QTEST_KDEMAIN_CORE_WITH_COMPONENTNAME(TestObject, componentName) \
00118 int main(int argc, char *argv[]) \
00119 { \
00120 setenv("LC_ALL", "C", 1); \
00121 assert( !QDir::homePath().isEmpty() ); \
00122 setenv("KDEHOME", QFile::encodeName( QDir::homePath() + "/.kde-unit-test" ), 1); \
00123 setenv("XDG_DATA_HOME", QFile::encodeName( QDir::homePath() + "/.kde-unit-test/xdg/local" ), 1); \
00124 setenv("XDG_CONFIG_HOME", QFile::encodeName( QDir::homePath() + "/.kde-unit-test/xdg/config" ), 1); \
00125 setenv("KDE_SKIP_KDERC", "1", 1); \
00126 unsetenv("KDE_COLOR_DEBUG"); \
00127 QFile::remove(QDir::homePath() + "/.kde-unit-test/share/config/qttestrc"); \
00128 KAboutData aboutData( QByteArray(componentName), QByteArray(), ki18n("KDE Test Program"), QByteArray("version") ); \
00129 KComponentData cData(&aboutData); \
00130 QCoreApplication app( argc, argv ); \
00131 app.setApplicationName( "qttest" ); \
00132 qRegisterMetaType<KUrl>(); \
00133 qRegisterMetaType<KUrl::List>(); \
00134 TestObject tc; \
00135 KGlobal::ref(); \
00136 return QTest::qExec( &tc, argc, argv ); \
00137 }
00138
00151 #define QTEST_KDEMAIN_CORE(TestObject) QTEST_KDEMAIN_CORE_WITH_COMPONENTNAME(TestObject, "qttest")
00152
00153 #endif