function createRelativePath(parentDir, dirOrFile) {
let path = createPath(parentDir, dirOrFile);
is(path[0], "/", "The full path should start with '/'"); return path.substring(1);
}
function test_basic(aDirectory, aNext) {
ok(aDirectory, "Directory exists.");
ok(aDirectory instanceof Directory, "We have a directory.");
is(aDirectory.path, "/" + aDirectory.name, "directory.path must be '/'+name");
aNext();
}
function test_getFilesAndDirectories(aDirectory, aRecursive, aNext) { function checkSubDir(dir) { return dir.getFilesAndDirectories().then(function (data) { for (var i = 0; i < data.length; ++i) {
ok(
data[i] instanceof File || data[i] instanceof Directory, "Just Files or Directories"
); if (data[i] instanceof Directory) {
isnot(
data[i].name, "/", "Subdirectory should be called with the leafname"
);
isnot(
data[i].path, "/", "Subdirectory path should be called with the leafname"
);
isnot(
data[i].path,
dir.path, "Subdirectory path should contain the parent path."
);
is(
data[i].path,
createPath(dir, data[i]), "Subdirectory path should be called parentdir.path + '/' + leafname: " +
data[i].path
);
}
if (data[i] instanceof File) {
is(
data[i].webkitRelativePath,
createRelativePath(dir, data[i]), "File.webkitRelativePath should be called: parentdir.path + '/' + file.name: " +
data[i].webkitRelativePath
);
ok(
!data[i].webkitRelativePath.endsWith("symlink.txt"), "We should never see a path ending with symlink.txt, our symlink sentinel."
);
}
}
});
}
aDirectory
.getFilesAndDirectories()
.then( function (data) {
ok(data.length, "We should have some data."); var promises = []; for (var i = 0; i < data.length; ++i) {
ok(
data[i] instanceof File || data[i] instanceof Directory, "Just Files or Directories: " + data[i].name
); if (data[i] instanceof Directory) {
isnot(
data[i].name, "/", "Subdirectory should be called with the leafname"
);
is(
data[i].path,
createPath(aDirectory, data[i]), "Subdirectory path should be called parentdir.path + '/' + leafname: " +
data[i].path
); if (aRecursive) {
promises.push(checkSubDir(data[i]));
}
}
if (data[i] instanceof File) {
is(
data[i].webkitRelativePath,
createRelativePath(aDirectory, data[i]), "File.webkitRelativePath should be called file.name: " +
data[i].webkitRelativePath
);
}
}
return Promise.all(promises);
}, function () {
ok(false, "Something when wrong");
}
)
.then(aNext);
}
function test_getFiles(aDirectory, aRecursive, aNext) {
aDirectory
.getFiles(aRecursive)
.then( function (data) { for (var i = 0; i < data.length; ++i) {
ok(data[i] instanceof File, "File: " + data[i].name);
is(aDirectory.path[0], "/", "Directory path must start with '/'");
ok(
data[i].webkitRelativePath.indexOf(aDirectory.path.substring(1)) ==
0 &&
data[i].webkitRelativePath.indexOf("/" + data[i].name) +
("/" + data[i].name).length ==
data[i].webkitRelativePath.length, "File.webkitRelativePath should be called dir.path + '/' + file.name: " +
data[i].webkitRelativePath
);
}
}, function () {
ok(false, "Something when wrong");
}
)
.then(aNext);
}
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.