intl/uconv/tests/unit/test_bug321379.js

changeset 0
6474c204b198
     1.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.2 +++ b/intl/uconv/tests/unit/test_bug321379.js	Wed Dec 31 06:09:35 2014 +0100
     1.3 @@ -0,0 +1,31 @@
     1.4 +// Tests that calling close on a converter in/output stream doesn't crash
     1.5 +// (bug 321379)
     1.6 +
     1.7 +function run_test() {
     1.8 +  var StorageStream = Components.Constructor("@mozilla.org/storagestream;1",
     1.9 +                                             "nsIStorageStream",
    1.10 +                                             "init");
    1.11 +  var ConverterInputStream = Components.Constructor("@mozilla.org/intl/converter-input-stream;1",
    1.12 +                                                    "nsIConverterInputStream",
    1.13 +                                                    "init");
    1.14 +  var ConverterOutputStream = Components.Constructor("@mozilla.org/intl/converter-output-stream;1",
    1.15 +                                                     "nsIConverterOutputStream",
    1.16 +                                                     "init");
    1.17 +
    1.18 +
    1.19 +
    1.20 +  var storage = new StorageStream(1024, -1, null);
    1.21 +
    1.22 +  // Output
    1.23 +  var outStr = storage.getOutputStream(0);
    1.24 +  var out = new ConverterOutputStream(outStr, "UTF-8", 1024, 0xFFFD);
    1.25 +  out.writeString("Foo.");
    1.26 +  out.close();
    1.27 +  out.close(); // This line should not crash. It should just do nothing.
    1.28 +
    1.29 +  // Input
    1.30 +  var inStr = storage.newInputStream(0);
    1.31 +  var inp = new ConverterInputStream(inStr, "UTF-8", 1024, 0xFFFD);
    1.32 +  inp.close();
    1.33 +  inp.close(); // This line should not crash. It should just do nothing.
    1.34 +}

mercurial