1
0
Fork 0
mirror of https://github.com/YunoHost-Apps/jappix_ynh.git synced 2024-09-03 19:26:19 +02:00
jappix_ynh/source/test/Gruntfile.js
2014-04-08 20:14:28 +02:00

137 lines
3.3 KiB
JavaScript

/*
* Jappix
* Test tasks (uses GruntJS)
*
* Copyright 2013, FrenchTouch Web Agency
* Author: Valérian Saliou <valerian@valeriansaliou.name>
*/
module.exports = function(grunt) {
// Project configuration
grunt.initConfig({
pkg: grunt.file.readJSON('package.json'),
// Task: CSSLint
csslint: {
all: {
options: {
/*
* CSS Lint Options
* Reference: https://github.com/gruntjs/grunt-contrib-csslint/blob/master/README.md#options
*/
'important': false,
'duplicate-background-images': false,
'star-property-hack': false,
'adjoining-classes': false,
'box-model': false,
'qualified-headings': false,
'unique-headings': false,
'floats': false,
'font-sizes': false,
'ids': false,
'overqualified-elements': false,
'known-properties': false,
'unqualified-attributes': false,
'universal-selector': false
},
src: [
'../app/stylesheets/*.css',
// Ignored files
'!../app/stylesheets/ie.css',
'!../app/stylesheets/*-ie.css',
'!../app/stylesheets/ios.css'
]
}
},
// Task: JSHint
jshint: {
files: ['../app/javascripts/*.js'],
options: {
ignores: [
'../app/javascripts/jquery.js',
'../app/javascripts/jquery.*.js',
'../app/javascripts/jsjac.js',
'../app/javascripts/jsjac.*.js',
'../app/javascripts/jxhr.js',
'../app/javascripts/browser-detect.js',
'../app/javascripts/base64.js',
'../app/javascripts/datejs.js',
'../app/javascripts/ios.js'
]
}
},
// Task PHPLint
phplint: {
all: [
'../index.php',
'../server/*.php',
// Ignored files
'!../server/drawsvgchart.php',
'!../server/gettext.php',
'!../server/jsmin.php',
'!../server/mobile-detect.php',
'!../server/srand.php'
]
}
});
// Load plugins
grunt.loadNpmTasks('grunt-contrib-csslint');
grunt.loadNpmTasks('grunt-contrib-jshint');
grunt.loadNpmTasks('grunt-phplint');
// Map tasks
var GRUNT_TASKS_TEST = {
all: [['lint',0]]
};
var GRUNT_TASKS_LINT = {
css: [['csslint',0]],
js: [['jshint',0]],
php: [['phplint',0]]
};
// Register tasks
grunt.registerTask('default', function() {
return grunt.warn('Usage:' + '\n\n' + 'test - grunt test' + '\n\n');
});
grunt.registerTask('test', function() {
for(t in GRUNT_TASKS_TEST) {
for(i in GRUNT_TASKS_TEST[t]) {
grunt.task.run(GRUNT_TASKS_TEST[t][i][0] + (GRUNT_TASKS_TEST[t][i][1] ? (':' + t) : ''));
}
}
});
grunt.registerTask('lint', function(t) {
var lint_t_all = [];
if(t == null) {
for(t in GRUNT_TASKS_LINT) {
lint_t_all.push(t);
}
} else if(typeof GRUNT_TASKS_LINT[t] != 'object') {
return grunt.warn('Invalid lint target name.\n');
} else {
lint_t_all.push(t);
}
for(c in lint_t_all) {
t = lint_t_all[c];
for(i in GRUNT_TASKS_LINT[t]) {
grunt.task.run(GRUNT_TASKS_LINT[t][i][0] + (GRUNT_TASKS_LINT[t][i][1] ? (':' + t) : ''));
}
}
});
};