summaryrefslogtreecommitdiffstats
path: root/modules/libjar/zipwriter/test/unit/test_bug446708.js
diff options
context:
space:
mode:
Diffstat (limited to 'modules/libjar/zipwriter/test/unit/test_bug446708.js')
-rw-r--r--modules/libjar/zipwriter/test/unit/test_bug446708.js37
1 files changed, 37 insertions, 0 deletions
diff --git a/modules/libjar/zipwriter/test/unit/test_bug446708.js b/modules/libjar/zipwriter/test/unit/test_bug446708.js
new file mode 100644
index 000000000..2b4e7a0ce
--- /dev/null
+++ b/modules/libjar/zipwriter/test/unit/test_bug446708.js
@@ -0,0 +1,37 @@
+function run_test() {
+ var testBundle = do_get_file("data/test_bug446708");
+
+ RecursivelyZipDirectory(testBundle);
+}
+
+// Add |file| to the zip. |path| is the current path for the file.
+function AddToZip(zipWriter, path, file)
+{
+ var currentPath = path + file.leafName;
+
+ if (file.isDirectory()) {
+ currentPath += "/";
+ }
+
+ // THIS IS WHERE THE ERROR OCCURS, FOR THE FILE "st14-1.tiff" IN "test_bug446708"
+ zipWriter.addEntryFile(currentPath, Ci.nsIZipWriter.COMPRESSION_DEFAULT, file, false);
+
+ // if it's a dir, continue adding its contents recursively...
+ if (file.isDirectory()) {
+ var entries = file.QueryInterface(Components.interfaces.nsIFile).directoryEntries;
+ while (entries.hasMoreElements()) {
+ var entry = entries.getNext().QueryInterface(Components.interfaces.nsIFile);
+ AddToZip(zipWriter, currentPath, entry);
+ }
+ }
+
+ // ...otherwise, we're done
+}
+
+function RecursivelyZipDirectory(bundle)
+{
+ zipW.open(tmpFile, PR_RDWR | PR_CREATE_FILE | PR_TRUNCATE);
+ AddToZip(zipW, "", bundle);
+ zipW.close();
+}
+