scan.js 827 B

123456789101112131415161718192021222324252627282930313233
  1. var binary = require('../');
  2. var test = require('tap').test;
  3. var EventEmitter = require('events').EventEmitter;
  4. test('scan', function (t) {
  5. t.plan(4);
  6. var em = new EventEmitter;
  7. binary(em)
  8. .word8('a')
  9. .scan('l1', new Buffer('\r\n'))
  10. .scan('l2', '\r\n')
  11. .word8('z')
  12. .tap(function (vars) {
  13. t.same(vars.a, 99);
  14. t.same(vars.l1.toString(), 'foo bar');
  15. t.same(vars.l2.toString(), 'baz');
  16. t.same(vars.z, 42);
  17. })
  18. ;
  19. setTimeout(function () {
  20. em.emit('data', new Buffer([99,0x66,0x6f,0x6f,0x20]));
  21. }, 20);
  22. setTimeout(function () {
  23. em.emit('data', new Buffer('bar\r'));
  24. }, 40);
  25. setTimeout(function () {
  26. em.emit('data', new Buffer('\nbaz\r\n*'));
  27. }, 60);
  28. });