Newer
Older
pixi.js / test / core / Text.js
'use strict';

describe('PIXI.Text', function ()
{
    describe('getFontStyle', function ()
    {
        it('should be a valid API', function ()
        {
            expect(PIXI.Text.getFontStyle).to.be.a.function;
        });

        it('should assume pixel fonts', function ()
        {
            const style = PIXI.Text.getFontStyle({ fontSize: 72 });

            expect(style).to.be.a.string;
            expect(style).to.have.string(' 72px ');
        });

        it('should handle multiple fonts as array', function ()
        {
            const style = PIXI.Text.getFontStyle({
                fontFamily: ['Georgia', 'Arial', 'sans-serif'],
            });

            expect(style).to.have.string('"Georgia","Arial","sans-serif"');
        });

        it('should handle multiple fonts as string', function ()
        {
            const style = PIXI.Text.getFontStyle({
                fontFamily: 'Georgia, "Arial", sans-serif',
            });

            expect(style).to.have.string('"Georgia","Arial","sans-serif"');
        });
    });

    describe('destroy', function ()
    {
        it('should call through to Sprite.destroy', function ()
        {
            const text = new PIXI.Text('foo');

            expect(text.anchor).to.not.equal(null);
            text.destroy();
            expect(text.anchor).to.equal(null);
        });

        it('should set context to null', function ()
        {
            const text = new PIXI.Text('foo');

            expect(text.style).to.not.equal(null);
            text.destroy();
            expect(text.style).to.equal(null);
        });

        it('should destroy children if children flag is set', function ()
        {
            const text = new PIXI.Text('foo');
            const child = new PIXI.DisplayObject();

            text.addChild(child);
            text.destroy({ children: true });
            expect(text.transform).to.equal(null);
            expect(child.transform).to.equal(null);
        });

        it('should accept options correctly', function ()
        {
            const text = new PIXI.Text('foo');
            const child = new PIXI.DisplayObject();

            text.addChild(child);
            text.destroy(true);
            expect(text.transform).to.equal(null);
            expect(child.transform).to.equal(null);
        });

        it('should pass opts on to children if children flag is set', function ()
        {
            const text = new PIXI.Text('foo');
            const child = new PIXI.DisplayObject();
            var childDestroyOpts;

            child.destroy = function (opts)
            {
                childDestroyOpts = opts;
            };

            text.addChild(child);
            text.destroy({ children: true, texture: true });
            expect(childDestroyOpts).to.deep.equal({ children: true, texture: true, baseTexture: true });
        });

        it('should modify the height of the object when setting height', function ()
        {
            const text = new PIXI.Text('foo');

            text.height = 300;

            expect(text.height).to.equal(300);
        });

        it('should modify the width of the object when setting width', function ()
        {
            const text = new PIXI.Text('foo');

            text.width = 300;

            expect(text.width).to.equal(300);
        });
    });

    describe('text', function ()
    {
        it('should convert numbers into strings', function ()
        {
            const text = new PIXI.Text(2);

            expect(text.text).to.equal('2');
        });

        it('should not change 0 to \'\'', function ()
        {
            const text = new PIXI.Text(0);

            expect(text.text).to.equal('0');
        });

        it('should prevent setting null', function ()
        {
            const text = new PIXI.Text(null);

            expect(text.text).to.equal(' ');
        });

        it('should prevent setting undefined', function ()
        {
            const text = new PIXI.Text();

            expect(text.text).to.equal(' ');
        });

        it('should prevent setting \'\'', function ()
        {
            const text = new PIXI.Text('');

            expect(text.text).to.equal(' ');
        });
    });
});