diff options
author | Kent Hansen <khansen@trolltech.com> | 2009-05-08 14:37:21 (GMT) |
---|---|---|
committer | Kent Hansen <khansen@trolltech.com> | 2009-05-08 14:37:21 (GMT) |
commit | 98f3ebcf1f6751cb76f9268d33faf0bc5ac70f6e (patch) | |
tree | a3923f5ea068066999008eaea8d15a316b99592e /tests/auto/qstatemachine | |
parent | 110473e9eece3231c3df4fc50c3a958c6c25f2de (diff) | |
download | Qt-98f3ebcf1f6751cb76f9268d33faf0bc5ac70f6e.zip Qt-98f3ebcf1f6751cb76f9268d33faf0bc5ac70f6e.tar.gz Qt-98f3ebcf1f6751cb76f9268d33faf0bc5ac70f6e.tar.bz2 |
gracefully handle deletion of transition's target state
Diffstat (limited to 'tests/auto/qstatemachine')
-rw-r--r-- | tests/auto/qstatemachine/tst_qstatemachine.cpp | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/tests/auto/qstatemachine/tst_qstatemachine.cpp b/tests/auto/qstatemachine/tst_qstatemachine.cpp index fa49ecb..dbc67d1 100644 --- a/tests/auto/qstatemachine/tst_qstatemachine.cpp +++ b/tests/auto/qstatemachine/tst_qstatemachine.cpp @@ -106,6 +106,7 @@ private slots: void historyStates(); void startAndStop(); void targetStateWithNoParent(); + void targetStateDeleted(); void transitionToRootState(); void transitionEntersParent(); @@ -1940,6 +1941,18 @@ void tst_QStateMachine::targetStateWithNoParent() QCOMPARE(machine.error(), QStateMachine::NoCommonAncestorForTransitionError); } +void tst_QStateMachine::targetStateDeleted() +{ + QStateMachine machine; + QState *s1 = new QState(machine.rootState()); + s1->setObjectName("s1"); + QState *s2 = new QState(machine.rootState()); + QAbstractTransition *trans = s1->addTransition(s2); + delete s2; + QCOMPARE(trans->targetState(), (QAbstractState*)0); + QVERIFY(trans->targetStates().isEmpty()); +} + void tst_QStateMachine::defaultGlobalRestorePolicy() { QStateMachine machine; |