";
+ const fixture="";
beforeEach(function()
{
@@ -18,174 +18,166 @@ describe("vCarousel", function()
document.body.removeChild(document.getElementById('fixture'));
});
- it("should be an instance of vCarousel", function()
+ it("Should be an instance of vCarousel", function()
{
expect(vCarouselTest).toBeInstanceOf(vCarousel);
});
- describe("setting vCarousel", function()
+ 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() { return vCarouselTest.vContainers=["dontExistId","vFunanbule","vForgeron"]; }).toThrowError(errors.elementNotFound+"dontExistId");
- expect(function() { return vCarouselTest.vContainers=["vFunanbule","dontExistId","vForgeron"]; }).toThrowError(errors.elementNotFound+"dontExistId");
- expect(function() { return vCarouselTest.vContainers=["vFunanbule","vForgeron","dontExistId"]; }).toThrowError(errors.elementNotFound+"dontExistId");
+ expect(function() { return vCarouselTest.vContainers=["dontExistId","video1","video2"]; }).toThrowError(errors.elementNotFound+"dontExistId");
+ expect(function() { return vCarouselTest.vContainers=["video1","dontExistId","video2"]; }).toThrowError(errors.elementNotFound+"dontExistId");
+ expect(function() { return vCarouselTest.vContainers=["video1","video2","dontExistId"]; }).toThrowError(errors.elementNotFound+"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() { return vCarouselTest.vContainers=["noVideo","vFunanbule","vForgeron"]; }).toThrowError(errors.videoNotFound+"noVideo");
- expect(function() { return vCarouselTest.vContainers=["vFunanbule","noVideo","vForgeron"]; }).toThrowError(errors.videoNotFound+"noVideo");
- expect(function() { return vCarouselTest.vContainers=["vFunanbule","vForgeron","noVideo"]; }).toThrowError(errors.videoNotFound+"noVideo");
+ {
+ expect(function() { return vCarouselTest.vContainers=["noVideo","video1","video2"]; }).toThrowError(errors.videoNotFound+"noVideo");
+ expect(function() { return vCarouselTest.vContainers=["video1","noVideo","video2"]; }).toThrowError(errors.videoNotFound+"noVideo");
+ expect(function() { return vCarouselTest.vContainers=["video1","video2","noVideo"]; }).toThrowError(errors.videoNotFound+"noVideo");
});
- it("Doit générer une erreur s'il n'y a pas au moins deux éléments HTML valides fournis.", function()
+ it("Doit générer une erreur s'il n'y a pas au moins 2 ids valides passés pour les éléments HTML contenant les vidéos.", function()
{
- expect(function() { return vCarouselTest.vContainers=["vFunanbule"]; }).toThrowError(errors.need2Videos);
+ expect(function() { return vCarouselTest.vContainers=["video1"]; }).toThrowError(errors.need2Videos);
});
it("Ne doit pas générer d'erreur s'il y a au moins 2 ids passés correspondant à des éléments HTML valides et contenant chacun une vidéo.", function()
{
- expect(function() { return vCarouselTest.vContainers=["vFunanbule","vForgeron"]; }).not.toThrowError();
+ expect(function() { return vCarouselTest.vContainers=["video1","video2"]; }).not.toThrowError();
});
- it("Ne doit pas prendre en compte l'id fourni pour la première vidéo à afficher s'il n'est pas correcte.", function()
+ it("Ne doit pas prendre en compte l'id fourni pour la première vidéo à afficher, s'il ne correspond pas à une des vidéos fournis.", function()
{
- vCarouselTest.vContainers=["vFunanbule","vForgeron"];
- vCarouselTest.firstVideoId="vCircuit";
+ vCarouselTest.vContainers=["video1","video2"];
+ vCarouselTest.firstVideoId="video3";
expect(vCarouselTest.firstVideoId).toBeUndefined();
});
-
- it("Doit accepter un firstVideoId vide pour n'afficher aucune vidéo au lancement.", function()
+
+ it("Doit accepter un firstVideoId vide permettant de cacher toutes les vidéos au lancement.", function()
{
- vCarouselTest.vContainers=["vFunanbule","vForgeron"];
+ vCarouselTest.vContainers=["video1","video2"];
vCarouselTest.firstVideoId="";
expect(vCarouselTest.firstVideoId).toBe("");
});
});
describe("running vCarousel", function()
- {
+ {
it("Doit générer une erreur si on lance le carrousel sans avoir fourni les éléments HTML contenant les vidéos.", function()
{
expect(function() { return vCarouselTest.run(); }).toThrowError(errors.needVideosProvided);
});
- it("Doit cacher toutes les vidéos si cela est demandé en option, aucune vidéo n'étant enregistrée comme en cours.", function()
+ it("Doit cacher toutes les vidéos si cela est demandé en option, aucune vidéo n'étant alors enregistrée comme en cours.", function()
{
- const videosId=["vFunanbule","vForgeron","vCircuit"];
+ const videosId=["video1","video2","video3"];
vCarouselTest.vContainers=videosId;
vCarouselTest.firstVideoId="";
vCarouselTest.run();
for(let containerId of videosId)
- {
expect(document.getElementById(containerId).style.display).toBe("none");
- }
expect(vCarouselTest.currentVideo).toBeUndefined();
});
it("Doit cacher toutes les vidéos, sauf celle passée en option, qui doit être enregistrée comme celle en cours.", function()
{
- vCarouselTest.vContainers=["vFunanbule","vForgeron","vCircuit"];
- vCarouselTest.firstVideoId="vCircuit";
+ vCarouselTest.vContainers=["video1","video2","video3"];
+ vCarouselTest.firstVideoId="video3";
vCarouselTest.run();
- expect(document.getElementById("vFunanbule").style.display).toBe("none");
- expect(document.getElementById("vForgeron").style.display).toBe("none");
- expect(document.getElementById("vCircuit").style.display).toBe("block");
- let currentVideo=document.querySelector("#vCircuit video");
- expect(vCarouselTest.currentVideo).toEqual(currentVideo);
+ expect(document.getElementById("video1").style.display).toBe("none");
+ expect(document.getElementById("video2").style.display).toBe("none");
+ expect(document.getElementById("video3").style.display).toBe("block");
+ expect(vCarouselTest.currentVideo).toEqual(document.querySelector("#video3 video"));
});
- 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()
+ it("Si aucune indication n'est passée en option, doit cacher toutes les vidéos sauf la première qui doit être enregistrée comme celle en cours.", function()
{
- vCarouselTest.vContainers=["vFunanbule","vForgeron","vCircuit"];
+ vCarouselTest.vContainers=["video1","video2","video3"];
vCarouselTest.run();
- expect(document.getElementById("vFunanbule").style.display).toBe("block");
- expect(document.getElementById("vForgeron").style.display).toBe("none");
- expect(document.getElementById("vCircuit").style.display).toBe("none");
- let currentVideo=document.querySelector("#vFunanbule video");
- expect(vCarouselTest.currentVideo).toEqual(currentVideo);
+ expect(document.getElementById("video1").style.display).toBe("block");
+ expect(document.getElementById("video2").style.display).toBe("none");
+ expect(document.getElementById("video3").style.display).toBe("none");
+ expect(vCarouselTest.currentVideo).toEqual(document.querySelector("#video1 video"));
});
it("Doit demander le lancement de la première vidéo affichée, si demandé en option.", function()
{
- vCarouselTest.vContainers=["vFunanbule","vForgeron","vCircuit"];
- vCarouselTest.firstVideoId="vCircuit";
+ vCarouselTest.vContainers=["video1","video2","video3"];
+ vCarouselTest.firstVideoId="video2";
vCarouselTest.playFirstVideo=true;
- let currentVideo=document.querySelector("#vCircuit video");
+ let currentVideo=document.querySelector("#video2 video");
spyOn(currentVideo, "play");
vCarouselTest.run();
expect(currentVideo.play).toHaveBeenCalled();
});
- it("Ne doit demander le lancement de la première vidéo affichée, si cela n'est pas demandé en option.", function()
+ it("Ne doit pas demander le lancement de la première vidéo affichée, si cela n'est pas demandé en option.", function()
{
- vCarouselTest.vContainers=["vFunanbule","vForgeron","vCircuit"];
- vCarouselTest.firstVideoId="vCircuit";
- let currentVideo=document.querySelector("#vCircuit video");
+ vCarouselTest.vContainers=["video1","video2","video3"];
+ vCarouselTest.firstVideoId="video3";
+ let currentVideo=document.querySelector("#video3 video");
spyOn(currentVideo, "play");
vCarouselTest.run();
expect(currentVideo.play).not.toHaveBeenCalled();
});
- it("Doit passer d'une vidéo à l'autre jusqu'à ce qu'elles aient été toutes affichées.", function()
+ it("Doit passer d'une vidéo à l'autre et arrêter lorsqu'elles ont toutes été affichées.", function()
{
- vCarouselTest.vContainers=["vFunanbule","vForgeron","vCircuit"];
+ vCarouselTest.vContainers=["video1","video2","video3"];
vCarouselTest.run();
- let currentVideo=document.querySelector("#vFunanbule video");
-
+ let currentVideo=document.querySelector("#video1 video");
// Fin de lecture de la première vidéo, on passe à la suivante :
currentVideo.dispatchEvent(new Event("ended"));
- expect(document.getElementById("vFunanbule").style.display).toBe("none");
- expect(document.getElementById("vForgeron").style.display).toBe("block");
- currentVideo=document.querySelector("#vForgeron video");
+ expect(document.getElementById("video1").style.display).toBe("none");
+ expect(document.getElementById("video2").style.display).toBe("block");
+ currentVideo=document.querySelector("#video2 video");
expect(vCarouselTest.currentVideo).toEqual(currentVideo);
- expect(window.location.hash).toEqual("#vForgeron");
-
+ expect(window.location.hash).toEqual("#video2");
// Fin de la deuxième, on passe à la dernière :
currentVideo.dispatchEvent(new Event("ended"));
- expect(document.getElementById("vForgeron").style.display).toBe("none");
- expect(document.getElementById("vCircuit").style.display).toBe("block");
- currentVideo=document.querySelector("#vCircuit video");
+ expect(document.getElementById("video2").style.display).toBe("none");
+ expect(document.getElementById("video3").style.display).toBe("block");
+ currentVideo=document.querySelector("#video3 video");
expect(vCarouselTest.currentVideo).toEqual(currentVideo);
- expect(window.location.hash).toEqual("#vCircuit");
-
+ expect(window.location.hash).toEqual("#video3");
// Fin de la dernière, rien ne bouge :
currentVideo.dispatchEvent(new Event("ended"));
- expect(document.getElementById("vCircuit").style.display).toBe("block");
+ expect(document.getElementById("video3").style.display).toBe("block");
expect(vCarouselTest.currentVideo).toEqual(currentVideo);
- expect(window.location.hash).toEqual("#vCircuit");
+ expect(window.location.hash).toEqual("#video3");
});
- it("Si demandé, le carrousel doit continuer après avoir parcouru toutes les vidéos.", function()
+ it("Si cela est demandé, le carrousel doit reprendre au début après avoir parcouru toutes les vidéos.", function()
{
- vCarouselTest.vContainers=["vFunanbule","vForgeron","vCircuit"];
+ vCarouselTest.vContainers=["video1","video2","video3"];
vCarouselTest.noStop=true;
vCarouselTest.run();
- let currentVideo=document.querySelector("#vFunanbule video");
-
+ let currentVideo=document.querySelector("#video1 video");
// Fin de lecture de la première vidéo, on passe à la suivante :
currentVideo.dispatchEvent(new Event("ended"));
- currentVideo=document.querySelector("#vForgeron video");
+ currentVideo=document.querySelector("#video2 video");
// Fin de la deuxième, on passe à la dernière :
currentVideo.dispatchEvent(new Event("ended"));
- currentVideo=document.querySelector("#vCircuit video");
- // Fin de la dernière, on retourne à la première :
+ currentVideo=document.querySelector("#video3 video");
+ // Fin de la dernière, on doit retourner à la première :
currentVideo.dispatchEvent(new Event("ended"));
- expect(document.getElementById("vCircuit").style.display).toBe("none");
- expect(document.getElementById("vFunanbule").style.display).toBe("block");
- currentVideo=document.querySelector("#vFunanbule video");
+ expect(document.getElementById("video3").style.display).toBe("none");
+ expect(document.getElementById("video1").style.display).toBe("block");
+ currentVideo=document.querySelector("#video1 video");
expect(vCarouselTest.currentVideo).toEqual(currentVideo);
- expect(window.location.hash).toEqual("#vFunanbule");
+ expect(window.location.hash).toEqual("#video1");
});
it("Doit demander le lancement des nouvelles vidéos affichées, si cela est demandé en option.", function()
{
- vCarouselTest.vContainers=["vFunanbule","vForgeron","vCircuit"];
+ vCarouselTest.vContainers=["video1","video2","video3"];
vCarouselTest.playNextVideos=true;
vCarouselTest.run();
- let firstVideo=document.querySelector("#vFunanbule video");
- let nextVideo=document.querySelector("#vForgeron video");
+ let firstVideo=document.querySelector("#video1 video");
+ let nextVideo=document.querySelector("#video2 video");
spyOn(nextVideo, "play");
// Fin de lecture de la première vidéo, on passe à la suivante qui doit se lancer automatiquement :
firstVideo.dispatchEvent(new Event("ended"));
@@ -194,10 +186,11 @@ describe("vCarousel", function()
it("Ne doit pas demander le lancement des nouvelles vidéos affichées, si cela n'est pas demandé en option.", function()
{
- vCarouselTest.vContainers=["vFunanbule","vForgeron","vCircuit"];
+ vCarouselTest.vContainers=["video1","video2","video3"];
+ vCarouselTest.firstVideoId="video2";
vCarouselTest.run();
- let firstVideo=document.querySelector("#vFunanbule video");
- let nextVideo=document.querySelector("#vForgeron video");
+ let firstVideo=document.querySelector("#video2 video");
+ let nextVideo=document.querySelector("#video3 video");
spyOn(nextVideo, "play");
// Fin de lecture de la première vidéo, on passe à la suivante qui ne doit pas se lancer automatiquement :
firstVideo.dispatchEvent(new Event("ended"));