Skip to content
This repository has been archived by the owner on Sep 6, 2021. It is now read-only.

Commit

Permalink
Merge pull request #13023 from ficristo/5059-reset-permission
Browse files Browse the repository at this point in the history
chmod all sub files and folders in temp directory
  • Loading branch information
zaggino authored Jan 5, 2017
2 parents 7732d93 + 710181a commit 85faca8
Showing 1 changed file with 44 additions and 24 deletions.
68 changes: 44 additions & 24 deletions test/spec/SpecRunnerUtils.js
Original file line number Diff line number Diff line change
Expand Up @@ -255,34 +255,54 @@ define(function (require, exports, module) {
}

function _resetPermissionsOnSpecialTempFolders() {
var folders = [],
baseDir = getTempDirectory(),
promise;

folders.push(baseDir + "/cant_read_here");
folders.push(baseDir + "/cant_write_here");

promise = Async.doSequentially(folders, function (folder) {
var deferred = new $.Deferred();

_getFileSystem().resolve(folder, function (err, entry) {
if (!err) {
// Change permissions if the directory exists
chmod(folder, "777").then(deferred.resolve, deferred.reject);
var entries = [],
result = new $.Deferred(),
promise,
entryPromise = new $.Deferred(),
tempDir;

function visitor(entry) {
entries.push(entry.fullPath);
return true;
}
tempDir = FileSystem.getDirectoryForPath(getTempDirectory());
tempDir.visit(visitor, function(err){
if (!err) {
entryPromise.resolve(entries);
} else {
if (err === FileSystemError.NOT_FOUND) {
entryPromise.resolve(entries);
} else {
if (err === FileSystemError.NOT_FOUND) {
// Resolve the promise since the folder to reset doesn't exist
deferred.resolve();
} else {
deferred.reject();
}
entryPromise.reject();
}
});
}
});
entryPromise.done(function(entries){
promise = Async.doSequentially(entries, function (entry) {
var deferred = new $.Deferred();

return deferred.promise();
}, true);
FileSystem.resolve(entry, function (err, item) {
if (!err) {
// Change permissions if the directory exists
chmod(entry, "777").then(deferred.resolve, deferred.reject);
} else {
if (err === FileSystemError.NOT_FOUND) {
// Resolve the promise since the folder to reset doesn't exist
deferred.resolve();
} else {
deferred.reject();
}
}
});

return promise;
return deferred.promise();
}, true);
promise.then(result.resolve, result.reject);
}).fail(function() {
result.reject();
});

return result.promise();
}

/**
Expand Down

0 comments on commit 85faca8

Please sign in to comment.