easing-tests.js (2833B)
1 'use strict'; 2 3 const gEasingTests = [ 4 { 5 desc: 'step-start function', 6 easing: 'step-start', 7 easingFunction: stepStart(1), 8 serialization: 'steps(1, start)' 9 }, 10 { 11 desc: 'steps(1, start) function', 12 easing: 'steps(1, start)', 13 easingFunction: stepStart(1) 14 }, 15 { 16 desc: 'steps(2, start) function', 17 easing: 'steps(2, start)', 18 easingFunction: stepStart(2) 19 }, 20 { 21 desc: 'step-end function', 22 easing: 'step-end', 23 easingFunction: stepEnd(1), 24 serialization: 'steps(1)' 25 }, 26 { 27 desc: 'steps(1) function', 28 easing: 'steps(1)', 29 easingFunction: stepEnd(1) 30 }, 31 { 32 desc: 'steps(1, end) function', 33 easing: 'steps(1, end)', 34 easingFunction: stepEnd(1), 35 serialization: 'steps(1)' 36 }, 37 { 38 desc: 'steps(2, end) function', 39 easing: 'steps(2, end)', 40 easingFunction: stepEnd(2), 41 serialization: 'steps(2)' 42 }, 43 { 44 desc: 'linear function', 45 easing: 'linear', // cubic-bezier(0, 0, 1.0, 1.0) 46 easingFunction: cubicBezier(0, 0, 1.0, 1.0) 47 }, 48 { 49 desc: 'ease function', 50 easing: 'ease', // cubic-bezier(0.25, 0.1, 0.25, 1.0) 51 easingFunction: cubicBezier(0.25, 0.1, 0.25, 1.0) 52 }, 53 { 54 desc: 'ease-in function', 55 easing: 'ease-in', // cubic-bezier(0.42, 0, 1.0, 1.0) 56 easingFunction: cubicBezier(0.42, 0, 1.0, 1.0) 57 }, 58 { 59 desc: 'ease-in-out function', 60 easing: 'ease-in-out', // cubic-bezier(0.42, 0, 0.58, 1.0) 61 easingFunction: cubicBezier(0.42, 0, 0.58, 1.0) 62 }, 63 { 64 desc: 'ease-out function', 65 easing: 'ease-out', // cubic-bezier(0, 0, 0.58, 1.0) 66 easingFunction: cubicBezier(0, 0, 0.58, 1.0) 67 }, 68 { 69 desc: 'easing function which produces values greater than 1', 70 easing: 'cubic-bezier(0, 1.5, 1, 1.5)', 71 easingFunction: cubicBezier(0, 1.5, 1, 1.5) 72 }, 73 { 74 desc: 'easing function which produces values less than 1', 75 easing: 'cubic-bezier(0, -0.5, 1, -0.5)', 76 easingFunction: cubicBezier(0, -0.5, 1, -0.5) 77 } 78 ]; 79 80 const gEasingParsingTests = [ 81 ['linear', 'linear'], 82 ['ease-in-out', 'ease-in-out'], 83 ['Ease\\2d in-out', 'ease-in-out'], 84 ['ease /**/', 'ease'], 85 ]; 86 87 const gInvalidEasings = [ 88 '', 89 '7', 90 'test', 91 'initial', 92 'inherit', 93 'unset', 94 'unrecognized', 95 'var(--x)', 96 'ease-in-out, ease-out', 97 'cubic-bezier(1.1, 0, 1, 1)', 98 'cubic-bezier(0, 0, 1.1, 1)', 99 'cubic-bezier(-0.1, 0, 1, 1)', 100 'cubic-bezier(0, 0, -0.1, 1)', 101 'cubic-bezier(0.1, 0, 4, 0.4)', 102 'steps(-1, start)', 103 'steps(0.1, start)', 104 'steps(3, nowhere)', 105 'steps(-3, end)', 106 'function (a){return a}', 107 'function (x){return x}', 108 'function(x, y){return 0.3}', 109 ]; 110 111 // Easings that should serialize to the same string 112 const gRoundtripEasings = [ 113 'ease', 114 'linear', 115 'ease-in', 116 'ease-out', 117 'ease-in-out', 118 'cubic-bezier(0.1, 5, 0.23, 0)', 119 'steps(3, start)', 120 'steps(3)', 121 ];