Fix Travis errors with OS.File.DirectoryIterator for real

This commit is contained in:
Dan Stillman 2016-06-24 19:40:10 -04:00
parent edc996b1ed
commit 2f562a4fdf
3 changed files with 12 additions and 4 deletions

View File

@ -896,6 +896,11 @@ Zotero.Sync.Storage.Local = {
_deleteExistingAttachmentFiles: Zotero.Promise.method(function (item) { _deleteExistingAttachmentFiles: Zotero.Promise.method(function (item) {
var parentDir = Zotero.Attachments.getStorageDirectory(item).path; var parentDir = Zotero.Attachments.getStorageDirectory(item).path;
// OS.File.DirectoryIterator, used by OS.File.removeDir(), isn't reliable on Travis,
// returning entry.isDir == false for subdirectories, so use nsIFile instead
if (Zotero.automatedTest) {
Zotero.File.pathToFile(parentDir).remove(true);
}
return OS.File.removeDir(parentDir); return OS.File.removeDir(parentDir);
}), }),

View File

@ -74,12 +74,12 @@ describe("Zotero.File", function () {
it("should compress a directory recursively", function* () { it("should compress a directory recursively", function* () {
var tmpPath = Zotero.getTempDirectory().path; var tmpPath = Zotero.getTempDirectory().path;
var path = OS.Path.join(tmpPath, Zotero.Utilities.randomString()); var path = OS.Path.join(tmpPath, Zotero.Utilities.randomString());
yield OS.File.makeDir(path); yield OS.File.makeDir(path, { unixMode: 0o755 });
yield Zotero.File.putContentsAsync(OS.Path.join(path, '.zotero-ft-cache'), ''); yield Zotero.File.putContentsAsync(OS.Path.join(path, '.zotero-ft-cache'), '');
yield Zotero.File.putContentsAsync(OS.Path.join(path, 'a.txt'), 'A'); yield Zotero.File.putContentsAsync(OS.Path.join(path, 'a.txt'), 'A');
// Create subdirectory // Create subdirectory
var subPath = OS.Path.join(path, 'sub'); var subPath = OS.Path.join(path, 'sub');
yield OS.File.makeDir(subPath); yield OS.File.makeDir(subPath, { unixMode: 0o755 });
yield Zotero.File.putContentsAsync(OS.Path.join(subPath, 'b.txt'), 'B'); yield Zotero.File.putContentsAsync(OS.Path.join(subPath, 'b.txt'), 'B');
var zipFile = OS.Path.join(tmpPath, 'test.zip'); var zipFile = OS.Path.join(tmpPath, 'test.zip');

View File

@ -125,7 +125,7 @@ describe("Zotero.Sync.Storage.Local", function () {
yield Zotero.File.zipDirectory(zipDir, zipFile); yield Zotero.File.zipDirectory(zipDir, zipFile);
// OS.File.DirectoryIterator, used by OS.File.removeDir(), isn't reliable on Travis, // OS.File.DirectoryIterator, used by OS.File.removeDir(), isn't reliable on Travis,
// returning entry.isDir == false for directories, so use nsIFile instead // returning entry.isDir == false for subdirectories, so use nsIFile instead
//yield OS.File.removeDir(zipDir); //yield OS.File.removeDir(zipDir);
Zotero.File.pathToFile(zipDir).remove(true); Zotero.File.pathToFile(zipDir).remove(true);
}); });
@ -143,7 +143,10 @@ describe("Zotero.Sync.Storage.Local", function () {
var dir = Zotero.Attachments.getStorageDirectoryByLibraryAndKey(libraryID, key).path; var dir = Zotero.Attachments.getStorageDirectoryByLibraryAndKey(libraryID, key).path;
yield OS.File.makeDir( yield OS.File.makeDir(
OS.Path.join(dir, 'subdir'), OS.Path.join(dir, 'subdir'),
{ from: Zotero.getZoteroDirectory().path } {
from: Zotero.getZoteroDirectory().path,
unixMode: 0o755
}
); );
yield Zotero.File.putContentsAsync(OS.Path.join(dir, 'A'), ''); yield Zotero.File.putContentsAsync(OS.Path.join(dir, 'A'), '');
yield Zotero.File.putContentsAsync(OS.Path.join(dir, 'subdir', 'B'), ''); yield Zotero.File.putContentsAsync(OS.Path.join(dir, 'subdir', 'B'), '');