node-x11/test/connect.js
Santiago Gimeno 4508f9e93d Change createClient signature
- The new signature is:

  createClient(options, initCB), where
     - options is an optional object that defines different parameters such as
               display, etc.
     - initCB is an optional callback with the signature: function(err, display)
- The initCB is going to be called with an error ONLY if the connection to the X
  server fails. Further errors in the server connection will be 'emitted'.
- Update tests and test-runner.js accordingly.
- Update README.
2012-12-19 09:34:19 +01:00

60 lines
1.7 KiB
JavaScript

var x11 = require('../lib/x11');
var should = require('should');
var assert = require('assert');
var util = require('util');
describe('Client', function() {
var display;
beforeEach(function(done) {
var client = x11.createClient(function(err, dpy) {
if (!err) {
display = dpy;
done();
client.removeListener('error', done);
} else {
done(err);
}
});
client.on('error', done);
});
it('calls first createClient parameter with display object', function(done) {
should.exist(display);
should.exist(display.screen);
should.exist(display.screen[0]);
should.exist(display.screen[0].root);
should.exist(display.major);
done();
});
it('uses display variable from parameter if present ignoring anvironment $DISPLAY', function(done) {
var disp = process.env.DISPLAY;
process.env.DISPLAY = 'BOGUS DISPLAY';
var client = x11.createClient({ display : disp }, done);
client.on('error', done);
process.env.DISPLAY=disp;
});
it('throws error if $DISPLAY is bogus', function(done) {
try {
assert.throws(function() {
var client = x11.createClient({ display : 'BOGUS DISPLAY' }, function(err, display) {
done('Should not reach here');
});
client.on('error', function(err) { done(); });
}, /Cannot parse display/);
done();
} catch(e) {
done();
}
});
it('returns error when connecting to non existent display', function(done) {
var client = x11.createClient({ display : ':44' }, function(err, display) {
assert(util.isError(err));
done();
});
});
});