diff options
author | André Klitzing <aklitzing@gmail.com> | 2015-08-31 15:04:51 +0200 |
---|---|---|
committer | André Klitzing <aklitzing@gmail.com> | 2015-12-08 17:07:04 +0000 |
commit | 63827c4d278a090522148ae36202205854388187 (patch) | |
tree | 8c985ea97d5b02edc91c3433c361f5dc28d92649 /tests/auto/corelib/statemachine | |
parent | d6ffbedc49c352755369ebf29022b707b3b9d6a7 (diff) |
Add PointerToMemberFunction for ctor of QSignalTransition
[ChangeLog][QtCore][State Machine] Added constructor overload that
takes a pointer-to-member for the QSignalTransition.
Change-Id: I80ac6e16d0edf7d2ab09882b6f6db4cbd73364e1
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
Diffstat (limited to 'tests/auto/corelib/statemachine')
-rw-r--r-- | tests/auto/corelib/statemachine/qstatemachine/tst_qstatemachine.cpp | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/tests/auto/corelib/statemachine/qstatemachine/tst_qstatemachine.cpp b/tests/auto/corelib/statemachine/qstatemachine/tst_qstatemachine.cpp index 1ae4057049..379215a6c5 100644 --- a/tests/auto/corelib/statemachine/qstatemachine/tst_qstatemachine.cpp +++ b/tests/auto/corelib/statemachine/qstatemachine/tst_qstatemachine.cpp @@ -238,6 +238,9 @@ private slots: void multiTargetTransitionInsideParallelStateGroup(); void signalTransitionNormalizeSignature(); +#ifdef Q_COMPILER_DELEGATING_CONSTRUCTORS + void createPointerToMemberSignalTransition(); +#endif void createSignalTransitionWhenRunning(); void createEventTransitionWhenRunning(); void signalTransitionSenderInDifferentThread(); @@ -5876,6 +5879,31 @@ void tst_QStateMachine::signalTransitionNormalizeSignature() TEST_ACTIVE_CHANGED(s1, 1); } +#ifdef Q_COMPILER_DELEGATING_CONSTRUCTORS +void tst_QStateMachine::createPointerToMemberSignalTransition() +{ + QStateMachine machine; + QState *s1 = new QState(&machine); + DEFINE_ACTIVE_SPY(s1); + machine.setInitialState(s1); + machine.start(); + TEST_ACTIVE_CHANGED(s1, 1); + QTRY_VERIFY(machine.configuration().contains(s1)); + + QState *s2 = new QState(&machine); + DEFINE_ACTIVE_SPY(s2); + SignalEmitter emitter; + QSignalTransition *t1 = new QSignalTransition(&emitter, &SignalEmitter::signalWithNoArg, s1); + QCOMPARE(t1->sourceState(), s1); + t1->setTargetState(s2); + s1->addTransition(t1); + emitter.emitSignalWithNoArg(); + TEST_ACTIVE_CHANGED(s1, 2); + TEST_ACTIVE_CHANGED(s2, 1); + QTRY_VERIFY(machine.configuration().contains(s2)); +} +#endif + void tst_QStateMachine::createSignalTransitionWhenRunning() { QStateMachine machine; |