summaryrefslogtreecommitdiffstats
path: root/tests/auto/corelib/statemachine/qstatemachine/tst_qstatemachine.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'tests/auto/corelib/statemachine/qstatemachine/tst_qstatemachine.cpp')
-rw-r--r--tests/auto/corelib/statemachine/qstatemachine/tst_qstatemachine.cpp18
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"