summaryrefslogtreecommitdiffstats
path: root/tests/auto/statemachine/tst_statemachine.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'tests/auto/statemachine/tst_statemachine.cpp')
-rw-r--r--tests/auto/statemachine/tst_statemachine.cpp27
1 files changed, 27 insertions, 0 deletions
diff --git a/tests/auto/statemachine/tst_statemachine.cpp b/tests/auto/statemachine/tst_statemachine.cpp
index 7a269b2..fccfd25 100644
--- a/tests/auto/statemachine/tst_statemachine.cpp
+++ b/tests/auto/statemachine/tst_statemachine.cpp
@@ -46,6 +46,7 @@ private Q_SLOTS:
void activeStateNames_data();
void activeStateNames();
void connectToFinal();
+ void eventOccurred();
};
void tst_StateMachine::stateNames_data()
@@ -128,6 +129,32 @@ void tst_StateMachine::connectToFinal()
QVERIFY(stateMachine->connectToState(QString("final"), &dummy, SLOT(deleteLater())));
}
+void tst_StateMachine::eventOccurred()
+{
+ QScopedPointer<QScxmlStateMachine> stateMachine(QScxmlStateMachine::fromFile(QString(":/tst_statemachine/eventoccurred.scxml")));
+ QVERIFY(!stateMachine.isNull());
+
+ qRegisterMetaType<QScxmlEvent>();
+ QSignalSpy finishedSpy(stateMachine.data(), SIGNAL(finished()));
+ QSignalSpy eventOccurredSpy(stateMachine.data(), SIGNAL(eventOccurred(QScxmlEvent)));
+ QSignalSpy externalEventOccurredSpy(stateMachine.data(), SIGNAL(externalEventOccurred(QScxmlEvent)));
+
+ stateMachine->start();
+
+ finishedSpy.wait(5000);
+
+ QCOMPARE(eventOccurredSpy.count(), 4);
+ QCOMPARE(qvariant_cast<QScxmlEvent>(eventOccurredSpy.at(0).at(0)).name(), QLatin1String("internalEvent2"));
+ QCOMPARE(qvariant_cast<QScxmlEvent>(eventOccurredSpy.at(1).at(0)).name(), QLatin1String("externalEvent"));
+ QCOMPARE(qvariant_cast<QScxmlEvent>(eventOccurredSpy.at(2).at(0)).name(), QLatin1String("timeout"));
+ QCOMPARE(qvariant_cast<QScxmlEvent>(eventOccurredSpy.at(3).at(0)).name(), QLatin1String("done.state.top"));
+
+
+ QCOMPARE(externalEventOccurredSpy.count(), 1);
+ QCOMPARE(qvariant_cast<QScxmlEvent>(externalEventOccurredSpy.at(0).at(0)).name(), QLatin1String("externalEvent"));
+}
+
+
QTEST_MAIN(tst_StateMachine)
#include "tst_statemachine.moc"