12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182 |
- /**
- * This file is used to test only Handsontable End-to-End tests.
- */
- var JasmineReporter = require('jasmine-terminal-reporter');
- module.exports = function(grunt) {
- grunt.initConfig({});
- grunt.registerTask('test-handsontable', ['phantomjs-handsontable']);
- grunt.registerTask('test-walkontable', ['phantomjs-walkontable']);
- grunt.registerTask('phantomjs-handsontable', function() {
- spawnPhantomJS('test/E2ERunner.html', this.async());
- });
- grunt.registerTask('phantomjs-walkontable', function() {
- spawnPhantomJS('src/3rdparty/walkontable/test/SpecRunner.html', this.async());
- });
- function spawnPhantomJS(url, done) {
- var phantomjs = require('grunt-lib-phantomjs').init(grunt);
- var reporter = new JasmineReporter({
- colors: 1,
- cleanStack: 1,
- verbosity: 4,
- listStyle: 'flat',
- activity: true,
- });
- var errorCount = 0;
- // jasmine-reporter handlers.
- phantomjs.on('jasmine.jasmineStarted', function(msg) {
- reporter.jasmineStarted.apply(reporter, arguments);
- });
- phantomjs.on('jasmine.specStarted', function(msg) {
- reporter.specStarted && reporter.specStarted.apply(reporter, arguments);
- });
- phantomjs.on('jasmine.suiteStarted', function(msg) {
- reporter.suiteStarted.apply(reporter, arguments);
- });
- phantomjs.on('jasmine.jasmineDone', function(msg) {
- reporter.jasmineDone.apply(reporter, arguments);
- phantomjs.halt();
- });
- phantomjs.on('jasmine.suiteDone', function(msg) {
- reporter.suiteDone.apply(reporter, arguments);
- });
- phantomjs.on('jasmine.specDone', function(msg) {
- if (msg.failedExpectations.length) {
- errorCount += msg.failedExpectations.length;
- }
- reporter.specDone.apply(reporter, arguments);
- });
- // Built-in error handlers.
- phantomjs.on('fail.load', function(url) {
- grunt.warn('PhantomJS unable to load URL.', 90);
- phantomjs.halt();
- });
- phantomjs.on('fail.timeout', function() {
- grunt.warn('PhantomJS timed out.', 90);
- phantomjs.halt();
- });
- phantomjs.on('error.onError', function(string) {
- grunt.log.error('Error caught from PhantomJS.');
- grunt.warn(string);
- phantomjs.halt();
- });
- phantomjs.spawn(url, {
- options: {
- timeout: 10000,
- page: {
- viewportSize: {width: 1200, height: 1000},
- },
- },
- done: function(err) {
- done(err || errorCount === 0);
- }
- });
- }
- };
|