aboutsummaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorLuciano Wolf <luciano.wolf@openbossa.org>2010-02-04 10:57:15 -0300
committerRenato Filho <renato.filho@openbossa.org>2010-02-05 11:15:55 -0300
commit1f9fab648e31df7f8b8396dd9ace08383e29419f (patch)
tree7989aba40e20da56043fa314f2162cfd999c9aa1 /tests
parentaf7a410d23bad9f6d08e0d298db417208ef06e2d (diff)
Adding test for QAbstractTransition, QAnimationGroup and QStateMachine.
Reviewed by Renato Araújo <renato.filho@openbossa.org>
Diffstat (limited to 'tests')
-rw-r--r--tests/qtcore/qabstracttransition_test.py51
-rw-r--r--tests/qtcore/qanimationgroup_test.py24
-rw-r--r--tests/qtcore/qstatemachine_test.py33
3 files changed, 108 insertions, 0 deletions
diff --git a/tests/qtcore/qabstracttransition_test.py b/tests/qtcore/qabstracttransition_test.py
new file mode 100644
index 000000000..d7e7f0738
--- /dev/null
+++ b/tests/qtcore/qabstracttransition_test.py
@@ -0,0 +1,51 @@
+#!/usr/bin/python
+import unittest
+from PySide.QtCore import QObject, QState, QFinalState, SIGNAL, QCoreApplication, QTimer, QStateMachine, QSignalTransition, QVariant, QParallelAnimationGroup
+
+def addStates(transition):
+ sx = QState()
+ sy = QState()
+ transition.setTargetStates([sx, sy])
+
+def addAnimation(transition):
+ animation = QParallelAnimationGroup()
+ transition.addAnimation(animation)
+
+class QAbstractTransitionTest(unittest.TestCase):
+
+ def testBasic(self):
+ app = QCoreApplication([])
+
+ o = QObject()
+ o.setProperty("text", QVariant("INdT"))
+
+ machine = QStateMachine()
+ s1 = QState()
+ s1.assignProperty(o, "text", QVariant("Rocks"))
+
+ s2 = QFinalState()
+ t = s1.addTransition(o, SIGNAL("change()"), s2)
+
+ self.assertEqual(t.targetStates(), [s2])
+
+ addStates(t)
+ self.assertEqual(len(t.targetStates()), 2)
+
+ animation = QParallelAnimationGroup()
+ t.addAnimation(animation)
+
+ self.assertEqual(t.animations(), [animation])
+
+ addAnimation(t)
+ self.assertEqual(t.animations()[0].parent(), None)
+
+ machine.addState(s1)
+ machine.addState(s2)
+ machine.setInitialState(s1)
+ machine.start()
+
+ QTimer.singleShot(100, app.quit)
+ app.exec_()
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/tests/qtcore/qanimationgroup_test.py b/tests/qtcore/qanimationgroup_test.py
new file mode 100644
index 000000000..05bd81e10
--- /dev/null
+++ b/tests/qtcore/qanimationgroup_test.py
@@ -0,0 +1,24 @@
+#!/usr/bin/python
+import unittest
+from PySide.QtCore import QObject, QState, QFinalState, SIGNAL, QCoreApplication, QTimer, QStateMachine, QSignalTransition, QVariant, QParallelAnimationGroup, QSequentialAnimationGroup, QAnimationGroup
+
+class QAnimationGroupTest(unittest.TestCase):
+
+ def testBasic(self):
+ app = QCoreApplication([])
+
+ panim = QParallelAnimationGroup()
+ sanim = QSequentialAnimationGroup()
+ panim.addAnimation(sanim)
+
+ self.assertEqual(sanim.parent(), panim)
+
+ panim.clear()
+
+ self.assertRaises(RuntimeError, lambda :sanim.parent())
+
+ QTimer.singleShot(100, app.quit)
+ app.exec_()
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/tests/qtcore/qstatemachine_test.py b/tests/qtcore/qstatemachine_test.py
new file mode 100644
index 000000000..dd3c16dff
--- /dev/null
+++ b/tests/qtcore/qstatemachine_test.py
@@ -0,0 +1,33 @@
+#!/usr/bin/python
+import unittest
+from PySide.QtCore import QObject, QState, QFinalState, SIGNAL, QCoreApplication, QTimer, QStateMachine, QSignalTransition, QVariant, QParallelAnimationGroup, QPropertyAnimation
+
+class QStateMachineTest(unittest.TestCase):
+
+ def cb(self, *args):
+ self.assertEqual(self.machine.defaultAnimations(), [self.anim])
+
+ def testBasic(self):
+ app = QCoreApplication([])
+
+ self.machine = QStateMachine()
+ s1 = QState()
+ s2 = QState()
+ s3 = QFinalState()
+
+ QObject.connect(self.machine, SIGNAL("started()"), self.cb)
+
+ self.anim = QParallelAnimationGroup()
+
+ self.machine.addState(s1)
+ self.machine.addState(s2)
+ self.machine.addState(s3)
+ self.machine.setInitialState(s1)
+ self.machine.addDefaultAnimation(self.anim)
+ self.machine.start()
+
+ QTimer.singleShot(100, app.quit)
+ app.exec_()
+
+if __name__ == '__main__':
+ unittest.main()