--- a/dom/animation/test/chrome/test_animation_properties.html
+++ b/dom/animation/test/chrome/test_animation_properties.html
@@ -704,32 +704,86 @@ var gTests = [
value(1, '5px', 'replace') ] },
{ property: 'margin-bottom',
values: [ value(0, undefined, 'add', 'linear'),
value(1, '5px', 'replace') ] },
{ property: 'margin-left',
values: [ value(0, undefined, 'add', 'linear'),
value(1, '5px', 'replace') ] } ]
},
+ { desc: 'a missing property in initial keyframe and there are some ' +
+ 'keyframes with the same offset',
+ frames: [ { },
+ { margin: '10px', offset: 0.5 },
+ { margin: '20px', offset: 0.5 },
+ { margin: '30px'} ],
+ expected: [ { property: 'margin-top',
+ values: [ value(0, undefined, 'add', 'linear'),
+ value(0.5, '10px', 'replace'),
+ value(0.5, '20px', 'replace', 'linear'),
+ value(1, '30px', 'replace') ] },
+ { property: 'margin-right',
+ values: [ value(0, undefined, 'add', 'linear'),
+ value(0.5, '10px', 'replace'),
+ value(0.5, '20px', 'replace', 'linear'),
+ value(1, '30px', 'replace') ] },
+ { property: 'margin-bottom',
+ values: [ value(0, undefined, 'add', 'linear'),
+ value(0.5, '10px', 'replace'),
+ value(0.5, '20px', 'replace', 'linear'),
+ value(1, '30px', 'replace') ] },
+ { property: 'margin-left',
+ values: [ value(0, undefined, 'add', 'linear'),
+ value(0.5, '10px', 'replace'),
+ value(0.5, '20px', 'replace', 'linear'),
+ value(1, '30px', 'replace') ] } ]
+ },
{ desc: 'a missing property in final keyframe',
frames: [ { margin: '5px' },
{ } ],
expected: [ { property: 'margin-top',
values: [ value(0, '5px', 'replace', 'linear'),
value(1, undefined, 'add') ] },
{ property: 'margin-right',
values: [ value(0, '5px', 'replace', 'linear'),
value(1, undefined, 'add') ] },
{ property: 'margin-bottom',
values: [ value(0, '5px', 'replace', 'linear'),
value(1, undefined, 'add') ] },
{ property: 'margin-left',
values: [ value(0, '5px', 'replace', 'linear'),
value(1, undefined, 'add') ] } ]
},
+ { desc: 'a missing property in final keyframe and there are some ' +
+ 'keyframes with the same offsets',
+ frames: [ { margin: '5px' },
+ { margin: '10px', offset: 0.5 },
+ { margin: '20px', offset: 0.5 },
+ { } ],
+ expected: [ { property: 'margin-top',
+ values: [ value(0, '5px', 'replace', 'linear'),
+ value(0.5, '10px', 'replace'),
+ value(0.5, '20px', 'replace', 'linear'),
+ value(1, undefined, 'add') ] },
+ { property: 'margin-right',
+ values: [ value(0, '5px', 'replace', 'linear'),
+ value(0.5, '10px', 'replace'),
+ value(0.5, '20px', 'replace', 'linear'),
+ value(1, undefined, 'add') ] },
+ { property: 'margin-bottom',
+ values: [ value(0, '5px', 'replace', 'linear'),
+ value(0.5, '10px', 'replace'),
+ value(0.5, '20px', 'replace', 'linear'),
+ value(1, undefined, 'add') ] },
+ { property: 'margin-left',
+ values: [ value(0, '5px', 'replace', 'linear'),
+ value(0.5, '10px', 'replace'),
+ value(0.5, '20px', 'replace', 'linear'),
+ value(1, undefined, 'add') ] } ]
+ },
{ desc: 'a missing property in final keyframe where it forms the last'
+ ' segment in the series',
frames: [ { margin: '5px' },
{ marginLeft: '5px',
marginRight: '5px',
marginBottom: '5px' } ],
expected: [ { property: 'margin-bottom',
values: [ value(0, '5px', 'replace', 'linear'),