describe('PIXI.Sprite', function () {
describe('width', function () {
it('should not be negative for nagative scale.x', function () {
var sprite = new PIXI.Sprite();
sprite.width = 100;
expect(sprite.width).to.be.at.least(0);
sprite.scale.x = -1;
expect(sprite.width).to.be.at.least(0);
});
it('should not change sign of scale.x', function () {
var texture = new PIXI.Texture(new PIXI.BaseTexture());
var sprite = new PIXI.Sprite();
texture.width = 100;
sprite.scale.x = 1;
sprite.width = 50;
expect(sprite.scale.x).to.be.above(0);
sprite.scale.x = -1;
sprite.width = 75;
expect(sprite.scale.x).to.be.below(0);
});
});
describe('height', function () {
it('should not be negative for nagative scale.y', function () {
var sprite = new PIXI.Sprite();
sprite.height = 100;
expect(sprite.height).to.be.at.least(0);
sprite.scale.y = -1;
expect(sprite.height).to.be.at.least(0);
});
it('should not change sign of scale.y', function () {
var texture = new PIXI.Texture(new PIXI.BaseTexture());
var sprite = new PIXI.Sprite();
texture.height = 100;
sprite.scale.y = 1;
sprite.height = 50;
expect(sprite.scale.y).to.be.above(0);
sprite.scale.y = -1;
sprite.height = 75;
expect(sprite.scale.y).to.be.below(0);
});
});
describe('destroy', function () {
it('should call through to Container.destroy', function () {
var sprite = new PIXI.Sprite();
expect(sprite.children).to.not.equal(null);
sprite.destroy();
expect(sprite.children).to.equal(null);
});
it('should set anchor and texture to null', function () {
var sprite = new PIXI.Sprite();
expect(sprite.anchor).to.not.equal(null);
expect(sprite.texture).to.not.equal(null);
sprite.destroy();
expect(sprite.anchor).to.equal(null);
expect(sprite.texture).to.equal(null);
});
it('by default should not destroy texture', function () {
var sprite = new PIXI.Sprite();
var textureDestroyed = false;
sprite.texture.destroy = function() { textureDestroyed = true; };
sprite.destroy();
expect(textureDestroyed).to.equal(false);
});
it('should destroy texture when texture flag is set', function () {
var sprite = new PIXI.Sprite();
var textureDestroyed = false;
sprite.texture.destroy = function() { textureDestroyed = true; };
sprite.destroy({texture: true});
expect(textureDestroyed).to.equal(true);
});
it('by default should not destroy baseTexture', function () {
var sprite = new PIXI.Sprite();
var textureDestroyArg;
sprite.texture.destroy = function(arg) { textureDestroyArg = arg; };
sprite.destroy({texture: true});
expect(textureDestroyArg).to.equal(false);
});
it('should destroy baseTexture if baseTexture flag is set', function () {
var sprite = new PIXI.Sprite();
var textureDestroyArg;
sprite.texture.destroy = function(arg) { textureDestroyArg = arg; };
sprite.destroy({texture: true, baseTexture: true});
expect(textureDestroyArg).to.equal(true);
});
it('should correctly handle boolean', function () {
var sprite = new PIXI.Sprite();
var textureDestroyArg;
sprite.texture.destroy = function(arg) { textureDestroyArg = arg; };
sprite.destroy(true);
expect(textureDestroyArg).to.equal(true);
});
it('should pass opts on to children if children flag is set', function () {
var sprite = new PIXI.Sprite(),
child = new PIXI.DisplayObject(),
childDestroyOpts;
child.destroy = function(opts) {
childDestroyOpts = opts;
};
sprite.addChild(child);
sprite.destroy({children: true, texture: true});
expect(childDestroyOpts).to.deep.equal({children: true, texture: true});
});
it('should pass bool on to children', function () {
var sprite = new PIXI.Sprite(),
child = new PIXI.DisplayObject(),
childDestroyOpts;
child.destroy = function(opts) {
childDestroyOpts = opts;
};
sprite.addChild(child);
sprite.destroy(true);
expect(childDestroyOpts).to.deep.equal(true);
});
});
});