blob: 5b84a49798e554ce1439d3e3098ed73321a2747a [file] [log] [blame]
<!DOCTYPE html>
<!--
Copyright (c) 2013 The Chromium Authors. All rights reserved.
Use of this source code is governed by a BSD-style license that can be
found in the LICENSE file.
-->
<link rel="import" href="/core/timeline_display_transform.html">
<link rel="import" href="/core/timeline_display_transform_animations.html">
<link rel="import" href="/base/ui/animation_controller.html">
<script>
'use strict';
tv.b.unittest.testSuite(function() { // @suppress longLineCheck
var TimelineDisplayTransform = tv.c.TimelineDisplayTransform;
var TimelineDisplayTransformPanAnimation =
tv.c.TimelineDisplayTransformPanAnimation;
var TimelineDisplayTransformZoomToAnimation =
tv.c.TimelineDisplayTransformZoomToAnimation;
test('panBasic', function() {
var target = new TimelineDisplayTransform();
target.cloneAnimationState = function() {
return this.clone();
};
var a = new TimelineDisplayTransformPanAnimation(10, 20, 100);
var controller = new tv.b.ui.AnimationController();
controller.target = target;
controller.queueAnimation(a, 0);
assert.isTrue(a.affectsPanY);
tv.b.forcePendingRAFTasksToRun(50);
assert.isAbove(target.panX, 0);
tv.b.forcePendingRAFTasksToRun(100);
assert.isFalse(controller.hasActiveAnimation);
assert.equal(target.panX, 10);
assert.equal(target.panY, 20);
});
test('zoomBasic', function() {
var target = new TimelineDisplayTransform();
target.panY = 30;
target.cloneAnimationState = function() {
return this.clone();
};
var a = new TimelineDisplayTransformZoomToAnimation(10, 20, 30, 5, 100);
var controller = new tv.b.ui.AnimationController();
controller.target = target;
controller.queueAnimation(a, 0);
assert.isFalse(a.affectsPanY);
tv.b.forcePendingRAFTasksToRun(100);
assert.equal(target.scaleX, 5);
});
test('panTakeover', function() {
var target = new TimelineDisplayTransform();
target.cloneAnimationState = function() {
return this.clone();
};
var b = new TimelineDisplayTransformPanAnimation(10, 0, 100);
var a = new TimelineDisplayTransformPanAnimation(10, 0, 100);
var controller = new tv.b.ui.AnimationController();
controller.target = target;
controller.queueAnimation(a, 0);
tv.b.forcePendingRAFTasksToRun(50);
controller.queueAnimation(b, 50);
tv.b.forcePendingRAFTasksToRun(100);
assert.isTrue(controller.hasActiveAnimation);
tv.b.forcePendingRAFTasksToRun(150);
assert.isFalse(controller.hasActiveAnimation);
assert.equal(target.panX, 20);
});
});
</script>