const { resources } = require('../');
const { ImageResource } = resources;
const path = require('path');
describe('PIXI.resources.ImageResource', function ()
{
before(function ()
{
this.slugUrl = path.resolve(__dirname, 'resources', 'slug.png');
});
it('should create new dimension-less resource', function ()
{
const image = new Image();
const resource = new ImageResource(image);
expect(resource.width).to.equal(0);
expect(resource.height).to.equal(0);
expect(resource.valid).to.be.false;
expect(resource.url).to.equal('');
resource.destroy();
});
it('should destroy resource multiple times', function ()
{
const resource = new ImageResource(new Image());
resource.destroy();
resource.destroy();
});
it('should create new valid resource from HTMLImageElement', function ()
{
const image = new Image();
image.src = this.slugUrl;
const resource = new ImageResource(image);
expect(resource.width).to.equal(0);
expect(resource.height).to.equal(0);
expect(resource.valid).to.be.false;
expect(resource.url).to.equal(image.src);
resource.destroy();
});
it('should handle the loaded event with createBitmapImage', function ()
{
const image = new Image();
image.src = this.slugUrl;
const resource = new ImageResource(image, { autoLoad: false });
return resource.load().then((res) =>
{
expect(res).to.equal(resource);
expect(resource.width).to.equal(100);
expect(resource.height).to.equal(100);
expect(resource.valid).to.be.true;
expect(resource.bitmap).to.be.instanceof(ImageBitmap);
});
});
it('should handle the loaded event with no createBitmapImage', function ()
{
const image = new Image();
image.src = this.slugUrl;
const resource = new ImageResource(image, {
autoLoad: false,
createBitmap: false,
});
return resource.load().then((res) =>
{
expect(res).to.equal(resource);
expect(resource.width).to.equal(100);
expect(resource.height).to.equal(100);
expect(resource.valid).to.be.true;
expect(resource.bitmap).to.be.null;
});
});
});