Bug 454376 add -lCrun -lCstd for Solaris OS_LIBS, r=bsmedberg
[wine-gecko.git] / intl / uconv / tests / unit / test_bug399257.js
blob16102ea16130400327e8aa9d19a94f4cc6fa5e79
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";
8 function run_test() {
9 var failures = false;
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();
16 var counter = 0;
17 while (charsetList.hasMore()) {
18 ++counter;
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");
26 continue;
28 dump("testing " + counter + " " + charset + "\n");
30 try {
31 encodingConverter.charset = charset;
32 } catch(e) {
33 dump("Warning: couldn't set encoder charset to " + charset + "\n");
34 continue;
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");
47 failures = true;
50 if (failures) {
51 do_throw("test failed\n");