@ -1,22 +1,22 @@
'use strict' ;
var common = require ( '../common' ) ;
var assert = require ( 'assert' ) ;
const common = require ( '../common' ) ;
const assert = require ( 'assert' ) ;
var path = require ( 'path' ) ;
var fs = require ( 'fs' ) ;
var fn = path . join ( common . fixturesDir , 'elipses.txt' ) ;
var rangeFile = path . join ( common . fixturesDir , 'x.txt' ) ;
const path = require ( 'path' ) ;
const fs = require ( 'fs' ) ;
const fn = path . join ( common . fixturesDir , 'elipses.txt' ) ;
const rangeFile = path . join ( common . fixturesDir , 'x.txt' ) ;
var callbacks = { open : 0 , end : 0 , close : 0 } ;
const callbacks = { open : 0 , end : 0 , close : 0 } ;
var paused = false ;
let paused = false ;
var file = fs . ReadStream ( fn ) ;
const file = fs . ReadStream ( fn ) ;
file . on ( 'open' , function ( fd ) {
file . length = 0 ;
callbacks . open ++ ;
assert . equal ( 'number' , typeof fd ) ;
assert . strictEqual ( typeof fd , 'number' ) ;
assert . ok ( file . readable ) ;
// GH-535
@ -48,19 +48,17 @@ file.on('end', function(chunk) {
file . on ( 'close' , function ( ) {
callbacks . close ++ ;
//assert.equal(fs.readFileSync(fn), fileContent);
} ) ;
var file3 = fs . createReadStream ( fn , Object . create ( { encoding : 'utf8' } ) ) ;
const file3 = fs . createReadStream ( fn , Object . create ( { encoding : 'utf8' } ) ) ;
file3 . length = 0 ;
file3 . on ( 'data' , function ( data ) {
assert . equal ( 'string' , typeof data ) ;
assert . strictEqual ( typeof data , 'string' ) ;
file3 . length += data . length ;
for ( var i = 0 ; i < data . length ; i ++ ) {
for ( let i = 0 ; i < data . length ; i ++ ) {
// http://www.fileformat.info/info/unicode/char/2026/index.htm
assert . equal ( '\u2026' , data [ i ] ) ;
assert . strictEqual ( data [ i ] , '\u2026' ) ;
}
} ) ;
@ -69,57 +67,57 @@ file3.on('close', function() {
} ) ;
process . on ( 'exit' , function ( ) {
assert . equal ( 1 , callbacks . open ) ;
assert . equal ( 1 , callbacks . end ) ;
assert . equal ( 2 , callbacks . close ) ;
assert . equal ( 30000 , file . length ) ;
assert . equal ( 10000 , file3 . length ) ;
assert . strictEqual ( callbacks . open , 1 ) ;
assert . strictEqual ( callbacks . end , 1 ) ;
assert . strictEqual ( callbacks . close , 2 ) ;
assert . strictEqual ( file . length , 30000 ) ;
assert . strictEqual ( file3 . length , 10000 ) ;
console . error ( 'ok' ) ;
} ) ;
var file4 = fs . createReadStream ( rangeFile , Object . create ( { bufferSize : 1 ,
start : 1 , end : 2 } ) ) ;
assert . e qual( file4 . start , 1 ) ;
assert . e qual( file4 . end , 2 ) ;
var contentRead = '' ;
const file4 = fs . createReadStream ( rangeFile , Object . create ( { bufferSize : 1 ,
start : 1 , end : 2 } ) ) ;
assert . strictE qual( file4 . start , 1 ) ;
assert . strictE qual( file4 . end , 2 ) ;
let contentRead = '' ;
file4 . on ( 'data' , function ( data ) {
contentRead += data . toString ( 'utf-8' ) ;
} ) ;
file4 . on ( 'end' , function ( data ) {
assert . e qual( contentRead , 'yz' ) ;
assert . strictE qual( contentRead , 'yz' ) ;
} ) ;
var file5 = fs . createReadStream ( rangeFile , Object . create ( { bufferSize : 1 ,
start : 1 } ) ) ;
assert . e qual( file5 . start , 1 ) ;
const file5 = fs . createReadStream ( rangeFile , Object . create ( { bufferSize : 1 ,
start : 1 } ) ) ;
assert . strictE qual( file5 . start , 1 ) ;
file5 . data = '' ;
file5 . on ( 'data' , function ( data ) {
file5 . data += data . toString ( 'utf-8' ) ;
} ) ;
file5 . on ( 'end' , function ( ) {
assert . e qual( file5 . data , 'yz\n' ) ;
assert . strictE qual( file5 . data , 'yz\n' ) ;
} ) ;
// https://github.com/joyent/node/issues/2320
var file6 = fs . createReadStream ( rangeFile , Object . create ( { bufferSize : 1.23 ,
start : 1 } ) ) ;
assert . e qual( file6 . start , 1 ) ;
const file6 = fs . createReadStream ( rangeFile , Object . create ( { bufferSize : 1.23 ,
start : 1 } ) ) ;
assert . strictE qual( file6 . start , 1 ) ;
file6 . data = '' ;
file6 . on ( 'data' , function ( data ) {
file6 . data += data . toString ( 'utf-8' ) ;
} ) ;
file6 . on ( 'end' , function ( ) {
assert . e qual( file6 . data , 'yz\n' ) ;
assert . strictE qual( file6 . data , 'yz\n' ) ;
} ) ;
assert . throws ( function ( ) {
fs . createReadStream ( rangeFile , Object . create ( { start : 10 , end : 2 } ) ) ;
} , /"start" option must be <= "end" option/ ) ;
var stream = fs . createReadStream ( rangeFile , Object . create ( { start : 0 ,
end : 0 } ) ) ;
assert . e qual( stream . start , 0 ) ;
assert . e qual( stream . end , 0 ) ;
const stream = fs . createReadStream ( rangeFile , Object . create ( { start : 0 ,
end : 0 } ) ) ;
assert . strictE qual( stream . start , 0 ) ;
assert . strictE qual( stream . end , 0 ) ;
stream . data = '' ;
stream . on ( 'data' , function ( chunk ) {
@ -127,16 +125,16 @@ stream.on('data', function(chunk) {
} ) ;
stream . on ( 'end' , function ( ) {
assert . equal ( 'x' , stream . data ) ;
assert . strictEqual ( stream . data , 'x' ) ;
} ) ;
// pause and then resume immediately.
var pauseRes = fs . createReadStream ( rangeFile ) ;
const pauseRes = fs . createReadStream ( rangeFile ) ;
pauseRes . pause ( ) ;
pauseRes . resume ( ) ;
var file7 = fs . createReadStream ( rangeFile , Object . create ( { autoClose : false } ) ) ;
assert . e qual( file7 . autoClose , false ) ;
let file7 = fs . createReadStream ( rangeFile , Object . create ( { autoClose : false } ) ) ;
assert . strictE qual( file7 . autoClose , false ) ;
file7 . on ( 'data' , function ( ) { } ) ;
file7 . on ( 'end' , function ( ) {
process . nextTick ( function ( ) {
@ -154,18 +152,18 @@ function file7Next() {
file7 . data += data ;
} ) ;
file7 . on ( 'end' , function ( err ) {
assert . e qual( file7 . data , 'xyz\n' ) ;
assert . strictE qual( file7 . data , 'xyz\n' ) ;
} ) ;
}
// Just to make sure autoClose won't close the stream because of error.
var file8 = fs . createReadStream ( null , Object . create ( { fd : 13337 ,
autoClose : false } ) ) ;
const file8 = fs . createReadStream ( null , Object . create ( { fd : 13337 ,
autoClose : false } ) ) ;
file8 . on ( 'data' , function ( ) { } ) ;
file8 . on ( 'error' , common . mustCall ( function ( ) { } ) ) ;
// Make sure stream is destroyed when file does not exist.
var file9 = fs . createReadStream ( '/path/to/file/that/does/not/exist' ) ;
const file9 = fs . createReadStream ( '/path/to/file/that/does/not/exist' ) ;
file9 . on ( 'data' , function ( ) { } ) ;
file9 . on ( 'error' , common . mustCall ( function ( ) { } ) ) ;