diff -r 000000000000 -r 6474c204b198 intl/uconv/tests/unit/CharsetConversionTests.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/intl/uconv/tests/unit/CharsetConversionTests.js Wed Dec 31 06:09:35 2014 +0100 @@ -0,0 +1,76 @@ +const Ci = Components.interfaces; +const Cc = Components.classes; +const CC = Components.Constructor; + +function CreateScriptableConverter() +{ + var ScriptableUnicodeConverter = + CC("@mozilla.org/intl/scriptableunicodeconverter", + "nsIScriptableUnicodeConverter"); + + return new ScriptableUnicodeConverter(); +} + +function checkDecode(converter, charset, inText, expectedText) +{ + try { + converter.charset = charset; + } catch(e) { + converter.charset = "iso-8859-1"; + } + + dump("testing decoding from " + charset + " to Unicode.\n"); + try { + var outText = converter.ConvertToUnicode(inText) + converter.Finish(); + } catch(e) { + outText = "\ufffd"; + } + do_check_eq(outText, expectedText); +} + +function checkEncode(converter, charset, inText, expectedText) +{ + try { + converter.charset = charset; + } catch(e) { + converter.charset = "iso-8859-1"; + } + + dump("testing encoding from Unicode to " + charset + "\n"); + var outText = converter.ConvertFromUnicode(inText) + converter.Finish(); + do_check_eq(outText, expectedText); +} + +function testDecodeAliases() +{ + var converter = CreateScriptableConverter(); + for (var i = 0; i < aliases.length; ++i) { + checkDecode(converter, aliases[i], inString, expectedString); + } +} + +function testEncodeAliases() +{ + var converter = CreateScriptableConverter(); + for (var i = 0; i < aliases.length; ++i) { + checkEncode(converter, aliases[i], inString, expectedString); + } +} + +function testDecodeAliasesInternal() +{ + var converter = CreateScriptableConverter(); + converter.isInternal = true; + for (var i = 0; i < aliases.length; ++i) { + checkDecode(converter, aliases[i], inString, expectedString); + } +} + +function testEncodeAliasesInternal() +{ + var converter = CreateScriptableConverter(); + converter.isInternal = true; + for (var i = 0; i < aliases.length; ++i) { + checkEncode(converter, aliases[i], inString, expectedString); + } +}