Initial commit
This commit is contained in:
		
							
								
								
									
										18
									
								
								node_modules/memorystream/test/example.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										18
									
								
								node_modules/memorystream/test/example.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,18 @@
 | 
			
		||||
var http = require('http'),
 | 
			
		||||
    MemoryStream = require('../index'),
 | 
			
		||||
    util = require('util');
 | 
			
		||||
 | 
			
		||||
var options = {
 | 
			
		||||
	host: 'google.com'
 | 
			
		||||
};
 | 
			
		||||
var memStream = new MemoryStream(null,{
 | 
			
		||||
    readable : false
 | 
			
		||||
});
 | 
			
		||||
 | 
			
		||||
var req = http.request(options, function(res) {
 | 
			
		||||
	util.pump(res, memStream);
 | 
			
		||||
	res.on('end',function(){
 | 
			
		||||
	    console.log(memStream.toString());
 | 
			
		||||
	});
 | 
			
		||||
});
 | 
			
		||||
req.end();
 | 
			
		||||
							
								
								
									
										333
									
								
								node_modules/memorystream/test/memorystream.test.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										333
									
								
								node_modules/memorystream/test/memorystream.test.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,333 @@
 | 
			
		||||
var MemoryStream = require('../index.js'),
 | 
			
		||||
    expect = require('expect.js'),
 | 
			
		||||
    STREAM = require('stream'),
 | 
			
		||||
    Q = require('q'),
 | 
			
		||||
    FS = require('fs');
 | 
			
		||||
 | 
			
		||||
describe('Test memory streams', function() { 
 | 
			
		||||
    
 | 
			
		||||
    var writeToStream = function (mem_stream, test_data, frequency) {
 | 
			
		||||
        var result = Q(),
 | 
			
		||||
            i = 0;
 | 
			
		||||
        
 | 
			
		||||
        frequency = frequency || 0;
 | 
			
		||||
        
 | 
			
		||||
        test_data.forEach(function (chunk) {
 | 
			
		||||
            var f = Q.nfbind(function (chunk,n, cb) {
 | 
			
		||||
                setTimeout(function () {
 | 
			
		||||
                    if (n >= (test_data.length - 1) ) {
 | 
			
		||||
                        mem_stream.end(chunk);
 | 
			
		||||
                    } else {
 | 
			
		||||
                        mem_stream.write(chunk, cb);
 | 
			
		||||
                    }
 | 
			
		||||
                }, frequency);
 | 
			
		||||
            }, chunk ,i++);
 | 
			
		||||
            result = result.then(function() { return f(); });
 | 
			
		||||
        });
 | 
			
		||||
        
 | 
			
		||||
        result.done();
 | 
			
		||||
    };
 | 
			
		||||
    
 | 
			
		||||
    var writeToStream2 = function (mem_stream, test_data) {
 | 
			
		||||
        var i;
 | 
			
		||||
        for (i = 0; i < test_data.length ; i++) {
 | 
			
		||||
            setTimeout((function(n) {
 | 
			
		||||
                return function () {
 | 
			
		||||
                    if (n >= (test_data.length - 1) ) {
 | 
			
		||||
                        mem_stream.end(test_data[n]);
 | 
			
		||||
                    } else {
 | 
			
		||||
                        mem_stream.write(test_data[n]);
 | 
			
		||||
                    }
 | 
			
		||||
                }
 | 
			
		||||
            })(i), i * 2);
 | 
			
		||||
        }
 | 
			
		||||
    };
 | 
			
		||||
    
 | 
			
		||||
    describe("constructor", function() {
 | 
			
		||||
        it('should have a MemoryStream class', function () {
 | 
			
		||||
            expect(MemoryStream).to.be.ok();
 | 
			
		||||
        });
 | 
			
		||||
        
 | 
			
		||||
        it('should create Readable stream', function () {
 | 
			
		||||
            var memory_stream = new MemoryStream([], {writable : false});
 | 
			
		||||
            expect(memory_stream).to.be.ok();
 | 
			
		||||
            expect(memory_stream).to.be.a(STREAM.Readable);
 | 
			
		||||
            
 | 
			
		||||
            memory_stream = MemoryStream.createReadStream([]);
 | 
			
		||||
            expect(memory_stream).to.be.a(STREAM.Readable);
 | 
			
		||||
        });
 | 
			
		||||
        
 | 
			
		||||
        it('should create Writable stream', function () {
 | 
			
		||||
            var memory_stream = new MemoryStream([], {readable : false});
 | 
			
		||||
            expect(memory_stream).to.be.ok();
 | 
			
		||||
            expect(memory_stream).to.be.a(STREAM.Writable);
 | 
			
		||||
            
 | 
			
		||||
            memory_stream = MemoryStream.createWriteStream([]);
 | 
			
		||||
            expect(memory_stream).to.be.a(STREAM.Writable);
 | 
			
		||||
        });
 | 
			
		||||
        
 | 
			
		||||
        it('should create Duplex stream', function () {
 | 
			
		||||
            var memory_stream = new MemoryStream([]);
 | 
			
		||||
            expect(memory_stream).to.be.ok();
 | 
			
		||||
            expect(memory_stream).to.be.a(STREAM.Duplex);
 | 
			
		||||
        });
 | 
			
		||||
        
 | 
			
		||||
    });
 | 
			
		||||
    
 | 
			
		||||
    describe("readable stream", function () {
 | 
			
		||||
        var test_data = 'abcdefghijklmnopqrstuvwxyz',
 | 
			
		||||
            frequence = 50;
 | 
			
		||||
        
 | 
			
		||||
        it("should read data from stream", function (done) {
 | 
			
		||||
            var mem_stream = MemoryStream.createReadStream(test_data.split(''));
 | 
			
		||||
            
 | 
			
		||||
            var data = '', chunks = 0;
 | 
			
		||||
            mem_stream.on('data',function(chunk){
 | 
			
		||||
                data += chunk;
 | 
			
		||||
                ++chunks;
 | 
			
		||||
            });
 | 
			
		||||
            
 | 
			
		||||
            mem_stream.on('end',function () {
 | 
			
		||||
                expect(chunks).to.be(test_data.length);
 | 
			
		||||
                expect(data).to.be(test_data);
 | 
			
		||||
                done();
 | 
			
		||||
            });
 | 
			
		||||
        });
 | 
			
		||||
        
 | 
			
		||||
        it("should read data from stream with frequency", function (done) {
 | 
			
		||||
            
 | 
			
		||||
            var mem_stream = new MemoryStream(test_data.split(''), {
 | 
			
		||||
                writable : false,
 | 
			
		||||
                frequence: frequence
 | 
			
		||||
            });
 | 
			
		||||
            
 | 
			
		||||
            var start_time = Date.now();
 | 
			
		||||
            
 | 
			
		||||
            var data = '';
 | 
			
		||||
            mem_stream.on('data',function(chunk){
 | 
			
		||||
                data += chunk;
 | 
			
		||||
            });
 | 
			
		||||
            
 | 
			
		||||
            mem_stream.on('end',function(){
 | 
			
		||||
                var execution_time = Date.now() - start_time;
 | 
			
		||||
                
 | 
			
		||||
                expect(data).to.be(test_data);
 | 
			
		||||
                expect(execution_time >= frequence * test_data.length).to.be(true);
 | 
			
		||||
                
 | 
			
		||||
                done();
 | 
			
		||||
            });
 | 
			
		||||
        });
 | 
			
		||||
        
 | 
			
		||||
        it("should read data pause/resume", function (done) {
 | 
			
		||||
            var mem_stream = MemoryStream.createReadStream(test_data.split(''));
 | 
			
		||||
            
 | 
			
		||||
            var start_time = Date.now();
 | 
			
		||||
            
 | 
			
		||||
            var data = '', chunks = 0;
 | 
			
		||||
            mem_stream.on('data',function(chunk){
 | 
			
		||||
                data += chunk;
 | 
			
		||||
                ++chunks;
 | 
			
		||||
                
 | 
			
		||||
                if (! (chunks % 10) ) {
 | 
			
		||||
                    mem_stream.pause();
 | 
			
		||||
                    setTimeout(function () {
 | 
			
		||||
                        mem_stream.resume();
 | 
			
		||||
                    },frequence);
 | 
			
		||||
                }
 | 
			
		||||
            });
 | 
			
		||||
            
 | 
			
		||||
            mem_stream.on('end',function() {
 | 
			
		||||
                var execution_time = Date.now() - start_time;
 | 
			
		||||
                
 | 
			
		||||
                expect(data).to.be(test_data);
 | 
			
		||||
                expect(execution_time >= frequence).to.be(true);
 | 
			
		||||
                
 | 
			
		||||
                done();
 | 
			
		||||
            });
 | 
			
		||||
        });
 | 
			
		||||
        
 | 
			
		||||
    });
 | 
			
		||||
    
 | 
			
		||||
    describe("writable stream", function () {
 | 
			
		||||
        var test_data = 'abcdefghijklmnopqrstuvwxyz';
 | 
			
		||||
            
 | 
			
		||||
        it("should write data to Writable", function (done) {
 | 
			
		||||
            var mem_stream = MemoryStream.createWriteStream(),
 | 
			
		||||
                i = 0;
 | 
			
		||||
            
 | 
			
		||||
            writeToStream(mem_stream, test_data.split(''));
 | 
			
		||||
            
 | 
			
		||||
            mem_stream.on('finish',function () {
 | 
			
		||||
                expect(mem_stream.toString()).to.be(test_data);
 | 
			
		||||
                done();
 | 
			
		||||
            });
 | 
			
		||||
            
 | 
			
		||||
        });
 | 
			
		||||
        
 | 
			
		||||
        it("should not write data to readable stream", function (done) {
 | 
			
		||||
            var mem_stream = new MemoryStream([], {writable : false});
 | 
			
		||||
            expect(function () {
 | 
			
		||||
                mem_stream.write("test");
 | 
			
		||||
            }).to.throwError();
 | 
			
		||||
            
 | 
			
		||||
            expect(function () {
 | 
			
		||||
                mem_stream.end("test");
 | 
			
		||||
            }).to.throwError();
 | 
			
		||||
            
 | 
			
		||||
            done();
 | 
			
		||||
        });
 | 
			
		||||
        
 | 
			
		||||
        it("#toString", function (done) {
 | 
			
		||||
            var mem_stream = new MemoryStream(null, {readable : false});
 | 
			
		||||
            writeToStream(mem_stream, test_data.split(''));
 | 
			
		||||
            
 | 
			
		||||
            mem_stream.on('finish',function () {
 | 
			
		||||
                expect(mem_stream.toString()).to.be(test_data);
 | 
			
		||||
                done();
 | 
			
		||||
            });
 | 
			
		||||
        });
 | 
			
		||||
        
 | 
			
		||||
        it("#toBuffer", function (done) {
 | 
			
		||||
            var mem_stream = new MemoryStream(null, {readable : false});
 | 
			
		||||
            writeToStream(mem_stream, test_data.split(''));
 | 
			
		||||
            
 | 
			
		||||
            mem_stream.on('finish',function () {
 | 
			
		||||
                expect(mem_stream.toBuffer().toString('utf-8')).to.be(test_data);
 | 
			
		||||
                done();
 | 
			
		||||
            });
 | 
			
		||||
        });
 | 
			
		||||
        
 | 
			
		||||
        it("#toBuffer all data in one buffer", function (done) {
 | 
			
		||||
            var i = 0,
 | 
			
		||||
                mem_stream = new MemoryStream(null, {readable : false}),
 | 
			
		||||
                arr_test_data = [],
 | 
			
		||||
                str_test_data = '';
 | 
			
		||||
            for (i = 0; i < 20; i++) {
 | 
			
		||||
                var b = new Buffer([i]);
 | 
			
		||||
                arr_test_data.push(b);
 | 
			
		||||
                str_test_data += b.toString('hex');
 | 
			
		||||
            }
 | 
			
		||||
            
 | 
			
		||||
            writeToStream(mem_stream, arr_test_data, 10);
 | 
			
		||||
            
 | 
			
		||||
            mem_stream.on('finish',function () {
 | 
			
		||||
                expect(mem_stream.toBuffer().toString('hex')).to.be(str_test_data);
 | 
			
		||||
                done();
 | 
			
		||||
            });
 | 
			
		||||
            
 | 
			
		||||
        });
 | 
			
		||||
        
 | 
			
		||||
        it("not write data to the overflowed buffer", function (done) {
 | 
			
		||||
            var mem_stream = new MemoryStream('data1'.split(''), {
 | 
			
		||||
                readable : false,
 | 
			
		||||
                maxbufsize : 10
 | 
			
		||||
            });
 | 
			
		||||
            
 | 
			
		||||
            mem_stream.write('data2', function (err) {
 | 
			
		||||
                expect(err).to.not.be.ok();
 | 
			
		||||
                expect(mem_stream.toString()).to.be('data1data2');
 | 
			
		||||
                mem_stream.write('data3', function (err) {
 | 
			
		||||
                    expect(err).to.not.be.ok();
 | 
			
		||||
                    expect(mem_stream.toString()).to.be('data1data2');
 | 
			
		||||
                    done();
 | 
			
		||||
                });
 | 
			
		||||
            });
 | 
			
		||||
        });
 | 
			
		||||
        
 | 
			
		||||
        it("should process error for overflowed buffer", function (done) {
 | 
			
		||||
            var mem_stream = new MemoryStream('data1'.split(''), {
 | 
			
		||||
                readable : false,
 | 
			
		||||
                maxbufsize : 10,
 | 
			
		||||
                bufoverflow : true
 | 
			
		||||
            });
 | 
			
		||||
            
 | 
			
		||||
            mem_stream.write('data2', function (err) {
 | 
			
		||||
                expect(err).to.not.be.ok();
 | 
			
		||||
                expect(mem_stream.toString()).to.be('data1data2');
 | 
			
		||||
                mem_stream.write('data3', function (err) {
 | 
			
		||||
                    expect(err).to.be.ok();
 | 
			
		||||
                    expect(mem_stream.toString()).to.be('data1data2');
 | 
			
		||||
                    done();
 | 
			
		||||
                });
 | 
			
		||||
                
 | 
			
		||||
            });
 | 
			
		||||
            
 | 
			
		||||
            mem_stream.on('error', function () {
 | 
			
		||||
            });
 | 
			
		||||
            
 | 
			
		||||
        });
 | 
			
		||||
    });
 | 
			
		||||
    
 | 
			
		||||
    describe("duplex stream", function () {
 | 
			
		||||
        var test_data = 'abcdefghijklmnopqrstuvwxyz';
 | 
			
		||||
        
 | 
			
		||||
        it("should write/read",function (done) {
 | 
			
		||||
            var mem_stream = new MemoryStream();
 | 
			
		||||
            
 | 
			
		||||
            var data = '';
 | 
			
		||||
            mem_stream.on('data',function(chunk){
 | 
			
		||||
                data += chunk;
 | 
			
		||||
            });
 | 
			
		||||
            
 | 
			
		||||
            writeToStream(mem_stream, test_data.split(''));
 | 
			
		||||
            
 | 
			
		||||
            mem_stream.on('end', function () {
 | 
			
		||||
                expect(data).to.be(test_data);
 | 
			
		||||
                done();
 | 
			
		||||
            });
 | 
			
		||||
        });
 | 
			
		||||
 | 
			
		||||
        it("should write/read data with init buffer", function (done) {
 | 
			
		||||
 | 
			
		||||
            var l = Math.floor(test_data.length / 2);
 | 
			
		||||
 | 
			
		||||
            var test_data1 = test_data.substr(0, l),
 | 
			
		||||
                test_data2 = test_data.substr(l);
 | 
			
		||||
 | 
			
		||||
            var mem_stream = new MemoryStream(test_data1.split(''));
 | 
			
		||||
 | 
			
		||||
            var data = '';
 | 
			
		||||
            mem_stream.on('data',function(chunk){
 | 
			
		||||
                data += chunk;
 | 
			
		||||
            });
 | 
			
		||||
 | 
			
		||||
            writeToStream2(mem_stream, test_data2);
 | 
			
		||||
 | 
			
		||||
            mem_stream.on('end', function() {
 | 
			
		||||
                expect(data).to.be(test_data);
 | 
			
		||||
                done();
 | 
			
		||||
            });
 | 
			
		||||
 | 
			
		||||
        });
 | 
			
		||||
        
 | 
			
		||||
 | 
			
		||||
        it("should piping data", function (done) {
 | 
			
		||||
            var src_mem_stream = MemoryStream.createReadStream(test_data.split(''), {frequency : 25});
 | 
			
		||||
            var dst_mem_stream = MemoryStream.createWriteStream();
 | 
			
		||||
            
 | 
			
		||||
            src_mem_stream.pipe(dst_mem_stream);
 | 
			
		||||
            
 | 
			
		||||
            dst_mem_stream.on('finish',function(){
 | 
			
		||||
                expect(dst_mem_stream.toString()).to.be(test_data);
 | 
			
		||||
                done();
 | 
			
		||||
            });
 | 
			
		||||
            
 | 
			
		||||
            
 | 
			
		||||
        });
 | 
			
		||||
        
 | 
			
		||||
        it("should readable/piping data", function (done) {
 | 
			
		||||
            var src_mem_stream = MemoryStream.createReadStream(test_data.split(''), {frequency : 25});
 | 
			
		||||
            var dst_mem_stream = MemoryStream.createWriteStream();
 | 
			
		||||
            
 | 
			
		||||
            src_mem_stream.once('readable', function () {
 | 
			
		||||
                src_mem_stream.pipe(dst_mem_stream);
 | 
			
		||||
            });
 | 
			
		||||
            
 | 
			
		||||
            dst_mem_stream.on('finish',function(){
 | 
			
		||||
                expect(dst_mem_stream.toString()).to.be(test_data);
 | 
			
		||||
                done();
 | 
			
		||||
            });
 | 
			
		||||
        });
 | 
			
		||||
        
 | 
			
		||||
    });
 | 
			
		||||
});
 | 
			
		||||
		Reference in New Issue
	
	Block a user