mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-11-28 23:31:56 +00:00
Bug 1265611 - Add tests that we ignore disabled properties when creating animations from the Web Animations API; r=heycam
MozReview-Commit-ID: 81XkkwtyJLt
This commit is contained in:
parent
383f4aa97c
commit
e82da4fa99
@ -36,6 +36,7 @@ support-files =
|
||||
css-transitions/file_pseudoElement-get-animations.html
|
||||
document-timeline/file_document-timeline.html
|
||||
mozilla/file_deferred_start.html
|
||||
mozilla/file_disabled_properties.html
|
||||
mozilla/file_hide_and_show.html
|
||||
mozilla/file_partial_keyframes.html
|
||||
testcommon.js
|
||||
@ -78,5 +79,6 @@ skip-if = buildapp == 'mulet'
|
||||
skip-if = buildapp == 'mulet'
|
||||
[mozilla/test_deferred_start.html]
|
||||
skip-if = (toolkit == 'gonk' && debug)
|
||||
[mozilla/test_disabled_properties.html]
|
||||
[mozilla/test_hide_and_show.html]
|
||||
[mozilla/test_partial_keyframes.html]
|
||||
|
73
dom/animation/test/mozilla/file_disabled_properties.html
Normal file
73
dom/animation/test/mozilla/file_disabled_properties.html
Normal file
@ -0,0 +1,73 @@
|
||||
<!doctype html>
|
||||
<meta charset=utf-8>
|
||||
<script src="../testcommon.js"></script>
|
||||
<body>
|
||||
<script>
|
||||
'use strict';
|
||||
|
||||
function waitForSetPref(pref, value) {
|
||||
return new Promise(function(resolve, reject) {
|
||||
SpecialPowers.pushPrefEnv({ 'set': [[pref, value]] }, resolve);
|
||||
});
|
||||
}
|
||||
|
||||
/*
|
||||
* These tests rely on the fact that the -webkit-text-fill-color property
|
||||
* is disabled by the layout.css.prefixes.webkit pref. If we ever remove that
|
||||
* pref we will need to substitute some other pref:property combination.
|
||||
*/
|
||||
|
||||
promise_test(function(t) {
|
||||
return waitForSetPref('layout.css.prefixes.webkit', true).then(() => {
|
||||
var anim = addDiv(t).animate({ webkitTextFillColor: [ 'green', 'blue' ]});
|
||||
assert_equals(anim.effect.getFrames().length, 2,
|
||||
'A property-indexed keyframe specifying only enabled'
|
||||
+ ' properties produces keyframes');
|
||||
return waitForSetPref('layout.css.prefixes.webkit', false);
|
||||
}).then(() => {
|
||||
var anim = addDiv(t).animate({ webkitTextFillColor: [ 'green', 'blue' ]});
|
||||
assert_equals(anim.effect.getFrames().length, 0,
|
||||
'A property-indexed keyframe specifying only disabled'
|
||||
+ ' properties produces no keyframes');
|
||||
});
|
||||
}, 'Specifying a disabled property using a property-indexed keyframe');
|
||||
|
||||
promise_test(function(t) {
|
||||
var createAnim = () => {
|
||||
var anim = addDiv(t).animate([ { webkitTextFillColor: 'green' },
|
||||
{ webkitTextFillColor: 'blue' } ]);
|
||||
assert_equals(anim.effect.getFrames().length, 2,
|
||||
'Animation specified using a keyframe sequence should'
|
||||
+ ' return the same number of keyframes regardless of'
|
||||
+ ' whether or not the specified properties are disabled');
|
||||
return anim;
|
||||
};
|
||||
|
||||
var assert_has_property = (anim, index, descr, property) => {
|
||||
assert_true(
|
||||
anim.effect.getFrames()[index].hasOwnProperty(property),
|
||||
`${descr} should have the '${property}' property`);
|
||||
};
|
||||
var assert_does_not_have_property = (anim, index, descr, property) => {
|
||||
assert_false(
|
||||
anim.effect.getFrames()[index].hasOwnProperty(property),
|
||||
`${descr} should NOT have the '${property}' property`);
|
||||
};
|
||||
|
||||
return waitForSetPref('layout.css.prefixes.webkit', true).then(() => {
|
||||
var anim = createAnim();
|
||||
assert_has_property(anim, 0, 'Initial keyframe', 'webkitTextFillColor');
|
||||
assert_has_property(anim, 1, 'Final keyframe', 'webkitTextFillColor');
|
||||
return waitForSetPref('layout.css.prefixes.webkit', false);
|
||||
}).then(() => {
|
||||
var anim = createAnim();
|
||||
assert_does_not_have_property(anim, 0, 'Initial keyframe',
|
||||
'webkitTextFillColor');
|
||||
assert_does_not_have_property(anim, 1, 'Final keyframe',
|
||||
'webkitTextFillColor');
|
||||
});
|
||||
}, 'Specifying a disabled property using a keyframe sequence');
|
||||
|
||||
done();
|
||||
</script>
|
||||
</body>
|
14
dom/animation/test/mozilla/test_disabled_properties.html
Normal file
14
dom/animation/test/mozilla/test_disabled_properties.html
Normal file
@ -0,0 +1,14 @@
|
||||
<!doctype html>
|
||||
<meta charset=utf-8>
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<div id="log"></div>
|
||||
<script>
|
||||
'use strict';
|
||||
setup({explicit_done: true});
|
||||
SpecialPowers.pushPrefEnv(
|
||||
{ "set": [["dom.animations-api.core.enabled", true]]},
|
||||
function() {
|
||||
window.open("file_disabled_properties.html");
|
||||
});
|
||||
</script>
|
Loading…
Reference in New Issue
Block a user