describe('PIXI.Container', function () {
describe('parent', function () {
it('should be present when adding children to Container', function() {
var container = new PIXI.Container(),
child = new PIXI.DisplayObject();
expect(container.children.length).to.be.equals(0);
container.addChild(child);
expect(container.children.length).to.be.equals(1);
expect(child.parent).to.be.equals(container);
});
});
describe('events', function () {
it('should trigger "added" and "removed" events on it\'s children', function () {
var container = new PIXI.Container(),
child = new PIXI.DisplayObject(),
triggeredAdded = false,
triggeredRemoved = false;
child.on('added', function(to) {
triggeredAdded = true;
expect(container.children.length).to.be.equals(1);
expect(child.parent).to.be.equals(to);
});
child.on('removed', function(from) {
triggeredRemoved = true;
expect(container.children.length).to.be.equals(0);
expect(child.parent).to.be.null;
expect(container).to.be.equals(from);
});
container.addChild(child);
expect(triggeredAdded).to.be.true;
expect(triggeredRemoved).to.be.false;
container.removeChild(child);
expect(triggeredRemoved).to.be.true;
});
});
describe('destroy', function () {
it('should call through to DisplayContainer.destroy', function () {
var container = new PIXI.Container();
expect(container.transform).to.not.equal(null);
container.destroy();
expect(container.transform).to.equal(null);
});
it('should set children to null', function () {
var container = new PIXI.Container();
expect(container.children).to.deep.equal([]);
container.destroy();
expect(container.children).to.equal(null);
});
it('should by default not destroy children', function () {
var container = new PIXI.Container(),
child = new PIXI.DisplayObject();
container.addChild(child);
container.destroy();
expect(container.transform).to.equal(null);
expect(child.transform).to.not.equal(null);
});
it('should destroy children if children flag is set', function () {
var container = new PIXI.Container(),
child = new PIXI.DisplayObject();
container.addChild(child);
container.destroy({children: true});
expect(container.transform).to.equal(null);
expect(child.transform).to.equal(null);
});
it('should pass opts on to children if children flag is set', function () {
var container = new PIXI.Container(),
child = new PIXI.DisplayObject(),
childDestroyOpts;
child.destroy = function(opts) {
childDestroyOpts = opts;
};
container.addChild(child);
container.destroy({children: true, texture: true});
expect(childDestroyOpts).to.deep.equal({children: true, texture: true});
});
it('should accept boolean and pass it on to children', function () {
var container = new PIXI.Container(),
child = new PIXI.DisplayObject(),
childDestroyOpts;
child.destroy = function(opts) {
childDestroyOpts = opts;
};
container.addChild(child);
container.destroy(true);
expect(childDestroyOpts).to.deep.equal(true);
});
});
});