node-x11/test-runner.js
An Ko 19b937094b Assign to local vars instead of globals
These were being assigned to globals for some reason.

The tests return the same results when they're local, so I'll assume
this was a typo.
2014-11-03 16:06:20 +01:00

111 lines
3 KiB
JavaScript

var x11 = require('./lib');
var Mocha = require('mocha');
var fs = require('fs');
var path = require('path');
var util = require('util');
var async = require('async');
var mocha = new Mocha({
timeout : 80000,
reporter : 'spec'
});
// To be able to perform the tests we need the server:
// 1 - to support the dpms extension.
// 2 - dpms version is 1.1.
// 3 - to be dpms capable.
var run_dpms_test = function(X, cb) {
X.require('dpms', function(err, ext) {
if (!util.isError(err)) {
var dpms = ext;
dpms.GetVersion(undefined, undefined, function(err, version) {
if (!err && version[0] === 1 && version[1] === 1) {
dpms.Capable(function(err, capable) {
if (!err && capable[0] == 1) cb(true);
else cb(false);
});
} else {
cb(false);
}
});
} else {
cb(false);
}
});
};
var run_xtest_test = function(X, cb) {
X.require('xtest', function(err) {
if (!util.isError(err)) cb(true);
else cb(false);
});
};
var run_randr_test = function(X, cb) {
X.require('randr', function(err, ext) {
if (!util.isError(err)) {
var randr = ext;
randr.QueryVersion(1, 2, function(err, version) {
if (err) {
cb(false);
} else {
cb((version[0] === 1) && (version[1] >= 2));
}
});
} else {
cb(false);
}
});
};
x11.createClient(function(err, display) {
if (err) {
console.log('Could not create X client');
process.exit(-1);
}
var X = display.client;
// Add all files from test root directory
async.forEach(
fs.readdirSync('./test'),
function(file, cb) {
if (file === 'dpms.js') {
run_dpms_test(X, function(run) {
if (run) {
mocha.addFile(path.join('./test', file));
}
cb();
});
} else if (file === 'xtest.js') {
run_xtest_test(X, function(run) {
if (run) {
mocha.addFile(path.join('./test', file));
}
cb();
});
} else if (file === 'randr.js') {
run_randr_test(X, function(run) {
if (run) {
mocha.addFile(path.join('./test', file));
}
cb();
});
} else {
mocha.addFile(path.join('./test', file));
cb();
}
},
function() {
X.terminate();
X.on('end', function() {
mocha.run(function(failures) {
process.exit(failures);
});
});
}
);
});