|
1 /* This Source Code Form is subject to the terms of the Mozilla Public |
|
2 * License, v. 2.0. If a copy of the MPL was not distributed with this |
|
3 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ |
|
4 |
|
5 function wrapInputStream(input) |
|
6 { |
|
7 var nsIScriptableInputStream = Components.interfaces.nsIScriptableInputStream; |
|
8 var factory = Components.classes["@mozilla.org/scriptableinputstream;1"]; |
|
9 var wrapper = factory.createInstance(nsIScriptableInputStream); |
|
10 wrapper.init(input); |
|
11 return wrapper; |
|
12 } |
|
13 |
|
14 // Check that files can be read from after closing zipreader |
|
15 function run_test() { |
|
16 const Cc = Components.classes; |
|
17 const Ci = Components.interfaces; |
|
18 |
|
19 // the build script have created the zip we can test on in the current dir. |
|
20 var file = do_get_file("data/test_corrupt.zip"); |
|
21 |
|
22 var zipreader = Cc["@mozilla.org/libjar/zip-reader;1"]. |
|
23 createInstance(Ci.nsIZipReader); |
|
24 zipreader.open(file); |
|
25 // var entries = zipreader.findEntries(null); |
|
26 // the signature for file is corrupt, should not segfault |
|
27 var failed = false; |
|
28 try { |
|
29 var stream = wrapInputStream(zipreader.getInputStream("file")); |
|
30 stream.read(1024); |
|
31 } catch (ex) { |
|
32 failed = true; |
|
33 } |
|
34 do_check_true(failed); |
|
35 } |
|
36 |