Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1271)

Side by Side Diff: LayoutTests/animations/interpolation/webkit-mask-image-interpolation.html

Issue 1265873002: Add test coverage for interpolations using CSS wide keywords and neutral keyframes (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Rebased Created 5 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 <!DOCTYPE html> 1 <!DOCTYPE html>
2 <meta charset="UTF-8"> 2 <meta charset="UTF-8">
3 <style> 3 <style>
4 div.wrapper { 4 .parent {
5 border: 10px solid black; 5 -webkit-mask-image: url(../resources/blue-20.png);
6 width: 100px;
7 height: 100px;
8 display: inline-block;
9 margin-bottom: 10px;
10 } 6 }
11 .target { 7 .target {
12 -webkit-mask-position: top, bottom; 8 width: 20px;
13 -webkit-mask-size: 100px 50px; 9 height: 20px;
14 -webkit-mask-repeat: no-repeat; 10 display: inline-block;
15 background-color: blue; 11 background-color: black;
16 height: 100%; 12 -webkit-mask-image: url(../resources/stripes-20.png);
17 } 13 }
18 div.wrapper:nth-child(2n) { 14 .expected {
19 border-color: green; 15 background-color: green;
16 margin-right: 10px;
20 } 17 }
21 </style> 18 </style>
22 <body> 19 <body>
23 <template id="target-template">
24 <div class="wrapper">
25 <div class="target"></div>
26 </div>
27 </template>
28 <script src="resources/interpolation-test.js"></script> 20 <script src="resources/interpolation-test.js"></script>
29 <script> 21 <script>
22 function assertCrossfadeInterpolation(options) {
23 var fromComputed = options.fromComputed || options.from;
24 assertInterpolation({
25 property: '-webkit-mask-image',
26 from: options.from,
27 to: options.to,
28 }, [
29 {at: -0.3, is: fromComputed},
30 {at: 0, is: fromComputed},
31 {at: 0.3, is: '-webkit-cross-fade(' + fromComputed + ', ' + options.to + ', 0.3)'},
32 {at: 0.5, is: '-webkit-cross-fade(' + fromComputed + ', ' + options.to + ', 0.5)'},
33 {at: 0.6, is: '-webkit-cross-fade(' + fromComputed + ', ' + options.to + ', 0.6)'},
34 {at: 1, is: options.to},
35 {at: 1.5, is: options.to},
36 ]);
37 }
38
39 // neutral
40 assertCrossfadeInterpolation({
41 from: '',
42 fromComputed: 'url(../resources/stripes-20.png)',
43 to: 'url(../resources/green-20.png)',
44 });
45
46 // initial
47 assertNoInterpolation({
48 property: '-webkit-mask-image',
49 from: 'initial',
50 to: 'url(../resources/green-20.png)',
51 });
52
53 // inherit
54 assertCrossfadeInterpolation({
55 from: 'inherit',
56 fromComputed: 'url(../resources/blue-20.png)',
57 to: 'url(../resources/green-20.png)',
58 });
59
60 // unset
61 assertNoInterpolation({
62 property: '-webkit-mask-image',
63 from: 'unset',
64 to: 'url(../resources/stripes-20.png)',
65 });
66
30 // Image to image 67 // Image to image
31 var from = 'url(../resources/stripes-100.png)'; 68 assertCrossfadeInterpolation({
32 var to = 'url(../resources/blue-100.png)'; 69 from: 'url(../resources/stripes-20.png)',
70 to: 'url(../resources/blue-20.png)',
71 });
72
73 // Image to gradient
74 assertCrossfadeInterpolation({
75 from: 'url(../resources/stripes-20.png)',
76 to: 'linear-gradient(45deg, blue, transparent)',
77 });
78
79 // Gradient to gradient
80 assertCrossfadeInterpolation({
81 from: 'linear-gradient(-45deg, blue, transparent)',
82 to: 'linear-gradient(45deg, blue, transparent)',
83 });
84
85 // Keyword to image
86 assertNoInterpolation({
87 property: '-webkit-mask-image',
88 from: 'none',
89 to: 'url(../resources/blue-20.png)',
90 });
91
92 // Multiple to multiple
93 var fromA = 'url(../resources/stripes-20.png)';
94 var fromB = 'linear-gradient(-45deg, blue, transparent)';
95 var toA = 'url(../resources/blue-20.png)';
96 var toB = 'url(../resources/stripes-20.png)';
97 var from = fromA + ', ' + fromB;
98 var to = toA + ', ' + toB;
33 assertInterpolation({ 99 assertInterpolation({
34 property: '-webkit-mask-image', 100 property: '-webkit-mask-image',
35 from: from, 101 from: from,
36 to: to,
37 }, [
38 {at: -0.3, is: from},
39 {at: 0, is: from},
40 {at: 0.3, is: '-webkit-cross-fade(' + from + ', ' + to + ', 0.3)'},
41 {at: 0.6, is: '-webkit-cross-fade(' + from + ', ' + to + ', 0.6)'},
42 {at: 1, is: to},
43 {at: 1.5, is: to},
44 ]);
45
46 // Image to gradient
47 from = 'url(../resources/stripes-100.png)';
48 to = 'linear-gradient(45deg, blue, transparent)';
49 assertInterpolation({
50 property: '-webkit-mask-image',
51 from: from,
52 to: to,
53 }, [
54 {at: -0.3, is: from},
55 {at: 0, is: from},
56 {at: 0.3, is: '-webkit-cross-fade(' + from + ', ' + to + ', 0.3)'},
57 {at: 0.6, is: '-webkit-cross-fade(' + from + ', ' + to + ', 0.6)'},
58 {at: 1, is: to},
59 {at: 1.5, is: to},
60 ]);
61
62 // Gradient to gradient
63 from = 'linear-gradient(-45deg, blue, transparent)';
64 to = 'linear-gradient(45deg, blue, transparent)';
65 assertInterpolation({
66 property: '-webkit-mask-image',
67 from: from,
68 to: to,
69 }, [
70 {at: -0.3, is: from},
71 {at: 0, is: from},
72 {at: 0.3, is: '-webkit-cross-fade(' + from + ', ' + to + ', 0.3)'},
73 {at: 0.6, is: '-webkit-cross-fade(' + from + ', ' + to + ', 0.6)'},
74 {at: 1, is: to},
75 {at: 1.5, is: to},
76 ]);
77
78 // Keyword to image
79 from = 'none';
80 to = 'url(../resources/blue-100.png)';
81 assertNoInterpolation({
82 property: '-webkit-mask-image',
83 from: from,
84 to: to,
85 });
86
87 // Multiple to multiple
88 var fromA = 'url(../resources/stripes-100.png)';
89 var fromB = 'linear-gradient(-45deg, blue, transparent)';
90 var toA = 'url(../resources/blue-100.png)';
91 var toB = 'url(../resources/stripes-100.png)';
92 from = fromA + ', ' + fromB;
93 to = toA + ', ' + toB;
94 assertInterpolation({
95 property: '-webkit-mask-image',
96 from: from,
97 to: to, 102 to: to,
98 }, [ 103 }, [
99 // The interpolation of different numbers of -webkit-mask-images looks a bit s trange here. 104 // The interpolation of different numbers of -webkit-mask-images looks a bit s trange here.
100 // Animating -webkit-mask-image is not specified to be possible however we do it for backwards compatibility. 105 // Animating -webkit-mask-image is not specified to be possible however we do it for backwards compatibility.
101 // With this in mind we kept the implementation simple at the expense of this corner case because there is 106 // With this in mind we kept the implementation simple at the expense of this corner case because there is
102 // no official specification to support. 107 // no official specification to support.
103 {at: -0.3, is: from}, 108 {at: -0.3, is: from},
104 {at: 0, is: from}, 109 {at: 0, is: from},
105 {at: 0.3, is: '-webkit-cross-fade(' + fromA + ', ' + toA + ', 0.3), -webkit-cr oss-fade(' + fromB + ', ' + toB + ', 0.3)'}, 110 {at: 0.3, is: '-webkit-cross-fade(' + fromA + ', ' + toA + ', 0.3), -webkit-cr oss-fade(' + fromB + ', ' + toB + ', 0.3)'},
106 {at: 0.6, is: '-webkit-cross-fade(' + fromA + ', ' + toA + ', 0.6), -webkit-cr oss-fade(' + fromB + ', ' + toB + ', 0.6)'}, 111 {at: 0.6, is: '-webkit-cross-fade(' + fromA + ', ' + toA + ', 0.6), -webkit-cr oss-fade(' + fromB + ', ' + toB + ', 0.6)'},
107 {at: 1, is: to}, 112 {at: 1, is: to},
108 {at: 1.5, is: to}, 113 {at: 1.5, is: to},
109 ]); 114 ]);
110 115
111 // Single to multiple 116 // Single to multiple
112 from = 'url(../resources/blue-100.png)'; 117 from = 'url(../resources/blue-20.png)';
113 var toA = 'url(../resources/stripes-100.png)'; 118 toA = 'url(../resources/stripes-20.png)';
114 var toB = 'url(../resources/blue-100.png)'; 119 toB = 'url(../resources/blue-20.png)';
115 to = toA + ', ' + toB; 120 to = toA + ', ' + toB;
116 assertInterpolation({ 121 assertInterpolation({
117 property: '-webkit-mask-image', 122 property: '-webkit-mask-image',
118 from: from, 123 from: from,
119 to: to, 124 to: to,
120 }, [ 125 }, [
121 {at: -0.3, is: from + ', ' + from}, 126 {at: -0.3, is: from + ', ' + from},
122 {at: 0, is: from}, 127 {at: 0, is: from},
123 {at: 0.3, is: '-webkit-cross-fade(' + from + ', ' + toA + ', 0.3), -webkit-cro ss-fade(' + from + ', ' + toB + ', 0.3)'}, 128 {at: 0.3, is: '-webkit-cross-fade(' + from + ', ' + toA + ', 0.3), -webkit-cro ss-fade(' + from + ', ' + toB + ', 0.3)'},
124 {at: 0.6, is: '-webkit-cross-fade(' + from + ', ' + toA + ', 0.6), -webkit-cro ss-fade(' + from + ', ' + toB + ', 0.6)'}, 129 {at: 0.6, is: '-webkit-cross-fade(' + from + ', ' + toA + ', 0.6), -webkit-cro ss-fade(' + from + ', ' + toB + ', 0.6)'},
125 {at: 1, is: to}, 130 {at: 1, is: to},
126 {at: 1.5, is: to}, 131 {at: 1.5, is: to},
127 ]); 132 ]);
128 133
129 // Multiple mismatched types 134 // Multiple mismatched types
130 from = 'url(../resources/blue-100.png), none';
131 to = 'url(../resources/stripes-100.png), url(../resources/blue-100.png)';
132 assertNoInterpolation({ 135 assertNoInterpolation({
133 property: '-webkit-mask-image', 136 property: '-webkit-mask-image',
134 from: from, 137 from: 'url(../resources/blue-20.png), none',
135 to: to, 138 to: 'url(../resources/stripes-20.png), url(../resources/blue-20.png)',
136 }); 139 });
137 </script> 140 </script>
138 </body> 141 </body>
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698