| /* global QUnit,JSZip,JSZipTestUtils */ |
| 'use strict'; |
| |
| QUnit.module("forEach"); |
| |
| QUnit.test("forEach works on /", function (assert) { |
| var zip = JSZipTestUtils.createZipAll(); |
| var count = 0; |
| var calls = []; |
| |
| assert.equal(zip.root, ""); |
| |
| zip.forEach(function (path, elt) { |
| assert.equal(path, elt.name, "the full path is given on / for " + elt.name); |
| count++; |
| calls.push(path); |
| }); |
| |
| assert.equal(count, 3, "the callback has been called the right number of times"); |
| assert.deepEqual(calls, ["Hello.txt", "images/", "images/smile.gif"], "all paths have been called"); |
| }); |
| |
| QUnit.test("forEach works on a sub folder", function (assert) { |
| var zip = new JSZip(); |
| var sub = zip.folder("subfolder"); |
| sub.file("Hello.txt", "Hello World\n"); |
| sub.folder("images").file("smile.gif", "R0lGODdhBQAFAIACAAAAAP/eACwAAAAABQAFAAACCIwPkWerClIBADs=", {base64: true}); |
| var count = 0; |
| var calls = []; |
| |
| assert.ok(zip.file("subfolder/Hello.txt")); |
| assert.equal(sub.root, "subfolder/"); |
| |
| sub.forEach(function (path, elt) { |
| assert.equal(path, elt.name.substr("subfolder/".length), "the full path is given on subfolder/ for " + path); |
| count++; |
| calls.push(path); |
| }); |
| |
| assert.equal(count, 3, "the callback has been called the right number of times"); |
| assert.deepEqual(calls, ["Hello.txt", "images/", "images/smile.gif"], "all paths have been called"); |
| }); |