--- /dev/null
+/** ***** QxtJob test ***** */
+#include <QTest>
+#include <QThread>
+class Q43Thread : public QThread{public:void run(){exec();}}; /// qt < 4.3 backwards compatibility
+
+#include <QSignalSpy>
+#include <QxtJob>
+#include <qxtsignalwaiter.h>
+
+
+
+class TestJob : public QxtJob
+{
+public:
+ bool b;
+ TestJob():QxtJob()
+ {
+ b=false;
+ }
+ virtual void run()
+ {
+ qDebug("job on on %p",QThread::currentThread ());
+ b=true;
+ }
+};
+
+class QxtJobTest : public QObject
+{
+Q_OBJECT
+private:
+ Q43Thread t;
+private slots:
+ void initTestCase()
+ {
+ t.start();
+ }
+
+ void lined()
+ {
+
+ TestJob l;
+ QSignalSpy spy(&l, SIGNAL(done()));
+ QxtSignalWaiter w(&l,SIGNAL(done()));
+
+ l.exec(&t);
+
+ QVERIFY(w.wait(50));
+ QCOMPARE(spy.count(), 1);
+ QVERIFY(l.b);
+ }
+
+ void joined()
+ {
+ TestJob l;
+ l.exec(&t);
+ QxtSignalWaiter w(&l,SIGNAL(done()));
+ l.join();
+ QVERIFY(w.wait(100));
+ QVERIFY(l.b);
+ }
+
+ void cleanupTestCase()
+ {
+ t.quit();
+ QVERIFY(t.wait(50));
+ }
+};
+
+
+int main(int argc, char ** argv)
+{
+ QCoreApplication app(argc,argv);
+ QxtJobTest test1;
+ return QTest::qExec(&test1,argc,argv);
+}
+
+
+#include "main.moc"