12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091 |
- 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();
- }
- };
|