summaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorDavid Faure <faure@kde.org>2012-07-14 01:37:53 +0200
committerQt by Nokia <qt-info@nokia.com>2012-07-25 13:31:14 +0200
commit790aca0ea1bbd33a8ff29c83c0ab0bd968304f03 (patch)
treed8b708fe722a72baeb040630160081532e19cf10 /tests
parent3a27d4b480214072d972ac67561f2ee4010f8baa (diff)
Add QSignalSpy::wait() method.
Change-Id: I1f3b49e3dee19bf0b1d2933c6e6ad7972186e0d0 Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com> Reviewed-by: Jason McDonald <jason.mcdonald@nokia.com>
Diffstat (limited to 'tests')
-rw-r--r--tests/auto/testlib/qsignalspy/tst_qsignalspy.cpp55
1 files changed, 54 insertions, 1 deletions
diff --git a/tests/auto/testlib/qsignalspy/tst_qsignalspy.cpp b/tests/auto/testlib/qsignalspy/tst_qsignalspy.cpp
index e17fd6ac2e..07b762a7eb 100644
--- a/tests/auto/testlib/qsignalspy/tst_qsignalspy.cpp
+++ b/tests/auto/testlib/qsignalspy/tst_qsignalspy.cpp
@@ -49,6 +49,9 @@ class tst_QSignalSpy : public QObject
{
Q_OBJECT
+Q_SIGNALS:
+ void sigFoo();
+
private slots:
void spyWithoutArgs();
void spyWithBasicArgs();
@@ -56,6 +59,12 @@ private slots:
void spyWithQtClasses();
void spyWithBasicQtClasses();
void spyWithQtTypedefs();
+
+ void wait_signalEmitted();
+ void wait_timeout();
+ void wait_signalEmittedLater();
+ void wait_signalEmittedTooLate();
+ void wait_signalEmittedMultipleTimes();
};
class QtTestObject: public QObject
@@ -217,5 +226,49 @@ void tst_QSignalSpy::spyWithQtTypedefs()
// QCOMPARE(spy3.value(0).value(1).toInt(), 45);
}
-QTEST_APPLESS_MAIN(tst_QSignalSpy)
+void tst_QSignalSpy::wait_signalEmitted()
+{
+ QTimer::singleShot(0, this, SIGNAL(sigFoo()));
+ QSignalSpy spy(this, SIGNAL(sigFoo()));
+ QVERIFY(spy.wait(1));
+}
+
+void tst_QSignalSpy::wait_timeout()
+{
+ QSignalSpy spy(this, SIGNAL(sigFoo()));
+ QVERIFY(!spy.wait(1));
+}
+
+void tst_QSignalSpy::wait_signalEmittedLater()
+{
+ QTimer::singleShot(500, this, SIGNAL(sigFoo()));
+ QSignalSpy spy(this, SIGNAL(sigFoo()));
+ QVERIFY(spy.wait(1000));
+}
+
+void tst_QSignalSpy::wait_signalEmittedTooLate()
+{
+ QTimer::singleShot(500, this, SIGNAL(sigFoo()));
+ QSignalSpy spy(this, SIGNAL(sigFoo()));
+ QVERIFY(!spy.wait(200));
+ QTest::qWait(400);
+ QCOMPARE(spy.count(), 1);
+}
+
+void tst_QSignalSpy::wait_signalEmittedMultipleTimes()
+{
+ QTimer::singleShot(100, this, SIGNAL(sigFoo()));
+ QTimer::singleShot(800, this, SIGNAL(sigFoo()));
+ QSignalSpy spy(this, SIGNAL(sigFoo()));
+ QVERIFY(spy.wait());
+ QCOMPARE(spy.count(), 1); // we don't wait for the second signal...
+ QVERIFY(spy.wait());
+ QCOMPARE(spy.count(), 2);
+ QVERIFY(!spy.wait(1));
+ QTimer::singleShot(10, this, SIGNAL(sigFoo()));
+ QVERIFY(spy.wait());
+ QCOMPARE(spy.count(), 3);
+}
+
+QTEST_MAIN(tst_QSignalSpy)
#include "tst_qsignalspy.moc"