diff options
Diffstat (limited to 'tests')
-rw-r--r-- | tests/auto/corelib/statemachine/qstatemachine/tst_qstatemachine.cpp | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/tests/auto/corelib/statemachine/qstatemachine/tst_qstatemachine.cpp b/tests/auto/corelib/statemachine/qstatemachine/tst_qstatemachine.cpp index df6ac88f47..34e9b742b1 100644 --- a/tests/auto/corelib/statemachine/qstatemachine/tst_qstatemachine.cpp +++ b/tests/auto/corelib/statemachine/qstatemachine/tst_qstatemachine.cpp @@ -175,6 +175,8 @@ private slots: void stopInTransitionToFinalState(); void stopInEventTest_data(); void stopInEventTest(); + + void initialStateIsEnteredBeforeStartedEmitted(); }; class TestState : public QState @@ -3906,5 +3908,21 @@ void tst_QStateMachine::stopInEventTest() QVERIFY(machine.configuration().contains(s1)); } +void tst_QStateMachine::initialStateIsEnteredBeforeStartedEmitted() +{ + QStateMachine machine; + QState *s1 = new QState(&machine); + machine.setInitialState(s1); + QFinalState *s2 = new QFinalState(&machine); + + // When started() is emitted, s1 should be the active state, and this + // transition should trigger. + s1->addTransition(&machine, SIGNAL(started()), s2); + + QSignalSpy finishedSpy(&machine, SIGNAL(finished())); + machine.start(); + QTRY_COMPARE(finishedSpy.count(), 1); +} + QTEST_MAIN(tst_QStateMachine) #include "tst_qstatemachine.moc" |