KDECore
qtest_kde.h
Go to the documentation of this file.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 <kaboutdata.h>
00025 #include <kcmdlineargs.h>
00026 #include <kcomponentdata.h>
00027 #include <kglobal.h>
00028 #include <kurl.h>
00029 #include <QtGui/QApplication>
00030 #include <QtCore/QEventLoop>
00031 #include <QtTest/QSignalSpy>
00032
00033 namespace QTest
00034 {
00042 KDECORE_EXPORT bool kWaitForSignal(QObject *obj, const char *signal, int timeout = 0);
00043 }
00044
00045
00046
00047 enum KDEMainFlag { NoGUI = 0, GUI = 1 };
00048 Q_DECLARE_FLAGS(KDEMainFlags, KDEMainFlag)
00049 Q_DECLARE_OPERATORS_FOR_FLAGS(KDEMainFlags)
00065 #define QTEST_KDEMAIN_WITH_COMPONENTNAME(TestObject, flags, componentName) \
00066 int main(int argc, char *argv[]) \
00067 { \
00068 setenv("LC_ALL", "C", 1); \
00069 setenv("KDEHOME", QFile::encodeName( QDir::homePath() + "/.kde-unit-test" ), 1); \
00070 setenv("XDG_DATA_HOME", QFile::encodeName( QDir::homePath() + "/.kde-unit-test/xdg/local" ), 1); \
00071 setenv("XDG_CONFIG_HOME", QFile::encodeName( QDir::homePath() + "/.kde-unit-test/xdg/config" ), 1); \
00072 unsetenv("KDE_COLOR_DEBUG"); \
00073 QFile::remove(QDir::homePath() + "/.kde-unit-test/share/config/qttestrc"); \
00074 KAboutData aboutData( QByteArray(componentName), QByteArray(), ki18n("KDE Test Program"), QByteArray("version") ); \
00075 KDEMainFlags mainFlags = flags; \
00076 KComponentData cData(&aboutData); \
00077 QApplication app( argc, argv, (mainFlags & GUI) != 0 ); \
00078 app.setApplicationName( "qttest" ); \
00079 qRegisterMetaType<KUrl>(); \
00080 qRegisterMetaType<KUrl::List>(); \
00081 TestObject tc; \
00082 KGlobal::ref(); \
00083 return QTest::qExec( &tc, argc, argv ); \
00084 }
00085
00099 #define QTEST_KDEMAIN(TestObject, flags) QTEST_KDEMAIN_WITH_COMPONENTNAME(TestObject, flags, "qttest")
00100
00113 #define QTEST_KDEMAIN_CORE(TestObject) \
00114 int main(int argc, char *argv[]) \
00115 { \
00116 setenv("LC_ALL", "C", 1); \
00117 setenv("KDEHOME", QFile::encodeName( QDir::homePath() + "/.kde-unit-test" ), 1); \
00118 setenv("XDG_DATA_HOME", QFile::encodeName( QDir::homePath() + "/.kde-unit-test/xdg/local" ), 1); \
00119 setenv("XDG_CONFIG_HOME", QFile::encodeName( QDir::homePath() + "/.kde-unit-test/xdg/config" ), 1); \
00120 unsetenv("KDE_COLOR_DEBUG"); \
00121 QFile::remove(QDir::homePath() + "/.kde-unit-test/share/config/qttestrc"); \
00122 KAboutData aboutData( QByteArray("qttest"), QByteArray(), ki18n("KDE Test Program"), QByteArray("version") ); \
00123 KComponentData cData(&aboutData); \
00124 QCoreApplication app( argc, argv ); \
00125 app.setApplicationName( "qttest" ); \
00126 qRegisterMetaType<KUrl>(); \
00127 qRegisterMetaType<KUrl::List>(); \
00128 TestObject tc; \
00129 KGlobal::ref(); \
00130 return QTest::qExec( &tc, argc, argv ); \
00131 }
00132
00133 #endif
00134