intl/uconv/tests/unit/test_input_stream.js

changeset 0
6474c204b198
     1.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.2 +++ b/intl/uconv/tests/unit/test_input_stream.js	Wed Dec 31 06:09:35 2014 +0100
     1.3 @@ -0,0 +1,33 @@
     1.4 +var Ci = Components.interfaces,
     1.5 +    Cc = Components.classes,
     1.6 +    CC = Components.Constructor;
     1.7 +var converter = Cc["@mozilla.org/intl/scriptableunicodeconverter"]
     1.8 +                  .createInstance(Ci.nsIScriptableUnicodeConverter);
     1.9 +converter.charset = "UTF-8";
    1.10 +
    1.11 +var SIS = CC("@mozilla.org/scriptableinputstream;1",
    1.12 +             "nsIScriptableInputStream",
    1.13 +             "init");
    1.14 +
    1.15 +function test_char(code) {
    1.16 +    dump("test_char(0x" + code.toString(16) + ")\n");
    1.17 +    var original = String.fromCharCode(code);
    1.18 +    var nativeStream = converter.convertToInputStream(original);
    1.19 +    var stream = new SIS(nativeStream);
    1.20 +    var utf8Result = stream.read(stream.available());
    1.21 +    stream.close();
    1.22 +    var result = converter.ConvertToUnicode(utf8Result);
    1.23 +    do_check_eq(escape(original), escape(result));
    1.24 +}
    1.25 +
    1.26 +function run_test() {
    1.27 +    // This is not a very comprehensive test.
    1.28 +    for (var i = 0x007f - 2; i <= 0x007f; i++)
    1.29 +        test_char(i);
    1.30 +    for (i = 0x07ff - 2; i <= 0x07ff; i++)
    1.31 +        test_char(i);
    1.32 +    for (i = 0x1000 - 2; i <= 0x1000 + 2; i++)
    1.33 +        test_char(i);
    1.34 +    for (i = 0xe000; i <= 0xe000 + 2; i++)
    1.35 +        test_char(i);
    1.36 +}

mercurial