node-x11/test/core-CreateWindow.js
Santiago Gimeno e5be17ac46 src: fix CreateWindow attributes encoding
- Every attribute must have 4 byte length.
- Add test.
2014-12-09 10:33:19 +01:00

60 lines
1.6 KiB
JavaScript

var x11 = require('../lib');
var should = require('should');
var assert = require('assert');
describe('CreateWindow request', function() {
// keep for a while: this snippet helps to track global leak
//global.__defineSetter__('a', function(v) {
// console.trace();
//});
var display;
var X;
beforeEach(function(done) {
var client = x11.createClient(function(err, dpy) {
if (!err) {
display = dpy;
X = display.client;
}
done(err);
});
client.on('error', done);
});
afterEach(function(done) {
X.terminate();
X.on('end', done);
X = null;
display = null;
});
it('should exist as client member', function(done) {
should.exist(X.CreateWindow);
assert.equal(typeof X.CreateWindow, 'function');
done();
});
it('result should present in windows tree', function(done) {
var wid = X.AllocID();
X.CreateWindow(wid, display.screen[0].root, 0, 0, 1, 1); // 1x1 pixel window
X.QueryTree(display.screen[0].root, function(err, list) {
if (err)
done(err);
var pos = list.children.indexOf(wid);
assert.notEqual(pos, -1, 'can\'t find created window');
done();
});
});
it('should work with any kind of attributes too', function(done) {
var wid = X.AllocID();
X.CreateWindow(wid, display.screen[0].root, 0, 0, 1, 1, 0, 0, 0, 0, { overrideRedirect : true }); // 1x1 pixel window
X.QueryTree(display.screen[0].root, function(err, list) {
should.not.exist(err);
list.children.should.containEql(wid);
done();
});
});
});