@ -1,38 +1,41 @@
'use strict' ;
'use strict' ;
var common = require ( '../common' ) ;
const common = require ( '../common' ) ;
var assert = require ( 'assert' ) ;
const assert = require ( 'assert' ) ;
if ( ! common . hasCrypto ) {
if ( ! common . hasCrypto ) {
common . skip ( 'missing crypto' ) ;
common . skip ( 'missing crypto' ) ;
return ;
return ;
}
}
var tls = require ( 'tls' ) ;
const tls = require ( 'tls' ) ;
var fs = require ( 'fs' ) ;
const fs = require ( 'fs' ) ;
var options = {
const options = {
key : fs . readFileSync ( common . fixturesDir + '/keys/agent2-key.pem' ) ,
key : fs . readFileSync ( common . fixturesDir + '/keys/agent2-key.pem' ) ,
cert : fs . readFileSync ( common . fixturesDir + '/keys/agent2-cert.pem' )
cert : fs . readFileSync ( common . fixturesDir + '/keys/agent2-cert.pem' )
} ;
} ;
var message = 'hello world\n' ;
// Contains a UTF8 only character
const messageUtf8 = 'x√ab c' ;
// The same string above represented with ASCII
const messageAscii = 'xb\b\u001aab c' ;
var server = tls . Server ( options , common . mustCall ( function ( socket ) {
const server = tls . Server ( options , common . mustCall ( function ( socket ) {
socket . end ( message ) ;
socket . end ( messageUtf8 ) ;
} ) ) ;
} ) ) ;
server . listen ( 0 , function ( ) {
server . listen ( 0 , function ( ) {
var client = tls . connect ( {
const client = tls . connect ( {
port : this . address ( ) . port ,
port : this . address ( ) . port ,
rejectUnauthorized : false
rejectUnauthorized : false
} ) ;
} ) ;
var buffer = '' ;
let buffer = '' ;
client . setEncoding ( 'utf8 ' ) ;
client . setEncoding ( 'ascii ' ) ;
client . on ( 'data' , function ( d ) {
client . on ( 'data' , function ( d ) {
assert . ok ( typeof d === 'string' ) ;
assert . ok ( typeof d === 'string' ) ;
@ -44,10 +47,16 @@ server.listen(0, function() {
// readyState is deprecated but we want to make
// readyState is deprecated but we want to make
// sure this isn't triggering an assert in lib/net.js
// sure this isn't triggering an assert in lib/net.js
// See issue #1069.
// See issue #1069.
assert . equal ( 'closed' , client . readyState ) ;
assert . strictEqual ( 'closed' , client . readyState ) ;
// Confirming the buffer string is encoded in ASCII
// and thus does NOT match the UTF8 string
assert . notStrictEqual ( buffer , messageUtf8 ) ;
// Confirming the buffer string is encoded in ASCII
// and thus does equal the ASCII string representation
assert . strictEqual ( buffer , messageAscii ) ;
assert . equal ( buffer , message ) ;
console . log ( message ) ;
server . close ( ) ;
server . close ( ) ;
} ) ;
} ) ;
} ) ;
} ) ;