@ -28,12 +28,10 @@ fs.readFile(url, common.mustCall((err, data) => {
// Check that using a non file:// URL reports an error
const httpUrl = new URL ( 'http://example.org' ) ;
fs . readFile ( httpUrl , common . mustCall ( ( err ) => {
common . expectsError ( {
code : 'ERR_INVALID_URL_SCHEME' ,
type : TypeError ,
message : 'The URL must be of scheme file'
} ) ( err ) ;
fs . readFile ( httpUrl , common . expectsError ( {
code : 'ERR_INVALID_URL_SCHEME' ,
type : TypeError ,
message : 'The URL must be of scheme file'
} ) ) ;
// pct-encoded characters in the path will be decoded and checked
@ -46,31 +44,25 @@ fs.readFile(new URL('file:///c:/tmp/%00test'), common.mustCall((err) => {
if ( common . isWindows ) {
// encoded back and forward slashes are not permitted on windows
[ '%2f' , '%2F' , '%5c' , '%5C' ] . forEach ( ( i ) => {
fs . readFile ( new URL ( ` file:///c:/tmp/ ${ i } ` ) , common . mustCall ( ( err ) => {
common . expectsError ( {
code : 'ERR_INVALID_FILE_URL_PATH' ,
type : TypeError ,
message : 'File URL path must not include encoded \\ or / characters'
} ) ( err ) ;
fs . readFile ( new URL ( ` file:///c:/tmp/ ${ i } ` ) , common . expectsError ( {
code : 'ERR_INVALID_FILE_URL_PATH' ,
type : TypeError ,
message : 'File URL path must not include encoded \\ or / characters'
} ) ) ;
} ) ;
} else {
// encoded forward slashes are not permitted on other platforms
[ '%2f' , '%2F' ] . forEach ( ( i ) => {
fs . readFile ( new URL ( ` file:///c:/tmp/ ${ i } ` ) , common . mustCall ( ( err ) => {
common . expectsError ( {
code : 'ERR_INVALID_FILE_URL_PATH' ,
type : TypeError ,
message : 'File URL path must not include encoded / characters'
} ) ( err ) ;
fs . readFile ( new URL ( ` file:///c:/tmp/ ${ i } ` ) , common . expectsError ( {
code : 'ERR_INVALID_FILE_URL_PATH' ,
type : TypeError ,
message : 'File URL path must not include encoded / characters'
} ) ) ;
} ) ;
fs . readFile ( new URL ( 'file://hostname/a/b/c' ) , common . mustCall ( ( err ) => {
common . expectsError ( {
code : 'ERR_INVALID_FILE_URL_HOST' ,
type : TypeError ,
message : ` File URL host must be "localhost" or empty on ${ os . platform ( ) } `
} ) ( err ) ;
fs . readFile ( new URL ( 'file://hostname/a/b/c' ) , common . expectsError ( {
code : 'ERR_INVALID_FILE_URL_HOST' ,
type : TypeError ,
message : ` File URL host must be "localhost" or empty on ${ os . platform ( ) } `
} ) ) ;
}