| // Flags: --expose-internals |
| 'use strict'; |
| |
| // This tests internal mapping of the Node.js encoding implementation |
| |
| require('../common'); |
| |
| const assert = require('assert'); |
| const { getEncodingFromLabel } = require('internal/encoding'); |
| |
| // Test Encoding Mappings |
| { |
| const mappings = { |
| 'utf-8': [ |
| 'unicode-1-1-utf-8', |
| 'utf8' |
| ], |
| 'utf-16be': [], |
| 'utf-16le': [ |
| 'utf-16' |
| ], |
| 'ibm866': [ |
| '866', |
| 'cp866', |
| 'csibm866' |
| ], |
| 'iso-8859-2': [ |
| 'csisolatin2', |
| 'iso-ir-101', |
| 'iso8859-2', |
| 'iso88592', |
| 'iso_8859-2', |
| 'iso_8859-2:1987', |
| 'l2', |
| 'latin2' |
| ], |
| 'iso-8859-3': [ |
| 'csisolatin3', |
| 'iso-ir-109', |
| 'iso8859-3', |
| 'iso88593', |
| 'iso_8859-3', |
| 'iso_8859-3:1988', |
| 'l3', |
| 'latin3' |
| ], |
| 'iso-8859-4': [ |
| 'csisolatin4', |
| 'iso-ir-110', |
| 'iso8859-4', |
| 'iso88594', |
| 'iso_8859-4', |
| 'iso_8859-4:1988', |
| 'l4', |
| 'latin4' |
| ], |
| 'iso-8859-5': [ |
| 'csisolatincyrillic', |
| 'cyrillic', |
| 'iso-ir-144', |
| 'iso8859-5', |
| 'iso88595', |
| 'iso_8859-5', |
| 'iso_8859-5:1988' |
| ], |
| 'iso-8859-6': [ |
| 'arabic', |
| 'asmo-708', |
| 'csiso88596e', |
| 'csiso88596i', |
| 'csisolatinarabic', |
| 'ecma-114', |
| 'iso-8859-6-e', |
| 'iso-8859-6-i', |
| 'iso-ir-127', |
| 'iso8859-6', |
| 'iso88596', |
| 'iso_8859-6', |
| 'iso_8859-6:1987' |
| ], |
| 'iso-8859-7': [ |
| 'csisolatingreek', |
| 'ecma-118', |
| 'elot_928', |
| 'greek', |
| 'greek8', |
| 'iso-ir-126', |
| 'iso8859-7', |
| 'iso88597', |
| 'iso_8859-7', |
| 'iso_8859-7:1987', |
| 'sun_eu_greek' |
| ], |
| 'iso-8859-8': [ |
| 'csiso88598e', |
| 'csisolatinhebrew', |
| 'hebrew', |
| 'iso-8859-8-e', |
| 'iso-ir-138', |
| 'iso8859-8', |
| 'iso88598', |
| 'iso_8859-8', |
| 'iso_8859-8:1988', |
| 'visual' |
| ], |
| 'iso-8859-8-i': [ |
| 'csiso88598i', |
| 'logical' |
| ], |
| 'iso-8859-10': [ |
| 'csisolatin6', |
| 'iso-ir-157', |
| 'iso8859-10', |
| 'iso885910', |
| 'l6', |
| 'latin6' |
| ], |
| 'iso-8859-13': [ |
| 'iso8859-13', |
| 'iso885913' |
| ], |
| 'iso-8859-14': [ |
| 'iso8859-14', |
| 'iso885914' |
| ], |
| 'iso-8859-15': [ |
| 'csisolatin9', |
| 'iso8859-15', |
| 'iso885915', |
| 'iso_8859-15', |
| 'l9' |
| ], |
| 'koi8-r': [ |
| 'cskoi8r', |
| 'koi', |
| 'koi8', |
| 'koi8_r' |
| ], |
| 'koi8-u': [ |
| 'koi8-ru' |
| ], |
| 'macintosh': [ |
| 'csmacintosh', |
| 'mac', |
| 'x-mac-roman' |
| ], |
| 'windows-874': [ |
| 'dos-874', |
| 'iso-8859-11', |
| 'iso8859-11', |
| 'iso885911', |
| 'tis-620' |
| ], |
| 'windows-1250': [ |
| 'cp1250', |
| 'x-cp1250' |
| ], |
| 'windows-1251': [ |
| 'cp1251', |
| 'x-cp1251' |
| ], |
| 'windows-1252': [ |
| 'ansi_x3.4-1968', |
| 'ascii', |
| 'cp1252', |
| 'cp819', |
| 'csisolatin1', |
| 'ibm819', |
| 'iso-8859-1', |
| 'iso-ir-100', |
| 'iso8859-1', |
| 'iso88591', |
| 'iso_8859-1', |
| 'iso_8859-1:1987', |
| 'l1', |
| 'latin1', |
| 'us-ascii', |
| 'x-cp1252' |
| ], |
| 'windows-1253': [ |
| 'cp1253', |
| 'x-cp1253' |
| ], |
| 'windows-1254': [ |
| 'cp1254', |
| 'csisolatin5', |
| 'iso-8859-9', |
| 'iso-ir-148', |
| 'iso8859-9', |
| 'iso88599', |
| 'iso_8859-9', |
| 'iso_8859-9:1989', |
| 'l5', |
| 'latin5', |
| 'x-cp1254' |
| ], |
| 'windows-1255': [ |
| 'cp1255', |
| 'x-cp1255' |
| ], |
| 'windows-1256': [ |
| 'cp1256', |
| 'x-cp1256' |
| ], |
| 'windows-1257': [ |
| 'cp1257', |
| 'x-cp1257' |
| ], |
| 'windows-1258': [ |
| 'cp1258', |
| 'x-cp1258' |
| ], |
| 'x-mac-cyrillic': [ |
| 'x-mac-ukrainian' |
| ], |
| 'gbk': [ |
| 'chinese', |
| 'csgb2312', |
| 'csiso58gb231280', |
| 'gb2312', |
| 'gb_2312', |
| 'gb_2312-80', |
| 'iso-ir-58', |
| 'x-gbk' |
| ], |
| 'gb18030': [ ], |
| 'big5': [ |
| 'big5-hkscs', |
| 'cn-big5', |
| 'csbig5', |
| 'x-x-big5' |
| ], |
| 'euc-jp': [ |
| 'cseucpkdfmtjapanese', |
| 'x-euc-jp' |
| ], |
| 'iso-2022-jp': [ |
| 'csiso2022jp' |
| ], |
| 'shift_jis': [ |
| 'csshiftjis', |
| 'ms932', |
| 'ms_kanji', |
| 'shift-jis', |
| 'sjis', |
| 'windows-31j', |
| 'x-sjis' |
| ], |
| 'euc-kr': [ |
| ' euc-kr \t', |
| 'EUC-kr \n', |
| 'cseuckr', |
| 'csksc56011987', |
| 'iso-ir-149', |
| 'korean', |
| 'ks_c_5601-1987', |
| 'ks_c_5601-1989', |
| 'ksc5601', |
| 'ksc_5601', |
| 'windows-949' |
| ] |
| }; |
| Object.entries(mappings).forEach((i) => { |
| const enc = i[0]; |
| const labels = i[1]; |
| assert.strictEqual(getEncodingFromLabel(enc), enc); |
| labels.forEach((l) => assert.strictEqual(getEncodingFromLabel(l), enc)); |
| }); |
| |
| assert.strictEqual(getEncodingFromLabel('made-up'), undefined); |
| } |