| Index: LayoutTests/animations/interpolation/svg-stroke-dasharray-interpolation.html
|
| diff --git a/LayoutTests/animations/interpolation/svg-stroke-dasharray-interpolation.html b/LayoutTests/animations/interpolation/svg-stroke-dasharray-interpolation.html
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..2e117a0ba910f1dbf1845b6a05a4db5a4879b8b5
|
| --- /dev/null
|
| +++ b/LayoutTests/animations/interpolation/svg-stroke-dasharray-interpolation.html
|
| @@ -0,0 +1,168 @@
|
| +<!DOCTYPE html>
|
| +<meta charset="UTF-8">
|
| +<style>
|
| +.target {
|
| + stroke-width: 10px;
|
| + stroke: black;
|
| +}
|
| +.replica {
|
| + stroke: green;
|
| +}
|
| +</style>
|
| +<body>
|
| +<template id="target-template">
|
| + <svg height="200" width="10">
|
| + <path d="M5,0 l0,400" class="target">
|
| + </svg>
|
| +</template>
|
| +<script src="resources/interpolation-test.js"></script>
|
| +<script>
|
| +// Basic case
|
| +assertInterpolation({
|
| + property: 'stroke-dasharray',
|
| + from: '5 10',
|
| + to: '15 20'
|
| +}, [
|
| + {at: -0.6, is: ' 0 4'}, // Values must be non-negative.
|
| + {at: -0.4, is: ' 1 6'},
|
| + {at: -0.2, is: ' 3 8'},
|
| + {at: 0, is: ' 5 10'},
|
| + {at: 0.2, is: ' 7 12'},
|
| + {at: 0.4, is: ' 9 14'},
|
| + {at: 0.6, is: '11 16'},
|
| + {at: 0.8, is: '13 18'},
|
| + {at: 1, is: '15 20'},
|
| + {at: 1.2, is: '17 22'},
|
| +]);
|
| +
|
| +// Zero value
|
| +assertInterpolation({
|
| + property: 'stroke-dasharray',
|
| + from: '0 0',
|
| + to: '5 10'
|
| +}, [
|
| + {at: -0.2, is: ' 0 0'}, // Values must be non-negative.
|
| + {at: 0, is: ' 0 0'},
|
| + {at: 0.2, is: ' 1 2'},
|
| + {at: 0.4, is: ' 2 4'},
|
| + {at: 0.6, is: ' 3 6'},
|
| + {at: 0.8, is: ' 4 8'},
|
| + {at: 1.0, is: ' 5 10'},
|
| + {at: 1.2, is: ' 6 12'},
|
| +]);
|
| +
|
| +// From none
|
| +assertInterpolation({
|
| + property: 'stroke-dasharray',
|
| + from: 'none',
|
| + to: '5 10'
|
| +}, [
|
| + {at: -0.2, is: ' 0 0'}, // Values must be non-negative.
|
| + {at: 0, is: 'none'},
|
| + {at: 0.2, is: ' 1 2'},
|
| + {at: 0.4, is: ' 2 4'},
|
| + {at: 0.6, is: ' 3 6'},
|
| + {at: 0.8, is: ' 4 8'},
|
| + {at: 1.0, is: ' 5 10'},
|
| + {at: 1.2, is: ' 6 12'},
|
| +]);
|
| +
|
| +// To none
|
| +assertInterpolation({
|
| + property: 'stroke-dasharray',
|
| + from: '5 10',
|
| + to: 'none'
|
| +}, [
|
| + {at: -0.2, is: ' 6 12'},
|
| + {at: 0, is: ' 5 10'},
|
| + {at: 0.2, is: ' 4 8'},
|
| + {at: 0.4, is: ' 3 6'},
|
| + {at: 0.6, is: ' 2 4'},
|
| + {at: 0.8, is: ' 1 2'},
|
| + {at: 1.0, is: 'none'},
|
| + {at: 1.2, is: ' 0 0'}, // Values must be non-negative.
|
| +]);
|
| +
|
| +// Both none
|
| +assertInterpolation({
|
| + property: 'stroke-dasharray',
|
| + from: 'none',
|
| + to: 'none'
|
| +}, [
|
| + {at: -0.2, is: 'none'},
|
| + {at: 0, is: 'none'},
|
| + {at: 2.2, is: 'none'},
|
| + {at: 4.2, is: 'none'},
|
| + {at: 6.2, is: 'none'},
|
| + {at: 8.2, is: 'none'},
|
| + {at: 0.2, is: 'none'},
|
| + {at: 1.2, is: 'none'},
|
| +]);
|
| +
|
| +// Differing list lengths
|
| +// Lists are repeated until length is equal to lowest common multiple of lengths.
|
| +assertInterpolation({
|
| + property: 'stroke-dasharray',
|
| + from: '5 10',
|
| + to: '15 20 25'
|
| +}, [
|
| + {at: -0.2, is: ' 3 8 1 9 2 7'},
|
| + {at: 0, is: ' 5 10'},
|
| + {at: 0.2, is: ' 7 12 9 11 8 13'},
|
| + {at: 0.4, is: ' 9 14 13 12 11 16'},
|
| + {at: 0.6, is: '11 16 17 13 14 19'},
|
| + {at: 0.8, is: '13 18 21 14 17 22'},
|
| + {at: 1, is: '15 20 25'},
|
| + {at: 1.2, is: '17 22 29 16 23 28'},
|
| +]);
|
| +
|
| +// Lowest common multiple of list lengths not equal to multiple of list lengths
|
| +assertInterpolation({
|
| + property: 'stroke-dasharray',
|
| + from: '5 10 15 20',
|
| + to: '25 30 35 40 45 50'
|
| +}, [
|
| + {at: -0.2, is: ' 1 6 11 16 0 2 13 18 0 4 9 14'}, // Values must be non-negative.
|
| + {at: 0, is: ' 5 10 15 20'},
|
| + {at: 0.2, is: ' 9 14 19 24 13 18 17 22 11 16 21 26'},
|
| + {at: 0.4, is: '13 18 23 28 21 26 19 24 17 22 27 32'},
|
| + {at: 0.6, is: '17 22 27 32 29 34 21 26 23 28 33 38'},
|
| + {at: 0.8, is: '21 26 31 36 37 42 23 28 29 34 39 44'},
|
| + {at: 1, is: '25 30 35 40 45 50'},
|
| + {at: 1.2, is: '29 34 39 44 53 58 27 32 41 46 51 56'},
|
| +]);
|
| +
|
| +// One list has odd length
|
| +assertInterpolation({
|
| + property: 'stroke-dasharray',
|
| + from: '5 10 15',
|
| + to: '20 25 30 35'
|
| +}, [
|
| + {at: -0.2, is: ' 2 7 12 0 8 13 0 5 14 1 6 11'}, // Values must be non-negative.
|
| + {at: 0, is: ' 5 10 15'},
|
| + {at: 0.2, is: ' 8 13 18 11 12 17 10 15 16 9 14 19'},
|
| + {at: 0.4, is: '11 16 21 17 14 19 15 20 17 13 18 23'},
|
| + {at: 0.6, is: '14 19 24 23 16 21 20 25 18 17 22 27'},
|
| + {at: 0.8, is: '17 22 27 29 18 23 25 30 19 21 26 31'},
|
| + {at: 1, is: '20 25 30 35'},
|
| + {at: 1.2, is: '23 28 33 41 22 27 35 40 21 29 34 39'},
|
| +]);
|
| +
|
| +// Both lists have odd length
|
| +assertInterpolation({
|
| + property: 'stroke-dasharray',
|
| + from: '5 10 15',
|
| + to: '20 25 30 35 40'
|
| +}, [
|
| + {at: -0.2, is: ' 2 7 12 0 4 14 1 6 11 0 8 13 0 5 10'}, // Values must be non-negative.
|
| + {at: 0, is: ' 5 10 15'},
|
| + {at: 0.2, is: ' 8 13 18 11 16 16 9 14 19 12 12 17 10 15 20'},
|
| + {at: 0.4, is: '11 16 21 17 22 17 13 18 23 19 14 19 15 20 25'},
|
| + {at: 0.6, is: '14 19 24 23 28 18 17 22 27 26 16 21 20 25 30'},
|
| + {at: 0.8, is: '17 22 27 29 34 19 21 26 31 33 18 23 25 30 35'},
|
| + {at: 1, is: '20 25 30 35 40'},
|
| + {at: 1.2, is: '23 28 33 41 46 21 29 34 39 47 22 27 35 40 45'},
|
| +]);
|
| +
|
| +</script>
|
| +</body>
|
|
|