[pitivi: 3/8] test_timeline.py: check in test cases for ripple trims
- From: Edward Hervey <edwardrv src gnome org>
- To: svn-commits-list gnome org
- Cc:
- Subject: [pitivi: 3/8] test_timeline.py: check in test cases for ripple trims
- Date: Mon, 3 Aug 2009 08:51:57 +0000 (UTC)
commit d6388b5f53d9c387338fc2c2f77cd093db8a44eb
Author: Brandon Lewis <brandon_lewis berkeley edu>
Date: Wed Jul 29 14:25:20 2009 -0700
test_timeline.py: check in test cases for ripple trims
tests/test_timeline.py | 148 ++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 148 insertions(+), 0 deletions(-)
---
diff --git a/tests/test_timeline.py b/tests/test_timeline.py
index 2b835f4..45b52c1 100644
--- a/tests/test_timeline.py
+++ b/tests/test_timeline.py
@@ -1330,6 +1330,154 @@ class TestContexts(TestCase):
self.failUnlessEqual(self.track_object3.start, 25 * gst.SECOND)
self.failUnlessEqual(self.track_object3.duration, 10 * gst.SECOND)
+ def testTrimStartRipple(self):
+ # [t2] [t3] [t1]
+
+ self.track_object2.start = 1 * gst.SECOND
+ self.track_object2.duration = 4 * gst.SECOND
+
+ self.track_object3.start = 10 * gst.SECOND
+ self.track_object3.duration = 5 * gst.SECOND
+
+ self.track_object1.start = 15 * gst.SECOND
+ self.track_object1.duration = 10 * gst.SECOND
+ self.track_object1.trimStart(20 * gst.SECOND)
+ # set maximum duration on focus
+ self.track_object1.factory.duration = 10 * gst.SECOND
+
+ self.failUnlessEqual(self.track_object1.start,20 * gst.SECOND)
+ self.failUnlessEqual(self.track_object1.in_point, 5 * gst.SECOND)
+ self.failUnlessEqual(self.track_object1.duration, 5 * gst.SECOND)
+
+ # test basic trim
+
+ context = TrimStartContext(self.timeline, self.track_object1, self.other)
+ context.editTo(gst.SECOND * 15, 0)
+
+ self.failUnlessEqual(self.track_object1.start, 15 * gst.SECOND)
+ self.failUnlessEqual(self.track_object1.in_point, 0 * gst.SECOND)
+ self.failUnlessEqual(self.track_object2.start, 1 * gst.SECOND)
+ self.failUnlessEqual(self.track_object2.in_point, 0 * gst.SECOND)
+ self.failUnlessEqual(self.track_object3.start, 10 * gst.SECOND)
+ self.failUnlessEqual(self.track_object3.in_point, 0 * gst.SECOND)
+
+ # switch to ripple mode
+
+ context.setMode(context.RIPPLE)
+
+ self.failUnlessEqual(self.track_object1.start, 15 * gst.SECOND)
+ self.failUnlessEqual(self.track_object1.in_point, 0 * gst.SECOND)
+ self.failUnlessEqual(self.track_object1.duration, 10 * gst.SECOND)
+ self.failUnlessEqual(self.track_object2.start, 0 * gst.SECOND)
+ self.failUnlessEqual(self.track_object2.in_point, 0 * gst.SECOND)
+ self.failUnlessEqual(self.track_object3.start, 9 * gst.SECOND)
+ self.failUnlessEqual(self.track_object3.in_point, 0 * gst.SECOND)
+
+ # ripple right
+
+ context.editTo(25 * gst.SECOND, 0)
+ self.failUnlessEqual(self.track_object1.start, 25 * gst.SECOND)
+ self.failUnlessEqual(self.track_object1.in_point, 10 * gst.SECOND)
+ self.failUnlessEqual(self.track_object2.start, 6 * gst.SECOND)
+ self.failUnlessEqual(self.track_object3.start, 15 * gst.SECOND)
+
+ # check that ripple is clamped to object duration
+
+ context.editTo(30 * gst.SECOND, 0)
+ self.failUnlessEqual(self.track_object1.start, 25 * gst.SECOND)
+ self.failUnlessEqual(self.track_object1.in_point, 10 * gst.SECOND)
+ self.failUnlessEqual(self.track_object2.start, 6 * gst.SECOND)
+ self.failUnlessEqual(self.track_object3.start, 15 * gst.SECOND)
+
+ # test switch back to default
+
+ context.setMode(context.DEFAULT)
+ self.failUnlessEqual(self.track_object1.start, 25 * gst.SECOND)
+ self.failUnlessEqual(self.track_object1.in_point, 10 * gst.SECOND)
+ self.failUnlessEqual(self.track_object2.start, 1 * gst.SECOND)
+ self.failUnlessEqual(self.track_object3.start, 10 * gst.SECOND)
+
+ # test switch back to ripple
+
+ context.setMode(context.RIPPLE)
+ self.failUnlessEqual(self.track_object1.start, 25 * gst.SECOND)
+ self.failUnlessEqual(self.track_object1.in_point, 10 * gst.SECOND)
+ self.failUnlessEqual(self.track_object2.start, 6 * gst.SECOND)
+ self.failUnlessEqual(self.track_object3.start, 15 * gst.SECOND)
+
+ context.finish()
+
+ def testTrimEndContextRipple(self):
+ # [t1][t2][t3]
+
+ self.track_object1.start = 1 * gst.SECOND
+ self.track_object1.duration = 4 * gst.SECOND
+ self.track_object1.factory.duration = 10 * gst.SECOND
+ self.track_object2.start = 5 * gst.SECOND
+ self.track_object2.duration = 5 * gst.SECOND
+ self.track_object3.start = 10 * gst.SECOND
+ self.track_object3.duration = 5 * gst.SECOND
+
+ # test default trim
+
+ context = TrimEndContext(self.timeline, self.track_object1, self.other)
+ context.editTo(gst.SECOND * 10, 0)
+
+ self.failUnlessEqual(self.track_object1.start, 1 * gst.SECOND)
+ self.failUnlessEqual(self.track_object1.duration, 9 * gst.SECOND)
+ self.failUnlessEqual(self.track_object2.start, 5 * gst.SECOND)
+ self.failUnlessEqual(self.track_object2.duration, 5 * gst.SECOND)
+ self.failUnlessEqual(self.track_object3.start, 10 * gst.SECOND)
+ self.failUnlessEqual(self.track_object3.duration, 5 * gst.SECOND)
+
+ # switch to ripple mode
+
+ context.setMode(context.RIPPLE)
+
+ self.failUnlessEqual(self.track_object1.start, 1 * gst.SECOND)
+ self.failUnlessEqual(self.track_object1.duration, 9 * gst.SECOND)
+ self.failUnlessEqual(self.track_object2.start, 10 * gst.SECOND)
+ self.failUnlessEqual(self.track_object2.duration, 5 * gst.SECOND)
+ self.failUnlessEqual(self.track_object3.start, 15 * gst.SECOND)
+ self.failUnlessEqual(self.track_object3.duration, 5 * gst.SECOND)
+
+ context.editTo(gst.SECOND * 10, 0)
+
+ # check that we can't ripple past focal object duration
+
+ context.editTo(gst.SECOND * 15, 0)
+ self.failUnlessEqual(self.track_object1.duration, 10 * gst.SECOND)
+ self.failUnlessEqual(self.track_object2.start, 11 * gst.SECOND)
+ self.failUnlessEqual(self.track_object3.start, 16 * gst.SECOND)
+
+ # check that we can't ripple before initial start of focal object
+
+ context.editTo(0, 0)
+ self.failUnlessEqual(self.track_object1.duration, 0 * gst.SECOND)
+ self.failUnlessEqual(self.track_object2.start, 1 * gst.SECOND)
+ self.failUnlessEqual(self.track_object3.start, 6 * gst.SECOND)
+
+ # switch back to default mode
+
+ context.setMode(context.DEFAULT)
+
+ self.failUnlessEqual(self.track_object1.start, 1 * gst.SECOND)
+ self.failUnlessEqual(self.track_object1.duration, 0 * gst.SECOND)
+ self.failUnlessEqual(self.track_object2.start, 5 * gst.SECOND)
+ self.failUnlessEqual(self.track_object2.duration, 5 * gst.SECOND)
+ self.failUnlessEqual(self.track_object3.start, 10 * gst.SECOND)
+ self.failUnlessEqual(self.track_object3.duration, 5 * gst.SECOND)
+
+ # switch back to ripple mode
+
+ context.setMode(context.RIPPLE)
+
+ self.failUnlessEqual(self.track_object1.duration, 0 * gst.SECOND)
+ self.failUnlessEqual(self.track_object2.start, 1 * gst.SECOND)
+ self.failUnlessEqual(self.track_object3.start, 6 * gst.SECOND)
+
+ context.finish()
+
def testEmptyOther(self):
context = MoveContext(self.timeline, self.track_object1, set())
context.finish()
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]