| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220 |
- var assert = require('assert');
- var JsBarcode = require('../../bin/JsBarcode.js');
- var Canvas = require("canvas");
- var help = require("./help/help");
- var clone = help.clone;
- var options = {height: 100, displayValue: true, fontSize: 20, textMargin: 2, width: 2};
- describe('UPC-A', function() {
- it('should be able to include the encoder(s)', function () {
- UPC = JsBarcode.getModule("UPC");
- });
- it('should be able to encode normal text', function () {
- var enc = new UPC("123456789999", clone(options));
- assert.equal("10100110010010011011110101000110110001010111101010100010010010001110100111010011101001110100101"
- , help.fixBin(enc.encode()));
- });
- it('should warn with invalid text', function () {
- var enc = new UPC("12345", clone(options));
- assert.equal(false, enc.valid());
- });
- it('should auto include the checksum if missing', function () {
- var enc = new UPC("12345678999", clone(options));
- assert.equal("123456789999", help.fixText(enc.encode()));
- });
- it('should work with text option', function () {
- var enc = new UPC("12345678999", help.merge(options, {text: "THISISTEXT"}));
- assert.equal("THISISTEXT", help.fixText(enc.encode()));
- });
- it('should work with flat option', function () {
- var enc = new UPC("123456789999", help.merge(options, {flat: true}));
- assert.equal("10100110010010011011110101000110110001010111101010100010010010001110100111010011101001110100101"
- , enc.encode().data);
- assert.equal("123456789999", enc.encode().text);
- });
- });
- const UPCE_BINARY = "101011001100100110011101011100101110110011001010101";
- describe('UPC-E', function() {
- it('should be able to include the encoder(s)', function () {
- UPCE = JsBarcode.getModule("UPCE");
- });
- it('should be able to encode 8-digit codes', function () {
- var enc = new UPCE("01245714", clone(options));
- assert.equal(UPCE_BINARY, help.fixBin(enc.encode()));
- });
- it('should be able to encode 6-digit codes by assuming a 0 number system', function () {
- var enc = new UPCE("124571", clone(options));
- assert.equal(UPCE_BINARY, help.fixBin(enc.encode()));
- });
- it('should warn with invalid text', function () {
- var enc = new UPCE("01245715", clone(options));
- assert.equal(false, enc.valid());
- });
- it('should work with text option', function () {
- var enc = new UPCE("124571", help.merge(options, {text: "SOMETEXT"}));
- assert.equal("SOMETEXT", help.fixText(enc.encode()));
- });
- it('should work with flat option', function () {
- var enc = new UPCE("01245714", help.merge(options, {flat: true}));
- assert.equal(UPCE_BINARY, enc.encode().data);
- assert.equal("01245714", enc.encode().text);
- });
- });
- describe('EAN', function() {
- it('should be able to include the encoder(s)', function () {
- EAN = JsBarcode.getModule("EAN13");
- });
- it('should be able to encode normal text', function () {
- var enc = new EAN("5901234123457", clone(options));
- assert.equal(true, enc.valid());
- assert.equal("10100010110100111011001100100110111101001110101010110011011011001000010101110010011101000100101"
- , help.fixBin(enc.encode()));
- assert.equal("5901234123457", help.fixText(enc.encode()));
- });
- it('should be able to encode normal text with flat option', function () {
- var enc = new EAN("5901234123457", help.merge(options, {flat: true}));
- assert.equal(true, enc.valid());
- assert.equal("10100010110100111011001100100110111101001110101010110011011011001000010101110010011101000100101"
- , enc.encode().data);
- assert.equal("5901234123457", help.fixText(enc.encode()));
- });
- it('should warn with invalid text', function () {
- var enc = new EAN("12345", {});
- assert.equal(false, enc.valid());
- var enc = new EAN("5901234123456 ", {});
- assert.equal(false, enc.valid());
- });
- it('should auto include the checksum if missing', function () {
- var enc = new EAN("590123412345", clone(options));
- assert.equal("5901234123457", help.fixText(enc.encode()));
- });
- it('should work with text option', function () {
- var enc = new EAN("12345678999", help.merge(options, {text: "THISISTEXT"}));
- assert.equal("THISISTEXT", help.fixText(enc.encode()));
- });
- });
- describe('EAN-8', function() {
- it('should be able to include the encoder(s)', function () {
- EAN8 = JsBarcode.getModule("EAN8");
- });
- it('should be able to encode normal text', function () {
- var enc = new EAN8("96385074", {});
- assert.equal(true, enc.valid());
- assert.equal("1010001011010111101111010110111010101001110111001010001001011100101"
- , help.fixBin(enc.encode()));
- assert.equal("96385074", help.fixText(enc.encode()));
- });
- it('should be able to encode normal text with flat option', function () {
- var enc = new EAN8("96385074", help.merge(options, {flat: true}));
- assert.equal(true, enc.valid());
- assert.equal("1010001011010111101111010110111010101001110111001010001001011100101"
- , enc.encode().data);
- assert.equal("96385074", help.fixText(enc.encode()));
- });
- it('should auto include the checksum if missing', function () {
- var enc = new EAN8("9638507", {});
- assert.equal(true, enc.valid());
- assert.equal("96385074", help.fixText(enc.encode()));
- assert.equal("1010001011010111101111010110111010101001110111001010001001011100101"
- , help.fixBin(enc.encode()));
- });
- it('should warn with invalid text', function () {
- var enc = new EAN8("12345", {});
- assert.equal(false, enc.valid());
- var enc = new EAN8("96385073", {});
- assert.equal(false, enc.valid());
- });
- it('should work with text option', function () {
- var enc = new EAN8("96385074", help.merge(options, {text: "THISISTEXT", flat: true}));
- assert.equal("THISISTEXT", help.fixText(enc.encode()));
- });
- });
- describe('EAN-5', function() {
- it('should be able to include the encoder(s)', function () {
- EAN5 = JsBarcode.getModule("EAN5");
- });
- it('should be able to encode normal text', function () {
- var enc = new EAN5("54495", {});
- assert.equal(true, enc.valid());
- assert.equal("10110110001010100011010011101010001011010111001"
- , enc.encode().data);
- var enc = new EAN5("12345", {});
- assert.equal(true, enc.valid());
- assert.equal("10110110011010010011010100001010100011010110001"
- , enc.encode().data);
- });
- it('should warn with invalid text', function () {
- var enc = new EAN5("1234", {});
- assert.equal(false, enc.valid());
- var enc = new EAN5("123a5", {});
- assert.equal(false, enc.valid());
- });
- it('should work with text option', function () {
- var enc = new EAN5("12345", help.merge(options, {text: "THISISTEXT"}));
- assert.equal("THISISTEXT", help.fixText(enc.encode()));
- });
- });
- describe('EAN-2', function() {
- it('should be able to include the encoder(s)', function () {
- EAN2 = JsBarcode.getModule("EAN2");
- });
- it('should be able to encode normal text', function () {
- var enc = new EAN2("53", {});
- assert.equal(true, enc.valid());
- assert.equal("10110110001010100001"
- , enc.encode().data);
- var enc = new EAN2("12", {});
- assert.equal(true, enc.valid());
- assert.equal("10110011001010010011"
- , enc.encode().data);
- });
- it('should warn with invalid text', function () {
- var enc = new EAN2("1", {});
- assert.equal(false, enc.valid());
- var enc = new EAN2("a2", {});
- assert.equal(false, enc.valid());
- });
- it('should work with text option', function () {
- var enc = new EAN2("12", help.merge(options, {text: "THISISTEXT"}));
- assert.equal("THISISTEXT", help.fixText(enc.encode()));
- });
- });
|