Write test to confirm QStateMachine calls connectNotify().
Task-number: QTBUG-16628 Change-Id: I77535fcb9a6ae306df8ccd670ee1bfc32721d66a Reviewed-by: Kent Hansen <kent.hansen@nokia.com> Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@nokia.com>bb10
parent
21ebd2e4eb
commit
24aad8d663
|
|
@ -176,6 +176,7 @@ private slots:
|
|||
void stopInEventTest_data();
|
||||
void stopInEventTest();
|
||||
|
||||
void testIncrementReceivers();
|
||||
void initialStateIsEnteredBeforeStartedEmitted();
|
||||
};
|
||||
|
||||
|
|
@ -3908,6 +3909,40 @@ void tst_QStateMachine::stopInEventTest()
|
|||
QVERIFY(machine.configuration().contains(s1));
|
||||
}
|
||||
|
||||
class IncrementReceiversTest : public QObject
|
||||
{
|
||||
Q_OBJECT
|
||||
signals:
|
||||
void mySignal();
|
||||
public:
|
||||
virtual void connectNotify(const QMetaMethod &signal)
|
||||
{
|
||||
signalList.append(signal);
|
||||
}
|
||||
|
||||
QList<QMetaMethod> signalList;
|
||||
};
|
||||
|
||||
void tst_QStateMachine::testIncrementReceivers()
|
||||
{
|
||||
QStateMachine machine;
|
||||
QState *s1 = new QState(&machine);
|
||||
machine.setInitialState(s1);
|
||||
QFinalState *s2 = new QFinalState(&machine);
|
||||
|
||||
IncrementReceiversTest testObject;
|
||||
s1->addTransition(&testObject, SIGNAL(mySignal()), s2);
|
||||
|
||||
QSignalSpy finishedSpy(&machine, SIGNAL(finished()));
|
||||
machine.start();
|
||||
|
||||
QMetaObject::invokeMethod(&testObject, "mySignal", Qt::QueuedConnection);
|
||||
|
||||
QTRY_COMPARE(finishedSpy.count(), 1);
|
||||
QCOMPARE(testObject.signalList.size(), 1);
|
||||
QCOMPARE(testObject.signalList.at(0), QMetaMethod::fromSignal(&IncrementReceiversTest::mySignal));
|
||||
}
|
||||
|
||||
void tst_QStateMachine::initialStateIsEnteredBeforeStartedEmitted()
|
||||
{
|
||||
QStateMachine machine;
|
||||
|
|
|
|||
Loading…
Reference in New Issue