// La classe vCarousel est instanciée en recevant un tableau d'ids des conteneurs HTML des vidéos à afficher successivement.
// Le tableau n'est pas dédoublonné, pour rester libre d'afficher plusieurs fois la même vidéo durant un tour du carrousel.
// Plusieurs options sont possibles :
// - firstVideoId est une chaîne permettant de fournir l'id du conteneur de la première vidéo à afficher lors de l'appel. Par défaut la première vidéo de la liste sera affichée. Si on passe une chaîne vide, aucune ne sera affichée.
// - playFirstVideo et playNextVideos demandent de lancer automatiquement la lecture respectivement de la vidéo demandée et de celles automatiquement chargée par la fonction. Ce n'est pas le cas par défaut et peut être bloqué par le navigateur.
// - noStop permet de demander à ce que les vidéos continuent à tourner même quand toutes ont été affichées. Par défaut, le carrousel s'arrête.
// - noStop permet de demander à ce que les vidéos continuent à tourner, même quand toutes ont été affichées. Par défaut, le carrousel s'arrête.
interfacevideoDOM
{
id: string;
@ -19,7 +21,7 @@ export class vCarousel
private_playNextVideos: boolean=false;
private_noStop: boolean=false;
privatenbVContainers: number=0;
private currentVideo: HTMLMediaElement;
private_currentVideo: HTMLMediaElement;
// Les ids reçus doivent correspondre à des éléments HTML contenant une vidéo.
it("should be an instance of vCarousel",function()
{
expect(vCarouselTest).toBeInstanceOf(vCarousel);
});
describe("setting vCarousel",function()
{
it("Doit générer une erreur si tous les ids passés ne correspondent pas à des éléments HTML existants.",function()
{
expect(function(){returnvCarouselTest.vContainers=["dontExistId","vFunanbule","vForgeron"];}).toThrowError("Aucun élément HTML trouvé dans la page pour l'id dontExistId.");
expect(function(){returnvCarouselTest.vContainers=["vFunanbule","dontExistId","vForgeron"];}).toThrowError("Aucun élément HTML trouvé dans la page pour l'id dontExistId.");
expect(function(){returnvCarouselTest.vContainers=["vFunanbule","vForgeron","dontExistId"];}).toThrowError("Aucun élément HTML trouvé dans la page pour l'id dontExistId.");
it("Doit générer une erreur si tous les ids passés ne correspondent pas à des éléments HTML contenant une vidéo.",function()
{
expect(function(){returnvCarouselTest.vContainers=["noVideo","vFunanbule","vForgeron"];}).toThrowError("Aucune balise vidéo trouvée dans l'élément HTML ayant comme id noVideo.");
expect(function(){returnvCarouselTest.vContainers=["vFunanbule","noVideo","vForgeron"];}).toThrowError("Aucune balise vidéo trouvée dans l'élément HTML ayant comme id noVideo.");
expect(function(){returnvCarouselTest.vContainers=["vFunanbule","vForgeron","noVideo"];}).toThrowError("Aucune balise vidéo trouvée dans l'élément HTML ayant comme id noVideo.");
it("Doit générer une erreur s'il n'y a pas au moins deux éléments HTML valides fournis.",function()
{
expect(function(){returnvCarouselTest.vContainers=["vFunanbule"];}).toThrowError("Il vous faut fournir au moins deux conteneurs de vidéo valides pour pouvoir lancer le carrousel.");
it("Doit cacher toutes les vidéos sauf la première, si aucune indication n'est passée en option, qui doit être enregistrée comme celle en cours.",function()