description("DirectoryReader.readEntries() test with many entries."); var fileSystem = null; var reader = null; var numFilesExpected = 150; var numDirectoriesExpected = 150; var resultEntries = []; function endTest() { removeAllInDirectory(fileSystem.root); finishJSTest(); } function errorCallback(error) { debug("Error occured:" + error.name); endTest(); } var numFiles = 0, numDirectories = 0; function verifyTestResult() { for (var i = 0; i < resultEntries.length; ++i) { var entry = resultEntries[i]; if (entry.isDirectory) { ++numDirectories; } else { ++numFiles; } } shouldBe('numFiles', 'numFilesExpected'); shouldBe('numDirectories', 'numDirectoriesExpected'); } function entriesCallback(entries) { resultEntries.push.apply(resultEntries, entries); if (entries.length) { reader.readEntries(entriesCallback, errorCallback); } else { // Must have read all the entries. verifyTestResult(); endTest(); } } function runReadDirectoryTest() { reader = fileSystem.root.createReader(); reader.readEntries(entriesCallback, errorCallback); } function prepareForTest() { var helper = new JoinHelper(); var done = function() { helper.done(); }; for (var i = 0; i < numFilesExpected; ++i) { var name = 'file' + i; helper.run(function() { fileSystem.root.getFile(name, {create: true}, done, errorCallback); }); } for (var i = 0; i < numDirectoriesExpected; ++i) { var name = 'directory' + i; helper.run(function() { fileSystem.root.getDirectory(name, {create: true}, done, errorCallback); }); } helper.join(runReadDirectoryTest); } function successCallback(fs) { fileSystem = fs; debug("Successfully obtained TEMPORARY FileSystem:" + fileSystem.name); removeAllInDirectory(fileSystem.root, prepareForTest, errorCallback); } jsTestIsAsync = true; webkitRequestFileSystem(TEMPORARY, 100, successCallback, errorCallback);