blob: 6250236602c3970f047325242a9fd2a4fe41b66e [file] [log] [blame]
/*
* Grunt.js is a task runner for JavaScript development.
* Grunt and its plugins are installed and managed via npm, the Node.js package manager.
* http://gruntjs.com/
*
* To use it:
* 1) install node.js - http://nodejs.org/#download. This will install 'npm' (Node Package Manager) too.
* 3) run: npm install (This will use package.json and install grunt and all dependencies)
* 4.1) grunt jshint - checks all JavaScript files with JSHint
* 4.2) grunt jshint:core - checks only the files in wicket-core
* 4.3) grunt - starts the registered tasks: starting a web server and running all tests (Ajax, non-Ajax and AMD)
*/
/*global module: true */
module.exports = function(grunt) {
"use strict";
var
coreJs = [
'../../wicket-core/src/main/java/org/apache/wicket/ajax/res/js/wicket-event-jquery.js',
'../../wicket-core/src/main/java/org/apache/wicket/ajax/res/js/wicket-ajax-jquery-debug.js',
'../../wicket-core/src/main/java/org/apache/wicket/ajax/res/js/wicket-ajax-jquery.js',
"../../wicket-core/src/main/java/org/apache/wicket/markup/html/form/CheckSelector.js",
"../../wicket-core/src/main/java/org/apache/wicket/markup/html/form/upload/MultiFileUploadField.js",
"../../wicket-core/src/main/java/org/apache/wicket/ajax/form/AjaxFormChoiceComponentUpdatingBehavior.js",
"../../wicket-core/src/main/java/org/apache/wicket/markup/html/pages/wicket-browser-info.js"
],
extensionsJs = [
"../../wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/form/upload/progressbar.js",
"../../wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/form/palette/palette.js",
"../../wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/tree/res/tree.js",
"../../wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/autocomplete/wicket-autocomplete.js",
"../../wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/modal/res/modal.js",
"../../wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/repeater/data/table/filter/wicket-filterform.js"
],
datetimeJs = [
"../../wicket-datetime/src/main/java/org/apache/wicket/extensions/yui/calendar/wicket-date.js"
],
nativeWebSocketJs = [
"../../wicket-native-websocket/wicket-native-websocket-core/src/main/java/org/apache/wicket/protocol/ws/api/res/js/wicket-websocket-jquery.js"
],
atmosphereJs = [
"../../wicket-experimental/wicket-atmosphere/src/main/java/org/apache/wicket/atmosphere/jquery.wicketatmosphere.js"
],
testsJs = [
"../../wicket-core/src/test/js/ajax.js",
"../../wicket-core/src/test/js/head.js",
"../../wicket-core/src/test/js/form.js",
"../../wicket-core/src/test/js/dom.js",
"../../wicket-core/src/test/js/channels.js",
"../../wicket-core/src/test/js/event.js",
"../../wicket-core/src/test/js/timer.js",
"../../wicket-core/src/test/js/amd.js"
],
gymTestsJs = [
"../../wicket-examples/src/main/webapp/js-test/tests/ajax/form.js",
"../../wicket-examples/src/main/webapp/js-test/tests/bean-validation/birthdate.js",
"../../wicket-examples/src/main/webapp/js-test/tests/bean-validation/email.js",
"../../wicket-examples/src/main/webapp/js-test/tests/bean-validation/name.js",
"../../wicket-examples/src/main/webapp/js-test/tests/bean-validation/phone.js",
"../../wicket-examples/src/main/webapp/js-test/tests/cdi/auto-conversation.js",
"../../wicket-examples/src/main/webapp/js-test/tests/cdi/conversation.js",
"../../wicket-examples/src/main/webapp/js-test/tests/cdi/injection.js",
"../../wicket-examples/src/main/webapp/js-test/tests/echo.js",
"../../wicket-examples/src/main/webapp/js-test/tests/forminput.js",
"../../wicket-examples/src/main/webapp/js-test/tests/helloworld.js",
"../../wicket-examples/src/main/webapp/js-test/tests/mailtemplate.js"
],
gruntJs = [
"Gruntfile.js"
];
// Project configuration.
grunt.initConfig({
pkg: grunt.file.readJSON('package.json'),
jshint: {
core: coreJs,
extensions: extensionsJs,
datetime: datetimeJs,
nativeWebSocket: nativeWebSocketJs,
atmosphere: atmosphereJs,
testsJs: testsJs,
gymTestsJs: gymTestsJs,
grunt: gruntJs,
options: {
"boss": true,
"browser": true,
"curly": true,
"eqnull": true,
"eqeqeq": true,
"expr": true,
"evil": true,
"jquery": true,
"latedef": true,
"noarg": true,
"onevar": false,
"smarttabs": true,
"trailing": true,
"undef": true,
"strict": true,
"predef": [
"Wicket"
]
}
},
qunit: {
/*
* Runs all tests (w/ ajax).
* See ajax.js header for details how to setup it.
*/
all: {
options: {
urls: [
'http://localhost:38888/test/js/all.html?1.12.4',
'http://localhost:38888/test/js/all.html?2.2.4',
'http://localhost:38888/test/js/all.html?3.3.1'
]
}
},
/**
* Run Asynchronous module definition tests
*/
amd: {
options: {
urls: [
'http://localhost:38888/test/js/amd.html?1.12.4',
'http://localhost:38888/test/js/amd.html?2.2.4',
'http://localhost:38888/test/js/amd.html?3.3.1'
]
}
}
},
connect: {
server: {
options: {
port: 38888,
// debug: true,
middleware: function(connect, options, middlewares) {
middlewares.unshift(function(req, res, next) {
if (req.url.indexOf('submitNestedForm') > 0) {
// WICKET-5631
req.method = 'GET';
}
return next();
});
return middlewares;
},
base: '../../wicket-core/src'
}
}
}
});
grunt.loadNpmTasks('grunt-contrib-qunit');
grunt.loadNpmTasks('grunt-contrib-jshint');
// This plugin provides the "connect" task - starts a web server for the Ajax tests.
grunt.loadNpmTasks('grunt-contrib-connect');
grunt.registerTask('default', ['jshint', 'connect', 'qunit']);
};