Wed, 31 Dec 2014 07:22:50 +0100
Correct previous dual key logic pending first delivery installment.
1 const Ci = Components.interfaces;
2 const Cc = Components.classes;
3 const CC = Components.Constructor;
5 function CreateScriptableConverter()
6 {
7 var ScriptableUnicodeConverter =
8 CC("@mozilla.org/intl/scriptableunicodeconverter",
9 "nsIScriptableUnicodeConverter");
11 return new ScriptableUnicodeConverter();
12 }
14 function checkDecode(converter, charset, inText, expectedText)
15 {
16 try {
17 converter.charset = charset;
18 } catch(e) {
19 converter.charset = "iso-8859-1";
20 }
22 dump("testing decoding from " + charset + " to Unicode.\n");
23 try {
24 var outText = converter.ConvertToUnicode(inText) + converter.Finish();
25 } catch(e) {
26 outText = "\ufffd";
27 }
28 do_check_eq(outText, expectedText);
29 }
31 function checkEncode(converter, charset, inText, expectedText)
32 {
33 try {
34 converter.charset = charset;
35 } catch(e) {
36 converter.charset = "iso-8859-1";
37 }
39 dump("testing encoding from Unicode to " + charset + "\n");
40 var outText = converter.ConvertFromUnicode(inText) + converter.Finish();
41 do_check_eq(outText, expectedText);
42 }
44 function testDecodeAliases()
45 {
46 var converter = CreateScriptableConverter();
47 for (var i = 0; i < aliases.length; ++i) {
48 checkDecode(converter, aliases[i], inString, expectedString);
49 }
50 }
52 function testEncodeAliases()
53 {
54 var converter = CreateScriptableConverter();
55 for (var i = 0; i < aliases.length; ++i) {
56 checkEncode(converter, aliases[i], inString, expectedString);
57 }
58 }
60 function testDecodeAliasesInternal()
61 {
62 var converter = CreateScriptableConverter();
63 converter.isInternal = true;
64 for (var i = 0; i < aliases.length; ++i) {
65 checkDecode(converter, aliases[i], inString, expectedString);
66 }
67 }
69 function testEncodeAliasesInternal()
70 {
71 var converter = CreateScriptableConverter();
72 converter.isInternal = true;
73 for (var i = 0; i < aliases.length; ++i) {
74 checkEncode(converter, aliases[i], inString, expectedString);
75 }
76 }