Beispiel #1
0
 "Convert non-strings and non-buffers": function() {
     assert.strictEqual(iconv.toEncoding({}, "utf8").toString(), "[object Object]");
     assert.strictEqual(iconv.toEncoding(10, "utf8").toString(), "10");
     assert.strictEqual(iconv.toEncoding(undefined, "utf8").toString(), "");
     assert.strictEqual(iconv.fromEncoding({}, "utf8"), "[object Object]");
     assert.strictEqual(iconv.fromEncoding(10, "utf8"), "10");
     assert.strictEqual(iconv.fromEncoding(undefined, "utf8"), "");
 },
Beispiel #2
0
 "Big5 correctly encoded/decoded": function () {
     assert.strictEqual(iconv.toEncoding(testString, "big5").toString('binary'),
         testStringBig5Buffer.toString('binary'));
     assert.strictEqual(iconv.fromEncoding(testStringBig5Buffer, "big5"), testString);
     assert.strictEqual(iconv.toEncoding(testString2, 'big5').toString('binary'),
         testStringBig5Buffer2.toString('binary'));
     assert.strictEqual(iconv.fromEncoding(testStringBig5Buffer2, 'big5'), testString2);
 },
 "Big5 correctly decodes and encodes characters · and ×": function() {
     // https://github.com/ashtuchkin/iconv-lite/issues/13
     // Reference: http://www.unicode.org/Public/MAPPINGS/VENDORS/MICSFT/WINDOWS/CP950.TXT
     var chars = "·×";
     var big5Chars = new Buffer([0xA1, 0x50, 0xA1, 0xD1]);
     assert.strictEqual(iconv.toEncoding(chars, "big5").toString('binary'), big5Chars.toString('binary'));
     assert.strictEqual(iconv.fromEncoding(big5Chars, "big5"), chars)
 },
Beispiel #4
0
 encoding.variations.forEach(function(enc) {
     assert.strictEqual(iconv.fromEncoding(encoding.encodedStrings[key], enc), baseStrings[key]);
     assert.strictEqual(iconv.toEncoding(baseStrings[key], enc).toString('binary'), encoding.encodedStrings[key].toString('binary'));
 });
Beispiel #5
0
 "Convert to buffer": function() {
     for (var key in encoding.encodedStrings)
         assert.strictEqual(iconv.toEncoding(baseStrings[key], enc).toString('binary'), 
             encoding.encodedStrings[key].toString('binary'));
 },
Beispiel #6
0
 "Convert to empty buffer": function() {
     assert.strictEqual(iconv.toEncoding("", enc).toString('binary'), new Buffer('').toString('binary'));
 },
 "GB2312 correctly encoded/decoded": function () {
     assert.strictEqual(iconv.toEncoding(testString, "GB2312").toString('binary'), testStringGBKBuffer.toString('binary'));
     assert.strictEqual(iconv.fromEncoding(testStringGBKBuffer, "GB2312"), testString);
 },
 "Return values are of correct types": function () {
     assert.ok(iconv.toEncoding(testString, "utf8") instanceof Buffer);
     var s = iconv.fromEncoding(new Buffer(testString), "utf8");
     assert.strictEqual(Object.prototype.toString.call(s), "[object String]");
 },
Beispiel #9
0
var vows=require("vows"),fs=require("fs"),assert=require("assert"),iconv=require(__dirname+"/../"),testString="中文abc",testStringBig5Buffer=new Buffer([164,164,164,229,97,98,99]),testString2="測試",testStringBig5Buffer2=new Buffer([180,250,184,213]);vows.describe("Big5 tests").addBatch({"Big5 correctly encoded/decoded":function(){assert.strictEqual(iconv.toEncoding(testString,"big5").toString("binary"),testStringBig5Buffer.toString("binary")),assert.strictEqual(iconv.fromEncoding(testStringBig5Buffer,"big5"),testString),assert.strictEqual(iconv.toEncoding(testString2,"big5").toString("binary"),testStringBig5Buffer2.toString("binary")),assert.strictEqual(iconv.fromEncoding(testStringBig5Buffer2,"big5"),testString2)},"cp950 correctly encoded/decoded":function(){assert.strictEqual(iconv.toEncoding(testString,"cp950").toString("binary"),testStringBig5Buffer.toString("binary")),assert.strictEqual(iconv.fromEncoding(testStringBig5Buffer,"cp950"),testString)},"Big5 file read decoded,compare with iconv result":function(){var e=fs.readFileSync(__dirname+"/big5File.txt"),n=iconv.fromEncoding(e,"big5"),t=new(require("iconv").Iconv)("big5","utf8");assert.strictEqual(t.convert(e).toString(),n)},"Big5 correctly decodes and encodes characters · and ×":function(){var e="·×",n=new Buffer([161,80,161,209]);assert.strictEqual(iconv.toEncoding(e,"big5").toString("binary"),n.toString("binary")),assert.strictEqual(iconv.fromEncoding(n,"big5"),e)}})["export"](module);
Beispiel #10
0
 "Aliases encode and decode work the same as toEncoding and fromEncoding": function() {
     assert.strictEqual(iconv.toEncoding(testString, "latin1").toString("binary"), iconv.encode(testString, "latin1").toString("binary"));
     assert.strictEqual(iconv.fromEncoding(testStringLatin1, "latin1"), iconv.decode(testStringLatin1, "latin1"));
 },
Beispiel #11
0
 assert.throws(function() { iconv.toEncoding("a", "xxx"); });
Beispiel #12
0
 "Convert to string, not buffer (utf8 used)": function() {
     var res = iconv.toEncoding(new Buffer(testStringLatin1, "utf8"));
     assert.ok(res instanceof Buffer);
     assert.strictEqual(res.toString("utf8"), testStringLatin1);
 },
Beispiel #13
0
 "Latin1 correctly encoded/decoded": function() {    
     assert.strictEqual(iconv.toEncoding(testStringLatin1, "latin1").toString("binary"), testStringLatin1);
     assert.strictEqual(iconv.fromEncoding(new Buffer(testStringLatin1, "binary"), "latin1"), testStringLatin1);
 },
Beispiel #14
0
 "Base64 correctly encoded/decoded": function() {    
     assert.strictEqual(iconv.toEncoding(testStringBase64, "base64").toString("binary"), testString);
     assert.strictEqual(iconv.fromEncoding(new Buffer(testString, "binary"), "base64"), testStringBase64);
 },
Beispiel #15
0
 ['utf8', "UTF-8", "UCS2", "binary", ""].forEach(function(enc) {
     assert.strictEqual(iconv.toEncoding(testStringLatin1, enc).toString(enc), testStringLatin1);
     assert.strictEqual(iconv.fromEncoding(new Buffer(testStringLatin1, enc), enc), testStringLatin1);
 });
Beispiel #16
0
 "Untranslatable chars are converted to defaultCharSingleByte": function() {
     var expected = baseStrings.untranslatable.split('').map(function(c) {return iconv.defaultCharSingleByte; }).join('');
     assert.strictEqual(iconv.toEncoding(baseStrings.untranslatable, enc).toString('binary'), expected); // Only '?' characters.
 }
Beispiel #17
0
	"ks_c_5601-1987 correctly encoded/decoded": function() {
		assert.strictEqual(iconv.toEncoding(testStringUtf, "ks_c_5601-1987").toString("binary"), testStringCP949Buffer.toString("binary"));
		assert.strictEqual(iconv.fromEncoding(testStringCP949Buffer, "ks_c_5601-1987"), testStringUtf);
	},
var vows=require("vows"),assert=require("assert"),iconv=require(__dirname+"/../"),ascii="\x00\b	\n\f\r !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~",encodings=[{name:"windows1254",variations:["windows-1254","win-1254","win1254","cp1254","cp-1254",1254],strings:{empty:"",ascii:ascii,turkish:"€‚ƒ„…†‡ˆ‰Š‹Œ‘’“”•–—˜™š›œŸ¡¢£¤¥¦§¨©ª«¬®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏĞÑÒÓÔÕÖ×ØÙÚÛÜİŞßàáâãäåæçèéêëìíîïğñòóôõö÷øùúûüışÿ",untranslatable:"Žž"},encodedStrings:{empty:new Buffer(""),ascii:new Buffer(ascii,"binary"),turkish:new Buffer("€‚ƒ„…†‡ˆ‰Š‹Œ‘’“”•–—˜™š›œŸ¡¢£¤¥¦§¨©ª«¬®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ","binary")}},{name:"iso88599",variations:["iso-8859-9","turkish","turkish8","cp28599","cp-28599",28599],strings:{empty:"",ascii:ascii,turkish:" ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏĞÑÒÓÔÕÖ×ØÙÚÛÜİŞßàáâãäåæçèéêëìíîïğñòóôõö÷øùúûüışÿ",untranslatable:""},encodedStrings:{empty:new Buffer(""),ascii:new Buffer(ascii,"binary"),turkish:new Buffer(" ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ","binary")}}],testsBatch={};encodings.forEach(function(e){var n=e.variations[0],t="turkish",r={"Convert to empty buffer":function(){assert.strictEqual(iconv.toEncoding("",n).toString("binary"),new Buffer("").toString("binary"))},"Convert from empty buffer":function(){assert.strictEqual(iconv.fromEncoding(new Buffer(""),n),"")},"Convert from buffer":function(){for(var t in e.encodedStrings)assert.strictEqual(iconv.fromEncoding(e.encodedStrings[t],n),e.strings[t])},"Convert to buffer":function(){for(var t in e.encodedStrings)assert.strictEqual(iconv.toEncoding(e.strings[t],n).toString("binary"),e.encodedStrings[t].toString("binary"))},"Try different variations of encoding":function(){e.variations.forEach(function(n){assert.strictEqual(iconv.fromEncoding(e.encodedStrings[t],n),e.strings[t]),assert.strictEqual(iconv.toEncoding(e.strings[t],n).toString("binary"),e.encodedStrings[t].toString("binary"))})},"Untranslatable chars are converted to defaultCharSingleByte":function(){var t=e.strings.untranslatable.split("").map(function(e){return iconv.defaultCharSingleByte}).join("");assert.strictEqual(iconv.toEncoding(e.strings.untranslatable,n).toString("binary"),t)}};testsBatch[e.name+":"]=r}),vows.describe("Test Turkish encodings").addBatch(testsBatch)["export"](module);