123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990 |
- var Readable = require('../lib/lazystream').Readable;
- var DummyReadable = require('./helper').DummyReadable;
- exports.readable = {
- dummy: function(test) {
- var expected = [ 'line1\n', 'line2\n' ];
- var actual = [];
- test.expect(1);
- new DummyReadable([].concat(expected))
- .on('data', function(chunk) {
- actual.push(chunk.toString());
- })
- .on('end', function() {
- test.equal(actual.join(''), expected.join(''), 'DummyReadable should produce the data it was created with');
- test.done();
- });
- },
- options: function(test) {
- test.expect(3);
- var readable = new Readable(function(options) {
- test.ok(this instanceof Readable, "Readable should bind itself to callback's this");
- test.equal(options.encoding, "utf-8", "Readable should make options accessible to callback");
- this.ok = true;
- return new DummyReadable(["test"]);
- }, {encoding: "utf-8"});
- readable.read(4);
- test.ok(readable.ok);
- test.done();
- },
- streams2: function(test) {
- var expected = [ 'line1\n', 'line2\n' ];
- var actual = [];
- var instantiated = false;
- test.expect(2);
- var readable = new Readable(function() {
- instantiated = true;
- return new DummyReadable([].concat(expected));
- });
- test.equal(instantiated, false, 'DummyReadable should only be instantiated when it is needed');
- readable.on('readable', function() {
- var chunk;
- while ((chunk = readable.read())) {
- actual.push(chunk.toString());
- }
- });
- readable.on('end', function() {
- test.equal(actual.join(''), expected.join(''), 'Readable should not change the data of the underlying stream');
- test.done();
- });
- readable.read(0);
- },
- resume: function(test) {
- var expected = [ 'line1\n', 'line2\n' ];
- var actual = [];
- var instantiated = false;
- test.expect(2);
- var readable = new Readable(function() {
- instantiated = true;
- return new DummyReadable([].concat(expected));
- });
- readable.pause();
- readable.on('data', function(chunk) {
- actual.push(chunk.toString());
- });
- readable.on('end', function() {
- test.equal(actual.join(''), expected.join(''), 'Readable should not change the data of the underlying stream');
- test.done();
- });
- test.equal(instantiated, false, 'DummyReadable should only be instantiated when it is needed');
- readable.resume();
- }
- };
|