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

Commit 85faca8

Browse files
authored
Merge pull request #13023 from ficristo/5059-reset-permission
chmod all sub files and folders in temp directory
2 parents 7732d93 + 710181a commit 85faca8

File tree

1 file changed

+44
-24
lines changed

1 file changed

+44
-24
lines changed

test/spec/SpecRunnerUtils.js

Lines changed: 44 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -255,34 +255,54 @@ define(function (require, exports, module) {
255255
}
256256

257257
function _resetPermissionsOnSpecialTempFolders() {
258-
var folders = [],
259-
baseDir = getTempDirectory(),
260-
promise;
261-
262-
folders.push(baseDir + "/cant_read_here");
263-
folders.push(baseDir + "/cant_write_here");
264-
265-
promise = Async.doSequentially(folders, function (folder) {
266-
var deferred = new $.Deferred();
267-
268-
_getFileSystem().resolve(folder, function (err, entry) {
269-
if (!err) {
270-
// Change permissions if the directory exists
271-
chmod(folder, "777").then(deferred.resolve, deferred.reject);
258+
var entries = [],
259+
result = new $.Deferred(),
260+
promise,
261+
entryPromise = new $.Deferred(),
262+
tempDir;
263+
264+
function visitor(entry) {
265+
entries.push(entry.fullPath);
266+
return true;
267+
}
268+
tempDir = FileSystem.getDirectoryForPath(getTempDirectory());
269+
tempDir.visit(visitor, function(err){
270+
if (!err) {
271+
entryPromise.resolve(entries);
272+
} else {
273+
if (err === FileSystemError.NOT_FOUND) {
274+
entryPromise.resolve(entries);
272275
} else {
273-
if (err === FileSystemError.NOT_FOUND) {
274-
// Resolve the promise since the folder to reset doesn't exist
275-
deferred.resolve();
276-
} else {
277-
deferred.reject();
278-
}
276+
entryPromise.reject();
279277
}
280-
});
278+
}
279+
});
280+
entryPromise.done(function(entries){
281+
promise = Async.doSequentially(entries, function (entry) {
282+
var deferred = new $.Deferred();
281283

282-
return deferred.promise();
283-
}, true);
284+
FileSystem.resolve(entry, function (err, item) {
285+
if (!err) {
286+
// Change permissions if the directory exists
287+
chmod(entry, "777").then(deferred.resolve, deferred.reject);
288+
} else {
289+
if (err === FileSystemError.NOT_FOUND) {
290+
// Resolve the promise since the folder to reset doesn't exist
291+
deferred.resolve();
292+
} else {
293+
deferred.reject();
294+
}
295+
}
296+
});
284297

285-
return promise;
298+
return deferred.promise();
299+
}, true);
300+
promise.then(result.resolve, result.reject);
301+
}).fail(function() {
302+
result.reject();
303+
});
304+
305+
return result.promise();
286306
}
287307

288308
/**

0 commit comments

Comments
 (0)