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) {
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);
}),

View file

@ -74,12 +74,12 @@ describe("Zotero.File", function () {
it("should compress a directory recursively", function* () {
var tmpPath = Zotero.getTempDirectory().path;
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, 'a.txt'), 'A');
// Create subdirectory
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');
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);
// 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);
Zotero.File.pathToFile(zipDir).remove(true);
});
@ -143,7 +143,10 @@ describe("Zotero.Sync.Storage.Local", function () {
var dir = Zotero.Attachments.getStorageDirectoryByLibraryAndKey(libraryID, key).path;
yield OS.File.makeDir(
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, 'subdir', 'B'), '');