timeline_display_transform_animations_test.html revision 4a4f2fe02baf385f6c24fc98c6e17bf6ac5e0724
1<!DOCTYPE html> 2<!-- 3Copyright (c) 2013 The Chromium Authors. All rights reserved. 4Use of this source code is governed by a BSD-style license that can be 5found in the LICENSE file. 6--> 7 8<link rel="import" href="/tracing/ui/base/animation_controller.html"> 9<link rel="import" href="/tracing/ui/timeline_display_transform.html"> 10<link rel="import" href="/tracing/ui/timeline_display_transform_animations.html"> 11 12<script> 13'use strict'; 14 15tr.b.unittest.testSuite(function() { // @suppress longLineCheck 16 var TimelineDisplayTransform = tr.ui.TimelineDisplayTransform; 17 var TimelineDisplayTransformPanAnimation = 18 tr.ui.TimelineDisplayTransformPanAnimation; 19 var TimelineDisplayTransformZoomToAnimation = 20 tr.ui.TimelineDisplayTransformZoomToAnimation; 21 22 test('panBasic', function() { 23 var target = new TimelineDisplayTransform(); 24 target.cloneAnimationState = function() { 25 return this.clone(); 26 }; 27 28 var a = new TimelineDisplayTransformPanAnimation(10, 20, 100); 29 30 var controller = new tr.ui.b.AnimationController(); 31 controller.target = target; 32 controller.queueAnimation(a, 0); 33 34 assert.isTrue(a.affectsPanY); 35 tr.b.forcePendingRAFTasksToRun(50); 36 assert.isAbove(target.panX, 0); 37 tr.b.forcePendingRAFTasksToRun(100); 38 assert.isFalse(controller.hasActiveAnimation); 39 assert.equal(target.panX, 10); 40 assert.equal(target.panY, 20); 41 }); 42 43 test('zoomBasic', function() { 44 var target = new TimelineDisplayTransform(); 45 target.panY = 30; 46 target.cloneAnimationState = function() { 47 return this.clone(); 48 }; 49 50 var a = new TimelineDisplayTransformZoomToAnimation(10, 20, 30, 5, 100); 51 52 var controller = new tr.ui.b.AnimationController(); 53 controller.target = target; 54 controller.queueAnimation(a, 0); 55 56 assert.isFalse(a.affectsPanY); 57 tr.b.forcePendingRAFTasksToRun(100); 58 assert.equal(target.scaleX, 5); 59 }); 60 61 test('panTakeover', function() { 62 var target = new TimelineDisplayTransform(); 63 target.cloneAnimationState = function() { 64 return this.clone(); 65 }; 66 67 var b = new TimelineDisplayTransformPanAnimation(10, 0, 100); 68 var a = new TimelineDisplayTransformPanAnimation(10, 0, 100); 69 70 var controller = new tr.ui.b.AnimationController(); 71 controller.target = target; 72 controller.queueAnimation(a, 0); 73 74 tr.b.forcePendingRAFTasksToRun(50); 75 controller.queueAnimation(b, 50); 76 77 tr.b.forcePendingRAFTasksToRun(100); 78 assert.isTrue(controller.hasActiveAnimation); 79 80 tr.b.forcePendingRAFTasksToRun(150); 81 assert.isFalse(controller.hasActiveAnimation); 82 assert.equal(target.panX, 20); 83 }); 84}); 85</script> 86