Test posted events in tst_QEventDispatcher with various flags

Add QEventLoop::ProcessEventsFlags test data for
tst_QEventDispatcher::sendPostedEvents() to test that posted events are
sent when waiting for events and when not waiting.

Change-Id: I99f9eb121d0b1ded725e19c5233922fc0a6b81e4
Reviewed-by: Robin Burchell <robin+qt@viroteck.net>
This commit is contained in:
Bradley T. Hughes 2012-02-06 16:09:18 +01:00 committed by Qt by Nokia
parent 358c14821b
commit 8f8e3db6ae

View File

@ -76,6 +76,7 @@ private slots:
void registerTimer();
/* void registerSocketNotifier(); */ // Not implemented here, see tst_QSocketNotifier instead
/* void registerEventNotifiier(); */ // Not implemented here, see tst_QWinEventNotifier instead
void sendPostedEvents_data();
void sendPostedEvents();
};
@ -178,9 +179,20 @@ void tst_QEventDispatcher::registerTimer()
#undef FIND_TIMERS
}
void tst_QEventDispatcher::sendPostedEvents_data()
{
QTest::addColumn<int>("processEventsFlagsInt");
QTest::newRow("WaitForMoreEvents") << int(QEventLoop::WaitForMoreEvents);
QTest::newRow("AllEvents") << int(QEventLoop::AllEvents);
}
// test that the eventDispatcher sends posted events correctly
void tst_QEventDispatcher::sendPostedEvents()
{
QFETCH(int, processEventsFlagsInt);
QEventLoop::ProcessEventsFlags processEventsFlags = QEventLoop::ProcessEventsFlags(processEventsFlagsInt);
QElapsedTimer elapsedTimer;
elapsedTimer.start();
while (!elapsedTimer.hasExpired(200)) {
@ -191,7 +203,7 @@ void tst_QEventDispatcher::sendPostedEvents()
QCOMPARE(receivedEventType, -1);
// since there is a pending posted event, this should not actually block, it should send the posted event and return
QVERIFY(eventDispatcher->processEvents(QEventLoop::WaitForMoreEvents));
QVERIFY(eventDispatcher->processEvents(processEventsFlags));
// event shouldn't be delivered as a result of posting
QCOMPARE(receivedEventType, int(QEvent::User));
}