Newer
Older
pixi.js / packages / core / test / CanvasResource.js
const { resources } = require('../');
const { CanvasResource } = resources;

describe('PIXI.resources.CanvasResource', function ()
{
    it('should create new dimension-less resource', function ()
    {
        const canvas = document.createElement('canvas');

        const resource = new CanvasResource(canvas);

        expect(resource.width).to.equal(canvas.width);
        expect(resource.height).to.equal(canvas.height);
        expect(resource.valid).to.be.true;

        resource.destroy();
    });

    it('should create new valid resource', function ()
    {
        const canvas = document.createElement('canvas');

        canvas.width = 100;
        canvas.height = 200;

        const resource = new CanvasResource(canvas);

        expect(resource.width).to.equal(100);
        expect(resource.height).to.equal(200);
        expect(resource.valid).to.be.true;

        resource.destroy();
    });

    it('should fire resize event on bind', function ()
    {
        const canvas = document.createElement('canvas');
        const resource = new CanvasResource(canvas);
        const baseTexture = { setRealSize: sinon.stub() };

        resource.bind(baseTexture);

        expect(baseTexture.setRealSize.calledOnce).to.be.true;

        resource.unbind(baseTexture);
        resource.destroy();
    });

    it('should fire manual update event', function ()
    {
        const canvas = document.createElement('canvas');
        const resource = new CanvasResource(canvas);
        const baseTexture = { update: sinon.stub() };

        resource.bind(baseTexture);

        expect(baseTexture.update.called).to.be.false;

        resource.update();

        expect(baseTexture.update.calledOnce).to.be.true;

        resource.unbind(baseTexture);
        resource.destroy();
    });
});