Pure NodeJS environment test runner: grunt node-test

This commit is contained in:
Лаврёнов Антон 2014-03-04 19:35:26 +08:00
parent a524ba9ec1
commit 798d1acf28
4 changed files with 150 additions and 28 deletions

View File

@ -255,15 +255,25 @@ module.exports = function(grunt) {
grunt.registerTask('hint', 'Check hint errors', ['jshint']);
grunt.registerTask('test', 'Run tests', ['dev', 'mocha_phantomjs']);
grunt.registerTask('server', 'run local server and create dev version', function() {
grunt.registerTask('node-test', 'Run tests in pure NodeJS environment', function(){
grunt.task.run('dev');
grunt.task.run('_run-node-test');
});
grunt.registerTask('server', 'run local server and create dev version', function() {
grunt.task.run('dev');
grunt.log.writeln('Tests server starts on http://localhost:8080/test/runner.html');
var connect = require('connect');
connect.createServer(
connect.static(__dirname)
).listen(8080);
grunt.task.run('watch:dev');
grunt.log.writeln('Tests server starts on http://localhost:8080/test/runner.html');
});
// run pure node tests
grunt.registerTask('_run-node-test', function(){
require('./test/node-runner');
});
grunt.loadNpmTasks('grunt-contrib-concat');

130
test/node-runner.js Normal file
View File

@ -0,0 +1,130 @@
var fs = require('fs'),
Kinetic = require('../dist/kinetic-dev');
global.Kinetic = Kinetic;
Kinetic.enableTrace = true;
// Config MINIMAL test environment
global.suite = function(title, func) {
console.log('Suite : ' + title);
func();
};
global.test = function(title, func) {
try {
console.log('Run test: ' + title);
func(function(){});
} catch (e) {
console.log('Error at ' + title, e);
throw e;
}
};
test.skip = function(){};
global.assert = function(condtion, message){
if (!condtion) {
throw 'assert throw:' + message;
}
};
global.assert.equal = function(left, right){
if (left !== right) {
}
};
global.assert.notEqual = function(left, right){
if (left === right) {
throw 'assert throw';
}
};
global.addStage = function(){
return new Kinetic.Stage({
width: 578,
height: 200
});
};
// Some utils for testing
global.kineticContainer = Kinetic.document.createElement('div');
Kinetic.document.body.appendChild(kineticContainer);
global.showHit = global.addContainer = function(){
};
global.Image = Kinetic._nodeCanvas.Image;
Image.prototype.style = {};
eval(fs.readFileSync('./test/assets/tiger.js')+"");
eval(fs.readFileSync('./test/assets/worldMap.js')+"");
global.tiger = tiger;
global.worldMap = worldMap;
// now load all tests
require('./unit/Global-test.js');
require('./unit/Node-test.js');
require('./unit/Global-test.js');
require('./unit/Util-test.js');
require('./unit/Canvas-test.js');
require('./unit/Node-test.js');
require('./unit/Container-test.js');
require('./unit/Stage-test.js');
require('./unit/Layer-test.js');
require('./unit/Shape-test.js');
require('./unit/Collection-test.js');
// shapes -->
require('./unit/shapes/Rect-test.js');
require('./unit/shapes/Circle-test.js');
require('./unit/shapes/Image-test.js');
require('./unit/shapes/Line-test.js');
require('./unit/shapes/Text-test.js');
require('./unit/shapes/Blob-test.js');
require('./unit/shapes/Ellipse-test.js');
require('./unit/shapes/Polygon-test.js');
require('./unit/shapes/Spline-test.js');
require('./unit/shapes/Sprite-test.js');
require('./unit/shapes/Wedge-test.js');
require('./unit/shapes/Arc-test.js');
require('./unit/shapes/Ring-test.js');
// // extensions -->
require('./unit/Animation-test.js');
require('./unit/DragAndDrop-test.js');
require('./unit/Tween-test.js');
// // plugins -->
require('./unit/plugins/Label-test.js');
require('./unit/plugins/Star-test.js');
require('./unit/plugins/RegularPolygon-test.js');
require('./unit/plugins/Path-test.js');
require('./unit/plugins/TextPath-test.js');
// // filters -->
require('./unit/filters/Blur-test.js');
require('./unit/filters/Brighten-test.js');
require('./unit/filters/RGB-test.js');
require('./unit/filters/HSV-test.js');
require('./unit/filters/HSL-test.js');
require('./unit/filters/Invert-test.js');
require('./unit/filters/Mask-test.js');
require('./unit/filters/Grayscale-test.js');
require('./unit/filters/Enhance-test.js');
require('./unit/filters/Pixelate-test.js');
require('./unit/filters/Noise-test.js');
require('./unit/filters/Threshold-test.js');
require('./unit/filters/Posterize-test.js');
require('./unit/filters/Sepia-test.js');
require('./unit/filters/Emboss-test.js');
require('./unit/filters/Solarize-test.js');
require('./unit/filters/Kaleidoscope-test.js');
// //=============== functional tests ================-->
require('./functional/MouseEvents-test.js');
require('./functional/TouchEvents-test.js');
//require('./functional/DragAndDropEvents-test.js'); disabled because of simplest test configuration
// //=============== manual tests ================-->
// require('./manual/manual-test.js'); disabled because of unlimited animation

View File

@ -872,25 +872,7 @@ suite('Node', function() {
var layer = new Kinetic.Layer();
var group = new Kinetic.Group();
var points = [{
x: 73,
y: 250
}, {
x: 73,
y: 160
}, {
x: 340,
y: 23
}, {
x: 500,
y: 109
}, {
x: 499,
y: 139
}, {
x: 342,
y: 93
}];
var points = [73, 250, 73, 160, 340, 23, 500, 109, 499, 139, 342, 93];
var poly = new Kinetic.Line({
points: points,

View File

@ -2,7 +2,7 @@ suite('Stage', function() {
// ======================================================
test('instantiate stage with id', function() {
var container = document.createElement('div');
var container = Kinetic.document.createElement('div');
container.id = 'container';
kineticContainer.appendChild(container);
@ -21,7 +21,7 @@ suite('Stage', function() {
// ======================================================
test('test stage buffer canvas and hit buffer canvas', function() {
var container = document.createElement('div');
var container = Kinetic.document.createElement('div');
container.id = 'container';
kineticContainer.appendChild(container);
@ -45,7 +45,7 @@ suite('Stage', function() {
// ======================================================
test('instantiate stage with dom element', function() {
var container = document.createElement('div');
var container = Kinetic.document.createElement('div');
kineticContainer.appendChild(container);
@ -58,8 +58,8 @@ suite('Stage', function() {
// ======================================================
test('stage instantiation should clear container', function() {
var container = document.createElement('div');
var dummy = document.createElement('p');
var container = Kinetic.document.createElement('div');
var dummy = Kinetic.document.createElement('p');
container.appendChild(dummy);
kineticContainer.appendChild(container);
@ -365,7 +365,7 @@ suite('Stage', function() {
// ======================================================
test('destroy stage', function() {
var container = document.createElement('div');
var container = Kinetic.document.createElement('div');
kineticContainer.appendChild(container);