1'use strict'; 2 3const common = require('../common'); 4const assert = require('assert'); 5 6// utf8, ucs2, ascii, latin1, utf16le 7const encodings = ['utf8', 'utf-8', 'ucs2', 'ucs-2', 'ascii', 'latin1', 8 'binary', 'utf16le', 'utf-16le']; 9 10encodings 11 .reduce((es, e) => es.concat(e, e.toUpperCase()), []) 12 .forEach((encoding) => { 13 assert.strictEqual(Buffer.from('foo', encoding).toString(encoding), 'foo'); 14 }); 15 16// base64 17['base64', 'BASE64'].forEach((encoding) => { 18 assert.strictEqual(Buffer.from('Zm9v', encoding).toString(encoding), 'Zm9v'); 19}); 20 21// hex 22['hex', 'HEX'].forEach((encoding) => { 23 assert.strictEqual(Buffer.from('666f6f', encoding).toString(encoding), 24 '666f6f'); 25}); 26 27// Invalid encodings 28for (let i = 1; i < 10; i++) { 29 const encoding = String(i).repeat(i); 30 const error = common.expectsError({ 31 code: 'ERR_UNKNOWN_ENCODING', 32 name: 'TypeError', 33 message: `Unknown encoding: ${encoding}` 34 }); 35 assert.ok(!Buffer.isEncoding(encoding)); 36 assert.throws(() => Buffer.from('foo').toString(encoding), error); 37} 38