3 module.exports = function(grunt) {
5 require('load-grunt-tasks')(grunt);
6 var browser = process.env.BROWSER;
7 var travisBuild = process.env.BUILD;
8 var pullRequest = process.env.TRAVIS_PULL_REQUEST;
14 // We use end2end task (which does not start the webserver)
15 // and start the webserver as a separate process
16 // to avoid https://github.com/joyent/libuv/issues/826
19 middleware: function(connect, options) {
21 function(req, resp, next) {
22 // cache get requests to speed up tests on travis
23 if (req.method === 'GET') {
24 resp.setHeader('Cache-control', 'public, max-age=3600');
29 connect.static(options.base)
43 src: 'Source/**/*.js',
44 dest: 'mootools-all.js'
50 only: '<%= grunt.option("file") && "Core/" + grunt.option("file") %>'
52 src: 'Source/**/*.js',
53 dest: 'mootools-nocompat.js'
60 src: 'Specs/<%= grunt.option("module") || "**" %>/<%= grunt.option("file") || "*" %>.js',
61 dest: 'mootools-specs.js'
68 only: '<%= grunt.option("file") && "Specs/" + grunt.option("file") %>'
71 dest: 'mootools-specs.js'
79 captureTimeout: 60000 * 2,
81 frameworks: ['jasmine', 'sinon'],
82 files: ['Tests/Utilities/*.js', 'mootools-*.js'],
84 username: process.env.SAUCE_USERNAME,
85 accessKey: process.env.SAUCE_ACCESS_KEY,
86 testName: 'MooTools-Core. Build: ' + travisBuild + '. Browser: ' + browser
88 reporters: ['progress', 'saucelabs'],
92 browserName: 'chrome',
97 browserName: 'firefox',
102 browserName: 'opera',
103 platform: 'Windows 2008',
108 browserName: 'safari',
109 platform: 'OS X 10.9',
114 browserName: 'safari',
115 platform: 'OS X 10.8',
120 browserName: 'safari',
122 platform: 'OS X 10.6'
126 browserName: 'safari',
128 platform: 'Windows 7'
132 browserName: 'internet explorer',
133 platform: 'Windows 8.1',
138 browserName: 'internet explorer',
139 platform: 'Windows 8',
144 browserName: 'internet explorer',
145 platform: 'Windows 7',
150 browserName: 'internet explorer',
151 platform: 'Windows 7',
156 browserName: 'internet explorer',
157 platform: 'Windows XP',
162 browserName: 'internet explorer',
163 platform: 'Windows XP',
168 browserName: 'iphone',
169 platform: 'OS X 10.9',
171 deviceOrientation: 'portrait'
175 browserName: 'iphone',
176 platform: 'OS X 10.8',
178 deviceOrientation: 'portrait'
182 browserName: 'iphone',
183 platform: 'OS X 10.8',
185 deviceOrientation: 'portrait'
191 browsers: ['PhantomJS']
200 browsers: ['PhantomJS'],
214 var compatBuild = ['clean', 'packager:all', 'packager:specs'];
215 var nocompatBuild = ['clean', 'packager:nocompat', 'packager:specs-nocompat'];
217 var tasks = travisBuild == 'default' ? compatBuild : nocompatBuild;
218 tasks = pullRequest != 'false' ? tasks.concat('karma:continuous') : tasks.concat('karma:sauceTask');
220 grunt.registerTask('default', compatBuild.concat('karma:continuous'));
221 grunt.registerTask('nocompat', nocompatBuild.concat('karma:continuous'));
222 grunt.registerTask('default:travis', tasks);