CODE128.test.js 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109
  1. var assert = require('assert');
  2. var JsBarcode = require('../../bin/JsBarcode.js');
  3. var Canvas = require("canvas");
  4. describe('CODE128', function() {
  5. it('should be able to include the encoder(s)', function () {
  6. CODE128 = JsBarcode.getModule("CODE128");
  7. CODE128A = JsBarcode.getModule("CODE128A");
  8. CODE128B = JsBarcode.getModule("CODE128B");
  9. CODE128C = JsBarcode.getModule("CODE128C");
  10. });
  11. it('should encode CODE128A', function () {
  12. var enc = new CODE128A("ABC" + String.fromCharCode(25), {});
  13. assert.equal("1101000010010100011000100010110001000100011011011011110100011101101100011101011"
  14. , enc.encode().data);
  15. });
  16. it('should encode CODE128B', function () {
  17. var enc = new CODE128B("a@B=1", {});
  18. assert.equal("110100100001001011000011000110110100010110001110011001010011100110110111001001100011101011"
  19. , enc.encode().data);
  20. });
  21. it('should encode CODE128C', function () {
  22. var enc = new CODE128C("123456", {});
  23. assert.equal("11010011100101100111001000101100011100010110100011011101100011101011"
  24. , enc.encode().data);
  25. });
  26. it('should encode CODE128 as GS1-128/EAN-128', function () {
  27. var enc = new CODE128C("12345678", { ean128: true });
  28. assert.equal("110100111001111010111010110011100100010110001110001011011000010100110010011101100011101011",
  29. enc.encode().data);
  30. });
  31. it('should remove unprintable characters', function () {
  32. var enc = new CODE128C("A\n\x00B \x04\x10\x1FC", {});
  33. assert.equal("AB C", enc.encode().text);
  34. });
  35. it('should encode CODE128 (auto)', function () {
  36. var enc = new CODE128("12345Hejsan123456\tA", {});
  37. assert.equal("110100111001011001110010001011000101111011101101110010011000101000101100100001000011001010111100100100101100001100001010010111011110101100111001000101100011100010110111010111101000011010010100011000111011110101100011101011",
  38. enc.encode().data);
  39. var enc = new CODE128("Hi\n12345", {});
  40. assert.equal("110100100001100010100010000110100111010111101000011001010011100110101110111101110110111010111011000111001100101100011101011"
  41. , enc.encode().data);
  42. var enc = new CODE128("HI\nHi", {});
  43. assert.equal("11010000100110001010001100010001010000110010110001010001011110111010000110100110110011001100011101011"
  44. , enc.encode().data);
  45. var enc = new CODE128("HI\n" + String.fromCharCode(201) + "Hi" + String.fromCharCode(202) + "123456" + String.fromCharCode(207), {});
  46. assert.equal("1101000010011000101000110001000101000011001010111100010110001010001011110111010000110100111101010001011101111010110011100100010110001110001011011110101110110011100101100011101011"
  47. , enc.encode().data);
  48. var enc = new CODE128(String.fromCharCode(207) + "42184020500", {});
  49. assert.equal("110100111001111010111010110111000110011100101100010100011001001110110001011101110101111010011101100101011110001100011101011"
  50. , enc.encode().data);
  51. var enc = new CODE128("Should\nshift", {});
  52. assert.equal("1101001000011011101000100110000101000111101010011110010110010100001000010011011110100010100001100101011110010010011000010100001101001011000010010011110100100011010001100011101011"
  53. , enc.encode().data);
  54. var enc = new CODE128("\tHi\nHI", {});
  55. assert.equal("1101000010010000110100110001010001111010001010000110100100001100101100010100011000100010111101101101100011101011"
  56. , enc.encode().data);
  57. });
  58. it('should warn with invalid text', function () {
  59. var enc = new CODE128("ABC" + String.fromCharCode(500), {});
  60. assert.equal(false, enc.valid(), {});
  61. var enc = new CODE128A("Abc", {});
  62. assert.equal(false, enc.valid());
  63. var enc = new CODE128B("Abc\t123", {});
  64. assert.equal(false, enc.valid());
  65. var enc = new CODE128C("1234ab56", {});
  66. assert.equal(false, enc.valid());
  67. var enc = new CODE128C("12345", {});
  68. assert.equal(false, enc.valid());
  69. });
  70. it('should pass valid text', function () {
  71. var enc = new CODE128("ABC" + String.fromCharCode(207), {});
  72. assert.equal(true, enc.valid());
  73. var enc = new CODE128A("ABC\t\n123", {});
  74. assert.equal(true, enc.valid());
  75. var enc = new CODE128B("Abc123" + String.fromCharCode(202), {});
  76. assert.equal(true, enc.valid());
  77. var enc = new CODE128C("123456", {});
  78. assert.equal(true, enc.valid());
  79. });
  80. it('should work with text option', function () {
  81. var enc = new CODE128("AB12", {text: "THISISTEXT"});
  82. assert.equal("THISISTEXT", enc.encode().text);
  83. });
  84. });