diff options
author | David Faure <faure@kde.org> | 2012-07-14 01:37:53 +0200 |
---|---|---|
committer | Qt by Nokia <qt-info@nokia.com> | 2012-07-25 13:31:14 +0200 |
commit | 790aca0ea1bbd33a8ff29c83c0ab0bd968304f03 (patch) | |
tree | d8b708fe722a72baeb040630160081532e19cf10 /tests/auto/testlib/qsignalspy | |
parent | 3a27d4b480214072d972ac67561f2ee4010f8baa (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/auto/testlib/qsignalspy')
-rw-r--r-- | tests/auto/testlib/qsignalspy/tst_qsignalspy.cpp | 55 |
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" |