зеркало из https://github.com/mozilla/gecko-dev.git
Bug 1287983
part 7 - Add negative delay tests for CSS-Transitions event. r=birtles
MozReview-Commit-ID: KOVljOtRqFt --HG-- extra : rebase_source : 324e0075339a99e7abadb82f3033ec7e4e7175e8
This commit is contained in:
Родитель
cf59836bae
Коммит
e04fc55c09
|
@ -32,9 +32,10 @@ TransitionEventHandler.prototype.clear = function() {
|
|||
this.transitionend = undefined;
|
||||
};
|
||||
|
||||
function setupTransition(t) {
|
||||
function setupTransition(t, transitionStyle) {
|
||||
var div, watcher, handler, transition;
|
||||
div = addDiv(t, { style: 'transition: margin-left 100s 100s' });
|
||||
transitionStyle = transitionStyle || 'transition: margin-left 100s 100s';
|
||||
div = addDiv(t, { style: transitionStyle });
|
||||
watcher = new EventWatcher(t, div, [ 'transitionrun',
|
||||
'transitionstart',
|
||||
'transitionend' ]);
|
||||
|
@ -176,6 +177,46 @@ promise_test(function(t) {
|
|||
});
|
||||
}, 'After -> Active');
|
||||
|
||||
promise_test(function(t) {
|
||||
var [transition, watcher, handler] =
|
||||
setupTransition(t, 'transition: margin-left 100s -50s');
|
||||
|
||||
return watcher.wait_for([ 'transitionrun',
|
||||
'transitionstart' ]).then(function() {
|
||||
assert_equals(handler.transitionrun, 50.0);
|
||||
assert_equals(handler.transitionstart, 50.0);
|
||||
transition.finish();
|
||||
return watcher.wait_for('transitionend');
|
||||
}).then(function(evt) {
|
||||
assert_equals(evt.elapsedTime, 100.0);
|
||||
});
|
||||
}, 'Calculating the interval start and end time with negative start delay.');
|
||||
|
||||
promise_test(function(t) {
|
||||
var [transition, watcher, handler] = setupTransition(t);
|
||||
|
||||
return watcher.wait_for('transitionrun').then(function(evt) {
|
||||
// We can't set the end delay via generated effect timing.
|
||||
// Because CSS-Transition use the AnimationEffectTimingReadOnly.
|
||||
transition.effect = new KeyframeEffect(handler.target,
|
||||
{ marginleft: [ '0px', '100px' ]},
|
||||
{ duration: 100 * MS_PER_SEC,
|
||||
endDelay: -50 * MS_PER_SEC });
|
||||
// Seek to Before and play.
|
||||
transition.cancel();
|
||||
transition.play();
|
||||
return watcher.wait_for('transitionstart');
|
||||
}).then(function() {
|
||||
assert_equals(handler.transitionstart, 0.0);
|
||||
|
||||
// Seek to After phase.
|
||||
transition.finish();
|
||||
return watcher.wait_for('transitionend');
|
||||
}).then(function(evt) {
|
||||
assert_equals(evt.elapsedTime, 50.0);
|
||||
});
|
||||
}, 'Calculating the interval start and end time with negative end delay.');
|
||||
|
||||
done();
|
||||
</script>
|
||||
</body>
|
||||
|
|
Загрузка…
Ссылка в новой задаче