Index: pkg/polymer/lib/elements/web-animations-js/test/testcases/manual-test-step.html |
diff --git a/pkg/polymer/lib/elements/web-animations-js/test/testcases/manual-test-step.html b/pkg/polymer/lib/elements/web-animations-js/test/testcases/manual-test-step.html |
new file mode 100644 |
index 0000000000000000000000000000000000000000..3d99b61e95db283e8fe0f34e32d9dafe35d4f35d |
--- /dev/null |
+++ b/pkg/polymer/lib/elements/web-animations-js/test/testcases/manual-test-step.html |
@@ -0,0 +1,88 @@ |
+<!-- |
+Copyright 2012 Google Inc. All Rights Reserved. |
+ |
+Licensed under the Apache License, Version 2.0 (the "License"); |
+you may not use this file except in compliance with the License. |
+You may obtain a copy of the License at |
+ |
+ http://www.apache.org/licenses/LICENSE-2.0 |
+ |
+Unless required by applicable law or agreed to in writing, software |
+distributed under the License is distributed on an "AS IS" BASIS, |
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
+See the License for the specific language governing permissions and |
+limitations under the License. |
+--> |
+ |
+<!DOCTYPE html><meta charset="UTF-8"> |
+<style> |
+canvas { |
+ border: silver solid 1px; |
+ padding: 5px; |
+} |
+span { |
+ display: inline-block; |
+ padding: 5px; |
+} |
+</style> |
+<body> |
+ |
+<script src="../../web-animations.js"></script> |
+<script> |
+"use strict"; |
+ |
+var size = 100; |
+var duration = 3.0; |
+ |
+function testStep(numSteps, position) { |
+ var canvas = document.createElement('canvas'); |
+ canvas.width = canvas.height = size; |
+ var ctx = canvas.getContext('2d'); |
+ ctx.beginPath(); |
+ var span = document.createElement('span'); |
+ span.appendChild(canvas); |
+ span.appendChild(document.createElement('br')); |
+ span.appendChild(document.createTextNode('steps: ' + numSteps)); |
+ span.appendChild(document.createElement('br')); |
+ span.appendChild(document.createTextNode('position: ' + position)); |
+ document.body.appendChild(span); |
+ return new Animation(ctx, |
+ function(timeFraction, animation) { |
+ var target = animation.target; |
+ var inputTimeFraction = player.currentTime / duration; |
+ if (target.lastTimeFraction !== timeFraction) { |
+ target.beginPath(); |
+ target.moveTo(inputTimeFraction * size, |
+ size - target.lastTimeFraction * size); |
+ target.lineTo(inputTimeFraction * size, size - timeFraction * size); |
+ target.strokeStyle = 'silver'; |
+ target.stroke(); |
+ target.beginPath(); |
+ target.strokeStyle = 'blue'; |
+ } else { |
+ target.lineTo(inputTimeFraction * size, size - timeFraction * size); |
+ } |
+ target.lastTimeFraction = timeFraction; |
+ target.stroke(); |
+ }, { |
+ duration: duration, |
+ easing: 'steps(' + numSteps + ', ' + position + ')', |
+ }); |
+} |
+ |
+// TODO: Making player global like this is is rather ugly. It would be nice if |
+// the animation or player were passed to the custom animation effect's sample |
+// function. |
+var player = document.timeline.play(new ParGroup([ |
+ testStep(1, 'start'), |
+ testStep(1, 'middle'), |
+ testStep(1, 'end'), |
+ testStep(3, 'start'), |
+ testStep(3, 'middle'), |
+ testStep(3, 'end'), |
+ testStep(10, 'start'), |
+ testStep(10, 'middle'), |
+ testStep(10, 'end'), |
+])); |
+ |
+</script> |