1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889 |
- var assert = require('assert');
- var Lazy = require('..');
- var EventEmitter = require('events').EventEmitter;
- exports['buffered lines'] = function () {
- var lazy = Lazy();
- var joined = false;
- lazy.lines
- .forEach(function (line) {
- assert.ok(line instanceof Buffer);
- assert.ok(!line.toString().match(/\n/));
- assert.ok(line.length > 0);
- })
- .join(function (lines) {
- assert.deepEqual(
- lines.map(function (x) { return x.toString() }),
- 'foo bar baz quux moo'.split(' ')
- );
- joined = true;
- });
- ;
-
- setTimeout(function () {
- lazy.push(new Buffer('foo\nbar'));
- lazy.push(new Buffer('\nbaz\nquux\nmoo'));
- lazy.push(new Buffer(''));
- lazy.push(new Buffer('\ndoom'));
- lazy.end();
- assert.ok(joined);
- }, 50);
- };
- exports['string lines'] = function () {
- var lazy = Lazy();
- var joined = false;
- lazy.lines
- .forEach(function (line) {
- assert.ok(line instanceof Buffer);
- assert.ok(!line.toString().match(/\n/));
- assert.ok(line.length > 0);
- })
- .join(function (lines) {
- assert.deepEqual(
- lines.map(function (x) { return x.toString() }),
- 'foo bar baz quux moo'.split(' ')
- );
- joined = true;
- });
- ;
-
- setTimeout(function () {
- lazy.push('foo\nbar');
- lazy.push('\nbaz\nquux\nmoo');
- lazy.push('');
- lazy.push('\ndoom');
- lazy.end();
- assert.ok(joined);
- }, 50);
- };
- exports.endStream = function () {
- var to = setTimeout(function () {
- assert.fail('never finished');
- }, 2500);
-
- var em = new EventEmitter;
- var i = 0;
- var lines = [];
- Lazy(em).lines.forEach(function (line) {
- i ++;
- lines.push(line);
- if (i == 2) {
- clearTimeout(to);
- assert.eql(lines.map(String), [ 'foo', 'bar' ]);
- }
- });
-
- setTimeout(function () {
- em.emit('data', 'fo');
- }, 100);
-
- setTimeout(function () {
- em.emit('data', 'o\nbar');
- }, 150);
-
- setTimeout(function () {
- em.emit('end');
- }, 200);
- };
|