!C99Shell v. 2.5 [PHP 8 Update] [24.05.2025]!

Software: Apache/2.4.41 (Ubuntu). PHP/8.0.30 

uname -a: Linux apirnd 5.4.0-204-generic #224-Ubuntu SMP Thu Dec 5 13:38:28 UTC 2024 x86_64 

uid=33(www-data) gid=33(www-data) groups=33(www-data) 

Safe-mode: OFF (not secure)

/var/www/html/invoice_pdf/node_modules/gifwrap/test/   drwxr-xr-x
Free 13 GB of 57.97 GB (22.43%)
Home    Back    Forward    UPDIR    Refresh    Search    Buffer    Encoder    Tools    Proc.    FTP brute    Sec.    SQL    PHP-code    Update    Self remove    Logout    


Viewing file:     test_frame.js (8.67 KB)      -rw-r--r--
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
'use strict';

const assert = require('chai').assert;
const Jimp = require('jimp');
const Tools = require('./lib/tools');
const { BitmapImage, Gif, GifFrame, GifError } = require('../src/index');

const SAMPLE_PNG_PATH = Tools.getFixturePath('lenna.png');
const SAMPLE_JPG_PATH = Tools.getFixturePath('pelagrina.jpg');

describe("GifFrame good construction behavior", () => {

    it("constructs an uncolored bitmap", (done) => {

        const f = new GifFrame(10, 5);
        Tools.checkBitmap(f.bitmap, 10, 5, 0);
        Tools.checkFrameDefaults(f);
        done();
    });

    it("initializes options in an uncolored bitmap", (done) => {

        const f = new GifFrame(10, 5, { delayCentisecs: 100 });
        Tools.checkBitmap(f.bitmap, 10, 5, 0);
        Tools.checkFrameDefaults(f, {
            delayCentisecs: 100
        });
        done();
    });

    it("constructs an empty colored bitmap", (done) => {

        const color = 0x01020300;
        const f = new GifFrame(10, 5, color);
        Tools.checkBitmap(f.bitmap, 10, 5, color);
        Tools.checkFrameDefaults(f);
        done();
    });

    it("initializes options in a colored bitmap", (done) => {

        const color = 0x010203ff;
        const f = new GifFrame(10, 5, color, { delayCentisecs: 100 });
        Tools.checkBitmap(f.bitmap, 10, 5, color);
        Tools.checkFrameDefaults(f, {
            delayCentisecs: 100
        });
        done();
    });

    it("sources from an existing bitmap, sharing", (done) => {

        const color = 0x010203ff;
        const j = new BitmapImage(10, 5, color);
        const f = new GifFrame(j.bitmap);
        assert.strictEqual(f.bitmap, j.bitmap);
        Tools.checkFrameDefaults(f);
        done();
    });

    it("sources from an existing bitmap, sharing, with options", (done) => {

        const color = 0x010203ff;
        const j = new BitmapImage(10, 5, color);
        const f = new GifFrame(j.bitmap, { delayCentisecs: 100 });
        assert.strictEqual(f.bitmap, j.bitmap);
        Tools.checkFrameDefaults(f, {
            delayCentisecs: 100
        });
        done();
    });

    it("sources from an existing BitmapImage, copying", (done) => {

        const color = 0x010203ff;
        const j = new BitmapImage(10, 5, color);
        const f = new GifFrame(j);
        assert.notStrictEqual(f.bitmap, j.bitmap);
        assert.deepStrictEqual(f.bitmap, j.bitmap);
        Tools.checkFrameDefaults(f);
        done();
    });

    it("sources from an existing BitmapImage, copying, with options", (done) => {

        const color = 0x010203ff;
        const j = new BitmapImage(10, 5, color);
        const f = new GifFrame(j, { delayCentisecs: 100 });
        assert.notStrictEqual(f.bitmap, j.bitmap);
        assert.deepStrictEqual(f.bitmap, j.bitmap);
        Tools.checkFrameDefaults(f, {
            delayCentisecs: 100
        });
        done();
    });

    it("initializes data params without options", (done) => {
        const bitmap = Tools.getBitmap('singleFrameBWOpaque');
        const f = new GifFrame(bitmap.width, bitmap.height, bitmap.data);
        assert.strictEqual(f.bitmap.width, bitmap.width);
        assert.strictEqual(f.bitmap.height, bitmap.height);
        assert.strictEqual(f.bitmap.data, bitmap.data);
        Tools.checkFrameDefaults(f);
        done();
    });

    it("initializes data params with options", (done) => {
        const bitmap = Tools.getBitmap('singleFrameBWOpaque');
        const f = new GifFrame(bitmap.width, bitmap.height, bitmap.data,
                    { delayCentisecs: 200, interlaced: true });
        assert.strictEqual(f.bitmap.width, bitmap.width);
        assert.strictEqual(f.bitmap.height, bitmap.height);
        assert.strictEqual(f.bitmap.data, bitmap.data);
        Tools.checkFrameDefaults(f, {
            delayCentisecs: 200,
            interlaced: true
        });
        done();
    });

    it("initializes bitmap without options", (done) => {
        const bitmap = Tools.getBitmap('singleFrameBWOpaque');
        const f = new GifFrame(bitmap);
        assert.strictEqual(f.bitmap, bitmap);
        Tools.checkFrameDefaults(f);
        done();
    });

    it("initializes bitmap with options", (done) => {
        const bitmap = Tools.getBitmap('singleFrameBWOpaque');
        const f = new GifFrame(bitmap,
                    { delayCentisecs: 200, interlaced: true });
        assert.strictEqual(f.bitmap, bitmap);
        Tools.checkFrameDefaults(f, {
            delayCentisecs: 200,
            interlaced: true
        });
        done();
    });

    it("clones an existing frame", (done) => {

        const f1 = new GifFrame(5, 5, {
            delayCentisecs: 100,
            isInterlace: true
        });
        f1.bitmap = Tools.getBitmap('singleFrameBWOpaque');
        const f2 = new GifFrame(f1);
        Tools.verifyFrameInfo(f2, f1);
        assert.notStrictEqual(f2.bitmap, f1.bitmap);
        assert.deepStrictEqual(f2.bitmap, f1.bitmap);
        done();
    });
});

describe("GifFrame bad construction behavior", () => {

    it("won't accept garbage", (done) => {

        assert.throws(() => {
            new GifFrame();
        }, /requires parameters/);
        assert.throws(() => {
            new GifFrame(null);
        }, /unrecognized/);
        assert.throws(() => {
            new GifFrame(null, { interlaced: true });
        }, /unrecognized/);
        assert.throws(() => {
            new GifFrame("string");
        }, /unrecognized/);
        assert.throws(() => {
            new GifFrame("string", { interlaced: true });
        }, /unrecognized/);
        assert.throws(() => {
            new GifFrame(() => {});
        }, /unrecognized/);
        assert.throws(() => {
            new GifFrame({});
        }, /unrecognized/);
        assert.throws(() => {
            new GifFrame({ interlaced: true });
        }, /unrecognized/);
        assert.throws(() => {
            new GifFrame(new Buffer(25));
        }, /unrecognized/);
        done();
    });

    it("width requires height", (done) => {

        assert.throws(() => {
            new GifFrame(5);
        }, /unrecognized/);
        assert.throws(() => {
            new GifFrame(5, { interlaced: true });
        }, /unrecognized/);
        assert.throws(() => {
            new GifFrame(5, new Buffer(5));
        }, /unrecognized/);
        done();
    });
});

describe("GifFrame palette", () => {

    it("is monocolor without transparency", (done) => {

        const bitmap = Tools.getBitmap('singleFrameMonoOpaque');
        const f = new GifFrame(bitmap);
        const p = f.getPalette();
        assert.deepStrictEqual(p.colors, [0xFF0000]);
        assert.strictEqual(p.usesTransparency, false);
        done();
    });

    it("includes two colors without transparency", (done) => {

        const bitmap = Tools.getBitmap('singleFrameBWOpaque');
        const f = new GifFrame(bitmap);
        const p = f.getPalette();
        assert.deepStrictEqual(p.colors, [0x000000, 0xffffff]);
        assert.strictEqual(p.usesTransparency, false);
        done();
    });

    it("includes multiple colors without transparency", (done) => {

        const bitmap = Tools.getBitmap('singleFrameMultiOpaque');
        const f = new GifFrame(bitmap);
        const p = f.getPalette();
        assert.deepStrictEqual(p.colors,
                [0x0000ff, 0x00ff00, 0xff0000, 0xffffff]);
        assert.strictEqual(p.usesTransparency, false);
        done();
    });

    it("has only transparency", (done) => {

        const bitmap = Tools.getBitmap('singleFrameNoColorTrans');
        const f = new GifFrame(bitmap);
        const p = f.getPalette();
        assert.deepStrictEqual(p.colors, []);
        assert.strictEqual(p.usesTransparency, true);
        done();
    });

    it("is monocolor with transparency", (done) => {

        const bitmap = Tools.getBitmap('singleFrameMonoTrans');
        const f = new GifFrame(bitmap);
        const p = f.getPalette();
        assert.deepStrictEqual(p.colors, [0x00ff00]);
        assert.strictEqual(p.usesTransparency, true);
        done();
    });

    it("includes multiple colors with transparency", (done) => {

        const bitmap = Tools.getBitmap('singleFrameMultiPartialTrans');
        const f = new GifFrame(bitmap);
        const p = f.getPalette();
        assert.deepStrictEqual(p.colors,
                [0x000000, 0x0000ff, 0x00ff00, 0xff0000, 0xffffff]);
        assert.strictEqual(p.usesTransparency, true);
        done();
    });
});

function _assertDefaultFrameOptions(frame) {
    assert.strictEqual(frame.xOffset, 0);
    assert.strictEqual(frame.yOffset, 0);
    assert.strictEqual(frame.disposalMethod, GifFrame.DisposeToBackgroundColor);
    assert.strictEqual(typeof frame.delayCentisecs, 'number');
    assert.strictEqual(frame.interlaced, false);
}

:: Command execute ::

Enter:
 
Select:
 

:: Search ::
  - regexp 

:: Upload ::
 
[ Read-Only ]

:: Make Dir ::
 
[ Read-Only ]
:: Make File ::
 
[ Read-Only ]

:: Go Dir ::
 
:: Go File ::
 

--[ c99shell v. 2.5 [PHP 8 Update] [24.05.2025] | Generation time: 0.0053 ]--