You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
76 lines
1.8 KiB
76 lines
1.8 KiB
var assert = require("assert");
|
|
var file = require('../file-system');
|
|
var fs = require('fs');
|
|
var path = require('path');
|
|
|
|
function getPath(filepath) {
|
|
return path.join(__dirname, filepath);
|
|
}
|
|
|
|
function checkPermission(filepath, mask) {
|
|
var stat = fs.statSync(filepath);
|
|
var mode = mask & parseInt((stat.mode & parseInt ("777", 8)).toString (8)[0]);
|
|
|
|
return !!mode;
|
|
}
|
|
|
|
describe('mkdir', function() {
|
|
it('one level Directory', function(done) {
|
|
file.mkdir(getPath('var/mkdir'), function(err) {
|
|
if (err) throw err;
|
|
|
|
var exists = fs.existsSync(getPath('var/mkdir'));
|
|
|
|
assert.equal(true, exists);
|
|
done();
|
|
});
|
|
});
|
|
|
|
it('multiple level Directory', function(done) {
|
|
file.mkdir(getPath('var/mkdir/1/2/3/4'), function(err) {
|
|
if (err) throw err;
|
|
|
|
var exists = fs.existsSync(getPath('var/mkdir/1/2/3/4'));
|
|
|
|
assert.equal(true, exists);
|
|
done();
|
|
});
|
|
});
|
|
|
|
it('file mode', function(done) {
|
|
// 7 = 4+2+1 (read/write/execute)
|
|
// 6 = 4+2 (read/write)
|
|
// 5 = 4+1 (read/execute)
|
|
// 4 = 4 (read)
|
|
// 3 = 2+1 (write/execute)
|
|
// 2 = 2 (write)
|
|
// 1 = 1 (execute)
|
|
fs.mkdir(getPath('var/mkdir/mode'), 511, function(err) {
|
|
if (err) throw err;
|
|
|
|
assert.equal(true, checkPermission(getPath('var/mkdir/mode'), 4));
|
|
done();
|
|
});
|
|
|
|
fs.mkdir(getPath('var/mkdir/mode2'), 111, function(err) {
|
|
if (err) throw err;
|
|
|
|
assert.equal(false, checkPermission(getPath('var/mkdir/mode2'), 4));
|
|
});
|
|
});
|
|
|
|
it('callback', function(done) {
|
|
var a;
|
|
fs.mkdir(getPath('var/mkdir/callback'), function(err) {
|
|
a = 1;
|
|
|
|
assert.equal(a, 1);
|
|
done();
|
|
});
|
|
});
|
|
|
|
after(function() {
|
|
file.chmodSync(getPath('var/mkdir/mode2'), 511);
|
|
file.rmdirSync(getPath('var/mkdir'));
|
|
});
|
|
}); |