Newer
Older
pixi.js / packages / core / test / ImageBitmapResource.js
@Matt Karl Matt Karl on 2 Jul 2019 2 KB Adds new ImageBitmapResource (#5858)
const { resources } = require('../');
const { ImageBitmapResource } = resources;

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

        const bitmap = await createImageBitmap(canvas);
        const resource = new ImageBitmapResource(bitmap);

        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', async function ()
    {
        const canvas = document.createElement('canvas');

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

        const bitmap = await createImageBitmap(canvas);
        const resource = new ImageBitmapResource(bitmap);

        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', async function ()
    {
        const canvas = document.createElement('canvas');
        const bitmap = await createImageBitmap(canvas);
        const resource = new ImageBitmapResource(bitmap);
        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', async function ()
    {
        const canvas = document.createElement('canvas');
        const bitmap = await createImageBitmap(canvas);
        const resource = new ImageBitmapResource(bitmap);
        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();
    });
});