1 // Tests encoding of characters below U+0020
2 const Ci
= Components
.interfaces
;
3 const Cc
= Components
.classes
;
4 const inString
= "Hello\u000aWorld";
5 const expectedString
= "Hello\nWorld";
10 var ccManager
= Cc
["@mozilla.org/charset-converter-manager;1"]
11 .getService(Ci
.nsICharsetConverterManager
);
12 var encodingConverter
= Cc
["@mozilla.org/intl/scriptableunicodeconverter"]
13 .createInstance(Ci
.nsIScriptableUnicodeConverter
);
15 var charsetList
= ccManager
.getDecoderList();
17 while (charsetList
.hasMore()) {
19 var charset
= charsetList
.getNext();
21 // exclude known non-ASCII compatible charsets
22 if (charset
.substr(0, "UTF-16".length
) == "UTF-16" ||
23 charset
.substr(0, "UTF-32".length
) == "UTF-32" ||
24 charset
== "x-imap4-modified-utf7") {
25 dump("skipping " + counter
+ " " + charset
+ "\n");
28 dump("testing " + counter
+ " " + charset
+ "\n");
31 encodingConverter
.charset
= charset
;
33 dump("Warning: couldn't set encoder charset to " + charset
+ "\n");
36 var codepageString
= encodingConverter
.ConvertFromUnicode(inString
) +
37 encodingConverter
.Finish();
38 if (codepageString
!= expectedString
) {
39 dump(charset
+ " encoding failed\n");
40 for (var i
= 0; i
< expectedString
.length
; ++i
) {
41 if (codepageString
.charAt(i
) != expectedString
.charAt(i
)) {
42 dump(i
.toString(16) + ": 0x" +
43 codepageString
.charCodeAt(i
).toString(16) + " != " +
44 expectedString
.charCodeAt(i
).toString(16) + "\n");
51 do_throw("test failed\n");