'use strict';
|
|
var grunt = require('grunt');
|
var helpers = require('./helpers');
|
|
exports.chmod = {
|
setUp: function(done) {
|
// setup here if necessary
|
done();
|
},
|
|
default_options: function(test) {
|
test.expect(1);
|
|
var actual = grunt.file.readJSON('tmp/default_options.json');
|
var expected = grunt.file.readJSON('test/expected/default_options.json');
|
test.deepEqual(actual, expected, 'Task should fail when relying on the default options.');
|
|
test.done();
|
},
|
|
custom_options_without_string_mode: function(test) {
|
test.expect(1);
|
|
var actual = grunt.file.readJSON('tmp/custom_options_without_string_mode.json');
|
var expected = grunt.file.readJSON('test/expected/custom_options_without_string_mode.json');
|
test.deepEqual(actual, expected, 'Task should fail when setting a non-string `mode` on the custom options.');
|
|
test.done();
|
},
|
|
custom_options_with_empty_mode: function(test) {
|
test.expect(1);
|
|
var actual = grunt.file.readJSON('tmp/custom_options_with_empty_mode.json');
|
var expected = grunt.file.readJSON('test/expected/custom_options_with_empty_mode.json');
|
test.deepEqual(actual, expected, 'Task should fail when setting an empty string `mode` on the custom options.');
|
|
test.done();
|
},
|
|
custom_options_with_invalid_mode: function(test) {
|
test.expect(1);
|
|
var actual = grunt.file.readJSON('tmp/custom_options_with_invalid_mode.json');
|
var expected = grunt.file.readJSON('test/expected/custom_options_with_invalid_mode.json');
|
test.deepEqual(actual, expected, 'Task should fail when setting an invalid string `mode` on the custom options.');
|
|
test.done();
|
},
|
|
custom_options_nonexistent_file: function(test) {
|
test.expect(1);
|
|
var actual = grunt.file.readJSON('tmp/custom_options_nonexistent_file.json');
|
var expected = grunt.file.readJSON('test/expected/custom_options_nonexistent_file.json');
|
test.deepEqual(actual, expected, 'Task should pass but not modify any file permissions when there are no files that match.');
|
|
test.done();
|
},
|
|
custom_options_file: function(test) {
|
test.expect(2);
|
|
var actual = grunt.file.readJSON('tmp/custom_options_file.json');
|
var expected = grunt.file.readJSON('test/expected/custom_options_file.json');
|
test.deepEqual(actual, expected, 'Task should pass and modify the file permissions of all files that match.');
|
|
var rawMode = require('fs').statSync('tmp/custom_options_file.js').mode;
|
var numericMode = helpers.permsFromMode(rawMode);
|
|
var actualPerms = '' + numericMode;
|
var expectedPerms = '444';
|
test.strictEqual(actualPerms, expectedPerms, 'Permissions should match.');
|
|
test.done();
|
},
|
|
custom_options_dir: function(test) {
|
test.expect(2);
|
|
var actual = grunt.file.readJSON('tmp/custom_options_dir.json');
|
var expected = grunt.file.readJSON('test/expected/custom_options_dir.json');
|
test.deepEqual(actual, expected, 'Task should pass and modify the directory permissions of all directories that match.');
|
|
var rawMode = require('fs').statSync('tmp/custom_options_dir/').mode;
|
var numericMode = helpers.permsFromMode(rawMode);
|
|
var actualPerms = '' + numericMode;
|
var expectedPerms = '444';
|
test.strictEqual(actualPerms, expectedPerms, 'Permissions should match.');
|
|
test.done();
|
},
|
|
custom_options_file_symbolic_1: function(test) {
|
test.expect(2);
|
|
var actual = grunt.file.readJSON('tmp/custom_options_file_symbolic_1.json');
|
var expected = grunt.file.readJSON('test/expected/custom_options_file_symbolic_1.json');
|
test.deepEqual(actual, expected, 'Task should pass and modify the file permissions of all files that match.');
|
|
var rawMode = require('fs').statSync('tmp/custom_options_file_symbolic_1.js').mode;
|
var numericMode = helpers.permsFromMode(rawMode);
|
|
var actualPerms = '' + numericMode;
|
var expectedPerms = '400';
|
test.strictEqual(actualPerms, expectedPerms, 'Permissions should match.');
|
|
test.done();
|
},
|
|
custom_options_file_symbolic_2: function(test) {
|
test.expect(2);
|
|
var actual = grunt.file.readJSON('tmp/custom_options_file_symbolic_2.json');
|
var expected = grunt.file.readJSON('test/expected/custom_options_file_symbolic_2.json');
|
test.deepEqual(actual, expected, 'Task should pass and modify the file permissions of all files that match.');
|
|
var rawMode = require('fs').statSync('tmp/custom_options_file_symbolic_2.js').mode;
|
var numericMode = helpers.permsFromMode(rawMode);
|
|
var actualPerms = '' + numericMode;
|
var expectedPerms = '600';
|
test.strictEqual(actualPerms, expectedPerms, 'Permissions should match.');
|
|
test.done();
|
},
|
|
custom_options_file_symbolic_3: function(test) {
|
test.expect(2);
|
|
var actual = grunt.file.readJSON('tmp/custom_options_file_symbolic_3.json');
|
var expected = grunt.file.readJSON('test/expected/custom_options_file_symbolic_3.json');
|
test.deepEqual(actual, expected, 'Task should pass and modify the file permissions of all files that match.');
|
|
var rawMode = require('fs').statSync('tmp/custom_options_file_symbolic_3.js').mode;
|
var numericMode = helpers.permsFromMode(rawMode);
|
|
var actualPerms = '' + numericMode;
|
var expectedPerms = '700';
|
test.strictEqual(actualPerms, expectedPerms, 'Permissions should match.');
|
|
test.done();
|
},
|
|
custom_options_file_symbolic_4: function(test) {
|
test.expect(2);
|
|
var actual = grunt.file.readJSON('tmp/custom_options_file_symbolic_4.json');
|
var expected = grunt.file.readJSON('test/expected/custom_options_file_symbolic_4.json');
|
test.deepEqual(actual, expected, 'Task should pass and modify the file permissions of all files that match.');
|
|
var rawMode = require('fs').statSync('tmp/custom_options_file_symbolic_4.js').mode;
|
var numericMode = helpers.permsFromMode(rawMode);
|
|
var actualPerms = '' + numericMode;
|
var expectedPerms = '404';
|
test.strictEqual(actualPerms, expectedPerms, 'Permissions should match.');
|
|
test.done();
|
}
|
};
|