diff options
author | Sami Nurmenniemi <sami.nurmenniemi@qt.io> | 2017-12-28 13:43:03 +0200 |
---|---|---|
committer | Jani Heikkinen <jani.heikkinen@qt.io> | 2018-01-09 07:46:38 +0000 |
commit | 6d51090572d843d781376d0128dddb3c9a0e307c (patch) | |
tree | 28c446a0b051ab5b79f801bc42207e45084c5b75 | |
parent | b90fbebbb5e257f771e96980109fb543647b1844 (diff) | |
download | qtwebchannel-6d51090572d843d781376d0128dddb3c9a0e307c.tar.gz |
Fix TestWebChannel::testAsyncObject
If signal is emitted directly, QSignalSpy::wait() is called too
late. In that case the correct information about emitted signal
can be checked with QSignalSpy::count().
Task-number: QTBUG-63152
Change-Id: I0c3da52ab17f9138ad1a7a17f5065b8a87911b8f
(cherry picked from commit d2f9396f048ef8fdd494626d92b3d7106fb10304)
Reviewed-by: Jani Heikkinen <jani.heikkinen@qt.io>
-rw-r--r-- | tests/auto/webchannel/tst_webchannel.cpp | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/tests/auto/webchannel/tst_webchannel.cpp b/tests/auto/webchannel/tst_webchannel.cpp index f214b7e..4309647 100644 --- a/tests/auto/webchannel/tst_webchannel.cpp +++ b/tests/auto/webchannel/tst_webchannel.cpp @@ -770,6 +770,11 @@ void TestWebChannel::testInfiniteRecursion() void TestWebChannel::testAsyncObject() { + auto waitForSignal = [] (QSignalSpy& spy) { + for (int i=0; (i<5) && (spy.count() == 0); i++) + spy.wait(1000); + }; + QWebChannel channel; channel.connectTo(m_dummyTransport); @@ -788,7 +793,8 @@ void TestWebChannel::testAsyncObject() { QSignalSpy spy(&obj, &TestObject::propChanged); channel.d_func()->publisher->invokeMethod(&obj, method, args); - QVERIFY(spy.wait()); + waitForSignal(spy); + QCOMPARE(spy.count(), 1); QCOMPARE(spy.at(0).at(0).toString(), args.at(0).toString()); } @@ -804,10 +810,13 @@ void TestWebChannel::testAsyncObject() { QSignalSpy spy(&obj, &TestObject::replay); QMetaObject::invokeMethod(&obj, "fire"); - QVERIFY(spy.wait()); + waitForSignal(spy); + QCOMPARE(spy.count(), 1); channel.deregisterObject(&obj); QMetaObject::invokeMethod(&obj, "fire"); - QVERIFY(spy.wait()); + spy.takeFirst(); + waitForSignal(spy); + QCOMPARE(spy.count(), 1); } thread.quit(); |