gecko/intl/uconv/tests/unit/test_bug367026.js

38 lines
1.2 KiB
JavaScript

/* Tests conversion from Unicode to HZ-GB-2312 (bug 367026)
*
* Notes:
* HZ-GB-2312 is a 7-bit encoding of the GB2312 simplified Chinese character
* set. It uses the escape sequences "~{" to mark the start of GB encoded text
* and "~}" to mark the end.
*
* See http://www.ietf.org/rfc/rfc1843.txt
*/
const inASCII = "Hello World";
const inHanzi = "\u4E00";
const inMixed = "Hello \u4E00 World";
const expectedASCII = "Hello World";
const expectedHanzi = "~{R;~}";
const expectedMixed = "Hello ~{R;~} World";
const charset = "HZ-GB-2312";
function run_test() {
var ScriptableUnicodeConverter =
Components.Constructor("@mozilla.org/intl/scriptableunicodeconverter",
"nsIScriptableUnicodeConverter");
var converter = new ScriptableUnicodeConverter();
converter.charset = charset;
var outASCII = converter.ConvertFromUnicode(inASCII) + converter.Finish();
do_check_eq(outASCII, expectedASCII);
var outMixed = converter.ConvertFromUnicode(inMixed) + converter.Finish();
do_check_eq(outMixed, expectedMixed);
var outHanzi = converter.ConvertFromUnicode(inHanzi) + converter.Finish();
do_check_eq(outHanzi, expectedHanzi);
}