Newer
Older
pixi.js / test / core / AnimatedSprite.js
@Sergei Chipiga Sergei Chipiga on 24 May 2018 2 KB Add unit tests for AnimatedSprite (#4744)
'use strict';

describe('PIXI.extras.AnimatedSprite', function ()
{
    describe('instance', function ()
    {
        beforeEach(function ()
        {
            this.textures = [PIXI.Texture.EMPTY];
        });

        afterEach(function ()
        {
            expect(this.sprite.animationSpeed).to.be.equal(1);
            expect(this.sprite.loop).to.be.true;
            expect(this.sprite.onComplete).to.be.null;
            expect(this.sprite.onFrameChange).to.be.null;
            expect(this.sprite.onLoop).to.be.null;
            expect(this.sprite.playing).to.be.false;

            this.sprite.destroy();
            this.sprite = null;
        });

        it('should be correct with default options', function ()
        {
            this.sprite = new PIXI.extras.AnimatedSprite(this.textures);
            expect(this.sprite._autoUpdate).to.be.true;
        });

        it('should be correct with autoUpdate=false', function ()
        {
            this.sprite = new PIXI.extras.AnimatedSprite(this.textures, false);
            expect(this.sprite._autoUpdate).to.be.false;
        });
    });

    describe('.stop()', function ()
    {
        before(function ()
        {
            this.sprite = new PIXI.extras.AnimatedSprite([PIXI.Texture.EMPTY], false);
        });

        after(function ()
        {
            this.sprite.destroy();
            this.sprite = null;
        });

        afterEach(function ()
        {
            this.sprite.stop();
            expect(this.sprite.playing).to.be.false;
        });

        it('should stop playing if it is playing', function ()
        {
            this.sprite.playing = true;
        });

        it('should do nothing if it is not playing', function ()
        {
            this.sprite.playing = false;
        });
    });

    describe('.play()', function ()
    {
        before(function ()
        {
            this.sprite = new PIXI.extras.AnimatedSprite([PIXI.Texture.EMPTY], false);
        });

        after(function ()
        {
            this.sprite.destroy();
            this.sprite = null;
        });

        afterEach(function ()
        {
            this.sprite.play();
            expect(this.sprite.playing).to.be.true;
        });

        it('should start playing if it is not playing', function ()
        {
            this.sprite.playing = false;
        });

        it('should do nothing if it is playing', function ()
        {
            this.sprite.playing = true;
        });
    });
});