'use strict'; describe('PIXI.Sprite', function () { describe('width', function () { it('should not be negative for negative scale.x', function () { const 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 () { const texture = new PIXI.Texture(new PIXI.BaseTexture()); const sprite = new PIXI.Sprite(); texture.orig.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 negative scale.y', function () { const 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 () { const texture = new PIXI.Texture(new PIXI.BaseTexture()); const sprite = new PIXI.Sprite(); texture.orig.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('getBounds', function () { it('must have correct value according to texture size, width, height and anchor', function () { const parent = new PIXI.Container(); const texture = new PIXI.RenderTexture.create(20, 30); const sprite = new PIXI.Sprite(texture); sprite.width = 200; sprite.height = 300; parent.addChild(sprite); sprite.scale.x *= 2; sprite.scale.y *= 2; sprite.anchor.set(0.5, 0.5); sprite.position.set(50, 40); const bounds = sprite.getBounds(); expect(bounds.x).to.equal(-150); expect(bounds.y).to.equal(-260); expect(bounds.width).to.equal(400); expect(bounds.height).to.equal(600); }); }); describe('containsPoint', function () { it('should return true when point inside', function () { const point = new PIXI.Point(10, 10); const texture = new PIXI.RenderTexture.create(20, 30); const sprite = new PIXI.Sprite(texture); expect(sprite.containsPoint(point)).to.be.true; }); it('should return false when point outside', function () { const point = new PIXI.Point(100, 100); const texture = new PIXI.RenderTexture.create(20, 30); const sprite = new PIXI.Sprite(texture); expect(sprite.containsPoint(point)).to.be.false; }); }); });