зеркало из https://github.com/mozilla/popcorn-js.git
Merge pull request #49 from cadecairos/t990
Support for 'oneTime' attribute + tests [#990]
This commit is contained in:
Коммит
1be0abe3d5
|
@ -1365,6 +1365,12 @@
|
|||
natives.start = natives.start || natives[ "in" ];
|
||||
natives.end = natives.end || natives[ "out" ];
|
||||
|
||||
if ( options.once ) {
|
||||
natives.end = combineFn( natives.end, function() {
|
||||
this.removeTrackEvent( options._id );
|
||||
});
|
||||
}
|
||||
|
||||
// extend teardown to always call end if running
|
||||
natives._teardown = combineFn(function() {
|
||||
|
||||
|
|
|
@ -4174,6 +4174,46 @@ test( "end undefined or false should never be fired", function() {
|
|||
$pop.currentTime( $pop.duration() );
|
||||
});
|
||||
|
||||
asyncTest( "Plug-ins with a `once` attribute should be removed after `end` is fired.", 3, function() {
|
||||
|
||||
var $pop = Popcorn( "#video" ),
|
||||
startFired = 0;
|
||||
endFired = 0;
|
||||
|
||||
Popcorn.plugin( "onceplugin", {
|
||||
start: function() {
|
||||
if ( !startFired ) {
|
||||
ok( true, "start called once" );
|
||||
startFired++;
|
||||
} else {
|
||||
ok( false, "Start should oly execute once!" )
|
||||
startFired++;
|
||||
}
|
||||
},
|
||||
end: function() {
|
||||
if ( !endFired ) {
|
||||
ok( true, "end called once" );
|
||||
this.currentTime( 0 );
|
||||
endFired++;
|
||||
} else {
|
||||
ok( false, "End should only execute once!" );
|
||||
endFired++;
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
$pop.onceplugin({ start: 2, end: 3, once: true });
|
||||
|
||||
$pop.cue( 4, function() {
|
||||
ok( startFired === 1 && endFired === 1, "start and end called one each" );
|
||||
$pop.removePlugin( "onceplugin" );
|
||||
$pop.destroy();
|
||||
start();
|
||||
});
|
||||
|
||||
$pop.play( 0 );
|
||||
});
|
||||
|
||||
module( "Popcorn XHR" );
|
||||
test( "Basic", function() {
|
||||
|
||||
|
|
Загрузка…
Ссылка в новой задаче